UNPKG

@dooboostore/dom-render

Version:
105 lines (104 loc) 5.06 kB
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 DrTargetElement_exports = {}; __export(DrTargetElement_exports, { DrTargetElement: () => DrTargetElement }); module.exports = __toCommonJS(DrTargetElement_exports); var import_core = require("@dooboostore/core"); var import_RawSet = require("../rawsets/RawSet"); var import_OperatorExecuter = require("./OperatorExecuter"); var import_rawsets = require("../rawsets"); class DrTargetElement extends import_OperatorExecuter.OperatorExecuter { constructor(rawSet, render, returnContainer, elementSource, source, afterCallBack) { source.operatorAround = void 0; super(rawSet, render, returnContainer, elementSource, source, afterCallBack, false); } async execute() { let targetElement = void 0; let isTargetElementElement = this.elementSource.element.tagName.toLowerCase() === import_RawSet.RawSet.DR_TARGET_ELEMENT_ELEMENTNAME.toLowerCase(); if (isTargetElementElement) { const targetElementTagName = this.elementSource.element.getAttribute(`${import_RawSet.RawSet.DR_TARGET_ELEMENT_ELEMENTNAME}:is`)?.toLowerCase(); targetElement = this.source.config?.targetElements?.find( (it) => it.name.toLowerCase() === targetElementTagName ); } else { targetElement = this.source.config?.targetElements?.find( (it) => it.name.toLowerCase() === this.elementSource.element.tagName.toLowerCase() ); } if (targetElement) { if (this.rawSet.point.start instanceof this.source.config.window.HTMLMetaElement && this.rawSet.point.end instanceof this.source.config.window.HTMLMetaElement) { this.rawSet.point.start.setAttribute("this-path", `this.${import_rawsets.DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY}.${this.rawSet.uuid}`); this.rawSet.point.end.setAttribute("this-path", `this.${import_rawsets.DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY}.${this.rawSet.uuid}`); } const documentFragment = await targetElement.callBack( this.elementSource.element, this.source.obj, this.rawSet, this.elementSource.attrs, this.source.config ); if (documentFragment) { const detectAction = this.elementSource.element.getAttribute(import_RawSet.RawSet.DR_DETECT_NAME); this.rawSet.dataSet.fragment = documentFragment; if (detectAction && this.rawSet.dataSet.render) { this.rawSet.detect = { action: () => { const script = `var $component = this.__render.component; var $element = this.__render.element; var $innerHTML = this.__render.innerHTML; var $attribute = this.__render.attribute; ${detectAction} `; import_core.ObjectUtils.Script.evaluate( script, Object.assign(this.source.obj, { __render: this.rawSet.dataSet.render }) ); } }; } let targetFragment = documentFragment; if (targetElement.noStrip) { const fragment = this.source.config.window.document.createDocumentFragment(); Array.from(documentFragment.firstElementChild?.childNodes || []).forEach((child) => { fragment.appendChild(child); }); targetFragment = fragment; } const rr = import_RawSet.RawSet.checkPointCreates(targetFragment, this.source.obj, this.source.config); rr.forEach((it, index) => { }); if (targetElement.noStrip) { Array.from(targetFragment.childNodes || []).forEach((child) => { documentFragment.firstElementChild?.appendChild(child); }); } this.elementSource.element.parentNode?.replaceChild(documentFragment, this.elementSource.element); this.returnContainer.raws.push(...rr); this.afterCallBack.onElementInitCallBacks.push({ name: targetElement.name.toLowerCase(), obj: this.source.obj, targetElement, creatorMetaData: targetElement.__creatorMetaData }); targetElement?.complete?.(this.elementSource.element, this.source.obj, this.rawSet); } return import_OperatorExecuter.ExecuteState.EXECUTE; } return import_OperatorExecuter.ExecuteState.NO_EXECUTE; } } //# sourceMappingURL=DrTargetElement.js.map