@dooboostore/dom-render 1.0.110 → 1.0.112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.MD +1 -2
  2. package/dist/cjs/DomRenderProxy.js +89 -48
  3. package/dist/cjs/DomRenderProxy.js.map +2 -2
  4. package/dist/cjs/components/ComponentBase.js +47 -1
  5. package/dist/cjs/components/ComponentBase.js.map +2 -2
  6. package/dist/cjs/components/a/A.js +22 -0
  7. package/dist/cjs/components/a/A.js.map +2 -2
  8. package/dist/cjs/components/appender/Appender.js +21 -4
  9. package/dist/cjs/components/appender/Appender.js.map +2 -2
  10. package/dist/cjs/components/details/Details.js +5 -0
  11. package/dist/cjs/components/details/Details.js.map +2 -2
  12. package/dist/cjs/components/forOf/ForOf.js +2 -2
  13. package/dist/cjs/components/forOf/ForOf.js.map +1 -1
  14. package/dist/cjs/components/if/If.js +1 -1
  15. package/dist/cjs/components/if/If.js.map +2 -2
  16. package/dist/cjs/components/index.js +3 -1
  17. package/dist/cjs/components/index.js.map +3 -3
  18. package/dist/cjs/components/router/RouterOutlet.js +41 -10
  19. package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
  20. package/dist/cjs/components/select/Select.js +39 -1
  21. package/dist/cjs/components/select/Select.js.map +2 -2
  22. package/dist/cjs/components/this/This.js +33 -5
  23. package/dist/cjs/components/this/This.js.map +2 -2
  24. package/dist/cjs/decorators/DomRenderNoProxy.js +3 -9
  25. package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
  26. package/dist/cjs/events/EventManager.js +103 -37
  27. package/dist/cjs/events/EventManager.js.map +2 -2
  28. package/dist/cjs/lifecycle/OnChangeAttrRender.js.map +1 -1
  29. package/dist/cjs/lifecycle/OnChildRawSetRendered.js +26 -0
  30. package/dist/cjs/lifecycle/OnChildRawSetRendered.js.map +7 -0
  31. package/dist/cjs/lifecycle/OnRawSetRendered.js.map +2 -2
  32. package/dist/cjs/operators/Appender.js +8 -1
  33. package/dist/cjs/operators/Appender.js.map +2 -2
  34. package/dist/cjs/operators/Dr.js +2 -2
  35. package/dist/cjs/operators/Dr.js.map +2 -2
  36. package/dist/cjs/operators/DrAppender.js +2 -2
  37. package/dist/cjs/operators/DrAppender.js.map +2 -2
  38. package/dist/cjs/operators/DrFor.js +2 -2
  39. package/dist/cjs/operators/DrFor.js.map +2 -2
  40. package/dist/cjs/operators/DrForOf.js +34 -6
  41. package/dist/cjs/operators/DrForOf.js.map +2 -2
  42. package/dist/cjs/operators/DrForm.js +6 -6
  43. package/dist/cjs/operators/DrForm.js.map +2 -2
  44. package/dist/cjs/operators/DrInnerHTML.js +2 -2
  45. package/dist/cjs/operators/DrInnerHTML.js.map +2 -2
  46. package/dist/cjs/operators/DrRepeat.js +2 -2
  47. package/dist/cjs/operators/DrRepeat.js.map +2 -2
  48. package/dist/cjs/operators/DrStripElement.js +2 -2
  49. package/dist/cjs/operators/DrStripElement.js.map +2 -2
  50. package/dist/cjs/operators/DrTargetElement.js +14 -5
  51. package/dist/cjs/operators/DrTargetElement.js.map +2 -2
  52. package/dist/cjs/operators/DrTargetElementIsElement.js +2 -2
  53. package/dist/cjs/operators/DrTargetElementIsElement.js.map +2 -2
  54. package/dist/cjs/operators/DrThis.js +2 -2
  55. package/dist/cjs/operators/DrThis.js.map +2 -2
  56. package/dist/cjs/operators/DrThisProperty.js +2 -1
  57. package/dist/cjs/operators/DrThisProperty.js.map +2 -2
  58. package/dist/cjs/rawsets/RawSet.js +87 -160
  59. package/dist/cjs/rawsets/RawSet.js.map +2 -2
  60. package/dist/cjs/routers/HashRouter.js +3 -0
  61. package/dist/cjs/routers/HashRouter.js.map +2 -2
  62. package/dist/cjs/routers/PathRouter.js +3 -0
  63. package/dist/cjs/routers/PathRouter.js.map +2 -2
  64. package/dist/cjs/routers/Router.js +25 -21
  65. package/dist/cjs/routers/Router.js.map +2 -2
  66. package/dist/esm/DomRenderProxy.js +89 -48
  67. package/dist/esm/DomRenderProxy.js.map +2 -2
  68. package/dist/esm/components/ComponentBase.js +47 -1
  69. package/dist/esm/components/ComponentBase.js.map +2 -2
  70. package/dist/esm/components/a/A.js +22 -0
  71. package/dist/esm/components/a/A.js.map +2 -2
  72. package/dist/esm/components/appender/Appender.js +22 -5
  73. package/dist/esm/components/appender/Appender.js.map +2 -2
  74. package/dist/esm/components/details/Details.js +5 -0
  75. package/dist/esm/components/details/Details.js.map +2 -2
  76. package/dist/esm/components/forOf/ForOf.js +2 -2
  77. package/dist/esm/components/forOf/ForOf.js.map +1 -1
  78. package/dist/esm/components/if/If.js +1 -1
  79. package/dist/esm/components/if/If.js.map +2 -2
  80. package/dist/esm/components/index.js +3 -1
  81. package/dist/esm/components/index.js.map +2 -2
  82. package/dist/esm/components/router/RouterOutlet.js +41 -10
  83. package/dist/esm/components/router/RouterOutlet.js.map +2 -2
  84. package/dist/esm/components/select/Select.js +39 -1
  85. package/dist/esm/components/select/Select.js.map +2 -2
  86. package/dist/esm/components/this/This.js +33 -5
  87. package/dist/esm/components/this/This.js.map +2 -2
  88. package/dist/esm/decorators/DomRenderNoProxy.js +3 -9
  89. package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
  90. package/dist/esm/events/EventManager.js +103 -37
  91. package/dist/esm/events/EventManager.js.map +2 -2
  92. package/dist/esm/lifecycle/OnChangeAttrRender.js.map +1 -1
  93. package/dist/esm/lifecycle/OnChildRawSetRendered.js +7 -0
  94. package/dist/esm/lifecycle/OnChildRawSetRendered.js.map +7 -0
  95. package/dist/esm/lifecycle/OnRawSetRendered.js.map +2 -2
  96. package/dist/esm/operators/Appender.js +8 -1
  97. package/dist/esm/operators/Appender.js.map +2 -2
  98. package/dist/esm/operators/Dr.js +2 -2
  99. package/dist/esm/operators/Dr.js.map +2 -2
  100. package/dist/esm/operators/DrAppender.js +2 -2
  101. package/dist/esm/operators/DrAppender.js.map +2 -2
  102. package/dist/esm/operators/DrFor.js +2 -2
  103. package/dist/esm/operators/DrFor.js.map +2 -2
  104. package/dist/esm/operators/DrForOf.js +34 -6
  105. package/dist/esm/operators/DrForOf.js.map +2 -2
  106. package/dist/esm/operators/DrForm.js +6 -6
  107. package/dist/esm/operators/DrForm.js.map +2 -2
  108. package/dist/esm/operators/DrInnerHTML.js +2 -2
  109. package/dist/esm/operators/DrInnerHTML.js.map +2 -2
  110. package/dist/esm/operators/DrRepeat.js +2 -2
  111. package/dist/esm/operators/DrRepeat.js.map +2 -2
  112. package/dist/esm/operators/DrStripElement.js +2 -2
  113. package/dist/esm/operators/DrStripElement.js.map +2 -2
  114. package/dist/esm/operators/DrTargetElement.js +14 -5
  115. package/dist/esm/operators/DrTargetElement.js.map +2 -2
  116. package/dist/esm/operators/DrTargetElementIsElement.js +2 -2
  117. package/dist/esm/operators/DrTargetElementIsElement.js.map +2 -2
  118. package/dist/esm/operators/DrThis.js +2 -2
  119. package/dist/esm/operators/DrThis.js.map +2 -2
  120. package/dist/esm/operators/DrThisProperty.js +2 -1
  121. package/dist/esm/operators/DrThisProperty.js.map +2 -2
  122. package/dist/esm/rawsets/RawSet.js +87 -160
  123. package/dist/esm/rawsets/RawSet.js.map +2 -2
  124. package/dist/esm/routers/HashRouter.js +3 -0
  125. package/dist/esm/routers/HashRouter.js.map +2 -2
  126. package/dist/esm/routers/PathRouter.js +3 -0
  127. package/dist/esm/routers/PathRouter.js.map +2 -2
  128. package/dist/esm/routers/Router.js +25 -21
  129. package/dist/esm/routers/Router.js.map +2 -2
  130. package/dist/esm-bundle/dooboostore-dom-render.esm.js +830 -1533
  131. package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
  132. package/dist/types/DomRenderProxy.d.ts.map +1 -1
  133. package/dist/types/components/ComponentBase.d.ts +12 -1
  134. package/dist/types/components/ComponentBase.d.ts.map +1 -1
  135. package/dist/types/components/a/A.d.ts +6 -0
  136. package/dist/types/components/a/A.d.ts.map +1 -1
  137. package/dist/types/components/appender/Appender.d.ts +1 -0
  138. package/dist/types/components/appender/Appender.d.ts.map +1 -1
  139. package/dist/types/components/details/Details.d.ts +2 -0
  140. package/dist/types/components/details/Details.d.ts.map +1 -1
  141. package/dist/types/components/forOf/ForOf.d.ts +1 -1
  142. package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
  143. package/dist/types/components/if/If.d.ts.map +1 -1
  144. package/dist/types/components/index.d.ts +1 -0
  145. package/dist/types/components/index.d.ts.map +1 -1
  146. package/dist/types/components/router/RouterOutlet.d.ts +6 -3
  147. package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
  148. package/dist/types/components/select/Select.d.ts +5 -3
  149. package/dist/types/components/select/Select.d.ts.map +1 -1
  150. package/dist/types/components/this/This.d.ts +5 -1
  151. package/dist/types/components/this/This.d.ts.map +1 -1
  152. package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
  153. package/dist/types/events/EventManager.d.ts +1 -0
  154. package/dist/types/events/EventManager.d.ts.map +1 -1
  155. package/dist/types/lifecycle/OnChangeAttrRender.d.ts +1 -1
  156. package/dist/types/lifecycle/OnChangeAttrRender.d.ts.map +1 -1
  157. package/dist/types/lifecycle/OnChildRawSetRendered.d.ts +9 -0
  158. package/dist/types/lifecycle/OnChildRawSetRendered.d.ts.map +1 -0
  159. package/dist/types/lifecycle/OnRawSetRendered.d.ts +2 -0
  160. package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -1
  161. package/dist/types/operators/Appender.d.ts +1 -0
  162. package/dist/types/operators/Appender.d.ts.map +1 -1
  163. package/dist/types/operators/Dr.d.ts.map +1 -1
  164. package/dist/types/operators/DrAppender.d.ts.map +1 -1
  165. package/dist/types/operators/DrFor.d.ts.map +1 -1
  166. package/dist/types/operators/DrForOf.d.ts.map +1 -1
  167. package/dist/types/operators/DrForm.d.ts.map +1 -1
  168. package/dist/types/operators/DrInnerHTML.d.ts.map +1 -1
  169. package/dist/types/operators/DrRepeat.d.ts.map +1 -1
  170. package/dist/types/operators/DrStripElement.d.ts.map +1 -1
  171. package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
  172. package/dist/types/operators/DrThisProperty.d.ts.map +1 -1
  173. package/dist/types/rawsets/RawSet.d.ts +4 -1
  174. package/dist/types/rawsets/RawSet.d.ts.map +1 -1
  175. package/dist/types/routers/HashRouter.d.ts +1 -0
  176. package/dist/types/routers/HashRouter.d.ts.map +1 -1
  177. package/dist/types/routers/PathRouter.d.ts +1 -0
  178. package/dist/types/routers/PathRouter.d.ts.map +1 -1
  179. package/dist/types/routers/Router.d.ts +3 -0
  180. package/dist/types/routers/Router.d.ts.map +1 -1
  181. package/dist/umd-bundle/dooboostore-dom-render.umd.js +830 -1533
  182. package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
  183. package/package.json +4 -4
  184. package/src/DomRenderProxy.ts +169 -75
  185. package/src/DomRenderProxy.ts_cache_back +1031 -0
  186. package/src/components/ComponentBase.ts +61 -5
  187. package/src/components/a/A.ts +25 -0
  188. package/src/components/appender/Appender.ts +3 -3
  189. package/src/components/details/Details.ts +7 -0
  190. package/src/components/forOf/ForOf.ts +2 -2
  191. package/src/components/if/If.ts +3 -2
  192. package/src/components/index.ts +3 -0
  193. package/src/components/router/RouterOutlet.ts +60 -22
  194. package/src/components/select/Select.ts +69 -30
  195. package/src/components/this/This.ts +41 -6
  196. package/src/decorators/DomRenderNoProxy.ts +17 -14
  197. package/src/events/EventManager.ts +180 -77
  198. package/src/lifecycle/OnChangeAttrRender.ts +1 -1
  199. package/src/lifecycle/OnChildRawSetRendered.ts +13 -0
  200. package/src/lifecycle/OnRawSetRendered.ts +3 -1
  201. package/src/operators/Appender.ts +8 -1
  202. package/src/operators/Dr.ts +2 -1
  203. package/src/operators/DrAppender.ts +2 -1
  204. package/src/operators/DrFor.ts +2 -1
  205. package/src/operators/DrForOf.ts +36 -6
  206. package/src/operators/DrForm.ts +6 -5
  207. package/src/operators/DrInnerHTML.ts +2 -1
  208. package/src/operators/DrRepeat.ts +2 -1
  209. package/src/operators/DrStripElement.ts +2 -1
  210. package/src/operators/DrTargetElement.ts +17 -5
  211. package/src/operators/DrTargetElementIsElement.ts +2 -2
  212. package/src/operators/DrThis.ts +2 -2
  213. package/src/operators/DrThisProperty.ts +2 -1
  214. package/src/rawsets/RawSet.ts +161 -237
  215. package/src/routers/HashRouter.ts +4 -0
  216. package/src/routers/PathRouter.ts +5 -0
  217. package/src/routers/Router.ts +64 -47
  218. package/src/node_modules/.bin/acorn +0 -17
  219. package/src/node_modules/.bin/browserslist +0 -17
  220. package/src/node_modules/.bin/eslint +0 -17
  221. package/src/node_modules/.bin/sbf +0 -17
  222. package/src/node_modules/.bin/ts-node +0 -17
  223. package/src/node_modules/.bin/ts-node-cwd +0 -17
  224. package/src/node_modules/.bin/ts-node-dev +0 -17
  225. package/src/node_modules/.bin/ts-node-esm +0 -17
  226. package/src/node_modules/.bin/ts-node-script +0 -17
  227. package/src/node_modules/.bin/ts-node-transpile-only +0 -17
  228. package/src/node_modules/.bin/ts-script +0 -17
  229. package/src/node_modules/.bin/tsc +0 -17
  230. package/src/node_modules/.bin/tsnd +0 -17
  231. package/src/node_modules/.bin/tsserver +0 -17
  232. package/src/node_modules/.bin/webpack +0 -17
  233. package/src/node_modules/.bin/webpack-cli +0 -17
  234. package/src/node_modules/.bin/webpack-dev-server +0 -17
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events/EventManager.ts"],
4
- "sourcesContent": ["import { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';\nimport { ElementUtils } from '@dooboostore/core-web/element/ElementUtils';\nimport { Range } from '../iterators/Range';\nimport { DomRenderFinalProxy } from '../types/Types';\nimport { getDomRenderConfig } from '../DomRenderProxy';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\n\ntype HandlerInfo = {\n element: HTMLElement;\n attr: string;\n type: 'link' | 'event' | 'event-param';\n priority: number;\n property?: string; // for link type\n};\nexport type NormalAttrDataType = {\n originalAttrValue: string;\n variablePaths: {origin: string, inner: string}[];\n}\nexport class EventManager {\n public static readonly attrPrefix = 'dr-';\n public readonly eventNames = [\n 'click', 'mousedown', 'mouseup', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mouseenter', 'mouseleave', 'contextmenu',\n 'keyup', 'keydown', 'keypress', 'toggle',\n 'change', 'input', 'submit', 'resize', 'focus', 'blur',\n 'close', 'cancel'\n ];\n\n private readonly delegatableEventMap: { [key: string]: string } = {\n mouseleave: 'mouseout',\n mouseenter: 'mouseover',\n focus: 'focusin',\n blur: 'focusout',\n };\n private readonly directAttachEvents = new Set(['close']);\n\n public static ownerVariablePathAttrName = EventManager.attrPrefix + 'owner-variable-path';\n\n public static readonly eventParam = EventManager.attrPrefix + 'event';\n public static readonly onInitAttrName = EventManager.attrPrefix + 'on-init';\n public static readonly valueAttrName = EventManager.attrPrefix + 'value';\n public static readonly checkedAttrName = EventManager.attrPrefix + 'checked';\n public static readonly selectedAttrName = EventManager.attrPrefix + 'selected';\n public static readonly readonlyAttrName = EventManager.attrPrefix + 'readonly';\n public static readonly disabledAttrName = EventManager.attrPrefix + 'disabled';\n public static readonly hiddenAttrName = EventManager.attrPrefix + 'hidden';\n public static readonly requiredAttrName = EventManager.attrPrefix + 'required';\n public static readonly openAttrName = EventManager.attrPrefix + 'open';\n\n // link\uB294 \uC4F0\uC9C0 \uC54A\uB294\uAC78 \uCD94\uCC9C\uD55C\uB2E4 \uB77C\uC774\uD504 \uC0AC\uC774\uD074 \uAF2C\uC778\uB2E4 \uB2E4\uB978 \uD504\uB808\uC784\uC6CC\uD06C\uC5D0\uC11C\uB3C4 \uC591\uBC29\uD5A5\uC740 \uC9C0\uC591 \uD55C\uB2E4\n public static linkAttrs = [\n {name: EventManager.attrPrefix + 'value-link', property: 'value', event: 'input'},\n {name: EventManager.attrPrefix + 'hidden-link', property: 'value', event: 'input'},\n {name: EventManager.attrPrefix + 'required-link', property: 'value', event: 'input'},\n {name: EventManager.attrPrefix + 'checked-link', property: 'checked', event: 'change'},\n {name: EventManager.attrPrefix + 'open-link', property: 'open', event: 'toggle'},\n ]\n // @ts-ignore \uD569\uC131\uC774\uBCA4\uD2B8(Synthetic) \uCC98\uB9AC\uD558\uBA74\uC11C \uC758\uBBF8\uAC00 \uC5C6\uC5B4\uC84C\uB2E4\n public static readonly linkTargetMapAttrName = EventManager.attrPrefix + 'link-variables';\n\n public static readonly onRenderedInitAttrName = EventManager.attrPrefix + 'on-rendered-init';\n\n public static readonly attrAttrName = EventManager.attrPrefix + 'attr';\n public static readonly normalAttrMapAttrName = EventManager.attrPrefix + 'normal-attr-map';\n public static readonly styleAttrName = EventManager.attrPrefix + 'style';\n public static readonly classAttrName = EventManager.attrPrefix + 'class';\n\n public static readonly VALUE_VARNAME = '$value';\n public static readonly SCRIPTS_VARNAME = '$scripts';\n public static readonly FAG_VARNAME = '$fag';\n public static readonly RAWSET_VARNAME = '$rawSet';\n public static readonly RENDER_VARNAME = '$render';\n public static readonly NEAR_THIS_VARNAME = '$nearThis';\n public static readonly PARENT_THIS_VARNAME = '$parentThis';\n public static readonly ROOT_OBJECT_VARNAME = '$rootObject';\n public static readonly SCRIPT_UTILS_VARNAME = '$scriptUtils';\n public static readonly RANGE_VARNAME = '$range';\n public static readonly ROUTER_VARNAME = '$router';\n public static readonly INNER_HTML_VARNAME = '$innerHTML';\n public static readonly ELEMENT_VARNAME = '$element';\n public static readonly TARGET_VARNAME = '$target';\n public static readonly EVENT_VARNAME = '$event';\n public static readonly COMPONENT_VARNAME = '$component';\n public static readonly INNERHTML_VARNAME = '$innerHTML';\n public static readonly ATTRIBUTE_VARNAME = '$attribute';\n public static readonly CREATOR_META_DATA_VARNAME = '$creatorMetaData';\n public static readonly PARENT_THIS_PATH_VARNAME = '$parentPath';\n public static readonly CURRENT_THIS_VARNAME = '$currentThis';\n public static readonly CURRENT_THIS_PATH_VARNAME = '$currentThisPath';\n public static readonly NEAR_THIS_PATH_VARNAME = '$nearThisPath';\n public static readonly VARNAMES = [EventManager.SCRIPTS_VARNAME, EventManager.FAG_VARNAME, EventManager.RAWSET_VARNAME, EventManager.RANGE_VARNAME, EventManager.ROUTER_VARNAME, EventManager.ELEMENT_VARNAME, EventManager.TARGET_VARNAME, EventManager.EVENT_VARNAME, EventManager.COMPONENT_VARNAME, EventManager.INNERHTML_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.CREATOR_META_DATA_VARNAME, EventManager.PARENT_THIS_PATH_VARNAME, EventManager.PARENT_THIS_VARNAME];\n\n public static readonly WINDOW_EVENT_POPSTATE = 'popstate';\n public static readonly WINDOW_EVENT_RESIZE = 'resize';\n public static readonly WINDOW_EVENTS = [EventManager.WINDOW_EVENT_POPSTATE, EventManager.WINDOW_EVENT_RESIZE];\n public static readonly noDetectAttr = [EventManager.normalAttrMapAttrName]\n public static readonly attrNames = [\n EventManager.valueAttrName,\n EventManager.checkedAttrName,\n EventManager.selectedAttrName,\n EventManager.readonlyAttrName,\n EventManager.disabledAttrName,\n EventManager.hiddenAttrName,\n EventManager.requiredAttrName,\n EventManager.openAttrName,\n EventManager.attrAttrName,\n EventManager.normalAttrMapAttrName,\n EventManager.styleAttrName,\n EventManager.classAttrName,\n EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_POPSTATE,\n EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_RESIZE,\n EventManager.onInitAttrName,\n ...EventManager.linkAttrs.map(it => it.name),\n this.eventParam\n ];\n readonly bindScript = `\n const ${EventManager.VALUE_VARNAME} = this.__render.value;\n const ${EventManager.SCRIPTS_VARNAME} = this.__render.scripts;\n const ${EventManager.RANGE_VARNAME} = this.__render.range;\n const ${EventManager.ROUTER_VARNAME} = this.__render.router;\n const ${EventManager.ATTRIBUTE_VARNAME} = this.__render.attribute;\n const ${EventManager.ELEMENT_VARNAME} = this.__render.element;\n const ${EventManager.COMPONENT_VARNAME} = this.__render.element.component;\n const ${EventManager.TARGET_VARNAME} = this.__render.target;\n const ${EventManager.EVENT_VARNAME} = this.__render.event;\n `;\n\n constructor(private window: Window) {\n this.eventNames.forEach(it => {\n EventManager.attrNames.push(EventManager.attrPrefix + 'event-' + it);\n });\n EventManager.attrNames.push(EventManager.onRenderedInitAttrName);\n\n if (typeof window !== 'undefined') {\n EventManager.WINDOW_EVENTS.forEach(eventName => {\n window?.addEventListener(eventName, (event) => {\n const targetAttr = `dr-window-event-${eventName}`;\n document.querySelectorAll(`[${targetAttr}]`).forEach(it => {\n const script = it.getAttribute(targetAttr);\n if (script) {\n const obj = this.findComponentInstance(it as HTMLElement);\n const config = getDomRenderConfig(obj);\n ScriptUtils.evaluate(`${this.bindScript} ${script} `, this.createExecutionContext(event, it as HTMLElement, obj, config));\n }\n });\n });\n });\n\n const rootElement = this.window.document;\n const listeningEvents = new Set<string>();\n this.eventNames.forEach(eventName => {\n if (this.directAttachEvents.has(eventName)) {\n return;\n }\n const delegatedEventName = this.delegatableEventMap[eventName] || eventName;\n\n if (listeningEvents.has(delegatedEventName)) {\n return;\n }\n listeningEvents.add(delegatedEventName);\n rootElement.addEventListener(delegatedEventName, this.handleEvent.bind(this), true);\n });\n }\n }\n\n private handleEvent(event: Event) {\n const handlers = this.collectHandlers(event);\n // console.log('handlers', handlers, event);\n for (const handler of handlers) {\n if (event.cancelBubble) {\n break;\n }\n\n const componentInstance = this.findComponentInstance(handler.element);\n if (!componentInstance) {\n continue;\n }\n // console.log('executeHandler', event,handler,componentInstance)\n this.executeHandler(event, handler, componentInstance);\n }\n }\n\n private collectHandlers(event: Event): HandlerInfo[] {\n const handlers: HandlerInfo[] = [];\n const root = this.window.document;\n if (!root) return handlers;\n\n const initialTarget = event.target as Node;\n let currentTarget: HTMLElement | null = (initialTarget.nodeType === 1)\n ? (initialTarget as HTMLElement)\n : initialTarget.parentElement;\n const collectedElements = new Set<HTMLElement>();\n\n const eventMap: { [key: string]: string } = {\n mouseout: 'mouseleave',\n mouseover: 'mouseenter',\n focusout: 'blur',\n focusin: 'focus'\n };\n const mappedEventName = eventMap[event.type] || event.type;\n\n while (currentTarget) {\n if (collectedElements.has(currentTarget)) {\n break;\n }\n\n // Priority 1: Link attributes\n const matchingLinkAttr = EventManager.linkAttrs.find(la => la.event === mappedEventName && currentTarget?.hasAttribute(la.name));\n if (matchingLinkAttr) {\n handlers.push({\n element: currentTarget,\n attr: matchingLinkAttr.name,\n type: 'link',\n priority: 1,\n property: matchingLinkAttr.property\n });\n }\n\n // Priority 2: dr-event-* attributes\n const eventAttr = `${EventManager.attrPrefix}event-${mappedEventName}`;\n if (currentTarget.hasAttribute(eventAttr)) {\n handlers.push({\n element: currentTarget,\n attr: eventAttr,\n type: 'event',\n priority: 2\n });\n }\n\n // Priority 3: dr-event with params\n const eventParamAttr = EventManager.eventParam;\n if (currentTarget.hasAttribute(eventParamAttr)) {\n const bindEvents = currentTarget.getAttribute(`${eventParamAttr}:bind`);\n if (bindEvents && bindEvents.split(',').map(s => s.trim()).includes(mappedEventName)) {\n handlers.push({\n element: currentTarget,\n attr: eventParamAttr,\n type: 'event-param',\n priority: 3\n });\n }\n }\n\n collectedElements.add(currentTarget);\n\n if (currentTarget === root.documentElement) {\n break;\n }\n\n currentTarget = currentTarget.parentElement;\n }\n\n return handlers.sort((a, b) => a.priority - b.priority);\n }\n\n private findComponentInstance(element: HTMLElement | null): any {\n let current = element;\n const root = this.window.document;\n while (current) {\n if ((current as any).obj) {\n return (current as any).obj;\n }\n if (current === root.documentElement) {\n break;\n }\n current = current.parentElement;\n }\n return this.window;\n }\n\n private createExecutionContext(event: Event, element: HTMLElement, componentInstance: any, config: DomRenderConfig | undefined, extraVars = {}) {\n // console.log('---------->', config?.eventVariables)\n return Object.assign(componentInstance, {\n __render: Object.freeze({\n event,\n element,\n target: event.target,\n attribute: ElementUtils.getAttributeToObject(element),\n router: config?.router,\n range: Range.range,\n scripts: EventManager.setBindProperty(config?.scripts, componentInstance),\n ...config?.eventVariables,\n ...extraVars\n })\n });\n }\n\n private executeHandler(event: Event, handler: HandlerInfo, componentInstance: any) {\n const {element, type, attr} = handler;\n const config = getDomRenderConfig(componentInstance);\n\n switch (type) {\n case 'link':\n const varName = element.getAttribute(attr);\n if (!varName || !handler.property) return;\n\n if (attr.includes('leave') || attr.includes('enter') || attr.includes('focus') || attr.includes('blur')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const ownerVariablePath = element.getAttribute(EventManager.ownerVariablePathAttrName);\n let bindObj = componentInstance;\n if (ownerVariablePath) {\n bindObj = ScriptUtils.evaluateReturn(ownerVariablePath, componentInstance);\n }\n\n const mapScript = element.getAttribute(`${attr}:map`);\n let value = (element as any)[handler.property];\n\n if (mapScript) {\n const context = this.createExecutionContext(event, element, bindObj, config, {value});\n value = ScriptUtils.evaluate(`return ${mapScript}`, context);\n }\n\n if (typeof this.getValue(componentInstance, varName, bindObj) === 'function') {\n this.getValue(componentInstance, varName, bindObj)(value, event);\n } else {\n this.setValue(componentInstance, varName, value);\n }\n break;\n\n case 'event':\n const script = element.getAttribute(attr);\n if (!script) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // if (filterScript) {\n // filter = ScriptUtils.eval<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n // }\n\n if (filter) {\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // const hasDispatch = element.hasAttribute(`${attr}:dispatch`);\n // if (hasDispatch) {\n // element.dispatchEvent(new Event(event.type));\n // }\n break;\n\n case 'event-param':\n const paramScript = element.getAttribute(attr);\n if (!paramScript) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const attributes = ElementUtils.getAttributeToObject(element);\n const params = {} as any;\n const prefix = attr + ':';\n Object.entries(attributes).filter(([k, v]) => k.startsWith(prefix)).forEach(([k, v]) => {\n params[k.slice(prefix.length)] = v;\n });\n\n const paramContext = this.createExecutionContext(event, element, componentInstance, config, {params});\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${paramScript}`, paramContext);\n break;\n }\n }\n\n public findAttrElements(fragment: DocumentFragment | Element, config?: DomRenderConfig): Set<Element> {\n const elements = new Set<Element>();\n const addAttributes = config?.applyEvents?.map(it => it.attrName) ?? [];\n addAttributes.concat([...EventManager.attrNames]).forEach(attrName => {\n fragment?.querySelectorAll(`[${attrName}]`).forEach(it => {\n elements.add(it);\n });\n });\n return elements;\n }\n\n public applyEvent(obj: any, childNodes: Set<ChildNode> | Set<Element>, config?: DomRenderConfig) {\n childNodes.forEach(node => {\n if (node.nodeType === 1) {\n (node as any).obj = obj;\n }\n });\n\n this.procAttr<HTMLInputElement>(childNodes, EventManager.valueAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.value !== data) {\n it.value = data;\n }\n }\n });\n this.procAttr<HTMLInputElement>(childNodes, EventManager.checkedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.checked!== data) {\n it.checked = data;\n }\n }\n });\n this.procAttr<HTMLOptionElement>(childNodes, EventManager.selectedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.selected!== data) {\n it.selected = data;\n }\n }\n });\n this.procAttr<HTMLInputElement>(childNodes, EventManager.readonlyAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.readOnly!== data) {\n it.readOnly = data;\n }\n }\n });\n this.procAttr<HTMLInputElement>(childNodes, EventManager.disabledAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.disabled!== data) {\n it.disabled = data;\n }\n }\n });\n this.procAttr<HTMLElement>(childNodes, EventManager.hiddenAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.hidden!== data) {\n it.hidden = data;\n }\n }\n });\n this.procAttr<HTMLInputElement>(childNodes, EventManager.requiredAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.required!== data) {\n it.required = data;\n }\n }\n });\n this.procAttr<HTMLDialogElement>(childNodes, EventManager.openAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ScriptUtils.evaluateReturn(script, obj);\n if (it.open!== data) {\n it.open = data;\n }\n }\n });\n\n this.procAttr(childNodes, EventManager.normalAttrMapAttrName, (it, attribute) => {\n const map = new Map<string, NormalAttrDataType>(JSON.parse(attribute));\n map.forEach((v, k) => {\n\n const variablePaths = v.variablePaths;\n let targetScript = v.originalAttrValue;//typeof v.originalAttrValue === 'string' ? JSON.parse(v.originalAttrValue) : v.originalAttrValue;\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin,`\\${${r}}`);\n })\n const data = ObjectUtils.Script.evaluate(`const $element = this.element; return ${'`'+targetScript+'`'} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n if (data === null) {\n it.removeAttribute(k);\n } else {\n it.setAttribute(k, data);\n }\n });\n });\n\n EventManager.WINDOW_EVENTS.forEach(it => {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.attrPrefix + 'window-event-' + it, (it, attribute) => {\n (it as any).obj = obj;\n });\n });\n\n EventManager.linkAttrs.forEach(linkInfo => {\n this.procAttr<HTMLElement>(childNodes, linkInfo.name, (it, varName) => {\n\n // console.log('ink??????????')\n if (varName) {\n const ownerVariablePathName = it.getAttribute(EventManager.ownerVariablePathAttrName);\n const mapScript = it.getAttribute(`${linkInfo.name}:map`);\n let bindObj = obj;\n if (ownerVariablePathName) {\n bindObj = ScriptUtils.evaluateReturn(ownerVariablePathName, obj);\n }\n const getValue = this.getValue(obj, varName, bindObj);\n if (typeof getValue === 'function' && getValue) {\n let setValue = (it as any)[linkInfo.property];\n if (mapScript) {\n setValue = ScriptUtils.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, {__render: Object.freeze({element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables})}));\n }\n getValue(setValue);\n } else if (getValue) {\n let setValue = getValue;\n if (mapScript) {\n setValue = ScriptUtils.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, {__render: Object.freeze({element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables})}));\n }\n if (setValue === null) {\n it.removeAttribute(linkInfo.property);\n } else {\n (it as any)[linkInfo.property] = setValue;\n }\n } else if (getValue === undefined) {\n this.setValue(obj, varName, (it as any)[linkInfo.property]);\n }\n }\n });\n });\n\n this.directAttachEvents.forEach(eventName => {\n const attr = `${EventManager.attrPrefix}event-${eventName}`;\n this.procAttr<HTMLElement>(childNodes, attr, (element, script) => {\n const handler = (event: Event) => {\n const componentInstance = this.findComponentInstance(element);\n if (!componentInstance) return;\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n if (filterScript) {\n filter = ScriptUtils.evaluate<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n }\n if (filter) {\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n };\n element.addEventListener(eventName, handler);\n // TODO: Add logic to remove this listener when the element is destroyed.\n });\n });\n\n this.procAttr<HTMLElement>(childNodes, EventManager.onInitAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ScriptUtils.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n }));\n }\n });\n\n this.onRenderedEvent(obj, childNodes, config);\n this.changeVar(obj, childNodes, undefined, config);\n const elements = Array.from(childNodes).filter(it => it.nodeType === 1).map(it => it as Element);\n elements.forEach(it => {\n config?.applyEvents?.filter(ta => it.getAttribute(ta.attrName) !== null).forEach(ta => ta.callBack(it, it.getAttribute(ta.attrName)!, obj));\n });\n }\n\n public onRenderedEvent(obj: any, childNodes: Set<ChildNode> | Set<Element> | Node[], config?: DomRenderConfig) {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.onRenderedInitAttrName, (it, attribute) => {\n if (!it.isConnected) {\n return;\n }\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ScriptUtils.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n }));\n }\n });\n }\n\n public changeVar(obj: any, elements: Set<Element> | Set<ChildNode>, varName?: string, config?: DomRenderConfig) {\n // console.log('changeVar', obj, elements, varName)\n this.procAttr(elements, EventManager.styleAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ScriptUtils.evaluate(`const $element = this.__render.element; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n if (typeof data === 'string') {\n it.setAttribute('style', data);\n } else if (Array.isArray(data)) {\n it.setAttribute('style', data.join(';'));\n } else {\n for (const [key, value] of Object.entries(data)) {\n if (it instanceof HTMLElement) {\n (it.style as any)[key] = String(value);\n }\n }\n }\n }\n });\n\n this.procAttr(elements, EventManager.classAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ScriptUtils.evaluate(`const $element = this.element; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n\n if (typeof data === 'string') {\n it.setAttribute('class', data);\n } else if (Array.isArray(data)) {\n it.setAttribute('class', data.join(' '));\n } else {\n for (const [key, value] of Object.entries(data)) {\n if (it instanceof HTMLElement) {\n if (value) {\n it.classList.add(key);\n } else {\n it.classList.remove(key);\n }\n }\n }\n }\n }\n });\n }\n\n public procAttr<T extends Element = Element>(elements: Set<Element> | Set<ChildNode> | Node[] = new Set(), attrName: string, callBack: (h: T, value: string, attributes: any) => void) {\n const sets = new Set<Element>();\n elements.forEach(it => {\n if (!it) {\n return;\n }\n if (it.nodeType === 1) {\n const e = it as Element;\n sets.add(e);\n e.querySelectorAll<T>(`[${attrName}]`).forEach(it => {\n sets.add(it);\n });\n }\n });\n sets.forEach(it => {\n const attr = it.getAttribute(attrName);\n const attrs = ElementUtils.getAttributeToObject(it);\n if (attr) {\n callBack(it as T, attr, attrs);\n }\n });\n }\n\n public getValue<T = any>(obj: any, name: string, bindObj?: any): T {\n let r = ObjectUtils.Script.evaluateReturn(name, obj);\n if (typeof r === 'function') {\n r = r.bind(bindObj ?? obj);\n }\n return r;\n }\n\n public setValue(obj: any, name: string, value?: any) {\n name = name.replaceAll('this.', 'this.this.');\n ScriptUtils.evaluate(`${name} = this.value;`, {\n this: obj,\n value: value\n });\n }\n\n public static isUsingThisVar(raws: string | null | undefined, varName: string | null | undefined): boolean {\n if (varName && raws) {\n if (varName.startsWith('this.')) {\n varName = varName.replace(/this\\./, '');\n }\n // TODO: \uD6D4.. \uAF2D\uD544\uC694\uD55C\uAC00..? \uD2B8\uB9AC\uAC70\uB420\uB54C \uC2A4\uD06C\uB9BD\uD2B8\uBCC0\uC218 \uAE4C\uC9C0 \uAC10\uC9C0\uD574\uC57C\uB420\uAE4C?\n EventManager.VARNAMES.forEach(it => {\n // raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this?.___${it}`);\n raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this.___${it}`);\n });\n const variablePaths = ObjectUtils.Path.detectPathFromScript(raws ?? '', {excludeThis: true});\n return variablePaths.has(varName);\n }\n return false;\n }\n\n public static setBindProperty(scripts: { [p: string]: any } | undefined, obj: any): { [p: string]: any } | undefined {\n if (scripts) {\n const newScripts = Object.assign({}, scripts);\n for (const [key, value] of Object.entries(newScripts)) {\n if (typeof value === 'function') {\n newScripts[key] = value.bind(obj);\n }\n }\n return newScripts;\n }\n }\n\n getBindScript(config?: DomRenderConfig) {\n if (config?.eventVariables) {\n const bindScript = Object.entries(config.eventVariables).filter(([key, value]) => !this.bindScript.includes(`const ${key}`)).map(([key, value]) => {\n return `const ${key} = this.__render.${key};`;\n }).join(';');\n return this.bindScript + '' + bindScript;\n } else {\n return this.bindScript;\n }\n }\n}\n\n"],
5
- "mappings": "AACA,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AAEtB,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAarB,MAAM,gBAAN,MAAM,cAAa;AAAA,EA4GxB,YAAoB,QAAgB;AAAhB;AA1GpB,SAAgB,aAAa;AAAA,MAC3B;AAAA,MAAS;AAAA,MAAa;AAAA,MAAW;AAAA,MAAY;AAAA,MAAa;AAAA,MAAY;AAAA,MAAa;AAAA,MAAc;AAAA,MAAc;AAAA,MAC/G;AAAA,MAAS;AAAA,MAAW;AAAA,MAAY;AAAA,MAChC;AAAA,MAAU;AAAA,MAAS;AAAA,MAAU;AAAA,MAAU;AAAA,MAAS;AAAA,MAChD;AAAA,MAAS;AAAA,IACX;AAEA,SAAiB,sBAAiD;AAAA,MAChE,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AACA,SAAiB,qBAAqB,oBAAI,IAAI,CAAC,OAAO,CAAC;AAiFvD,SAAS,aAAa;AAAA,gBACR,cAAa,aAAa;AAAA,gBAC1B,cAAa,eAAe;AAAA,gBAC5B,cAAa,aAAa;AAAA,gBAC1B,cAAa,cAAc;AAAA,gBAC3B,cAAa,iBAAiB;AAAA,gBAC9B,cAAa,eAAe;AAAA,gBAC5B,cAAa,iBAAiB;AAAA,gBAC9B,cAAa,cAAc;AAAA,gBAC3B,cAAa,aAAa;AAAA;AAItC,SAAK,WAAW,QAAQ,QAAM;AAC5B,oBAAa,UAAU,KAAK,cAAa,aAAa,WAAW,EAAE;AAAA,IACrE,CAAC;AACD,kBAAa,UAAU,KAAK,cAAa,sBAAsB;AAE/D,QAAI,OAAO,WAAW,aAAa;AACjC,oBAAa,cAAc,QAAQ,eAAa;AAC9C,gBAAQ,iBAAiB,WAAW,CAAC,UAAU;AAC7C,gBAAM,aAAa,mBAAmB,SAAS;AAC/C,mBAAS,iBAAiB,IAAI,UAAU,GAAG,EAAE,QAAQ,QAAM;AACzD,kBAAM,SAAS,GAAG,aAAa,UAAU;AACzC,gBAAI,QAAQ;AACV,oBAAM,MAAM,KAAK,sBAAsB,EAAiB;AACxD,oBAAM,SAAS,mBAAmB,GAAG;AACrC,0BAAY,SAAS,GAAG,KAAK,UAAU,IAAI,MAAM,KAAK,KAAK,uBAAuB,OAAO,IAAmB,KAAK,MAAM,CAAC;AAAA,YAC1H;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAED,YAAM,cAAc,KAAK,OAAO;AAC9B,YAAM,kBAAkB,oBAAI,IAAY;AACxC,WAAK,WAAW,QAAQ,eAAa;AACnC,YAAI,KAAK,mBAAmB,IAAI,SAAS,GAAG;AAC1C;AAAA,QACF;AACA,cAAM,qBAAqB,KAAK,oBAAoB,SAAS,KAAK;AAElE,YAAI,gBAAgB,IAAI,kBAAkB,GAAG;AAC3C;AAAA,QACF;AACA,wBAAgB,IAAI,kBAAkB;AACtC,oBAAY,iBAAiB,oBAAoB,KAAK,YAAY,KAAK,IAAI,GAAG,IAAI;AAAA,MACpF,CAAC;AAAA,IACL;AAAA,EACF;AAAA,EAEQ,YAAY,OAAc;AAChC,UAAM,WAAW,KAAK,gBAAgB,KAAK;AAE3C,eAAW,WAAW,UAAU;AAC9B,UAAI,MAAM,cAAc;AACtB;AAAA,MACF;AAEA,YAAM,oBAAoB,KAAK,sBAAsB,QAAQ,OAAO;AACpE,UAAI,CAAC,mBAAmB;AACtB;AAAA,MACF;AAEA,WAAK,eAAe,OAAO,SAAS,iBAAiB;AAAA,IACvD;AAAA,EACF;AAAA,EAEQ,gBAAgB,OAA6B;AACnD,UAAM,WAA0B,CAAC;AACjC,UAAM,OAAQ,KAAK,OAAO;AAC1B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,gBAAgB,MAAM;AAC5B,QAAI,gBAAqC,cAAc,aAAa,IAC/D,gBACD,cAAc;AAClB,UAAM,oBAAoB,oBAAI,IAAiB;AAE/C,UAAM,WAAsC;AAAA,MAC1C,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AACA,UAAM,kBAAkB,SAAS,MAAM,IAAI,KAAK,MAAM;AAEtD,WAAO,eAAe;AACpB,UAAI,kBAAkB,IAAI,aAAa,GAAG;AACxC;AAAA,MACF;AAGA,YAAM,mBAAmB,cAAa,UAAU,KAAK,QAAM,GAAG,UAAU,mBAAmB,eAAe,aAAa,GAAG,IAAI,CAAC;AAC/H,UAAI,kBAAkB;AACpB,iBAAS,KAAK;AAAA,UACZ,SAAS;AAAA,UACT,MAAM,iBAAiB;AAAA,UACvB,MAAM;AAAA,UACN,UAAU;AAAA,UACV,UAAU,iBAAiB;AAAA,QAC7B,CAAC;AAAA,MACH;AAGA,YAAM,YAAY,GAAG,cAAa,UAAU,SAAS,eAAe;AACpE,UAAI,cAAc,aAAa,SAAS,GAAG;AACzC,iBAAS,KAAK;AAAA,UACZ,SAAS;AAAA,UACT,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAGA,YAAM,iBAAiB,cAAa;AACpC,UAAI,cAAc,aAAa,cAAc,GAAG;AAC9C,cAAM,aAAa,cAAc,aAAa,GAAG,cAAc,OAAO;AACtE,YAAI,cAAc,WAAW,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC,EAAE,SAAS,eAAe,GAAG;AACpF,mBAAS,KAAK;AAAA,YACZ,SAAS;AAAA,YACT,MAAM;AAAA,YACN,MAAM;AAAA,YACN,UAAU;AAAA,UACZ,CAAC;AAAA,QACH;AAAA,MACF;AAEA,wBAAkB,IAAI,aAAa;AAEnC,UAAI,kBAAkB,KAAK,iBAAiB;AAC1C;AAAA,MACF;AAEA,sBAAgB,cAAc;AAAA,IAChC;AAEA,WAAO,SAAS,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;AAAA,EACxD;AAAA,EAEQ,sBAAsB,SAAkC;AAC9D,QAAI,UAAU;AACd,UAAM,OAAQ,KAAK,OAAO;AAC1B,WAAO,SAAS;AACd,UAAK,QAAgB,KAAK;AACxB,eAAQ,QAAgB;AAAA,MAC1B;AACA,UAAI,YAAY,KAAK,iBAAiB;AACpC;AAAA,MACF;AACA,gBAAU,QAAQ;AAAA,IACpB;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ,uBAAuB,OAAc,SAAsB,mBAAwB,QAAqC,YAAY,CAAC,GAAG;AAE9I,WAAO,OAAO,OAAO,mBAAmB;AAAA,MACtC,UAAU,OAAO,OAAO;AAAA,QACtB;AAAA,QACA;AAAA,QACA,QAAQ,MAAM;AAAA,QACd,WAAW,aAAa,qBAAqB,OAAO;AAAA,QACpD,QAAQ,QAAQ;AAAA,QAChB,OAAO,MAAM;AAAA,QACb,SAAS,cAAa,gBAAgB,QAAQ,SAAS,iBAAiB;AAAA,QACxE,GAAG,QAAQ;AAAA,QACX,GAAG;AAAA,MACL,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEQ,eAAe,OAAc,SAAsB,mBAAwB;AACjF,UAAM,EAAC,SAAS,MAAM,KAAI,IAAI;AAC9B,UAAM,SAAS,mBAAmB,iBAAiB;AAEnD,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,cAAM,UAAU,QAAQ,aAAa,IAAI;AACzC,YAAI,CAAC,WAAW,CAAC,QAAQ,SAAU;AAEnC,YAAI,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,MAAM,GAAG;AACvG,gBAAM,gBAAiB,MAAqB;AAC5C,cAAI,iBAAiB,QAAQ,SAAS,aAAa,GAAG;AACpD;AAAA,UACF;AAAA,QACF;AAEA,cAAM,oBAAoB,QAAQ,aAAa,cAAa,yBAAyB;AACrF,YAAI,UAAU;AACd,YAAI,mBAAmB;AACrB,oBAAU,YAAY,eAAe,mBAAmB,iBAAiB;AAAA,QAC3E;AAEA,cAAM,YAAY,QAAQ,aAAa,GAAG,IAAI,MAAM;AACpD,YAAI,QAAS,QAAgB,QAAQ,QAAQ;AAE7C,YAAI,WAAW;AACb,gBAAMA,WAAU,KAAK,uBAAuB,OAAO,SAAS,SAAS,QAAQ,EAAC,MAAK,CAAC;AACpF,kBAAQ,YAAY,SAAS,UAAU,SAAS,IAAIA,QAAO;AAAA,QAC7D;AAEA,YAAI,OAAO,KAAK,SAAS,mBAAmB,SAAS,OAAO,MAAM,YAAY;AAC5E,eAAK,SAAS,mBAAmB,SAAS,OAAO,EAAE,OAAO,KAAK;AAAA,QACjE,OAAO;AACL,eAAK,SAAS,mBAAmB,SAAS,KAAK;AAAA,QACjD;AACA;AAAA,MAEF,KAAK;AACH,cAAM,SAAS,QAAQ,aAAa,IAAI;AACxC,YAAI,CAAC,OAAQ;AAEb,YAAI,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,OAAO,GAAG;AACjH,gBAAM,gBAAiB,MAAqB;AAC5C,cAAI,iBAAiB,QAAQ,SAAS,aAAa,GAAG;AACpD;AAAA,UACF;AAAA,QACF;AAEA,cAAM,UAAU,KAAK,uBAAuB,OAAO,SAAS,mBAAmB,MAAM;AACrF,cAAM,eAAe,QAAQ,aAAa,GAAG,IAAI,SAAS;AAC1D,YAAI,SAAS;AAMb,YAAI,QAAQ;AACV,sBAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,IAAI,MAAM,IAAI,OAAO;AAAA,QACzE;AAOA;AAAA,MAEF,KAAK;AACH,cAAM,cAAc,QAAQ,aAAa,IAAI;AAC7C,YAAI,CAAC,YAAa;AAElB,YAAI,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,OAAO,GAAG;AACjH,gBAAM,gBAAiB,MAAqB;AAC5C,cAAI,iBAAiB,QAAQ,SAAS,aAAa,GAAG;AACpD;AAAA,UACF;AAAA,QACF;AAEA,cAAM,aAAa,aAAa,qBAAqB,OAAO;AAC5D,cAAM,SAAS,CAAC;AAChB,cAAM,SAAS,OAAO;AACtB,eAAO,QAAQ,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM;AACtF,iBAAO,EAAE,MAAM,OAAO,MAAM,CAAC,IAAI;AAAA,QACnC,CAAC;AAED,cAAM,eAAe,KAAK,uBAAuB,OAAO,SAAS,mBAAmB,QAAQ,EAAC,OAAM,CAAC;AACpG,oBAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,IAAI,WAAW,IAAI,YAAY;AACjF;AAAA,IACJ;AAAA,EACF;AAAA,EAEO,iBAAiB,UAAsC,QAAwC;AACpG,UAAM,WAAW,oBAAI,IAAa;AAClC,UAAM,gBAAgB,QAAQ,aAAa,IAAI,QAAM,GAAG,QAAQ,KAAK,CAAC;AACtE,kBAAc,OAAO,CAAC,GAAG,cAAa,SAAS,CAAC,EAAE,QAAQ,cAAY;AACpE,gBAAU,iBAAiB,IAAI,QAAQ,GAAG,EAAE,QAAQ,QAAM;AACxD,iBAAS,IAAI,EAAE;AAAA,MACjB,CAAC;AAAA,IACH,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEO,WAAW,KAAU,YAA2C,QAA0B;AAC/F,eAAW,QAAQ,UAAQ;AACzB,UAAI,KAAK,aAAa,GAAG;AACvB,QAAC,KAAa,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAED,SAAK,SAA2B,YAAY,cAAa,eAAe,CAAC,IAAI,cAAc;AACzF,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,UAAU,MAAM;AACrB,aAAG,QAAQ;AAAA,QACb;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,SAA2B,YAAY,cAAa,iBAAiB,CAAC,IAAI,cAAc;AAC3F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,YAAW,MAAM;AACtB,aAAG,UAAU;AAAA,QACf;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,SAA4B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC7F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,aAAY,MAAM;AACvB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,SAA2B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC5F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,aAAY,MAAM;AACvB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,SAA2B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC5F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,aAAY,MAAM;AACvB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,SAAsB,YAAY,cAAa,gBAAgB,CAAC,IAAI,cAAc;AACrF,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,WAAU,MAAM;AACrB,aAAG,SAAS;AAAA,QACd;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,SAA2B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC5F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,aAAY,MAAM;AACvB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,SAA4B,YAAY,cAAa,cAAc,CAAC,IAAI,cAAc;AACzF,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,eAAe,QAAQ,GAAG;AACnD,YAAI,GAAG,SAAQ,MAAM;AACnB,aAAG,OAAO;AAAA,QACZ;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,SAAS,YAAY,cAAa,uBAAuB,CAAC,IAAI,cAAc;AAC/E,YAAM,MAAM,IAAI,IAAgC,KAAK,MAAM,SAAS,CAAC;AACrE,UAAI,QAAQ,CAAC,GAAG,MAAM;AAEpB,cAAM,gBAAgB,EAAE;AACxB,YAAI,eAAe,EAAE;AACrB,sBAAc,QAAQ,CAAAC,QAAM;AAC1B,cAAI,IAAI,YAAY,KAAK,oBAAoBA,IAAG,KAAK;AACrD,yBAAe,aAAa,WAAWA,IAAG,QAAO,MAAM,CAAC,GAAG;AAAA,QAC7D,CAAC;AACD,cAAM,OAAO,YAAY,OAAO,SAAS,0CAA0C,MAAI,eAAa,GAAG,KAAK,OAAO,OAAO,KAAK;AAAA,UAC7H,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,UACjD,CAAC;AAAA,QACH,CAAC,CAAC;AACF,YAAI,SAAS,MAAM;AACjB,aAAG,gBAAgB,CAAC;AAAA,QACtB,OAAO;AACL,aAAG,aAAa,GAAG,IAAI;AAAA,QACzB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,kBAAa,cAAc,QAAQ,QAAM;AACvC,WAAK,SAA2B,YAAY,cAAa,aAAa,kBAAkB,IAAI,CAACA,KAAI,cAAc;AAC7G,QAACA,IAAW,MAAM;AAAA,MACpB,CAAC;AAAA,IACH,CAAC;AAED,kBAAa,UAAU,QAAQ,cAAY;AACzC,WAAK,SAAsB,YAAY,SAAS,MAAM,CAAC,IAAI,YAAY;AAGrE,YAAI,SAAS;AACX,gBAAM,wBAAwB,GAAG,aAAa,cAAa,yBAAyB;AACpF,gBAAM,YAAY,GAAG,aAAa,GAAG,SAAS,IAAI,MAAM;AACxD,cAAI,UAAU;AACd,cAAI,uBAAuB;AACzB,sBAAU,YAAY,eAAe,uBAAuB,GAAG;AAAA,UACjE;AACA,gBAAM,WAAW,KAAK,SAAS,KAAK,SAAS,OAAO;AACpD,cAAI,OAAO,aAAa,cAAc,UAAU;AAC9C,gBAAI,WAAY,GAAW,SAAS,QAAQ;AAC5C,gBAAI,WAAW;AACb,yBAAW,YAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,WAAW,SAAS,IAAI,OAAO,OAAO,SAAS,EAAC,UAAU,OAAO,OAAO,EAAC,SAAS,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,OAAO,UAAU,SAAS,cAAa,gBAAgB,QAAQ,SAAS,GAAG,GAAG,GAAG,QAAQ,eAAc,CAAC,EAAC,CAAC,CAAC;AAAA,YACrS;AACA,qBAAS,QAAQ;AAAA,UACnB,WAAW,UAAU;AACnB,gBAAI,WAAW;AACf,gBAAI,WAAW;AACb,yBAAW,YAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,WAAW,SAAS,IAAI,OAAO,OAAO,SAAS,EAAC,UAAU,OAAO,OAAO,EAAC,SAAS,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,OAAO,UAAU,SAAS,cAAa,gBAAgB,QAAQ,SAAS,GAAG,GAAG,GAAG,QAAQ,eAAc,CAAC,EAAC,CAAC,CAAC;AAAA,YACrS;AACA,gBAAI,aAAa,MAAM;AACrB,iBAAG,gBAAgB,SAAS,QAAQ;AAAA,YACtC,OAAO;AACL,cAAC,GAAW,SAAS,QAAQ,IAAI;AAAA,YACnC;AAAA,UACF,WAAW,aAAa,QAAW;AACjC,iBAAK,SAAS,KAAK,SAAU,GAAW,SAAS,QAAQ,CAAC;AAAA,UAC5D;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,SAAK,mBAAmB,QAAQ,eAAa;AAC3C,YAAM,OAAO,GAAG,cAAa,UAAU,SAAS,SAAS;AACzD,WAAK,SAAsB,YAAY,MAAM,CAAC,SAAS,WAAW;AAChE,cAAM,UAAU,CAAC,UAAiB;AAChC,gBAAM,oBAAoB,KAAK,sBAAsB,OAAO;AAC5D,cAAI,CAAC,kBAAmB;AAExB,gBAAM,UAAU,KAAK,uBAAuB,OAAO,SAAS,mBAAmB,MAAM;AACrF,gBAAM,eAAe,QAAQ,aAAa,GAAG,IAAI,SAAS;AAC1D,cAAI,SAAS;AACb,cAAI,cAAc;AAChB,qBAAS,YAAY,SAAkB,GAAG,KAAK,cAAc,MAAM,CAAC,WAAW,YAAY,IAAI,OAAO,KAAK;AAAA,UAC7G;AACA,cAAI,QAAQ;AACV,wBAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,IAAI,MAAM,IAAI,OAAO;AAAA,UACzE;AAAA,QACF;AACA,gBAAQ,iBAAiB,WAAW,OAAO;AAAA,MAE7C,CAAC;AAAA,IACH,CAAC;AAED,SAAK,SAAsB,YAAY,cAAa,gBAAgB,CAAC,IAAI,cAAc;AACrF,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,QAAQ;AACV,oBAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,KAAK,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UACnF,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,YAC/C,GAAG,QAAQ;AAAA,UACb,CAAC;AAAA,QACH,CAAC,CAAC;AAAA,MACJ;AAAA,IACF,CAAC;AAED,SAAK,gBAAgB,KAAK,YAAY,MAAM;AAC5C,SAAK,UAAU,KAAK,YAAY,QAAW,MAAM;AACjD,UAAM,WAAW,MAAM,KAAK,UAAU,EAAE,OAAO,QAAM,GAAG,aAAa,CAAC,EAAE,IAAI,QAAM,EAAa;AAC/F,aAAS,QAAQ,QAAM;AACrB,cAAQ,aAAa,OAAO,QAAM,GAAG,aAAa,GAAG,QAAQ,MAAM,IAAI,EAAE,QAAQ,QAAM,GAAG,SAAS,IAAI,GAAG,aAAa,GAAG,QAAQ,GAAI,GAAG,CAAC;AAAA,IAC5I,CAAC;AAAA,EACH;AAAA,EAEO,gBAAgB,KAAU,YAAoD,QAA0B;AAC7G,SAAK,SAA2B,YAAY,cAAa,wBAAwB,CAAC,IAAI,cAAc;AAClG,UAAI,CAAC,GAAG,aAAa;AACnB;AAAA,MACF;AACA,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,QAAQ;AACV,oBAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,KAAK,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UACnF,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,YAC/C,GAAG,QAAQ;AAAA,UACb,CAAC;AAAA,QACH,CAAC,CAAC;AAAA,MACJ;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,UAAU,KAAU,UAAyC,SAAkB,QAA0B;AAE9G,SAAK,SAAS,UAAU,cAAa,eAAe,CAAC,IAAI,cAAc;AACrE,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,cAAa,eAAe,QAAQ,OAAO,KAAK,YAAY,QAAW;AACzE,cAAM,OAAO,YAAY,SAAS,4CAA4C,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UAC1G,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,UACjD,CAAC;AAAA,QACH,CAAC,CAAC;AACF,YAAI,OAAO,SAAS,UAAU;AAC5B,aAAG,aAAa,SAAS,IAAI;AAAA,QAC/B,WAAW,MAAM,QAAQ,IAAI,GAAG;AAC9B,aAAG,aAAa,SAAS,KAAK,KAAK,GAAG,CAAC;AAAA,QACzC,OAAO;AACL,qBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC/C,gBAAI,cAAc,aAAa;AAC7B,cAAC,GAAG,MAAc,GAAG,IAAI,OAAO,KAAK;AAAA,YACvC;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,SAAS,UAAU,cAAa,eAAe,CAAC,IAAI,cAAc;AACrE,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,cAAa,eAAe,QAAQ,OAAO,KAAK,YAAY,QAAW;AACzE,cAAM,OAAO,YAAY,SAAS,mCAAmC,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UACjG,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,UACjD,CAAC;AAAA,QACH,CAAC,CAAC;AAEF,YAAI,OAAO,SAAS,UAAU;AAC5B,aAAG,aAAa,SAAS,IAAI;AAAA,QAC/B,WAAW,MAAM,QAAQ,IAAI,GAAG;AAC9B,aAAG,aAAa,SAAS,KAAK,KAAK,GAAG,CAAC;AAAA,QACzC,OAAO;AACL,qBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC/C,gBAAI,cAAc,aAAa;AAC7B,kBAAI,OAAO;AACT,mBAAG,UAAU,IAAI,GAAG;AAAA,cACtB,OAAO;AACL,mBAAG,UAAU,OAAO,GAAG;AAAA,cACzB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,SAAsC,WAAmD,oBAAI,IAAI,GAAG,UAAkB,UAA0D;AACrL,UAAM,OAAO,oBAAI,IAAa;AAC9B,aAAS,QAAQ,QAAM;AACrB,UAAI,CAAC,IAAI;AACP;AAAA,MACF;AACA,UAAI,GAAG,aAAa,GAAG;AACrB,cAAM,IAAI;AACV,aAAK,IAAI,CAAC;AACV,UAAE,iBAAoB,IAAI,QAAQ,GAAG,EAAE,QAAQ,CAAAA,QAAM;AACnD,eAAK,IAAIA,GAAE;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AACD,SAAK,QAAQ,QAAM;AACjB,YAAM,OAAO,GAAG,aAAa,QAAQ;AACrC,YAAM,QAAQ,aAAa,qBAAqB,EAAE;AAClD,UAAI,MAAM;AACR,iBAAS,IAAS,MAAM,KAAK;AAAA,MAC/B;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,SAAkB,KAAU,MAAc,SAAkB;AACjE,QAAI,IAAI,YAAY,OAAO,eAAe,MAAM,GAAG;AACnD,QAAI,OAAO,MAAM,YAAY;AAC3B,UAAI,EAAE,KAAK,WAAW,GAAG;AAAA,IAC3B;AACA,WAAO;AAAA,EACT;AAAA,EAEO,SAAS,KAAU,MAAc,OAAa;AACnD,WAAO,KAAK,WAAW,SAAS,YAAY;AAC5C,gBAAY,SAAS,GAAG,IAAI,kBAAkB;AAAA,MAC5C,MAAM;AAAA,MACN;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,OAAc,eAAe,MAAiC,SAA6C;AACzG,QAAI,WAAW,MAAM;AACnB,UAAI,QAAQ,WAAW,OAAO,GAAG;AAC/B,kBAAU,QAAQ,QAAQ,UAAU,EAAE;AAAA,MACxC;AAEA,oBAAa,SAAS,QAAQ,QAAM;AAElC,eAAO,KAAM,QAAQ,OAAO,GAAG,QAAQ,KAAK,KAAK,GAAG,GAAG,GAAG,WAAW,EAAE,EAAE;AAAA,MAC3E,CAAC;AACD,YAAM,gBAAgB,YAAY,KAAK,qBAAqB,QAAQ,IAAI,EAAC,aAAa,KAAI,CAAC;AAC3F,aAAO,cAAc,IAAI,OAAO;AAAA,IAClC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAc,gBAAgB,SAA2C,KAA4C;AACnH,QAAI,SAAS;AACX,YAAM,aAAa,OAAO,OAAO,CAAC,GAAG,OAAO;AAC5C,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AACrD,YAAI,OAAO,UAAU,YAAY;AAC/B,qBAAW,GAAG,IAAI,MAAM,KAAK,GAAG;AAAA,QAClC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,cAAc,QAA0B;AACtC,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,aAAa,OAAO,QAAQ,OAAO,cAAc,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,WAAW,SAAS,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACjJ,eAAO,SAAS,GAAG,oBAAoB,GAAG;AAAA,MAC5C,CAAC,EAAE,KAAK,GAAG;AACX,aAAO,KAAK,aAAa,KAAK;AAAA,IAChC,OAAO;AACL,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AACF;AA/sBa,cACY,aAAa;AADzB,cAiBG,4BAA4B,cAAa,aAAa;AAjBzD,cAmBY,aAAa,cAAa,aAAa;AAnBnD,cAoBY,iBAAiB,cAAa,aAAa;AApBvD,cAqBY,gBAAgB,cAAa,aAAa;AArBtD,cAsBY,kBAAkB,cAAa,aAAa;AAtBxD,cAuBY,mBAAmB,cAAa,aAAa;AAvBzD,cAwBY,mBAAmB,cAAa,aAAa;AAxBzD,cAyBY,mBAAmB,cAAa,aAAa;AAzBzD,cA0BY,iBAAiB,cAAa,aAAa;AA1BvD,cA2BY,mBAAmB,cAAa,aAAa;AA3BzD,cA4BY,eAAe,cAAa,aAAa;AAAA;AA5BrD,cA+BG,YAAY;AAAA,EACxB,EAAC,MAAM,cAAa,aAAa,cAAc,UAAU,SAAS,OAAO,QAAO;AAAA,EAChF,EAAC,MAAM,cAAa,aAAa,eAAe,UAAU,SAAS,OAAO,QAAO;AAAA,EACjF,EAAC,MAAM,cAAa,aAAa,iBAAiB,UAAU,SAAS,OAAO,QAAO;AAAA,EACnF,EAAC,MAAM,cAAa,aAAa,gBAAgB,UAAU,WAAW,OAAO,SAAQ;AAAA,EACrF,EAAC,MAAM,cAAa,aAAa,aAAa,UAAU,QAAQ,OAAO,SAAQ;AACjF;AAAA;AArCW,cAuCY,wBAAwB,cAAa,aAAa;AAvC9D,cAyCY,yBAAyB,cAAa,aAAa;AAzC/D,cA2CY,eAAe,cAAa,aAAa;AA3CrD,cA4CY,wBAAwB,cAAa,aAAa;AA5C9D,cA6CY,gBAAgB,cAAa,aAAa;AA7CtD,cA8CY,gBAAgB,cAAa,aAAa;AA9CtD,cAgDY,gBAAgB;AAhD5B,cAiDY,kBAAkB;AAjD9B,cAkDY,cAAc;AAlD1B,cAmDY,iBAAiB;AAnD7B,cAoDY,iBAAiB;AApD7B,cAqDY,oBAAoB;AArDhC,cAsDY,sBAAsB;AAtDlC,cAuDY,sBAAsB;AAvDlC,cAwDY,uBAAuB;AAxDnC,cAyDY,gBAAgB;AAzD5B,cA0DY,iBAAiB;AA1D7B,cA2DY,qBAAqB;AA3DjC,cA4DY,kBAAkB;AA5D9B,cA6DY,iBAAiB;AA7D7B,cA8DY,gBAAgB;AA9D5B,cA+DY,oBAAoB;AA/DhC,cAgEY,oBAAoB;AAhEhC,cAiEY,oBAAoB;AAjEhC,cAkEY,4BAA4B;AAlExC,cAmEY,2BAA2B;AAnEvC,cAoEY,uBAAuB;AApEnC,cAqEY,4BAA4B;AArExC,cAsEY,yBAAyB;AAtErC,cAuEY,WAAW,CAAC,cAAa,iBAAiB,cAAa,aAAa,cAAa,gBAAgB,cAAa,eAAe,cAAa,gBAAgB,cAAa,iBAAiB,cAAa,gBAAgB,cAAa,eAAe,cAAa,mBAAmB,cAAa,mBAAmB,cAAa,mBAAmB,cAAa,mBAAmB,cAAa,2BAA2B,cAAa,0BAA0B,cAAa,mBAAmB;AAvE5e,cAyEY,wBAAwB;AAzEpC,cA0EY,sBAAsB;AA1ElC,cA2EY,gBAAgB,CAAC,cAAa,uBAAuB,cAAa,mBAAmB;AA3EjG,cA4EY,eAAe,CAAC,cAAa,qBAAqB;AA5E9D,cA6EY,YAAY;AAAA,EACjC,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa,aAAa,kBAAkB,cAAa;AAAA,EACzD,cAAa,aAAa,kBAAkB,cAAa;AAAA,EACzD,cAAa;AAAA,EACb,GAAG,cAAa,UAAU,IAAI,QAAM,GAAG,IAAI;AAAA,EAC3C,cAAK;AACP;AA/FK,IAAM,eAAN;",
4
+ "sourcesContent": ["import { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';\nimport { ElementUtils } from '@dooboostore/core-web/element/ElementUtils';\nimport { Range } from '../iterators/Range';\nimport { getDomRenderConfig } from '../DomRenderProxy';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\n\ntype HandlerInfo = {\n element: HTMLElement;\n attr: string;\n type: 'link' | 'event' | 'event-param';\n priority: number;\n property?: string; // for link type\n};\nexport type NormalAttrDataType = {\n originalAttrValue: string;\n isStringTemplate: boolean;\n variablePaths: { origin: string, inner: string }[];\n}\nexport class EventManager {\n public static readonly attrPrefix = 'dr-';\n public readonly eventNames = [\n 'click', 'mousedown', 'mouseup', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mouseenter', 'mouseleave', 'contextmenu',\n 'keyup', 'keydown', 'keypress', 'toggle',\n 'change', 'input', 'submit', 'resize', 'focus', 'blur',\n 'close', 'cancel'\n ];\n\n private readonly delegatableEventMap: { [key: string]: string } = {\n mouseleave: 'mouseout',\n mouseenter: 'mouseover',\n focus: 'focusin',\n blur: 'focusout',\n };\n private readonly directAttachEvents = new Set(['close']);\n\n public static ownerVariablePathAttrName = EventManager.attrPrefix + 'owner-variable-path';\n\n public static readonly eventParam = EventManager.attrPrefix + 'event';\n public static readonly onInitAttrName = EventManager.attrPrefix + 'on-init';\n public static readonly valueAttrName = EventManager.attrPrefix + 'value';\n public static readonly checkedAttrName = EventManager.attrPrefix + 'checked';\n public static readonly selectedAttrName = EventManager.attrPrefix + 'selected';\n public static readonly readonlyAttrName = EventManager.attrPrefix + 'readonly';\n public static readonly disabledAttrName = EventManager.attrPrefix + 'disabled';\n public static readonly hiddenAttrName = EventManager.attrPrefix + 'hidden';\n public static readonly requiredAttrName = EventManager.attrPrefix + 'required';\n public static readonly openAttrName = EventManager.attrPrefix + 'open';\n\n // link\uB294 \uC4F0\uC9C0 \uC54A\uB294\uAC78 \uCD94\uCC9C\uD55C\uB2E4 \uB77C\uC774\uD504 \uC0AC\uC774\uD074 \uAF2C\uC778\uB2E4 \uB2E4\uB978 \uD504\uB808\uC784\uC6CC\uD06C\uC5D0\uC11C\uB3C4 \uC591\uBC29\uD5A5\uC740 \uC9C0\uC591 \uD55C\uB2E4\n public static linkAttrs = [\n { name: EventManager.attrPrefix + 'value-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'hidden-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'required-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'checked-link', property: 'checked', event: 'change' },\n { name: EventManager.attrPrefix + 'open-link', property: 'open', event: 'toggle' },\n ]\n // @ts-ignore \uD569\uC131\uC774\uBCA4\uD2B8(Synthetic) \uCC98\uB9AC\uD558\uBA74\uC11C \uC758\uBBF8\uAC00 \uC5C6\uC5B4\uC84C\uB2E4\n public static readonly linkTargetMapAttrName = EventManager.attrPrefix + 'link-variables';\n\n public static readonly onRenderedInitAttrName = EventManager.attrPrefix + 'on-rendered-init';\n\n public static readonly attrAttrName = EventManager.attrPrefix + 'attr';\n public static readonly normalAttrMapAttrName = EventManager.attrPrefix + 'normal-attr-map';\n public static readonly styleAttrName = EventManager.attrPrefix + 'style';\n public static readonly classAttrName = EventManager.attrPrefix + 'class';\n\n public static readonly VALUE_VARNAME = '$value';\n public static readonly SCRIPTS_VARNAME = '$scripts';\n public static readonly FAG_VARNAME = '$fag';\n public static readonly RAWSET_VARNAME = '$rawSet';\n public static readonly RENDER_VARNAME = '$render';\n public static readonly NEAR_THIS_VARNAME = '$nearThis';\n public static readonly PARENT_THIS_VARNAME = '$parentThis';\n public static readonly ROOT_OBJECT_VARNAME = '$rootObject';\n public static readonly SCRIPT_UTILS_VARNAME = '$scriptUtils';\n public static readonly RANGE_VARNAME = '$range';\n public static readonly ROUTER_VARNAME = '$router';\n public static readonly INNER_HTML_VARNAME = '$innerHTML';\n public static readonly ELEMENT_VARNAME = '$element';\n public static readonly TARGET_VARNAME = '$target';\n public static readonly EVENT_VARNAME = '$event';\n public static readonly COMPONENT_VARNAME = '$component';\n public static readonly INNERHTML_VARNAME = '$innerHTML';\n public static readonly ATTRIBUTE_VARNAME = '$attribute';\n public static readonly CREATOR_META_DATA_VARNAME = '$creatorMetaData';\n public static readonly PARENT_THIS_PATH_VARNAME = '$parentPath';\n public static readonly CURRENT_THIS_VARNAME = '$currentThis';\n public static readonly CURRENT_THIS_PATH_VARNAME = '$currentThisPath';\n public static readonly NEAR_THIS_PATH_VARNAME = '$nearThisPath';\n public static readonly VARNAMES = [EventManager.SCRIPTS_VARNAME, EventManager.FAG_VARNAME, EventManager.RAWSET_VARNAME, EventManager.RANGE_VARNAME, EventManager.ROUTER_VARNAME, EventManager.ELEMENT_VARNAME, EventManager.TARGET_VARNAME, EventManager.EVENT_VARNAME, EventManager.COMPONENT_VARNAME, EventManager.INNERHTML_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.CREATOR_META_DATA_VARNAME, EventManager.PARENT_THIS_PATH_VARNAME, EventManager.PARENT_THIS_VARNAME];\n\n public static readonly WINDOW_EVENT_POPSTATE = 'popstate';\n public static readonly WINDOW_EVENT_RESIZE = 'resize';\n public static readonly WINDOW_EVENTS = [EventManager.WINDOW_EVENT_POPSTATE, EventManager.WINDOW_EVENT_RESIZE];\n public static readonly noDetectAttr = [EventManager.normalAttrMapAttrName]\n public static readonly attrNames = [\n EventManager.valueAttrName,\n EventManager.checkedAttrName,\n EventManager.selectedAttrName,\n EventManager.readonlyAttrName,\n EventManager.disabledAttrName,\n EventManager.hiddenAttrName,\n EventManager.requiredAttrName,\n EventManager.openAttrName,\n EventManager.attrAttrName,\n EventManager.normalAttrMapAttrName,\n EventManager.styleAttrName,\n EventManager.classAttrName,\n EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_POPSTATE,\n EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_RESIZE,\n EventManager.onInitAttrName,\n ...EventManager.linkAttrs.map(it => it.name),\n this.eventParam\n ];\n readonly bindScript = `\n const ${EventManager.VALUE_VARNAME} = this.__render.value;\n const ${EventManager.SCRIPTS_VARNAME} = this.__render.scripts;\n const ${EventManager.RANGE_VARNAME} = this.__render.range;\n const ${EventManager.ROUTER_VARNAME} = this.__render.router;\n const ${EventManager.ATTRIBUTE_VARNAME} = this.__render.attribute;\n const ${EventManager.ELEMENT_VARNAME} = this.__render.element;\n const ${EventManager.COMPONENT_VARNAME} = this.__render.element.component;\n const ${EventManager.TARGET_VARNAME} = this.__render.target;\n const ${EventManager.EVENT_VARNAME} = this.__render.event;\n `;\n\n constructor(private window: Window) {\n this.eventNames.forEach(it => {\n EventManager.attrNames.push(EventManager.attrPrefix + 'event-' + it);\n });\n EventManager.attrNames.push(EventManager.onRenderedInitAttrName);\n\n if (typeof window !== 'undefined') {\n EventManager.WINDOW_EVENTS.forEach(eventName => {\n window?.addEventListener(eventName, (event) => {\n const targetAttr = `dr-window-event-${eventName}`;\n document.querySelectorAll(`[${targetAttr}]`).forEach(it => {\n const script = it.getAttribute(targetAttr);\n if (script) {\n const obj = this.findComponentInstance(it as HTMLElement);\n const config = getDomRenderConfig(obj);\n ScriptUtils.evaluate(`${this.bindScript} ${script} `, this.createExecutionContext(event, it as HTMLElement, obj, config));\n }\n });\n });\n });\n\n const rootElement = this.window.document;\n const listeningEvents = new Set<string>();\n this.eventNames.forEach(eventName => {\n if (this.directAttachEvents.has(eventName)) {\n return;\n }\n const delegatedEventName = this.delegatableEventMap[eventName] || eventName;\n\n if (listeningEvents.has(delegatedEventName)) {\n return;\n }\n listeningEvents.add(delegatedEventName);\n rootElement.addEventListener(delegatedEventName, this.handleEvent.bind(this), true);\n });\n }\n }\n\n private handleEvent(event: Event) {\n const handlers = this.collectHandlers(event);\n // console.log('handlers', handlers, event);\n for (const handler of handlers) {\n if (event.cancelBubble) {\n break;\n }\n\n const componentInstance = this.findComponentInstance(handler.element);\n if (!componentInstance) {\n continue;\n }\n // console.log('executeHandler', event,handler,componentInstance)\n this.executeHandler(event, handler, componentInstance);\n }\n }\n\n private collectHandlers(event: Event): HandlerInfo[] {\n const handlers: HandlerInfo[] = [];\n const root = this.window.document;\n if (!root) return handlers;\n\n const initialTarget = event.target as Node;\n let currentTarget: HTMLElement | null = (initialTarget.nodeType === 1)\n ? (initialTarget as HTMLElement)\n : initialTarget.parentElement;\n const collectedElements = new Set<HTMLElement>();\n\n const eventMap: { [key: string]: string } = {\n mouseout: 'mouseleave',\n mouseover: 'mouseenter',\n focusout: 'blur',\n focusin: 'focus'\n };\n const mappedEventName = eventMap[event.type] || event.type;\n\n while (currentTarget) {\n if (collectedElements.has(currentTarget)) {\n break;\n }\n\n // Priority 1: Link attributes\n const matchingLinkAttr = EventManager.linkAttrs.find(la => la.event === mappedEventName && currentTarget?.hasAttribute(la.name));\n if (matchingLinkAttr) {\n handlers.push({\n element: currentTarget,\n attr: matchingLinkAttr.name,\n type: 'link',\n priority: 1,\n property: matchingLinkAttr.property\n });\n }\n\n // Priority 2: dr-event-* attributes\n const eventAttr = `${EventManager.attrPrefix}event-${mappedEventName}`;\n if (currentTarget.hasAttribute(eventAttr)) {\n handlers.push({\n element: currentTarget,\n attr: eventAttr,\n type: 'event',\n priority: 2\n });\n }\n\n // Priority 3: dr-event with params\n const eventParamAttr = EventManager.eventParam;\n if (currentTarget.hasAttribute(eventParamAttr)) {\n const bindEvents = currentTarget.getAttribute(`${eventParamAttr}:bind`);\n if (bindEvents && bindEvents.split(',').map(s => s.trim()).includes(mappedEventName)) {\n handlers.push({\n element: currentTarget,\n attr: eventParamAttr,\n type: 'event-param',\n priority: 3\n });\n }\n }\n\n collectedElements.add(currentTarget);\n\n if (currentTarget === root.documentElement) {\n break;\n }\n\n currentTarget = currentTarget.parentElement;\n }\n\n return handlers.sort((a, b) => a.priority - b.priority);\n }\n\n private findComponentInstance(element: HTMLElement | null): any {\n let current = element;\n const root = this.window.document;\n while (current) {\n if ((current as any).obj) {\n return (current as any).obj;\n }\n if (current === root.documentElement) {\n break;\n }\n current = current.parentElement;\n }\n return this.window;\n }\n\n private createExecutionContext(event: Event, element: HTMLElement, componentInstance: any, config: DomRenderConfig | undefined, extraVars = {}) {\n // console.log('---------->', config?.eventVariables)\n return Object.assign(componentInstance, {\n __render: Object.freeze({\n event,\n element,\n target: event.target,\n attribute: ElementUtils.getAttributeToObject(element),\n router: config?.router,\n range: Range.range,\n scripts: EventManager.setBindProperty(config?.scripts, componentInstance),\n ...config?.eventVariables,\n ...extraVars\n })\n });\n }\n\n private executeHandler(event: Event, handler: HandlerInfo, componentInstance: any) {\n const { element, type, attr } = handler;\n const config = getDomRenderConfig(componentInstance);\n\n switch (type) {\n case 'link':\n const varName = element.getAttribute(attr);\n if (!varName || !handler.property) return;\n\n if (attr.includes('leave') || attr.includes('enter') || attr.includes('focus') || attr.includes('blur')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const ownerVariablePath = element.getAttribute(EventManager.ownerVariablePathAttrName);\n let bindObj = componentInstance;\n if (ownerVariablePath) {\n bindObj = ScriptUtils.evaluateReturn(ownerVariablePath, componentInstance);\n }\n\n const mapScript = element.getAttribute(`${attr}:map`);\n let value = (element as any)[handler.property];\n\n if (mapScript) {\n const context = this.createExecutionContext(event, element, bindObj, config, { value });\n value = ScriptUtils.evaluate(`return ${mapScript}`, context);\n }\n\n if (typeof this.getValue(componentInstance, varName, bindObj) === 'function') {\n this.getValue(componentInstance, varName, bindObj)(value, event);\n } else {\n this.setValue(componentInstance, varName, value);\n }\n break;\n\n case 'event':\n const script = element.getAttribute(attr);\n if (!script) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // if (filterScript) {\n // filter = ScriptUtils.eval<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n // }\n\n if (filter) {\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // const hasDispatch = element.hasAttribute(`${attr}:dispatch`);\n // if (hasDispatch) {\n // element.dispatchEvent(new Event(event.type));\n // }\n break;\n\n case 'event-param':\n const paramScript = element.getAttribute(attr);\n if (!paramScript) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const attributes = ElementUtils.getAttributeToObject(element);\n const params = {} as any;\n const prefix = attr + ':';\n Object.entries(attributes).filter(([k, v]) => k.startsWith(prefix)).forEach(([k, v]) => {\n params[k.slice(prefix.length)] = v;\n });\n\n const paramContext = this.createExecutionContext(event, element, componentInstance, config, { params });\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${paramScript}`, paramContext);\n break;\n }\n }\n\n public findAttrElements(fragment: DocumentFragment | Element, config?: DomRenderConfig): Set<Element> {\n // const t0 = performance.now();\n const elements = new Set<Element>();\n const addAttributes = config?.applyEvents?.map(it => it.attrName) ?? [];\n const attrs = addAttributes.concat([...EventManager.attrNames]).filter(Boolean);\n if (attrs.length) {\n const selector = attrs.map(a => `[${a}]`).join(',');\n fragment?.querySelectorAll(selector).forEach(it => elements.add(it));\n }\n // console.log('findAttrElements time', performance.now() - t0);\n return elements;\n }\n\n public applyEvent(obj: any, childNodes: Set<ChildNode> | Set<Element>, config?: DomRenderConfig) {\n childNodes.forEach(node => {\n if (node.nodeType === 1) {\n (node as any).obj = obj;\n }\n });\n\n // let t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.valueAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.value !== data) {\n it.value = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.checkedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.checked !== data) {\n it.checked = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLOptionElement>(childNodes, EventManager.selectedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.selected !== data) {\n it.selected = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.readonlyAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.readOnly !== data) {\n it.readOnly = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.disabledAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.disabled !== data) {\n it.disabled = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLElement>(childNodes, EventManager.hiddenAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.hidden !== data) {\n it.hidden = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.requiredAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.required !== data) {\n it.required = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLDialogElement>(childNodes, EventManager.openAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.open !== data) {\n it.open = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr(childNodes, EventManager.normalAttrMapAttrName, (it, attribute) => {\n const map = new Map<string, NormalAttrDataType>(JSON.parse(attribute));\n map.forEach((v, k) => {\n\n const variablePaths = v.variablePaths;\n let targetScript = v.originalAttrValue;//typeof v.originalAttrValue === 'string' ? JSON.parse(v.originalAttrValue) : v.originalAttrValue;\n let script: string;\n if (v.isStringTemplate) {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `\\${${r}}`);\n })\n script = '`' + targetScript + '`';\n } else {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `${r}`);\n })\n script = targetScript;\n }\n const data = ObjectUtils.Script.evaluate(`const $element = this.element; return ${script}`, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n // console.log('!!!!!!!!!!!', k, data, script, variablePaths, v)\n if (data === null || data === undefined) {\n it.removeAttribute(k);\n } else {\n it.setAttribute(k, data);\n }\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n\n EventManager.WINDOW_EVENTS.forEach(it => {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.attrPrefix + 'window-event-' + it, (it, attribute) => {\n (it as any).obj = obj;\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n EventManager.linkAttrs.forEach(linkInfo => {\n this.procAttr<HTMLElement>(childNodes, linkInfo.name, (it, varName) => {\n if (varName) {\n const ownerVariablePathName = it.getAttribute(EventManager.ownerVariablePathAttrName);\n const mapScript = it.getAttribute(`${linkInfo.name}:map`);\n let bindObj = obj;\n if (ownerVariablePathName) {\n bindObj = ObjectUtils.Script.evaluateReturn(ownerVariablePathName, obj);\n }\n const getValue = this.getValue(obj, varName, bindObj);\n if (typeof getValue === 'function' && getValue) {\n let setValue = (it as any)[linkInfo.property];\n if (mapScript) {\n setValue = ObjectUtils.Script.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables }) }));\n }\n getValue(setValue);\n } else if (getValue) {\n let setValue = getValue;\n if (mapScript) {\n setValue = ObjectUtils.Script.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables }) }));\n }\n if (setValue === null) {\n it.removeAttribute(linkInfo.property);\n } else {\n (it as any)[linkInfo.property] = setValue;\n }\n } else if (getValue === undefined) {\n this.setValue(obj, varName, (it as any)[linkInfo.property]);\n }\n }\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.directAttachEvents.forEach(eventName => {\n const attr = `${EventManager.attrPrefix}event-${eventName}`;\n this.procAttr<HTMLElement>(childNodes, attr, (element, script) => {\n const handler = (event: Event) => {\n const componentInstance = this.findComponentInstance(element);\n if (!componentInstance) return;\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n if (filterScript) {\n filter = ObjectUtils.Script.evaluate<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n }\n if (filter) {\n ObjectUtils.Script.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n };\n element.addEventListener(eventName, handler);\n // TODO: Add logic to remove this listener when the element is destroyed.\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLElement>(childNodes, EventManager.onInitAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ObjectUtils.Script.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n }));\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.onRenderedEvent(obj, childNodes, config);\n this.changeVar(obj, childNodes, undefined, config);\n const elements = Array.from(childNodes).filter(it => it.nodeType === 1).map(it => it as Element);\n elements.forEach(it => {\n config?.applyEvents?.filter(ta => it.getAttribute(ta.attrName) !== null).forEach(ta => ta.callBack(it, it.getAttribute(ta.attrName)!, obj));\n });\n }\n\n public onRenderedEvent(obj: any, childNodes: Set<ChildNode> | Set<Element> | Node[], config?: DomRenderConfig) {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.onRenderedInitAttrName, (it, attribute) => {\n if (!it.isConnected) {\n return;\n }\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ObjectUtils.Script.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n }));\n }\n });\n }\n\n public changeVar(obj: any, elements: Set<Element> | Set<ChildNode>, varName?: string, config?: DomRenderConfig) {\n // console.log('changeVar', obj, elements, varName)\n this.procAttr(elements, EventManager.styleAttrName, (it: HTMLElement, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluate(`const $element = this.__render.element; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n if (typeof data === 'string') {\n data.split(';').forEach(sit => {\n const [key, value] = sit.split(':').map(s => s.trim());\n if (key && value) {\n (it.style as any)[key] = value;\n }\n })\n // it.setAttribute('style', data);\n } else if (Array.isArray(data)) {\n data.forEach(sit => {\n const [key, value] = sit.split(':').map(s => s.trim());\n if (key && value) {\n (it.style as any)[key] = value;\n }\n })\n\n // it.setAttribute('style', data.join(';'));\n } else {\n for (const [key, value] of Object.entries(data)) {\n // if (it instanceof HTMLElement) {\n (it.style as any)[key] = value === null ? null : String(value);\n // }\n }\n }\n }\n });\n\n this.procAttr(elements, EventManager.classAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluate(`const $element = this.element; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n\n // alert(1)\n if (typeof data === 'string') {\n data.split(' ').forEach(cit => it.classList.add(cit.trim()));\n } else if (Array.isArray(data)) {\n data.forEach(cit => it.classList.add(cit.trim()));\n } else {\n for (const [key, value] of Object.entries(data)) {\n if (it instanceof HTMLElement) {\n if (value) {\n it.classList.add(key.trim());\n } else {\n it.classList.remove(key.trim());\n }\n }\n }\n }\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.valueAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.value !== data) it.value = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.checkedAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.checked !== data) it.checked = data;\n }\n });\n\n this.procAttr<HTMLOptionElement>(elements, EventManager.selectedAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.selected !== data) it.selected = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.readonlyAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.readOnly !== data) it.readOnly = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.disabledAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.disabled !== data) it.disabled = data;\n }\n });\n\n this.procAttr<HTMLElement>(elements, EventManager.hiddenAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.hidden !== data) it.hidden = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.requiredAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.required !== data) it.required = data;\n }\n });\n\n this.procAttr<HTMLDialogElement>(elements, EventManager.openAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.open !== data) it.open = data;\n }\n });\n }\n\n public procAttr<T extends Element = Element>(elements: Set<Element> | Set<ChildNode> | Node[] = new Set(), attrName: string, callBack: (h: T, value: string, attributes: any) => void) {\n const sets = new Set<Element>();\n elements.forEach(it => {\n if (!it) {\n return;\n }\n if (it.nodeType === 1) {\n const e = it as Element;\n sets.add(e);\n e.querySelectorAll<T>(`[${attrName}]`).forEach(it => {\n sets.add(it);\n });\n }\n });\n sets.forEach(it => {\n const attr = it.getAttribute(attrName);\n const attrs = ElementUtils.getAttributeToObject(it);\n if (attr) {\n callBack(it as T, attr, attrs);\n }\n });\n }\n\n public getValue<T = any>(obj: any, name: string, bindObj?: any): T {\n let r = ObjectUtils.Script.evaluateReturn(name, obj);\n if (typeof r === 'function') {\n r = r.bind(bindObj ?? obj);\n }\n return r;\n }\n\n public setValue(obj: any, name: string, value?: any) {\n name = name.replaceAll('this.', 'this.this.');\n ScriptUtils.evaluate(`${name} = this.value;`, {\n this: obj,\n value: value\n });\n }\n\n public static isUsingThisVar(raws: string | null | undefined, varName: string | null | undefined): boolean {\n if (varName && raws) {\n if (varName.startsWith('this.')) {\n varName = varName.replace(/this\\./, '');\n }\n // TODO: \uD6D4.. \uAF2D\uD544\uC694\uD55C\uAC00..? \uD2B8\uB9AC\uAC70\uB420\uB54C \uC2A4\uD06C\uB9BD\uD2B8\uBCC0\uC218 \uAE4C\uC9C0 \uAC10\uC9C0\uD574\uC57C\uB420\uAE4C?\n EventManager.VARNAMES.forEach(it => {\n // raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this?.___${it}`);\n raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this.___${it}`);\n });\n const variablePaths = ObjectUtils.Path.detectPathFromScript(raws ?? '', { excludeThis: true });\n return variablePaths.has(varName);\n }\n return false;\n }\n\n public static setBindProperty(scripts: { [p: string]: any } | undefined, obj: any): { [p: string]: any } | undefined {\n if (scripts) {\n const newScripts = Object.assign({}, scripts);\n for (const [key, value] of Object.entries(newScripts)) {\n if (typeof value === 'function') {\n newScripts[key] = value.bind(obj);\n }\n }\n return newScripts;\n }\n }\n\n getBindScript(config?: DomRenderConfig) {\n if (config?.eventVariables) {\n const bindScript = Object.entries(config.eventVariables).filter(([key, value]) => !this.bindScript.includes(`const ${key}`)).map(([key, value]) => {\n return `const ${key} = this.__render.${key};`;\n }).join(';');\n return this.bindScript + '' + bindScript;\n } else {\n return this.bindScript;\n }\n }\n}\n\n"],
5
+ "mappings": "AACA,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAcrB,MAAM,gBAAN,MAAM,cAAa;AAAA,EA4GxB,YAAoB,QAAgB;AAAhB;AA1GpB,SAAgB,aAAa;AAAA,MAC3B;AAAA,MAAS;AAAA,MAAa;AAAA,MAAW;AAAA,MAAY;AAAA,MAAa;AAAA,MAAY;AAAA,MAAa;AAAA,MAAc;AAAA,MAAc;AAAA,MAC/G;AAAA,MAAS;AAAA,MAAW;AAAA,MAAY;AAAA,MAChC;AAAA,MAAU;AAAA,MAAS;AAAA,MAAU;AAAA,MAAU;AAAA,MAAS;AAAA,MAChD;AAAA,MAAS;AAAA,IACX;AAEA,SAAiB,sBAAiD;AAAA,MAChE,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AACA,SAAiB,qBAAqB,oBAAI,IAAI,CAAC,OAAO,CAAC;AAiFvD,SAAS,aAAa;AAAA,gBACR,cAAa,aAAa;AAAA,gBAC1B,cAAa,eAAe;AAAA,gBAC5B,cAAa,aAAa;AAAA,gBAC1B,cAAa,cAAc;AAAA,gBAC3B,cAAa,iBAAiB;AAAA,gBAC9B,cAAa,eAAe;AAAA,gBAC5B,cAAa,iBAAiB;AAAA,gBAC9B,cAAa,cAAc;AAAA,gBAC3B,cAAa,aAAa;AAAA;AAItC,SAAK,WAAW,QAAQ,QAAM;AAC5B,oBAAa,UAAU,KAAK,cAAa,aAAa,WAAW,EAAE;AAAA,IACrE,CAAC;AACD,kBAAa,UAAU,KAAK,cAAa,sBAAsB;AAE/D,QAAI,OAAO,WAAW,aAAa;AACjC,oBAAa,cAAc,QAAQ,eAAa;AAC9C,gBAAQ,iBAAiB,WAAW,CAAC,UAAU;AAC7C,gBAAM,aAAa,mBAAmB,SAAS;AAC/C,mBAAS,iBAAiB,IAAI,UAAU,GAAG,EAAE,QAAQ,QAAM;AACzD,kBAAM,SAAS,GAAG,aAAa,UAAU;AACzC,gBAAI,QAAQ;AACV,oBAAM,MAAM,KAAK,sBAAsB,EAAiB;AACxD,oBAAM,SAAS,mBAAmB,GAAG;AACrC,0BAAY,SAAS,GAAG,KAAK,UAAU,IAAI,MAAM,KAAK,KAAK,uBAAuB,OAAO,IAAmB,KAAK,MAAM,CAAC;AAAA,YAC1H;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAED,YAAM,cAAc,KAAK,OAAO;AAChC,YAAM,kBAAkB,oBAAI,IAAY;AACxC,WAAK,WAAW,QAAQ,eAAa;AACnC,YAAI,KAAK,mBAAmB,IAAI,SAAS,GAAG;AAC1C;AAAA,QACF;AACA,cAAM,qBAAqB,KAAK,oBAAoB,SAAS,KAAK;AAElE,YAAI,gBAAgB,IAAI,kBAAkB,GAAG;AAC3C;AAAA,QACF;AACA,wBAAgB,IAAI,kBAAkB;AACtC,oBAAY,iBAAiB,oBAAoB,KAAK,YAAY,KAAK,IAAI,GAAG,IAAI;AAAA,MACpF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEQ,YAAY,OAAc;AAChC,UAAM,WAAW,KAAK,gBAAgB,KAAK;AAE3C,eAAW,WAAW,UAAU;AAC9B,UAAI,MAAM,cAAc;AACtB;AAAA,MACF;AAEA,YAAM,oBAAoB,KAAK,sBAAsB,QAAQ,OAAO;AACpE,UAAI,CAAC,mBAAmB;AACtB;AAAA,MACF;AAEA,WAAK,eAAe,OAAO,SAAS,iBAAiB;AAAA,IACvD;AAAA,EACF;AAAA,EAEQ,gBAAgB,OAA6B;AACnD,UAAM,WAA0B,CAAC;AACjC,UAAM,OAAO,KAAK,OAAO;AACzB,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,gBAAgB,MAAM;AAC5B,QAAI,gBAAqC,cAAc,aAAa,IAC/D,gBACD,cAAc;AAClB,UAAM,oBAAoB,oBAAI,IAAiB;AAE/C,UAAM,WAAsC;AAAA,MAC1C,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AACA,UAAM,kBAAkB,SAAS,MAAM,IAAI,KAAK,MAAM;AAEtD,WAAO,eAAe;AACpB,UAAI,kBAAkB,IAAI,aAAa,GAAG;AACxC;AAAA,MACF;AAGA,YAAM,mBAAmB,cAAa,UAAU,KAAK,QAAM,GAAG,UAAU,mBAAmB,eAAe,aAAa,GAAG,IAAI,CAAC;AAC/H,UAAI,kBAAkB;AACpB,iBAAS,KAAK;AAAA,UACZ,SAAS;AAAA,UACT,MAAM,iBAAiB;AAAA,UACvB,MAAM;AAAA,UACN,UAAU;AAAA,UACV,UAAU,iBAAiB;AAAA,QAC7B,CAAC;AAAA,MACH;AAGA,YAAM,YAAY,GAAG,cAAa,UAAU,SAAS,eAAe;AACpE,UAAI,cAAc,aAAa,SAAS,GAAG;AACzC,iBAAS,KAAK;AAAA,UACZ,SAAS;AAAA,UACT,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAGA,YAAM,iBAAiB,cAAa;AACpC,UAAI,cAAc,aAAa,cAAc,GAAG;AAC9C,cAAM,aAAa,cAAc,aAAa,GAAG,cAAc,OAAO;AACtE,YAAI,cAAc,WAAW,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC,EAAE,SAAS,eAAe,GAAG;AACpF,mBAAS,KAAK;AAAA,YACZ,SAAS;AAAA,YACT,MAAM;AAAA,YACN,MAAM;AAAA,YACN,UAAU;AAAA,UACZ,CAAC;AAAA,QACH;AAAA,MACF;AAEA,wBAAkB,IAAI,aAAa;AAEnC,UAAI,kBAAkB,KAAK,iBAAiB;AAC1C;AAAA,MACF;AAEA,sBAAgB,cAAc;AAAA,IAChC;AAEA,WAAO,SAAS,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;AAAA,EACxD;AAAA,EAEQ,sBAAsB,SAAkC;AAC9D,QAAI,UAAU;AACd,UAAM,OAAO,KAAK,OAAO;AACzB,WAAO,SAAS;AACd,UAAK,QAAgB,KAAK;AACxB,eAAQ,QAAgB;AAAA,MAC1B;AACA,UAAI,YAAY,KAAK,iBAAiB;AACpC;AAAA,MACF;AACA,gBAAU,QAAQ;AAAA,IACpB;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ,uBAAuB,OAAc,SAAsB,mBAAwB,QAAqC,YAAY,CAAC,GAAG;AAE9I,WAAO,OAAO,OAAO,mBAAmB;AAAA,MACtC,UAAU,OAAO,OAAO;AAAA,QACtB;AAAA,QACA;AAAA,QACA,QAAQ,MAAM;AAAA,QACd,WAAW,aAAa,qBAAqB,OAAO;AAAA,QACpD,QAAQ,QAAQ;AAAA,QAChB,OAAO,MAAM;AAAA,QACb,SAAS,cAAa,gBAAgB,QAAQ,SAAS,iBAAiB;AAAA,QACxE,GAAG,QAAQ;AAAA,QACX,GAAG;AAAA,MACL,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEQ,eAAe,OAAc,SAAsB,mBAAwB;AACjF,UAAM,EAAE,SAAS,MAAM,KAAK,IAAI;AAChC,UAAM,SAAS,mBAAmB,iBAAiB;AAEnD,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,cAAM,UAAU,QAAQ,aAAa,IAAI;AACzC,YAAI,CAAC,WAAW,CAAC,QAAQ,SAAU;AAEnC,YAAI,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,MAAM,GAAG;AACvG,gBAAM,gBAAiB,MAAqB;AAC5C,cAAI,iBAAiB,QAAQ,SAAS,aAAa,GAAG;AACpD;AAAA,UACF;AAAA,QACF;AAEA,cAAM,oBAAoB,QAAQ,aAAa,cAAa,yBAAyB;AACrF,YAAI,UAAU;AACd,YAAI,mBAAmB;AACrB,oBAAU,YAAY,eAAe,mBAAmB,iBAAiB;AAAA,QAC3E;AAEA,cAAM,YAAY,QAAQ,aAAa,GAAG,IAAI,MAAM;AACpD,YAAI,QAAS,QAAgB,QAAQ,QAAQ;AAE7C,YAAI,WAAW;AACb,gBAAMA,WAAU,KAAK,uBAAuB,OAAO,SAAS,SAAS,QAAQ,EAAE,MAAM,CAAC;AACtF,kBAAQ,YAAY,SAAS,UAAU,SAAS,IAAIA,QAAO;AAAA,QAC7D;AAEA,YAAI,OAAO,KAAK,SAAS,mBAAmB,SAAS,OAAO,MAAM,YAAY;AAC5E,eAAK,SAAS,mBAAmB,SAAS,OAAO,EAAE,OAAO,KAAK;AAAA,QACjE,OAAO;AACL,eAAK,SAAS,mBAAmB,SAAS,KAAK;AAAA,QACjD;AACA;AAAA,MAEF,KAAK;AACH,cAAM,SAAS,QAAQ,aAAa,IAAI;AACxC,YAAI,CAAC,OAAQ;AAEb,YAAI,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,OAAO,GAAG;AACjH,gBAAM,gBAAiB,MAAqB;AAC5C,cAAI,iBAAiB,QAAQ,SAAS,aAAa,GAAG;AACpD;AAAA,UACF;AAAA,QACF;AAEA,cAAM,UAAU,KAAK,uBAAuB,OAAO,SAAS,mBAAmB,MAAM;AACrF,cAAM,eAAe,QAAQ,aAAa,GAAG,IAAI,SAAS;AAC1D,YAAI,SAAS;AAMb,YAAI,QAAQ;AACV,sBAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,IAAI,MAAM,IAAI,OAAO;AAAA,QACzE;AAOA;AAAA,MAEF,KAAK;AACH,cAAM,cAAc,QAAQ,aAAa,IAAI;AAC7C,YAAI,CAAC,YAAa;AAElB,YAAI,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,OAAO,GAAG;AACjH,gBAAM,gBAAiB,MAAqB;AAC5C,cAAI,iBAAiB,QAAQ,SAAS,aAAa,GAAG;AACpD;AAAA,UACF;AAAA,QACF;AAEA,cAAM,aAAa,aAAa,qBAAqB,OAAO;AAC5D,cAAM,SAAS,CAAC;AAChB,cAAM,SAAS,OAAO;AACtB,eAAO,QAAQ,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM;AACtF,iBAAO,EAAE,MAAM,OAAO,MAAM,CAAC,IAAI;AAAA,QACnC,CAAC;AAED,cAAM,eAAe,KAAK,uBAAuB,OAAO,SAAS,mBAAmB,QAAQ,EAAE,OAAO,CAAC;AACtG,oBAAY,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,IAAI,WAAW,IAAI,YAAY;AACjF;AAAA,IACJ;AAAA,EACF;AAAA,EAEO,iBAAiB,UAAsC,QAAwC;AAEpG,UAAM,WAAW,oBAAI,IAAa;AAClC,UAAM,gBAAgB,QAAQ,aAAa,IAAI,QAAM,GAAG,QAAQ,KAAK,CAAC;AACtE,UAAM,QAAQ,cAAc,OAAO,CAAC,GAAG,cAAa,SAAS,CAAC,EAAE,OAAO,OAAO;AAC9E,QAAI,MAAM,QAAQ;AAChB,YAAM,WAAW,MAAM,IAAI,OAAK,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG;AAClD,gBAAU,iBAAiB,QAAQ,EAAE,QAAQ,QAAM,SAAS,IAAI,EAAE,CAAC;AAAA,IACrE;AAEA,WAAO;AAAA,EACT;AAAA,EAEO,WAAW,KAAU,YAA2C,QAA0B;AAC/F,eAAW,QAAQ,UAAQ;AACzB,UAAI,KAAK,aAAa,GAAG;AACvB,QAAC,KAAa,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAGD,SAAK,SAA2B,YAAY,cAAa,eAAe,CAAC,IAAI,cAAc;AACzF,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,UAAU,MAAM;AACrB,aAAG,QAAQ;AAAA,QACb;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAA2B,YAAY,cAAa,iBAAiB,CAAC,IAAI,cAAc;AAC3F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,YAAY,MAAM;AACvB,aAAG,UAAU;AAAA,QACf;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAA4B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC7F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,aAAa,MAAM;AACxB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAA2B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC5F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,aAAa,MAAM;AACxB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAA2B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC5F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,aAAa,MAAM;AACxB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAAsB,YAAY,cAAa,gBAAgB,CAAC,IAAI,cAAc;AACrF,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,WAAW,MAAM;AACtB,aAAG,SAAS;AAAA,QACd;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAA2B,YAAY,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC5F,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,aAAa,MAAM;AACxB,aAAG,WAAW;AAAA,QAChB;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAA4B,YAAY,cAAa,cAAc,CAAC,IAAI,cAAc;AACzF,YAAM,SAAS;AACf,UAAI,QAAQ;AACV,cAAM,OAAO,YAAY,OAAO,eAAe,QAAQ,GAAG;AAC1D,YAAI,GAAG,SAAS,MAAM;AACpB,aAAG,OAAO;AAAA,QACZ;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,SAAS,YAAY,cAAa,uBAAuB,CAAC,IAAI,cAAc;AAC/E,YAAM,MAAM,IAAI,IAAgC,KAAK,MAAM,SAAS,CAAC;AACrE,UAAI,QAAQ,CAAC,GAAG,MAAM;AAEpB,cAAM,gBAAgB,EAAE;AACxB,YAAI,eAAe,EAAE;AACrB,YAAI;AACJ,YAAI,EAAE,kBAAkB;AACtB,wBAAc,QAAQ,CAAAC,QAAM;AAC1B,gBAAI,IAAI,YAAY,KAAK,oBAAoBA,IAAG,KAAK;AACrD,2BAAe,aAAa,WAAWA,IAAG,QAAQ,MAAM,CAAC,GAAG;AAAA,UAC9D,CAAC;AACD,mBAAS,MAAM,eAAe;AAAA,QAChC,OAAO;AACL,wBAAc,QAAQ,CAAAA,QAAM;AAC1B,gBAAI,IAAI,YAAY,KAAK,oBAAoBA,IAAG,KAAK;AACrD,2BAAe,aAAa,WAAWA,IAAG,QAAQ,GAAG,CAAC,EAAE;AAAA,UAC1D,CAAC;AACD,mBAAS;AAAA,QACX;AACA,cAAM,OAAO,YAAY,OAAO,SAAS,0CAA0C,MAAM,IAAI,OAAO,OAAO,KAAK;AAAA,UAC9G,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,UACjD,CAAC;AAAA,QACH,CAAC,CAAC;AAEF,YAAI,SAAS,QAAQ,SAAS,QAAW;AACvC,aAAG,gBAAgB,CAAC;AAAA,QACtB,OAAO;AACL,aAAG,aAAa,GAAG,IAAI;AAAA,QACzB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAID,kBAAa,cAAc,QAAQ,QAAM;AACvC,WAAK,SAA2B,YAAY,cAAa,aAAa,kBAAkB,IAAI,CAACA,KAAI,cAAc;AAC7G,QAACA,IAAW,MAAM;AAAA,MACpB,CAAC;AAAA,IACH,CAAC;AAGD,kBAAa,UAAU,QAAQ,cAAY;AACzC,WAAK,SAAsB,YAAY,SAAS,MAAM,CAAC,IAAI,YAAY;AACrE,YAAI,SAAS;AACX,gBAAM,wBAAwB,GAAG,aAAa,cAAa,yBAAyB;AACpF,gBAAM,YAAY,GAAG,aAAa,GAAG,SAAS,IAAI,MAAM;AACxD,cAAI,UAAU;AACd,cAAI,uBAAuB;AACzB,sBAAU,YAAY,OAAO,eAAe,uBAAuB,GAAG;AAAA,UACxE;AACA,gBAAM,WAAW,KAAK,SAAS,KAAK,SAAS,OAAO;AACpD,cAAI,OAAO,aAAa,cAAc,UAAU;AAC9C,gBAAI,WAAY,GAAW,SAAS,QAAQ;AAC5C,gBAAI,WAAW;AACb,yBAAW,YAAY,OAAO,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,WAAW,SAAS,IAAI,OAAO,OAAO,SAAS,EAAE,UAAU,OAAO,OAAO,EAAE,SAAS,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,OAAO,UAAU,SAAS,cAAa,gBAAgB,QAAQ,SAAS,GAAG,GAAG,GAAG,QAAQ,eAAe,CAAC,EAAE,CAAC,CAAC;AAAA,YAChT;AACA,qBAAS,QAAQ;AAAA,UACnB,WAAW,UAAU;AACnB,gBAAI,WAAW;AACf,gBAAI,WAAW;AACb,yBAAW,YAAY,OAAO,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,WAAW,SAAS,IAAI,OAAO,OAAO,SAAS,EAAE,UAAU,OAAO,OAAO,EAAE,SAAS,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,OAAO,UAAU,SAAS,cAAa,gBAAgB,QAAQ,SAAS,GAAG,GAAG,GAAG,QAAQ,eAAe,CAAC,EAAE,CAAC,CAAC;AAAA,YAChT;AACA,gBAAI,aAAa,MAAM;AACrB,iBAAG,gBAAgB,SAAS,QAAQ;AAAA,YACtC,OAAO;AACL,cAAC,GAAW,SAAS,QAAQ,IAAI;AAAA,YACnC;AAAA,UACF,WAAW,aAAa,QAAW;AACjC,iBAAK,SAAS,KAAK,SAAU,GAAW,SAAS,QAAQ,CAAC;AAAA,UAC5D;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAGD,SAAK,mBAAmB,QAAQ,eAAa;AAC3C,YAAM,OAAO,GAAG,cAAa,UAAU,SAAS,SAAS;AACzD,WAAK,SAAsB,YAAY,MAAM,CAAC,SAAS,WAAW;AAChE,cAAM,UAAU,CAAC,UAAiB;AAChC,gBAAM,oBAAoB,KAAK,sBAAsB,OAAO;AAC5D,cAAI,CAAC,kBAAmB;AAExB,gBAAM,UAAU,KAAK,uBAAuB,OAAO,SAAS,mBAAmB,MAAM;AACrF,gBAAM,eAAe,QAAQ,aAAa,GAAG,IAAI,SAAS;AAC1D,cAAI,SAAS;AACb,cAAI,cAAc;AAChB,qBAAS,YAAY,OAAO,SAAkB,GAAG,KAAK,cAAc,MAAM,CAAC,WAAW,YAAY,IAAI,OAAO,KAAK;AAAA,UACpH;AACA,cAAI,QAAQ;AACV,wBAAY,OAAO,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,IAAI,MAAM,IAAI,OAAO;AAAA,UAChF;AAAA,QACF;AACA,gBAAQ,iBAAiB,WAAW,OAAO;AAAA,MAE7C,CAAC;AAAA,IACH,CAAC;AAGD,SAAK,SAAsB,YAAY,cAAa,gBAAgB,CAAC,IAAI,cAAc;AACrF,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,QAAQ;AACV,oBAAY,OAAO,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,KAAK,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UAC1F,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,YAC/C,GAAG,QAAQ;AAAA,UACb,CAAC;AAAA,QACH,CAAC,CAAC;AAAA,MACJ;AAAA,IACF,CAAC;AAGD,SAAK,gBAAgB,KAAK,YAAY,MAAM;AAC5C,SAAK,UAAU,KAAK,YAAY,QAAW,MAAM;AACjD,UAAM,WAAW,MAAM,KAAK,UAAU,EAAE,OAAO,QAAM,GAAG,aAAa,CAAC,EAAE,IAAI,QAAM,EAAa;AAC/F,aAAS,QAAQ,QAAM;AACrB,cAAQ,aAAa,OAAO,QAAM,GAAG,aAAa,GAAG,QAAQ,MAAM,IAAI,EAAE,QAAQ,QAAM,GAAG,SAAS,IAAI,GAAG,aAAa,GAAG,QAAQ,GAAI,GAAG,CAAC;AAAA,IAC5I,CAAC;AAAA,EACH;AAAA,EAEO,gBAAgB,KAAU,YAAoD,QAA0B;AAC7G,SAAK,SAA2B,YAAY,cAAa,wBAAwB,CAAC,IAAI,cAAc;AAClG,UAAI,CAAC,GAAG,aAAa;AACnB;AAAA,MACF;AACA,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,QAAQ;AACV,oBAAY,OAAO,SAAS,GAAG,KAAK,cAAc,MAAM,CAAC,KAAK,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UAC1F,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,YAC/C,GAAG,QAAQ;AAAA,UACb,CAAC;AAAA,QACH,CAAC,CAAC;AAAA,MACJ;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,UAAU,KAAU,UAAyC,SAAkB,QAA0B;AAE9G,SAAK,SAAS,UAAU,cAAa,eAAe,CAAC,IAAiB,cAAc;AAClF,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,cAAa,eAAe,QAAQ,OAAO,KAAK,YAAY,QAAW;AACzE,cAAM,OAAO,YAAY,OAAO,SAAS,4CAA4C,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UACjH,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,UACjD,CAAC;AAAA,QACH,CAAC,CAAC;AACF,YAAI,OAAO,SAAS,UAAU;AAC5B,eAAK,MAAM,GAAG,EAAE,QAAQ,SAAO;AAC7B,kBAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AACrD,gBAAI,OAAO,OAAO;AAChB,cAAC,GAAG,MAAc,GAAG,IAAI;AAAA,YAC3B;AAAA,UACF,CAAC;AAAA,QAEH,WAAW,MAAM,QAAQ,IAAI,GAAG;AAC9B,eAAK,QAAQ,SAAO;AAClB,kBAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AACrD,gBAAI,OAAO,OAAO;AAChB,cAAC,GAAG,MAAc,GAAG,IAAI;AAAA,YAC3B;AAAA,UACF,CAAC;AAAA,QAGH,OAAO;AACL,qBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAE/C,YAAC,GAAG,MAAc,GAAG,IAAI,UAAU,OAAO,OAAO,OAAO,KAAK;AAAA,UAE/D;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,SAAS,UAAU,cAAa,eAAe,CAAC,IAAI,cAAc;AACrE,UAAI,SAAS;AACb,UAAI,QAAQ;AACV,iBAAS,YAAY;AAAA,MACvB;AACA,UAAI,cAAa,eAAe,QAAQ,OAAO,KAAK,YAAY,QAAW;AACzE,cAAM,OAAO,YAAY,OAAO,SAAS,mCAAmC,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,UACxG,UAAU,OAAO,OAAO;AAAA,YACtB,SAAS;AAAA,YACT,WAAW,aAAa,qBAAqB,EAAE;AAAA,UACjD,CAAC;AAAA,QACH,CAAC,CAAC;AAGF,YAAI,OAAO,SAAS,UAAU;AAC5B,eAAK,MAAM,GAAG,EAAE,QAAQ,SAAO,GAAG,UAAU,IAAI,IAAI,KAAK,CAAC,CAAC;AAAA,QAC7D,WAAW,MAAM,QAAQ,IAAI,GAAG;AAC9B,eAAK,QAAQ,SAAO,GAAG,UAAU,IAAI,IAAI,KAAK,CAAC,CAAC;AAAA,QAClD,OAAO;AACL,qBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC/C,gBAAI,cAAc,aAAa;AAC7B,kBAAI,OAAO;AACT,mBAAG,UAAU,IAAI,IAAI,KAAK,CAAC;AAAA,cAC7B,OAAO;AACL,mBAAG,UAAU,OAAO,IAAI,KAAK,CAAC;AAAA,cAChC;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,SAA2B,UAAU,cAAa,eAAe,CAAC,IAAI,cAAc;AACvF,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,UAAU,KAAM,IAAG,QAAQ;AAAA,MACpC;AAAA,IACF,CAAC;AAED,SAAK,SAA2B,UAAU,cAAa,iBAAiB,CAAC,IAAI,cAAc;AACzF,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,YAAY,KAAM,IAAG,UAAU;AAAA,MACxC;AAAA,IACF,CAAC;AAED,SAAK,SAA4B,UAAU,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC3F,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,aAAa,KAAM,IAAG,WAAW;AAAA,MAC1C;AAAA,IACF,CAAC;AAED,SAAK,SAA2B,UAAU,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC1F,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,aAAa,KAAM,IAAG,WAAW;AAAA,MAC1C;AAAA,IACF,CAAC;AAED,SAAK,SAA2B,UAAU,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC1F,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,aAAa,KAAM,IAAG,WAAW;AAAA,MAC1C;AAAA,IACF,CAAC;AAED,SAAK,SAAsB,UAAU,cAAa,gBAAgB,CAAC,IAAI,cAAc;AACnF,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,WAAW,KAAM,IAAG,SAAS;AAAA,MACtC;AAAA,IACF,CAAC;AAED,SAAK,SAA2B,UAAU,cAAa,kBAAkB,CAAC,IAAI,cAAc;AAC1F,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,aAAa,KAAM,IAAG,WAAW;AAAA,MAC1C;AAAA,IACF,CAAC;AAED,SAAK,SAA4B,UAAU,cAAa,cAAc,CAAC,IAAI,cAAc;AACvF,UAAI,cAAa,eAAe,WAAW,OAAO,KAAK,YAAY,QAAW;AAC5E,cAAM,OAAO,YAAY,OAAO,eAAe,WAAW,GAAG;AAC7D,YAAI,GAAG,SAAS,KAAM,IAAG,OAAO;AAAA,MAClC;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,SAAsC,WAAmD,oBAAI,IAAI,GAAG,UAAkB,UAA0D;AACrL,UAAM,OAAO,oBAAI,IAAa;AAC9B,aAAS,QAAQ,QAAM;AACrB,UAAI,CAAC,IAAI;AACP;AAAA,MACF;AACA,UAAI,GAAG,aAAa,GAAG;AACrB,cAAM,IAAI;AACV,aAAK,IAAI,CAAC;AACV,UAAE,iBAAoB,IAAI,QAAQ,GAAG,EAAE,QAAQ,CAAAA,QAAM;AACnD,eAAK,IAAIA,GAAE;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AACD,SAAK,QAAQ,QAAM;AACjB,YAAM,OAAO,GAAG,aAAa,QAAQ;AACrC,YAAM,QAAQ,aAAa,qBAAqB,EAAE;AAClD,UAAI,MAAM;AACR,iBAAS,IAAS,MAAM,KAAK;AAAA,MAC/B;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,SAAkB,KAAU,MAAc,SAAkB;AACjE,QAAI,IAAI,YAAY,OAAO,eAAe,MAAM,GAAG;AACnD,QAAI,OAAO,MAAM,YAAY;AAC3B,UAAI,EAAE,KAAK,WAAW,GAAG;AAAA,IAC3B;AACA,WAAO;AAAA,EACT;AAAA,EAEO,SAAS,KAAU,MAAc,OAAa;AACnD,WAAO,KAAK,WAAW,SAAS,YAAY;AAC5C,gBAAY,SAAS,GAAG,IAAI,kBAAkB;AAAA,MAC5C,MAAM;AAAA,MACN;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,OAAc,eAAe,MAAiC,SAA6C;AACzG,QAAI,WAAW,MAAM;AACnB,UAAI,QAAQ,WAAW,OAAO,GAAG;AAC/B,kBAAU,QAAQ,QAAQ,UAAU,EAAE;AAAA,MACxC;AAEA,oBAAa,SAAS,QAAQ,QAAM;AAElC,eAAO,KAAM,QAAQ,OAAO,GAAG,QAAQ,KAAK,KAAK,GAAG,GAAG,GAAG,WAAW,EAAE,EAAE;AAAA,MAC3E,CAAC;AACD,YAAM,gBAAgB,YAAY,KAAK,qBAAqB,QAAQ,IAAI,EAAE,aAAa,KAAK,CAAC;AAC7F,aAAO,cAAc,IAAI,OAAO;AAAA,IAClC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAc,gBAAgB,SAA2C,KAA4C;AACnH,QAAI,SAAS;AACX,YAAM,aAAa,OAAO,OAAO,CAAC,GAAG,OAAO;AAC5C,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AACrD,YAAI,OAAO,UAAU,YAAY;AAC/B,qBAAW,GAAG,IAAI,MAAM,KAAK,GAAG;AAAA,QAClC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,cAAc,QAA0B;AACtC,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,aAAa,OAAO,QAAQ,OAAO,cAAc,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,WAAW,SAAS,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACjJ,eAAO,SAAS,GAAG,oBAAoB,GAAG;AAAA,MAC5C,CAAC,EAAE,KAAK,GAAG;AACX,aAAO,KAAK,aAAa,KAAK;AAAA,IAChC,OAAO;AACL,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AACF;AAtzBa,cACY,aAAa;AADzB,cAiBG,4BAA4B,cAAa,aAAa;AAjBzD,cAmBY,aAAa,cAAa,aAAa;AAnBnD,cAoBY,iBAAiB,cAAa,aAAa;AApBvD,cAqBY,gBAAgB,cAAa,aAAa;AArBtD,cAsBY,kBAAkB,cAAa,aAAa;AAtBxD,cAuBY,mBAAmB,cAAa,aAAa;AAvBzD,cAwBY,mBAAmB,cAAa,aAAa;AAxBzD,cAyBY,mBAAmB,cAAa,aAAa;AAzBzD,cA0BY,iBAAiB,cAAa,aAAa;AA1BvD,cA2BY,mBAAmB,cAAa,aAAa;AA3BzD,cA4BY,eAAe,cAAa,aAAa;AAAA;AA5BrD,cA+BG,YAAY;AAAA,EACxB,EAAE,MAAM,cAAa,aAAa,cAAc,UAAU,SAAS,OAAO,QAAQ;AAAA,EAClF,EAAE,MAAM,cAAa,aAAa,eAAe,UAAU,SAAS,OAAO,QAAQ;AAAA,EACnF,EAAE,MAAM,cAAa,aAAa,iBAAiB,UAAU,SAAS,OAAO,QAAQ;AAAA,EACrF,EAAE,MAAM,cAAa,aAAa,gBAAgB,UAAU,WAAW,OAAO,SAAS;AAAA,EACvF,EAAE,MAAM,cAAa,aAAa,aAAa,UAAU,QAAQ,OAAO,SAAS;AACnF;AAAA;AArCW,cAuCY,wBAAwB,cAAa,aAAa;AAvC9D,cAyCY,yBAAyB,cAAa,aAAa;AAzC/D,cA2CY,eAAe,cAAa,aAAa;AA3CrD,cA4CY,wBAAwB,cAAa,aAAa;AA5C9D,cA6CY,gBAAgB,cAAa,aAAa;AA7CtD,cA8CY,gBAAgB,cAAa,aAAa;AA9CtD,cAgDY,gBAAgB;AAhD5B,cAiDY,kBAAkB;AAjD9B,cAkDY,cAAc;AAlD1B,cAmDY,iBAAiB;AAnD7B,cAoDY,iBAAiB;AApD7B,cAqDY,oBAAoB;AArDhC,cAsDY,sBAAsB;AAtDlC,cAuDY,sBAAsB;AAvDlC,cAwDY,uBAAuB;AAxDnC,cAyDY,gBAAgB;AAzD5B,cA0DY,iBAAiB;AA1D7B,cA2DY,qBAAqB;AA3DjC,cA4DY,kBAAkB;AA5D9B,cA6DY,iBAAiB;AA7D7B,cA8DY,gBAAgB;AA9D5B,cA+DY,oBAAoB;AA/DhC,cAgEY,oBAAoB;AAhEhC,cAiEY,oBAAoB;AAjEhC,cAkEY,4BAA4B;AAlExC,cAmEY,2BAA2B;AAnEvC,cAoEY,uBAAuB;AApEnC,cAqEY,4BAA4B;AArExC,cAsEY,yBAAyB;AAtErC,cAuEY,WAAW,CAAC,cAAa,iBAAiB,cAAa,aAAa,cAAa,gBAAgB,cAAa,eAAe,cAAa,gBAAgB,cAAa,iBAAiB,cAAa,gBAAgB,cAAa,eAAe,cAAa,mBAAmB,cAAa,mBAAmB,cAAa,mBAAmB,cAAa,mBAAmB,cAAa,2BAA2B,cAAa,0BAA0B,cAAa,mBAAmB;AAvE5e,cAyEY,wBAAwB;AAzEpC,cA0EY,sBAAsB;AA1ElC,cA2EY,gBAAgB,CAAC,cAAa,uBAAuB,cAAa,mBAAmB;AA3EjG,cA4EY,eAAe,CAAC,cAAa,qBAAqB;AA5E9D,cA6EY,YAAY;AAAA,EACjC,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa;AAAA,EACb,cAAa,aAAa,kBAAkB,cAAa;AAAA,EACzD,cAAa,aAAa,kBAAkB,cAAa;AAAA,EACzD,cAAa;AAAA,EACb,GAAG,cAAa,UAAU,IAAI,QAAM,GAAG,IAAI;AAAA,EAC3C,cAAK;AACP;AA/FK,IAAM,eAAN;",
6
6
  "names": ["context", "it"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lifecycle/OnChangeAttrRender.ts"],
4
- "sourcesContent": ["import { RawSet } from '../rawsets/RawSet';\n\nexport type OtherData = {\n rawSet?: RawSet\n}\nexport interface OnChangeAttrRender {\n onChangeAttrRender(name: string, value: any, other: OtherData): void;\n}\n\nexport const isOnChangeAttrRender = (obj: any): obj is OnChangeAttrRender => {\n return typeof obj?.onChangeAttrRender === 'function';\n}\n"],
4
+ "sourcesContent": ["import { RawSet } from '../rawsets/RawSet';\n\nexport type OtherData = {\n rawSet?: RawSet\n}\nexport interface OnChangeAttrRender {\n onChangeAttrRender(name: string, value: any, other?: OtherData): void;\n}\n\nexport const isOnChangeAttrRender = (obj: any): obj is OnChangeAttrRender => {\n return typeof obj?.onChangeAttrRender === 'function';\n}\n"],
5
5
  "mappings": "AASO,MAAM,uBAAuB,CAAC,QAAwC;AACzE,SAAO,OAAO,KAAK,uBAAuB;AAC9C;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,7 @@
1
+ const isOnChildRawSetRendered = (obj) => {
2
+ return typeof obj?.onChildRawSetRendered === "function";
3
+ };
4
+ export {
5
+ isOnChildRawSetRendered
6
+ };
7
+ //# sourceMappingURL=OnChildRawSetRendered.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lifecycle/OnChildRawSetRendered.ts"],
4
+ "sourcesContent": ["import { RawSet, RenderResult } from '../rawsets/RawSet';\n\nexport type OnRawSetRenderedOtherData = {\n renderResult?: RenderResult\n // rawSet?: RawSet\n}\nexport interface OnChildRawSetRendered {\n onChildRawSetRendered (): Promise<void>;\n}\n\nexport const isOnChildRawSetRendered= (obj: any): obj is OnChildRawSetRendered => {\n return typeof obj?.onChildRawSetRendered === 'function';\n}\n"],
5
+ "mappings": "AAUO,MAAM,0BAAyB,CAAC,QAA2C;AAC9E,SAAO,OAAO,KAAK,0BAA0B;AACjD;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lifecycle/OnRawSetRendered.ts"],
4
- "sourcesContent": ["import { RawSet, RenderResult } from '../rawsets/RawSet';\n\nexport type OnRawSetRenderedOtherData = {\n path?: string\n renderResult?: RenderResult\n // rawSet?: RawSet\n}\nexport interface OnRawSetRendered {\n// TODO: \uD638\uCD9C\uB41C\uACF3\uC5D0\uC11C \uB610 \uBCC0\uC218\uB97C \uC218\uC815\uD558\uAC8C\uB418\uBA74 \uBB34\uD55C\uB8E8\uD504\uB2C8\uAE50 \uC660\uB9CC\uD558\uBA74 \uC0AC\uC6A9\uBABB\uD558\uAC8C \uD574\uC57C\uD55C\uB2E4.\n onRawSetRendered (rawSet: RawSet,otherData: OnRawSetRenderedOtherData): Promise<void>;\n}\n\nexport const isOnRawSetRendered= (obj: any): obj is OnRawSetRendered => {\n return typeof obj?.onRawSetRendered === 'function';\n}\n"],
5
- "mappings": "AAYO,MAAM,qBAAoB,CAAC,QAAsC;AACpE,SAAO,OAAO,KAAK,qBAAqB;AAC5C;",
4
+ "sourcesContent": ["import { RawSet, RenderResult } from '../rawsets/RawSet';\n\nexport type OnRawSetRenderedOtherData = {\n path?: string;\n value?: any;\n root: any;\n renderResult?: RenderResult\n // rawSet?: RawSet\n}\nexport interface OnRawSetRendered {\n// TODO: \uD638\uCD9C\uB41C\uACF3\uC5D0\uC11C \uB610 \uBCC0\uC218\uB97C \uC218\uC815\uD558\uAC8C\uB418\uBA74 \uBB34\uD55C\uB8E8\uD504\uB2C8\uAE50 \uC660\uB9CC\uD558\uBA74 \uC0AC\uC6A9\uBABB\uD558\uAC8C \uD574\uC57C\uD55C\uB2E4.\n onRawSetRendered (rawSet: RawSet,otherData: OnRawSetRenderedOtherData): Promise<void>;\n}\n\nexport const isOnRawSetRendered= (obj: any): obj is OnRawSetRendered => {\n return typeof obj?.onRawSetRendered === 'function';\n}\n"],
5
+ "mappings": "AAcO,MAAM,qBAAoB,CAAC,QAAsC;AACpE,SAAO,OAAO,KAAK,qBAAqB;AAC5C;",
6
6
  "names": []
7
7
  }
@@ -19,6 +19,13 @@ class Appender {
19
19
  }
20
20
  };
21
21
  }
22
+ get(key) {
23
+ const o = this.keyMap.get(key);
24
+ if (o !== void 0) {
25
+ return this[o];
26
+ }
27
+ return void 0;
28
+ }
22
29
  set(key, ...v) {
23
30
  const o = this.keyMap.get(key);
24
31
  if (o !== void 0) {
@@ -31,7 +38,7 @@ class Appender {
31
38
  delete(key) {
32
39
  const o = this.keyMap.get(key);
33
40
  if (o !== void 0) {
34
- this[o] = [];
41
+ this[o] = this[o].map((it) => void 0);
35
42
  this.keyMap.delete(key);
36
43
  }
37
44
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operators/Appender.ts"],
4
- "sourcesContent": ["export class Appender<T = any> implements Iterable<T> {\n // eslint-disable-next-line no-undef\n [key: number]: T[] | undefined;\n\n length = 0;\n\n keyMap: Map<string, number> = new Map();\n\n isAppender = true;\n constructor(...defaultDatas: T[]) {\n // console.log('defaultDatas', defaultDatas);\n this.push(...defaultDatas);\n // (this.childs as any).isAppender = true;\n }\n\n [Symbol.iterator](): Iterator<T> {\n const items = this.getAll();\n let idx = 0;\n return {\n next(value?: any): IteratorResult<T, any> {\n let r: IteratorResult<T> = {value: undefined, done: true};\n if (items.length > idx) {\n r = {value: items[idx], done: false};\n }\n idx++;\n return r;\n }\n }\n }\n\n set(key: string, ...v:T[]) {\n const o = this.keyMap.get(key);\n // console.log('set!!', o);\n if (o !== undefined) {\n this[o] = v;\n } else {\n this.keyMap.set(key, this.length);\n // console.log('setPush', v)\n this.push(...v);\n }\n }\n\n delete(key: string) {\n const o = this.keyMap.get(key);\n if (o !== undefined) {\n this[o] = [];\n this.keyMap.delete(key);\n // this.length--;\n }\n }\n\n\n getAll(): T[] {\n return this.getAlls().flat();\n }\n\n getAlls(): T[][] {\n const map = Array.from({length: this.length}).filter((it, idx) => this[idx]).map((it, idx) => this[idx]);\n return map as T[][];\n }\n\n push(...items: T[]): void {\n // console.log('----1>', items, items.length, this.length);\n if (items && items.length > 0) {\n (items as any).index = this.length;\n this[this.length++] = items;\n // this[this.length] = [];\n }\n // console.log('----2>', items, items.length, this.length);\n // console.log('---22->', this.length)\n // const appender = this.childs[this.lastIndex];\n // appender.values = items;\n // this.childs.push(new Appender(appender.index + 1));\n }\n\n // delete(idx: number): void {\n // // if (idx in this) {\n // // console.log('---------dele',idx)\n // // delete this[idx];\n // // this.length = this.length - 1;\n // // }\n // this.length = this.length - 1;\n // }\n\n // \uC778\uB371\uC2A4 \uC811\uADFC\uC744 \uC704\uD55C getter\uC640 setter \uCD94\uAC00\n // get(index: number): T | undefined {\n // return this.storage[index];\n // }\n //\n // set(index: number, value: T): void {\n // this.storage[index] = value;\n // this.length = Math.max(this.length, index + 1);\n // }\n\n\n clear(): void {\n // console.log('length', this.length);\n for (let i = 0; i < this.length; i++) {\n delete this[i];\n }\n this.keyMap.clear();\n this.length = 0;\n }\n}"],
5
- "mappings": "AAAO,MAAM,SAAyC;AAAA,EASpD,eAAe,cAAmB;AALlC,kBAAS;AAET,kBAA8B,oBAAI,IAAI;AAEtC,sBAAa;AAGX,SAAK,KAAK,GAAG,YAAY;AAAA,EAE3B;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAiB;AAC/B,UAAM,QAAQ,KAAK,OAAO;AAC1B,QAAI,MAAM;AACV,WAAO;AAAA,MACL,KAAK,OAAqC;AACxC,YAAI,IAAuB,EAAC,OAAO,QAAW,MAAM,KAAI;AACxD,YAAI,MAAM,SAAS,KAAK;AACtB,cAAI,EAAC,OAAO,MAAM,GAAG,GAAG,MAAM,MAAK;AAAA,QACrC;AACA;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,QAAgB,GAAO;AACzB,UAAM,IAAI,KAAK,OAAO,IAAI,GAAG;AAE7B,QAAI,MAAM,QAAW;AACnB,WAAK,CAAC,IAAI;AAAA,IACZ,OAAO;AACL,WAAK,OAAO,IAAI,KAAK,KAAK,MAAM;AAEhC,WAAK,KAAK,GAAG,CAAC;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,OAAO,KAAa;AAClB,UAAM,IAAI,KAAK,OAAO,IAAI,GAAG;AAC7B,QAAI,MAAM,QAAW;AACnB,WAAK,CAAC,IAAI,CAAC;AACX,WAAK,OAAO,OAAO,GAAG;AAAA,IAExB;AAAA,EACF;AAAA,EAGA,SAAc;AACZ,WAAO,KAAK,QAAQ,EAAE,KAAK;AAAA,EAC7B;AAAA,EAEA,UAAiB;AACf,UAAM,MAAM,MAAM,KAAK,EAAC,QAAQ,KAAK,OAAM,CAAC,EAAE,OAAO,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC;AACvG,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,OAAkB;AAExB,QAAI,SAAS,MAAM,SAAS,GAAG;AAC7B,MAAC,MAAc,QAAQ,KAAK;AAC5B,WAAK,KAAK,QAAQ,IAAI;AAAA,IAExB;AAAA,EAMF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,QAAc;AAEZ,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,aAAO,KAAK,CAAC;AAAA,IACf;AACA,SAAK,OAAO,MAAM;AAClB,SAAK,SAAS;AAAA,EAChB;AACF;",
4
+ "sourcesContent": ["export class Appender<T = any> implements Iterable<T> {\n // eslint-disable-next-line no-undef\n [key: number]: T[] | undefined;\n\n length = 0;\n\n keyMap: Map<string, number> = new Map();\n\n isAppender = true;\n constructor(...defaultDatas: T[]) {\n // console.log('defaultDatas', defaultDatas);\n this.push(...defaultDatas);\n // (this.childs as any).isAppender = true;\n }\n\n [Symbol.iterator](): Iterator<T> {\n const items = this.getAll();\n let idx = 0;\n return {\n next(value?: any): IteratorResult<T, any> {\n let r: IteratorResult<T> = {value: undefined, done: true};\n if (items.length > idx) {\n r = {value: items[idx], done: false};\n }\n idx++;\n return r;\n }\n }\n }\n\n get(key: string): T[] | undefined {\n const o = this.keyMap.get(key);\n if (o !== undefined) {\n return this[o];\n }\n return undefined;\n }\n set(key: string, ...v:T[]) {\n const o = this.keyMap.get(key);\n // console.log('set!!', o);\n if (o !== undefined) {\n this[o] = v;\n } else {\n this.keyMap.set(key, this.length);\n // console.log('setPush', v)\n this.push(...v);\n }\n }\n\n delete(key: string) {\n const o = this.keyMap.get(key);\n if (o !== undefined) {\n this[o] = this[o].map(it=> undefined);\n this.keyMap.delete(key);\n // this.length--;\n }\n }\n\n\n getAll(): T[] {\n return this.getAlls().flat();\n }\n\n getAlls(): T[][] {\n const map = Array.from({length: this.length}).filter((it, idx) => this[idx]).map((it, idx) => this[idx]);\n return map as T[][];\n }\n\n push(...items: T[]): void {\n // console.log('----1>', items, items.length, this.length);\n if (items && items.length > 0) {\n (items as any).index = this.length;\n this[this.length++] = items;\n // this[this.length] = [];\n }\n // console.log('----2>', items, items.length, this.length);\n // console.log('---22->', this.length)\n // const appender = this.childs[this.lastIndex];\n // appender.values = items;\n // this.childs.push(new Appender(appender.index + 1));\n }\n\n // delete(idx: number): void {\n // // if (idx in this) {\n // // console.log('---------dele',idx)\n // // delete this[idx];\n // // this.length = this.length - 1;\n // // }\n // this.length = this.length - 1;\n // }\n\n // \uC778\uB371\uC2A4 \uC811\uADFC\uC744 \uC704\uD55C getter\uC640 setter \uCD94\uAC00\n // get(index: number): T | undefined {\n // return this.storage[index];\n // }\n //\n // set(index: number, value: T): void {\n // this.storage[index] = value;\n // this.length = Math.max(this.length, index + 1);\n // }\n\n\n clear(): void {\n // console.log('length', this.length);\n for (let i = 0; i < this.length; i++) {\n delete this[i];\n }\n this.keyMap.clear();\n this.length = 0;\n }\n}"],
5
+ "mappings": "AAAO,MAAM,SAAyC;AAAA,EASpD,eAAe,cAAmB;AALlC,kBAAS;AAET,kBAA8B,oBAAI,IAAI;AAEtC,sBAAa;AAGX,SAAK,KAAK,GAAG,YAAY;AAAA,EAE3B;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAiB;AAC/B,UAAM,QAAQ,KAAK,OAAO;AAC1B,QAAI,MAAM;AACV,WAAO;AAAA,MACL,KAAK,OAAqC;AACxC,YAAI,IAAuB,EAAC,OAAO,QAAW,MAAM,KAAI;AACxD,YAAI,MAAM,SAAS,KAAK;AACtB,cAAI,EAAC,OAAO,MAAM,GAAG,GAAG,MAAM,MAAK;AAAA,QACrC;AACA;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,KAA8B;AAChC,UAAM,IAAI,KAAK,OAAO,IAAI,GAAG;AAC7B,QAAI,MAAM,QAAW;AACnB,aAAO,KAAK,CAAC;AAAA,IACf;AACA,WAAO;AAAA,EACT;AAAA,EACA,IAAI,QAAgB,GAAO;AACzB,UAAM,IAAI,KAAK,OAAO,IAAI,GAAG;AAE7B,QAAI,MAAM,QAAW;AACnB,WAAK,CAAC,IAAI;AAAA,IACZ,OAAO;AACL,WAAK,OAAO,IAAI,KAAK,KAAK,MAAM;AAEhC,WAAK,KAAK,GAAG,CAAC;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,OAAO,KAAa;AAClB,UAAM,IAAI,KAAK,OAAO,IAAI,GAAG;AAC7B,QAAI,MAAM,QAAW;AACnB,WAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,QAAK,MAAS;AACpC,WAAK,OAAO,OAAO,GAAG;AAAA,IAExB;AAAA,EACF;AAAA,EAGA,SAAc;AACZ,WAAO,KAAK,QAAQ,EAAE,KAAK;AAAA,EAC7B;AAAA,EAEA,UAAiB;AACf,UAAM,MAAM,MAAM,KAAK,EAAC,QAAQ,KAAK,OAAM,CAAC,EAAE,OAAO,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC;AACvG,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,OAAkB;AAExB,QAAI,SAAS,MAAM,SAAS,GAAG;AAC7B,MAAC,MAAc,QAAQ,KAAK;AAC5B,WAAK,KAAK,QAAQ,IAAI;AAAA,IAExB;AAAA,EAMF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,QAAc;AAEZ,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,aAAO,KAAK,CAAC;AAAA,IACf;AACA,SAAK,OAAO,MAAM;AAClB,SAAK,SAAS;AAAA,EAChB;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { OperatorExecuterAttrRequire } from "./OperatorExecuterAttrRequire.js";
2
- import { ScriptUtils } from "@dooboostore/core-web/script/ScriptUtils";
3
2
  import { RawSet } from "../rawsets/RawSet.js";
4
3
  import { ExecuteState } from "./OperatorExecuter.js";
4
+ import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
5
5
  class Dr extends OperatorExecuterAttrRequire {
6
6
  constructor(rawSet, render, returnContainer, elementSource, source, afterCallBack) {
7
7
  super(rawSet, render, returnContainer, elementSource, source, afterCallBack);
@@ -10,7 +10,7 @@ class Dr extends OperatorExecuterAttrRequire {
10
10
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);
11
11
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
12
12
  const newTemp = this.source.config.window.document.createElement("temp");
13
- ScriptUtils.evaluate(`
13
+ ObjectUtils.Script.evaluate(`
14
14
  ${this.render.bindScript}
15
15
  const n = $element.cloneNode(true);
16
16
  var destIt = ${this.elementSource.attrs.drItOption};
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operators/Dr.ts"],
4
- "sourcesContent": ["import {OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\n\nexport class Dr extends OperatorExecuterAttrRequire<null> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack);\n }\n\n async executeAttrRequire(data: null): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n ScriptUtils.evaluate(`\n ${this.render.bindScript}\n const n = $element.cloneNode(true);\n var destIt = ${this.elementSource.attrs.drItOption};\n if (destIt !== undefined) {\n n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\\\#it\\\\#/g, destIt)))\n // console.log('----', n.innerHTML);\n n.innerHTML = n.innerHTML.replace(/\\\\#it\\\\#/g, destIt);\n // console.log('----', n.innerHTML);\n }\n if (this.__render.drStripOption === 'true') {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__render.fag.append(n);\n }`, Object.assign(this.source.obj, {\n __render: Object.freeze({\n fag: newTemp,\n drStripOption: this.elementSource.attrs.drStripOption,\n ...this.render\n } as Render)\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config)\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n this.returnContainer.raws.push(...rr);\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
- "mappings": "AAAA,SAAQ,mCAAkC;AAC1C,SAAQ,mBAAkB;AAC1B,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAE3E,MAAM,WAAW,4BAAkC;AAAA,EACtD,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,aAAa;AAAA,EAC/E;AAAA,EAEA,MAAM,mBAAmB,MAAmC;AACxD,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AACvE,gBAAY,SAAS;AAAA,sBACP,KAAK,OAAO,UAAU;AAAA;AAAA,mCAET,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAW9C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC3C,UAAU,OAAO,OAAO;AAAA,QACpB,KAAK;AAAA,QACL,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,GAAG,KAAK;AAAA,MACZ,CAAW;AAAA,IACf,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AACxG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
4
+ "sourcesContent": ["import {OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\nimport {ObjectUtils} from \"@dooboostore/core/object/ObjectUtils\";\n\nexport class Dr extends OperatorExecuterAttrRequire<null> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack);\n }\n\n async executeAttrRequire(data: null): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n ObjectUtils.Script.evaluate(`\n ${this.render.bindScript}\n const n = $element.cloneNode(true);\n var destIt = ${this.elementSource.attrs.drItOption};\n if (destIt !== undefined) {\n n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\\\#it\\\\#/g, destIt)))\n // console.log('----', n.innerHTML);\n n.innerHTML = n.innerHTML.replace(/\\\\#it\\\\#/g, destIt);\n // console.log('----', n.innerHTML);\n }\n if (this.__render.drStripOption === 'true') {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__render.fag.append(n);\n }`, Object.assign(this.source.obj, {\n __render: Object.freeze({\n fag: newTemp,\n drStripOption: this.elementSource.attrs.drStripOption,\n ...this.render\n } as Render)\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config)\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n this.returnContainer.raws.push(...rr);\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
+ "mappings": "AAAA,SAAQ,mCAAkC;AAE1C,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAClF,SAAQ,mBAAkB;AAEnB,MAAM,WAAW,4BAAkC;AAAA,EACtD,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,aAAa;AAAA,EAC/E;AAAA,EAEA,MAAM,mBAAmB,MAAmC;AACxD,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AACvE,gBAAY,OAAO,SAAS;AAAA,sBACd,KAAK,OAAO,UAAU;AAAA;AAAA,mCAET,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAW9C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC3C,UAAU,OAAO,OAAO;AAAA,QACpB,KAAK;AAAA,QACL,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,GAAG,KAAK;AAAA,MACZ,CAAW;AAAA,IACf,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AACxG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { OperatorExecuterAttrRequire } from "./OperatorExecuterAttrRequire.js";
2
- import { ScriptUtils } from "@dooboostore/core-web/script/ScriptUtils";
3
2
  import { RawSet } from "../rawsets/RawSet.js";
4
3
  import { ExecuteState } from "./OperatorExecuter.js";
4
+ import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
5
5
  class DrAppender extends OperatorExecuterAttrRequire {
6
6
  constructor(rawSet, render, returnContainer, elementSource, source, afterCallBack) {
7
7
  source.operatorAround = void 0;
@@ -11,7 +11,7 @@ class DrAppender extends OperatorExecuterAttrRequire {
11
11
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);
12
12
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
13
13
  const newTemp = this.source.config.window.document.createElement("temp");
14
- ScriptUtils.evaluate(`
14
+ ObjectUtils.Script.evaluate(`
15
15
  try{
16
16
  ${this.render.bindScript}
17
17
  ${this.elementSource.attrs.drBeforeOption ?? ""}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operators/DrAppender.ts"],
4
- "sourcesContent": ["import {OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\n\nexport class DrAppender extends OperatorExecuterAttrRequire<string> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n source.operatorAround = undefined;\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack, false);\n }\n\n async executeAttrRequire(attr: string): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n ScriptUtils.evaluate(`\n try{\n ${this.render.bindScript}\n ${this.elementSource.attrs.drBeforeOption ?? ''}\n const ifWrap = document.createElement('div');\n // ifWrap.setAttribute('${RawSet.DR_STRIP_OPTIONNAME}', 'true');\n // ifWrap.setAttribute('${RawSet.DR_IF_NAME}', '${this.elementSource.attrs.drAppender} && ${this.elementSource.attrs.drAppender}.length > 0');\n const n = this.__render.element.cloneNode(true);\n Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drAppender' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));\n const length = ${this.elementSource.attrs.drAppender}.length;\n if (length > 0) {\n n.setAttribute('${RawSet.DR_FOR_OF_NAME}', '${this.elementSource.attrs.drAppender}[' + (length-1) + ']');\n n.setAttribute('${RawSet.DR_NEXT_OPTIONNAME}', '${this.elementSource.attrs.drAppender},' + length);\n } else {\n n.setAttribute('${RawSet.DR_FOR_OF_NAME}', '${this.elementSource.attrs.drAppender}[0]');\n n.setAttribute('${RawSet.DR_NEXT_OPTIONNAME}', '${this.elementSource.attrs.drAppender},' + 1);\n }\n // console.log('appender--->', Array.from(n.getAttributeNames()).map(it=>({name:it,attr: n.getAttribute(it)})));\n // const drOptionThis = n.getAttribute('${RawSet.DR_THIS_OPTIONNAME}');\n // if (drOptionThis) {\n // }\n // ifWrap.append(n);\n // this.__render.fag.append(ifWrap);\n this.__render.fag.append(n);\n ${this.elementSource.attrs.drAfterOption ?? ''}\n }catch(e){}\n `, Object.assign(this.source.obj, {\n __render: Object.freeze({\n drStripOption: this.elementSource.attrs.drStripOption,\n drAttr: this.elementSource.attrs,\n drAttrsOriginName: RawSet.drAttrsOriginName,\n fag: newTemp,\n ...this.render\n // eslint-disable-next-line no-use-before-define\n } as Render)\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config);\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n // const rrr = rr.flatMap(it => it.render(obj, config));// .flat();\n this.returnContainer.raws.push(...rr)\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
- "mappings": "AAAA,SAAQ,mCAAkC;AAC1C,SAAQ,mBAAkB;AAC1B,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAE3E,MAAM,mBAAmB,4BAAoC;AAAA,EAChE,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,WAAO,iBAAiB;AACxB,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,eAAe,KAAK;AAAA,EACtF;AAAA,EAEA,MAAM,mBAAmB,MAAqC;AAC1D,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AACvE,gBAAY,SAAS;AAAA;AAAA,sBAEP,KAAK,OAAO,UAAU;AAAA,sBACtB,KAAK,cAAc,MAAM,kBAAkB,EAAE;AAAA;AAAA,kDAEjB,OAAO,mBAAmB;AAAA,kDAC1B,OAAO,UAAU,OAAO,KAAK,cAAc,MAAM,UAAU,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA,yCAG9G,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA,8CAE9B,OAAO,cAAc,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA,8CAC/D,OAAO,kBAAkB,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA,8CAEnE,OAAO,cAAc,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA,8CAC/D,OAAO,kBAAkB,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA,kEAG/C,OAAO,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMrE,KAAK,cAAc,MAAM,iBAAiB,EAAE;AAAA;AAAA,uBAE3C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC1C,UAAU,OAAO,OAAO;AAAA,QACpB,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,QAAQ,KAAK,cAAc;AAAA,QAC3B,mBAAmB,OAAO;AAAA,QAC1B,KAAK;AAAA,QACL,GAAG,KAAK;AAAA;AAAA,MAEZ,CAAW;AAAA,IACf,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AAExG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
4
+ "sourcesContent": ["import {OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\nimport {ObjectUtils} from \"@dooboostore/core/object/ObjectUtils\";\n\nexport class DrAppender extends OperatorExecuterAttrRequire<string> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n source.operatorAround = undefined;\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack, false);\n }\n\n async executeAttrRequire(attr: string): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n ObjectUtils.Script.evaluate(`\n try{\n ${this.render.bindScript}\n ${this.elementSource.attrs.drBeforeOption ?? ''}\n const ifWrap = document.createElement('div');\n // ifWrap.setAttribute('${RawSet.DR_STRIP_OPTIONNAME}', 'true');\n // ifWrap.setAttribute('${RawSet.DR_IF_NAME}', '${this.elementSource.attrs.drAppender} && ${this.elementSource.attrs.drAppender}.length > 0');\n const n = this.__render.element.cloneNode(true);\n Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drAppender' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));\n const length = ${this.elementSource.attrs.drAppender}.length;\n if (length > 0) {\n n.setAttribute('${RawSet.DR_FOR_OF_NAME}', '${this.elementSource.attrs.drAppender}[' + (length-1) + ']');\n n.setAttribute('${RawSet.DR_NEXT_OPTIONNAME}', '${this.elementSource.attrs.drAppender},' + length);\n } else {\n n.setAttribute('${RawSet.DR_FOR_OF_NAME}', '${this.elementSource.attrs.drAppender}[0]');\n n.setAttribute('${RawSet.DR_NEXT_OPTIONNAME}', '${this.elementSource.attrs.drAppender},' + 1);\n }\n // console.log('appender--->', Array.from(n.getAttributeNames()).map(it=>({name:it,attr: n.getAttribute(it)})));\n // const drOptionThis = n.getAttribute('${RawSet.DR_THIS_OPTIONNAME}');\n // if (drOptionThis) {\n // }\n // ifWrap.append(n);\n // this.__render.fag.append(ifWrap);\n this.__render.fag.append(n);\n ${this.elementSource.attrs.drAfterOption ?? ''}\n }catch(e){}\n `, Object.assign(this.source.obj, {\n __render: Object.freeze({\n drStripOption: this.elementSource.attrs.drStripOption,\n drAttr: this.elementSource.attrs,\n drAttrsOriginName: RawSet.drAttrsOriginName,\n fag: newTemp,\n ...this.render\n // eslint-disable-next-line no-use-before-define\n } as Render)\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config);\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n // const rrr = rr.flatMap(it => it.render(obj, config));// .flat();\n this.returnContainer.raws.push(...rr)\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
+ "mappings": "AAAA,SAAQ,mCAAkC;AAE1C,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAClF,SAAQ,mBAAkB;AAEnB,MAAM,mBAAmB,4BAAoC;AAAA,EAChE,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,WAAO,iBAAiB;AACxB,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,eAAe,KAAK;AAAA,EACtF;AAAA,EAEA,MAAM,mBAAmB,MAAqC;AAC1D,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AACvE,gBAAY,OAAO,SAAS;AAAA;AAAA,sBAEd,KAAK,OAAO,UAAU;AAAA,sBACtB,KAAK,cAAc,MAAM,kBAAkB,EAAE;AAAA;AAAA,kDAEjB,OAAO,mBAAmB;AAAA,kDAC1B,OAAO,UAAU,OAAO,KAAK,cAAc,MAAM,UAAU,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA,yCAG9G,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA,8CAE9B,OAAO,cAAc,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA,8CAC/D,OAAO,kBAAkB,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA,8CAEnE,OAAO,cAAc,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA,8CAC/D,OAAO,kBAAkB,OAAO,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA,kEAG/C,OAAO,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMrE,KAAK,cAAc,MAAM,iBAAiB,EAAE;AAAA;AAAA,uBAE3C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC1C,UAAU,OAAO,OAAO;AAAA,QACpB,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,QAAQ,KAAK,cAAc;AAAA,QAC3B,mBAAmB,OAAO;AAAA,QAC1B,KAAK;AAAA,QACL,GAAG,KAAK;AAAA;AAAA,MAEZ,CAAW;AAAA,IACf,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AAExG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { OperatorExecuterAttrRequire } from "./OperatorExecuterAttrRequire.js";
2
- import { ScriptUtils } from "@dooboostore/core-web/script/ScriptUtils";
3
2
  import { RawSet } from "../rawsets/RawSet.js";
4
3
  import { ExecuteState } from "./OperatorExecuter.js";
4
+ import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
5
5
  class DrFor extends OperatorExecuterAttrRequire {
6
6
  constructor(rawSet, render, returnContainer, elementSource, source, afterCallBack) {
7
7
  source.operatorAround = void 0;
@@ -11,7 +11,7 @@ class DrFor extends OperatorExecuterAttrRequire {
11
11
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);
12
12
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
13
13
  const newTemp = this.source.config.window.document.createElement("temp");
14
- ScriptUtils.evaluate(`
14
+ ObjectUtils.Script.evaluate(`
15
15
  ${this.render.bindScript}
16
16
  ${this.elementSource.attrs.drBeforeOption ?? ""}
17
17
  for(${attr}) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operators/DrFor.ts"],
4
- "sourcesContent": ["import { OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\n\nexport class DrFor extends OperatorExecuterAttrRequire<string> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n source.operatorAround = undefined;\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack, false);\n }\n\n async executeAttrRequire(attr: string): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n // console.log('-----asdad',attr , this.elementSource.attrs.drItOption);\n ScriptUtils.evaluate(`\n ${this.render.bindScript}\n ${this.elementSource.attrs.drBeforeOption ?? ''}\n for(${attr}) {\n const n = this.__render.element.cloneNode(true);\n var destIt = ${this.elementSource.attrs.drItOption};\n if (destIt !== undefined) {\n n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\\\#it\\\\#/g, destIt).replace(/\\\\#nearForIt\\\\#/g, destIt).replace(/\\\\#nearForIndex\\\\#/g, destIt))) \n n.innerHTML = n.innerHTML.replace(/\\\\#it\\\\#/g, destIt).replace(/\\\\#index\\\\#/g, destIt);\n }\n if (this.__render.drStripOption === 'true') {\n Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));\n } else {\n this.__render.fag.append(n);\n }\n }\n ${this.elementSource.attrs.drAfterOption ?? ''}\n `, Object.assign(this.source.obj, {\n __render: Object.freeze({\n fag: newTemp,\n drStripOption: this.elementSource.attrs.drStripOption,\n ...this.render\n })\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config)\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n this.returnContainer.raws.push(...rr)\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,mCAAkC;AAC3C,SAAQ,mBAAkB;AAC1B,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAE3E,MAAM,cAAc,4BAAoC;AAAA,EAC3D,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,WAAO,iBAAiB;AACxB,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,eAAe,KAAK;AAAA,EACtF;AAAA,EAEA,MAAM,mBAAmB,MAAqC;AAC1D,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AAEvE,gBAAY,SAAS;AAAA,sBACP,KAAK,OAAO,UAAU;AAAA,sBACtB,KAAK,cAAc,MAAM,kBAAkB,EAAE;AAAA,0BACzC,IAAI;AAAA;AAAA,uCAES,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAWpD,KAAK,cAAc,MAAM,iBAAiB,EAAE;AAAA,uBAC3C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC1C,UAAU,OAAO,OAAO;AAAA,QACpB,KAAK;AAAA,QACL,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,GAAG,KAAK;AAAA,MACZ,CAAC;AAAA,IACL,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AACxG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
4
+ "sourcesContent": ["import { OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\nimport {ObjectUtils} from \"@dooboostore/core/object/ObjectUtils\";\n\nexport class DrFor extends OperatorExecuterAttrRequire<string> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n source.operatorAround = undefined;\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack, false);\n }\n\n async executeAttrRequire(attr: string): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n // console.log('-----asdad',attr , this.elementSource.attrs.drItOption);\n ObjectUtils.Script.evaluate(`\n ${this.render.bindScript}\n ${this.elementSource.attrs.drBeforeOption ?? ''}\n for(${attr}) {\n const n = this.__render.element.cloneNode(true);\n var destIt = ${this.elementSource.attrs.drItOption};\n if (destIt !== undefined) {\n n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\\\#it\\\\#/g, destIt).replace(/\\\\#nearForIt\\\\#/g, destIt).replace(/\\\\#nearForIndex\\\\#/g, destIt))) \n n.innerHTML = n.innerHTML.replace(/\\\\#it\\\\#/g, destIt).replace(/\\\\#index\\\\#/g, destIt);\n }\n if (this.__render.drStripOption === 'true') {\n Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));\n } else {\n this.__render.fag.append(n);\n }\n }\n ${this.elementSource.attrs.drAfterOption ?? ''}\n `, Object.assign(this.source.obj, {\n __render: Object.freeze({\n fag: newTemp,\n drStripOption: this.elementSource.attrs.drStripOption,\n ...this.render\n })\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config)\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n this.returnContainer.raws.push(...rr)\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,mCAAkC;AAE3C,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAClF,SAAQ,mBAAkB;AAEnB,MAAM,cAAc,4BAAoC;AAAA,EAC3D,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,WAAO,iBAAiB;AACxB,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,eAAe,KAAK;AAAA,EACtF;AAAA,EAEA,MAAM,mBAAmB,MAAqC;AAC1D,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AAEzE,gBAAY,OAAO,SAAS;AAAA,sBACZ,KAAK,OAAO,UAAU;AAAA,sBACtB,KAAK,cAAc,MAAM,kBAAkB,EAAE;AAAA,0BACzC,IAAI;AAAA;AAAA,uCAES,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAWpD,KAAK,cAAc,MAAM,iBAAiB,EAAE;AAAA,uBAC3C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC1C,UAAU,OAAO,OAAO;AAAA,QACpB,KAAK;AAAA,QACL,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,GAAG,KAAK;AAAA,MACZ,CAAC;AAAA,IACL,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AACxG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
6
6
  "names": []
7
7
  }
@@ -14,6 +14,10 @@ class DrForOf extends OperatorExecuterAttrRequire {
14
14
  const variableName = this.elementSource.element.getAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME);
15
15
  const itemVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME);
16
16
  const itemIndexVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME);
17
+ const hasVariableName = this.elementSource.element.hasAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME);
18
+ const hasItemVariableName = this.elementSource.element.hasAttribute(RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME);
19
+ const hasItemIndexVariableName = this.elementSource.element.hasAttribute(RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME);
20
+ const t0 = performance.now();
17
21
  ObjectUtils.Script.evaluate(`
18
22
  ${this.render.bindScript}
19
23
  ${this.elementSource.attrs.drBeforeOption ?? ""}
@@ -21,6 +25,7 @@ class DrForOf extends OperatorExecuterAttrRequire {
21
25
  const forOf = ${ObjectUtils.Path.toOptionalChainPath(attr)};
22
26
  const forOfStr = \`${attr}\`.trim();
23
27
  // console.log('forOf---',forOf);
28
+ // debugger;
24
29
  if (forOf) {
25
30
  for(const it of forOf) {
26
31
  i++;
@@ -39,16 +44,39 @@ class DrForOf extends OperatorExecuterAttrRequire {
39
44
  const n = this.__render.element.cloneNode(true);
40
45
  Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drForOf' && k !== 'drNextOption' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));
41
46
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\#it\\#/g, destIt).replace(/\\#nearForOfIt\\#/g, destIt).replace(/\\#it\\#/g, destIt).replace(/\\#nearForOfIndex\\#/g, i)))
42
- if ('${variableName}') {
47
+ if (${hasVariableName} && '${variableName}') {
43
48
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${variableName}#', forOfStr)));
44
49
  }
45
- if ('${itemVariableName}') {
50
+ if (${hasItemVariableName} && '${itemVariableName}') {
46
51
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemVariableName}#', destIt)));
47
52
  }
48
- if ('${itemIndexVariableName}') {
53
+ if (${hasItemIndexVariableName} && '${itemIndexVariableName}') {
49
54
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemIndexVariableName}#', i)));
50
55
  }
51
56
 
57
+ const hasDrOptionAttr = n.hasAttribute('${RawSet.DR_ATTR_OPTIONNAME}');
58
+ if (hasDrOptionAttr) {
59
+ const drOptionAttr = n.getAttribute('${RawSet.DR_ATTR_OPTIONNAME}');
60
+ const drOptionAttrResult = $scriptUtils.evaluateReturn(drOptionAttr, this);
61
+ Array.from(Object.entries(drOptionAttrResult??{})).forEach(([k,v])=>{
62
+ if (v === null) {
63
+ n.removeAttribute(k);
64
+ } else {
65
+ n.setAttribute(k,v);
66
+ }
67
+ })
68
+
69
+ }
70
+ const hasDrOptionIf = n.hasAttribute('${RawSet.DR_IF_OPTIONNAME}');
71
+ if (hasDrOptionIf) {
72
+ const drOptionIf = n.getAttribute('${RawSet.DR_IF_OPTIONNAME}');
73
+ const e = $scriptUtils.evaluateReturn(drOptionIf, this);
74
+ if(!e) {
75
+ continue;
76
+ }
77
+
78
+ }
79
+
52
80
  const drOptionAttr = n.getAttribute('${RawSet.DR_DETECT_ATTR_OPTIONNAME}');
53
81
  if (drOptionAttr) {
54
82
  const drOptionAttrResult = $scriptUtils.evaluateReturn(drOptionAttr, this);
@@ -71,13 +99,13 @@ class DrForOf extends OperatorExecuterAttrRequire {
71
99
  }
72
100
 
73
101
  n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt).replace(/\\#index\\#/g, i);
74
- if ('${variableName}') {
102
+ if (${hasVariableName} && '${variableName}') {
75
103
  n.innerHTML = n.innerHTML.replaceAll('#${variableName}#', forOfStr);
76
104
  }
77
- if ('${itemVariableName}') {
105
+ if (${hasItemVariableName} && '${itemVariableName}') {
78
106
  n.innerHTML = n.innerHTML.replaceAll('#${itemVariableName}#', destIt);
79
107
  }
80
- if ('${itemIndexVariableName}') {
108
+ if (${hasItemIndexVariableName} && '${itemIndexVariableName}') {
81
109
  n.innerHTML = n.innerHTML.replaceAll('#${itemIndexVariableName}#', i);
82
110
  }
83
111