UNPKG

@dooboostore/dom-render

Version:
91 lines (90 loc) 4.74 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 DrForm_exports = {}; __export(DrForm_exports, { DrForm: () => DrForm }); module.exports = __toCommonJS(DrForm_exports); var import_RawSet = require("../rawsets/RawSet"); var import_core = require("@dooboostore/core"); var import_EventManager = require("../events/EventManager"); var import_core2 = require("@dooboostore/core"); var import_OperatorExecuterAttrRequire = require("./OperatorExecuterAttrRequire"); var import_OperatorExecuter = require("./OperatorExecuter"); var import_core3 = require("@dooboostore/core"); class DrForm extends import_OperatorExecuterAttrRequire.OperatorExecuterAttrRequire { constructor(rawSet, render, returnContainer, elementSource, source, afterCallBack) { super(rawSet, render, returnContainer, elementSource, source, afterCallBack, false); } async executeAttrRequire(attr) { import_RawSet.RawSet.drFormOtherMoveAttr(this.elementSource.element, "name", "temp-name", this.source.config); const data = import_core3.ObjectUtils.Script.evaluateReturn(`${attr}`, this.source.obj); const childs = Array.from(this.elementSource.element.querySelectorAll("[name]")); const fromName = import_core3.ObjectUtils.Script.evaluateReturn(this.elementSource.element.getAttribute(`${import_RawSet.RawSet.DR_FORM_NAME}:name`) ?? "", this.source.obj); const thisName = fromName ?? this.elementSource.element.getAttribute("name"); if (childs.length <= 0 && thisName) { childs.push(this.elementSource.element); } else { if (data instanceof import_core.Validator) { data.setTarget(this.elementSource.element); } } childs.forEach((it) => { const eventName = it.getAttribute(`${import_RawSet.RawSet.DR_FORM_NAME}:event`) ?? "change"; const validatorName = it.getAttribute(`${import_RawSet.RawSet.DR_FORM_NAME}:validator`); const attrEventName = import_EventManager.EventManager.attrPrefix + "event-" + eventName; let varpath = import_core3.ObjectUtils.Script.evaluateReturn(this.elementSource.element.getAttribute(`${import_RawSet.RawSet.DR_FORM_NAME}:name`) ?? "", this.source.obj) ?? it.getAttribute("name"); if (varpath != null) { if (validatorName) { import_core3.ObjectUtils.Script.evaluate( ` ${this.render.bindScript} const validator = typeof ${validatorName} ==='function' ? new ${validatorName}() : ${validatorName}; ${attr}['${varpath}'] = validator; `, Object.assign( this.source.obj, { __render: Object.freeze({ drStripOption: this.elementSource.attrs.drStripOption, ...this.render }) } ) ); } varpath = `${attr}['${varpath}']`; const data2 = import_core3.ObjectUtils.Script.evaluateReturn(`${varpath}`, this.source.obj); if (data2 instanceof import_core2.ValidatorArray) { it.setAttribute(attrEventName, `${varpath}.setArrayValue($target, $target.value, $event); ${it.getAttribute(attrEventName) ?? ""};`); data2.addValidator(it.value, it); } else if (data2 instanceof import_core.Validator) { it.setAttribute(attrEventName, `${varpath}.set($target.value, $target, $event); ${it.getAttribute(attrEventName) ?? ""};`); data2.setTarget(it); data2.value = it.value; } else { it.setAttribute(attrEventName, `${varpath} = $target.value;`); } } }); import_RawSet.RawSet.drFormOtherMoveAttr(this.elementSource.element, "temp-name", "name", this.source.config); this.returnContainer.raws.push(...import_RawSet.RawSet.checkPointCreates(this.elementSource.element, this.source.obj, this.source.config)); return import_OperatorExecuter.ExecuteState.EXECUTE; } } //# sourceMappingURL=DrForm.js.map