Current section

Files

Jump to
phoenix_webcomponent priv static phoenix_webcomponent.js
Raw

priv/static/phoenix_webcomponent.js

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var phoenix_webcomponent_exports = {};
__export(phoenix_webcomponent_exports, {
PhxWCHook: () => PhxWCHook
});
module.exports = __toCommonJS(phoenix_webcomponent_exports);
var import_lit = require("@gsmlg/lit");
const PhxWCHook = {
mounted() {
const attrs = this.el.attributes;
const phxTarget = attrs["phx-target"].value;
const pushEvent = phxTarget ? (event, payload, callback) => this.pushEventTo(phxTarget, event, payload, callback) : this.pushEvent;
for (var i = 0; i < attrs.length; i++) {
if (/^phx-wc-send-/.test(attrs[i].name)) {
const eventName = attrs[i].name.replace(/^phx-wc-send-/, "");
const [phxEvent, callbackName] = attrs[i].value.split(";");
this.el.addEventListener(eventName, ({ detail }) => {
pushEvent(phxEvent, detail, (e) => {
var _a;
(_a = this[callbackName]) == null ? void 0 : _a.call(this, e, detail, eventName);
});
});
}
if (/^phx-wc-receive-/.test(attrs[i].name)) {
const eventName = attrs[i].name.replace(/^phx-wc-receive-/, "");
const handler = attrs[i].value;
this.handleEvent(eventName, (payload) => {
var _a, _b;
if (handler && this.el[handler]) {
(_b = (_a = this.el)[handler]) == null ? void 0 : _b.call(_a, payload);
} else {
this.el.dispatchEvent(new CustomEvent(eventName, { detail: payload }));
}
});
}
if (attrs[i].name === "phx-wc-receive") {
const [phxEvent, callbackName] = attrs[i].value.split(";");
this.handleEvent(phxEvent, (payload) => {
var _a, _b;
(_b = (_a = this.el)[callbackName]) == null ? void 0 : _b.call(_a, payload);
});
}
}
}
};
if (window) {
window.__PhxWCHook__ = PhxWCHook;
}