@adaas/are 0.0.2
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.
- package/.conf/tsconfig.base.json +110 -0
- package/.conf/tsconfig.browser.json +43 -0
- package/.conf/tsconfig.node.json +47 -0
- package/.nvmrc +1 -0
- package/LICENSE +22 -0
- package/README.md +2 -0
- package/dist/browser/index.d.mts +1134 -0
- package/dist/browser/index.mjs +2624 -0
- package/dist/browser/index.mjs.map +1 -0
- package/dist/node/chunk-EQQGB2QZ.mjs +15 -0
- package/dist/node/chunk-EQQGB2QZ.mjs.map +1 -0
- package/dist/node/engines/html/AreHTML.compiler.d.mts +114 -0
- package/dist/node/engines/html/AreHTML.compiler.d.ts +114 -0
- package/dist/node/engines/html/AreHTML.compiler.js +408 -0
- package/dist/node/engines/html/AreHTML.compiler.js.map +1 -0
- package/dist/node/engines/html/AreHTML.compiler.mjs +398 -0
- package/dist/node/engines/html/AreHTML.compiler.mjs.map +1 -0
- package/dist/node/engines/html/AreHTML.engine.d.mts +36 -0
- package/dist/node/engines/html/AreHTML.engine.d.ts +36 -0
- package/dist/node/engines/html/AreHTML.engine.js +122 -0
- package/dist/node/engines/html/AreHTML.engine.js.map +1 -0
- package/dist/node/engines/html/AreHTML.engine.mjs +112 -0
- package/dist/node/engines/html/AreHTML.engine.mjs.map +1 -0
- package/dist/node/engines/html/index.d.mts +26 -0
- package/dist/node/engines/html/index.d.ts +26 -0
- package/dist/node/engines/html/index.js +17 -0
- package/dist/node/engines/html/index.js.map +1 -0
- package/dist/node/engines/html/index.mjs +5 -0
- package/dist/node/engines/html/index.mjs.map +1 -0
- package/dist/node/engines/json/AreJSON.compiler.d.mts +21 -0
- package/dist/node/engines/json/AreJSON.compiler.d.ts +21 -0
- package/dist/node/engines/json/AreJSON.compiler.js +24 -0
- package/dist/node/engines/json/AreJSON.compiler.js.map +1 -0
- package/dist/node/engines/json/AreJSON.compiler.mjs +17 -0
- package/dist/node/engines/json/AreJSON.compiler.mjs.map +1 -0
- package/dist/node/index-BD-6iOuR.d.ts +238 -0
- package/dist/node/index-DMXWCL7R.d.mts +238 -0
- package/dist/node/index.d.mts +40 -0
- package/dist/node/index.d.ts +40 -0
- package/dist/node/index.js +105 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/index.mjs +16 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.container.d.mts +22 -0
- package/dist/node/lib/AreApp/AreApp.container.d.ts +22 -0
- package/dist/node/lib/AreApp/AreApp.container.js +60 -0
- package/dist/node/lib/AreApp/AreApp.container.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.container.mjs +48 -0
- package/dist/node/lib/AreApp/AreApp.container.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.env.d.mts +2 -0
- package/dist/node/lib/AreApp/AreApp.env.d.ts +2 -0
- package/dist/node/lib/AreApp/AreApp.env.js +4 -0
- package/dist/node/lib/AreApp/AreApp.env.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.env.mjs +3 -0
- package/dist/node/lib/AreApp/AreApp.env.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.error.d.mts +6 -0
- package/dist/node/lib/AreApp/AreApp.error.d.ts +6 -0
- package/dist/node/lib/AreApp/AreApp.error.js +10 -0
- package/dist/node/lib/AreApp/AreApp.error.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.error.mjs +9 -0
- package/dist/node/lib/AreApp/AreApp.error.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.types.d.mts +2 -0
- package/dist/node/lib/AreApp/AreApp.types.d.ts +2 -0
- package/dist/node/lib/AreApp/AreApp.types.js +4 -0
- package/dist/node/lib/AreApp/AreApp.types.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.types.mjs +3 -0
- package/dist/node/lib/AreApp/AreApp.types.mjs.map +1 -0
- package/dist/node/lib/AreApp/index.d.mts +17 -0
- package/dist/node/lib/AreApp/index.d.ts +17 -0
- package/dist/node/lib/AreApp/index.js +24 -0
- package/dist/node/lib/AreApp/index.js.map +1 -0
- package/dist/node/lib/AreApp/index.mjs +6 -0
- package/dist/node/lib/AreApp/index.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.d.mts +238 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.d.ts +238 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.js +647 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.js.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.mjs +637 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.d.mts +8 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.d.ts +8 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.js +12 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.js.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.mjs +11 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.d.mts +2 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.d.ts +2 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.js +4 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.js.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.mjs +3 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/index.d.mts +17 -0
- package/dist/node/lib/AreCompiler/index.d.ts +17 -0
- package/dist/node/lib/AreCompiler/index.js +24 -0
- package/dist/node/lib/AreCompiler/index.js.map +1 -0
- package/dist/node/lib/AreCompiler/index.mjs +6 -0
- package/dist/node/lib/AreCompiler/index.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.component.d.mts +45 -0
- package/dist/node/lib/AreComponent/Are.component.d.ts +45 -0
- package/dist/node/lib/AreComponent/Are.component.js +165 -0
- package/dist/node/lib/AreComponent/Are.component.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.component.mjs +156 -0
- package/dist/node/lib/AreComponent/Are.component.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.constants.d.mts +32 -0
- package/dist/node/lib/AreComponent/Are.constants.d.ts +32 -0
- package/dist/node/lib/AreComponent/Are.constants.js +27 -0
- package/dist/node/lib/AreComponent/Are.constants.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.constants.mjs +27 -0
- package/dist/node/lib/AreComponent/Are.constants.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.context.d.mts +22 -0
- package/dist/node/lib/AreComponent/Are.context.d.ts +22 -0
- package/dist/node/lib/AreComponent/Are.context.js +45 -0
- package/dist/node/lib/AreComponent/Are.context.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.context.mjs +38 -0
- package/dist/node/lib/AreComponent/Are.context.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.types.d.mts +2 -0
- package/dist/node/lib/AreComponent/Are.types.d.ts +2 -0
- package/dist/node/lib/AreComponent/Are.types.js +4 -0
- package/dist/node/lib/AreComponent/Are.types.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.types.mjs +3 -0
- package/dist/node/lib/AreComponent/Are.types.mjs.map +1 -0
- package/dist/node/lib/AreComponent/index.d.mts +11 -0
- package/dist/node/lib/AreComponent/index.d.ts +11 -0
- package/dist/node/lib/AreComponent/index.js +31 -0
- package/dist/node/lib/AreComponent/index.js.map +1 -0
- package/dist/node/lib/AreComponent/index.mjs +7 -0
- package/dist/node/lib/AreComponent/index.mjs.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.context.d.mts +8 -0
- package/dist/node/lib/AreEvent/AreEvent.context.d.ts +8 -0
- package/dist/node/lib/AreEvent/AreEvent.context.js +34 -0
- package/dist/node/lib/AreEvent/AreEvent.context.js.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.context.mjs +27 -0
- package/dist/node/lib/AreEvent/AreEvent.context.mjs.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.types.d.mts +16 -0
- package/dist/node/lib/AreEvent/AreEvent.types.d.ts +16 -0
- package/dist/node/lib/AreEvent/AreEvent.types.js +4 -0
- package/dist/node/lib/AreEvent/AreEvent.types.js.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.types.mjs +3 -0
- package/dist/node/lib/AreEvent/AreEvent.types.mjs.map +1 -0
- package/dist/node/lib/AreEvent/index.d.mts +8 -0
- package/dist/node/lib/AreEvent/index.d.ts +8 -0
- package/dist/node/lib/AreEvent/index.js +19 -0
- package/dist/node/lib/AreEvent/index.js.map +1 -0
- package/dist/node/lib/AreEvent/index.mjs +5 -0
- package/dist/node/lib/AreEvent/index.mjs.map +1 -0
- package/dist/node/lib/AreIndex/AreIndex.context.d.mts +8 -0
- package/dist/node/lib/AreIndex/AreIndex.context.d.ts +8 -0
- package/dist/node/lib/AreIndex/AreIndex.context.js +142 -0
- package/dist/node/lib/AreIndex/AreIndex.context.js.map +1 -0
- package/dist/node/lib/AreIndex/AreIndex.context.mjs +141 -0
- package/dist/node/lib/AreIndex/AreIndex.context.mjs.map +1 -0
- package/dist/node/lib/AreIndex/index.d.mts +8 -0
- package/dist/node/lib/AreIndex/index.d.ts +8 -0
- package/dist/node/lib/AreIndex/index.js +12 -0
- package/dist/node/lib/AreIndex/index.js.map +1 -0
- package/dist/node/lib/AreIndex/index.mjs +4 -0
- package/dist/node/lib/AreIndex/index.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.constants.d.mts +36 -0
- package/dist/node/lib/AreNode/AreNode.constants.d.ts +36 -0
- package/dist/node/lib/AreNode/AreNode.constants.js +17 -0
- package/dist/node/lib/AreNode/AreNode.constants.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.constants.mjs +17 -0
- package/dist/node/lib/AreNode/AreNode.constants.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.entity.d.mts +8 -0
- package/dist/node/lib/AreNode/AreNode.entity.d.ts +8 -0
- package/dist/node/lib/AreNode/AreNode.entity.js +164 -0
- package/dist/node/lib/AreNode/AreNode.entity.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.entity.mjs +157 -0
- package/dist/node/lib/AreNode/AreNode.entity.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.error.d.mts +2 -0
- package/dist/node/lib/AreNode/AreNode.error.d.ts +2 -0
- package/dist/node/lib/AreNode/AreNode.error.js +4 -0
- package/dist/node/lib/AreNode/AreNode.error.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.error.mjs +3 -0
- package/dist/node/lib/AreNode/AreNode.error.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.types.d.mts +13 -0
- package/dist/node/lib/AreNode/AreNode.types.d.ts +13 -0
- package/dist/node/lib/AreNode/AreNode.types.js +4 -0
- package/dist/node/lib/AreNode/AreNode.types.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.types.mjs +3 -0
- package/dist/node/lib/AreNode/AreNode.types.mjs.map +1 -0
- package/dist/node/lib/AreNode/index.d.mts +9 -0
- package/dist/node/lib/AreNode/index.d.ts +9 -0
- package/dist/node/lib/AreNode/index.js +26 -0
- package/dist/node/lib/AreNode/index.js.map +1 -0
- package/dist/node/lib/AreNode/index.mjs +6 -0
- package/dist/node/lib/AreNode/index.mjs.map +1 -0
- package/dist/node/lib/AreProps/AreProps.context.d.mts +9 -0
- package/dist/node/lib/AreProps/AreProps.context.d.ts +9 -0
- package/dist/node/lib/AreProps/AreProps.context.js +32 -0
- package/dist/node/lib/AreProps/AreProps.context.js.map +1 -0
- package/dist/node/lib/AreProps/AreProps.context.mjs +25 -0
- package/dist/node/lib/AreProps/AreProps.context.mjs.map +1 -0
- package/dist/node/lib/AreProps/index.d.mts +3 -0
- package/dist/node/lib/AreProps/index.d.ts +3 -0
- package/dist/node/lib/AreProps/index.js +12 -0
- package/dist/node/lib/AreProps/index.js.map +1 -0
- package/dist/node/lib/AreProps/index.mjs +4 -0
- package/dist/node/lib/AreProps/index.mjs.map +1 -0
- package/dist/node/lib/AreRoot/AreRoot.component.d.mts +18 -0
- package/dist/node/lib/AreRoot/AreRoot.component.d.ts +18 -0
- package/dist/node/lib/AreRoot/AreRoot.component.js +53 -0
- package/dist/node/lib/AreRoot/AreRoot.component.js.map +1 -0
- package/dist/node/lib/AreRoot/AreRoot.component.mjs +41 -0
- package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +1 -0
- package/dist/node/lib/AreRoot/index.d.mts +11 -0
- package/dist/node/lib/AreRoot/index.d.ts +11 -0
- package/dist/node/lib/AreRoot/index.js +12 -0
- package/dist/node/lib/AreRoot/index.js.map +1 -0
- package/dist/node/lib/AreRoot/index.mjs +4 -0
- package/dist/node/lib/AreRoot/index.mjs.map +1 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.d.mts +17 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.d.ts +17 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.js +37 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.js.map +1 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.mjs +25 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.mjs.map +1 -0
- package/dist/node/lib/AreRouter/index.d.mts +12 -0
- package/dist/node/lib/AreRouter/index.d.ts +12 -0
- package/dist/node/lib/AreRouter/index.js +12 -0
- package/dist/node/lib/AreRouter/index.js.map +1 -0
- package/dist/node/lib/AreRouter/index.mjs +4 -0
- package/dist/node/lib/AreRouter/index.mjs.map +1 -0
- package/dist/node/lib/AreScene/AreScene.context.d.mts +8 -0
- package/dist/node/lib/AreScene/AreScene.context.d.ts +8 -0
- package/dist/node/lib/AreScene/AreScene.context.js +249 -0
- package/dist/node/lib/AreScene/AreScene.context.js.map +1 -0
- package/dist/node/lib/AreScene/AreScene.context.mjs +248 -0
- package/dist/node/lib/AreScene/AreScene.context.mjs.map +1 -0
- package/dist/node/lib/AreScene/AreScene.error.d.mts +14 -0
- package/dist/node/lib/AreScene/AreScene.error.d.ts +14 -0
- package/dist/node/lib/AreScene/AreScene.error.js +18 -0
- package/dist/node/lib/AreScene/AreScene.error.js.map +1 -0
- package/dist/node/lib/AreScene/AreScene.error.mjs +17 -0
- package/dist/node/lib/AreScene/AreScene.error.mjs.map +1 -0
- package/dist/node/lib/AreScene/AreScene.types.d.mts +9 -0
- package/dist/node/lib/AreScene/AreScene.types.d.ts +9 -0
- package/dist/node/lib/AreScene/AreScene.types.js +4 -0
- package/dist/node/lib/AreScene/AreScene.types.js.map +1 -0
- package/dist/node/lib/AreScene/AreScene.types.mjs +3 -0
- package/dist/node/lib/AreScene/AreScene.types.mjs.map +1 -0
- package/dist/node/lib/AreScene/index.d.mts +9 -0
- package/dist/node/lib/AreScene/index.d.ts +9 -0
- package/dist/node/lib/AreScene/index.js +24 -0
- package/dist/node/lib/AreScene/index.js.map +1 -0
- package/dist/node/lib/AreScene/index.mjs +6 -0
- package/dist/node/lib/AreScene/index.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.mts +7 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.ts +7 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js +12 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs +12 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.mts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.ts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js +95 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs +94 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.mts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.ts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js +4 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs +3 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/index.d.mts +19 -0
- package/dist/node/lib/AreSceneInstruction/index.d.ts +19 -0
- package/dist/node/lib/AreSceneInstruction/index.js +33 -0
- package/dist/node/lib/AreSceneInstruction/index.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/index.mjs +7 -0
- package/dist/node/lib/AreSceneInstruction/index.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.mts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.ts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js +27 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs +26 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.mts +20 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.ts +20 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js +27 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs +26 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.mts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.ts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js +23 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs +22 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.mts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.ts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js +27 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs +26 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.mts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.ts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js +41 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs +40 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.mts +15 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.ts +15 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js +21 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs +20 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.mts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.ts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js +23 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs +22 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.mts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.ts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js +34 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs +33 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.mts +16 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.ts +16 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js +20 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs +19 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/index.d.mts +18 -0
- package/dist/node/lib/AreSceneInstruction/types/index.d.ts +18 -0
- package/dist/node/lib/AreSceneInstruction/types/index.js +52 -0
- package/dist/node/lib/AreSceneInstruction/types/index.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/index.mjs +12 -0
- package/dist/node/lib/AreSceneInstruction/types/index.mjs.map +1 -0
- package/dist/node/lib/AreSlot/AreSlot.component.d.mts +8 -0
- package/dist/node/lib/AreSlot/AreSlot.component.d.ts +8 -0
- package/dist/node/lib/AreSlot/AreSlot.component.js +37 -0
- package/dist/node/lib/AreSlot/AreSlot.component.js.map +1 -0
- package/dist/node/lib/AreSlot/AreSlot.component.mjs +36 -0
- package/dist/node/lib/AreSlot/AreSlot.component.mjs.map +1 -0
- package/dist/node/lib/AreStore/AreStore.context.d.mts +10 -0
- package/dist/node/lib/AreStore/AreStore.context.d.ts +10 -0
- package/dist/node/lib/AreStore/AreStore.context.js +35 -0
- package/dist/node/lib/AreStore/AreStore.context.js.map +1 -0
- package/dist/node/lib/AreStore/AreStore.context.mjs +28 -0
- package/dist/node/lib/AreStore/AreStore.context.mjs.map +1 -0
- package/dist/node/lib/AreStore/index.d.mts +3 -0
- package/dist/node/lib/AreStore/index.d.ts +3 -0
- package/dist/node/lib/AreStore/index.js +12 -0
- package/dist/node/lib/AreStore/index.js.map +1 -0
- package/dist/node/lib/AreStore/index.mjs +4 -0
- package/dist/node/lib/AreStore/index.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.d.mts +89 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.d.ts +89 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.js +241 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.mjs +232 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.d.mts +80 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.d.ts +80 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.js +117 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.mjs +110 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.d.mts +9 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.d.ts +9 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.js +13 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.mjs +12 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.d.mts +132 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.d.ts +132 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.js +4 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.mjs +3 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/index.d.mts +12 -0
- package/dist/node/lib/AreSyntax/index.d.ts +12 -0
- package/dist/node/lib/AreSyntax/index.js +29 -0
- package/dist/node/lib/AreSyntax/index.js.map +1 -0
- package/dist/node/lib/AreSyntax/index.mjs +7 -0
- package/dist/node/lib/AreSyntax/index.mjs.map +1 -0
- package/dist/node/signals/AreInit.signal.d.mts +7 -0
- package/dist/node/signals/AreInit.signal.d.ts +7 -0
- package/dist/node/signals/AreInit.signal.js +13 -0
- package/dist/node/signals/AreInit.signal.js.map +1 -0
- package/dist/node/signals/AreInit.signal.mjs +12 -0
- package/dist/node/signals/AreInit.signal.mjs.map +1 -0
- package/dist/node/signals/AreRoute.signal.d.mts +12 -0
- package/dist/node/signals/AreRoute.signal.d.ts +12 -0
- package/dist/node/signals/AreRoute.signal.js +24 -0
- package/dist/node/signals/AreRoute.signal.js.map +1 -0
- package/dist/node/signals/AreRoute.signal.mjs +23 -0
- package/dist/node/signals/AreRoute.signal.mjs.map +1 -0
- package/dist/node/signals/index.d.mts +4 -0
- package/dist/node/signals/index.d.ts +4 -0
- package/dist/node/signals/index.js +17 -0
- package/dist/node/signals/index.js.map +1 -0
- package/dist/node/signals/index.mjs +5 -0
- package/dist/node/signals/index.mjs.map +1 -0
- package/docs/a-logo-docs.png +0 -0
- package/examples/jumpstart/concept.ts +60 -0
- package/examples/jumpstart/containers/UI.container.ts +172 -0
- package/examples/jumpstart/dist/index.html +22 -0
- package/examples/jumpstart/dist/mls3rrlq-lofs95.js +129 -0
- package/examples/jumpstart/dist/static/css/main.css +40 -0
- package/examples/jumpstart/dist/static/img/test.png +0 -0
- package/examples/jumpstart/public/index.html +22 -0
- package/examples/jumpstart/public/static/css/main.css +40 -0
- package/examples/jumpstart/public/static/img/test.png +0 -0
- package/examples/jumpstart/src/components/A-Btn.component.ts +124 -0
- package/examples/jumpstart/src/components/A-Input.component.ts +78 -0
- package/examples/jumpstart/src/components/A-Navigation.component.ts +167 -0
- package/examples/jumpstart/src/components/SignInComponent.component.ts +127 -0
- package/examples/jumpstart/src/concept.ts +92 -0
- package/jest.config.ts +26 -0
- package/package.json +92 -0
- package/src/engines/html/AreHTML.compiler.ts +657 -0
- package/src/engines/html/AreHTML.engine.ts +62 -0
- package/src/engines/html/index.ts +2 -0
- package/src/engines/json/AreJSON.compiler.ts +13 -0
- package/src/index.ts +15 -0
- package/src/lib/AreApp/AreApp.container.ts +77 -0
- package/src/lib/AreApp/AreApp.env.ts +0 -0
- package/src/lib/AreApp/AreApp.error.ts +7 -0
- package/src/lib/AreApp/AreApp.types.ts +0 -0
- package/src/lib/AreApp/index.ts +4 -0
- package/src/lib/AreCompiler/AreCompiler.component.ts +1023 -0
- package/src/lib/AreCompiler/AreCompiler.error.ts +9 -0
- package/src/lib/AreCompiler/AreCompiler.types.ts +0 -0
- package/src/lib/AreCompiler/index.ts +3 -0
- package/src/lib/AreComponent/Are.component.ts +203 -0
- package/src/lib/AreComponent/Are.constants.ts +39 -0
- package/src/lib/AreComponent/Are.context.ts +43 -0
- package/src/lib/AreComponent/Are.types.ts +0 -0
- package/src/lib/AreComponent/index.ts +4 -0
- package/src/lib/AreEvent/AreEvent.context.ts +38 -0
- package/src/lib/AreEvent/AreEvent.types.ts +16 -0
- package/src/lib/AreEvent/index.ts +2 -0
- package/src/lib/AreIndex/AreIndex.context.ts +174 -0
- package/src/lib/AreIndex/index.ts +1 -0
- package/src/lib/AreNode/AreNode.constants.ts +37 -0
- package/src/lib/AreNode/AreNode.entity.ts +249 -0
- package/src/lib/AreNode/AreNode.error.ts +0 -0
- package/src/lib/AreNode/AreNode.types.ts +15 -0
- package/src/lib/AreNode/index.ts +4 -0
- package/src/lib/AreProps/AreProps.context.ts +26 -0
- package/src/lib/AreProps/index.ts +1 -0
- package/src/lib/AreRoot/AreRoot.component.ts +54 -0
- package/src/lib/AreRoot/index.ts +1 -0
- package/src/lib/AreRouter/AreRouter.componeent.ts +24 -0
- package/src/lib/AreRouter/index.ts +1 -0
- package/src/lib/AreScene/AreScene.context.ts +382 -0
- package/src/lib/AreScene/AreScene.error.ts +22 -0
- package/src/lib/AreScene/AreScene.types.ts +7 -0
- package/src/lib/AreScene/index.ts +3 -0
- package/src/lib/AreSceneInstruction/AreSceneInstruction.constants.ts +7 -0
- package/src/lib/AreSceneInstruction/AreSceneInstruction.entity.ts +156 -0
- package/src/lib/AreSceneInstruction/AreSceneInstruction.types.ts +8 -0
- package/src/lib/AreSceneInstruction/index.ts +4 -0
- package/src/lib/AreSceneInstruction/types/AddAttribute.instruction.ts +34 -0
- package/src/lib/AreSceneInstruction/types/AddDirective.instruction.ts +36 -0
- package/src/lib/AreSceneInstruction/types/AddStyle.instruction.ts +26 -0
- package/src/lib/AreSceneInstruction/types/AddStyleProperty.instruction.ts +32 -0
- package/src/lib/AreSceneInstruction/types/AttachListener.instruction.ts +57 -0
- package/src/lib/AreSceneInstruction/types/AttachRootNode.instruction.ts +23 -0
- package/src/lib/AreSceneInstruction/types/MountNode.instruction.ts +29 -0
- package/src/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.ts +45 -0
- package/src/lib/AreSceneInstruction/types/UnmountNode.instruction.ts +22 -0
- package/src/lib/AreSceneInstruction/types/index.ts +10 -0
- package/src/lib/AreSlot/AreSlot.component.ts +48 -0
- package/src/lib/AreStore/AreStore.context.ts +36 -0
- package/src/lib/AreStore/index.ts +1 -0
- package/src/lib/AreSyntax/AreSyntax.component.ts +378 -0
- package/src/lib/AreSyntax/AreSyntax.context.ts +114 -0
- package/src/lib/AreSyntax/AreSyntax.error.ts +11 -0
- package/src/lib/AreSyntax/AreSyntax.types.ts +156 -0
- package/src/lib/AreSyntax/index.ts +4 -0
- package/src/signals/AreInit.signal.ts +7 -0
- package/src/signals/AreRoute.signal.ts +25 -0
- package/src/signals/index.ts +2 -0
- package/tests/A-HttpChannel.test.ts +204 -0
- package/tests/A-HttpServerError.test.ts +204 -0
- package/tests/A-Request.test.ts +742 -0
- package/tests/A-Service.test.ts +18 -0
- package/tsconfig.json +68 -0
- package/tslint.json +98 -0
- package/tsup.config.ts +78 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/engines/html/AreHTML.compiler.ts"],"names":["AreHTMLCompiler","AreCompiler","scene","AreScene","ASEID","index","AreIndex","AreNode","node","MountNodeInstruction","UnmountNodeInstruction","A_Frame","A_Feature","AreSceneInstructionFeatures","AttachRootNodeInstruction","A_Caller","A_Logger","A_ExecutionContext","AreSyntax","AddStyleInstruction","AttachListenerInstruction","AddAttributeInstruction","A_Scope","ReplaceInterpolationInstruction","AddDirectiveInstruction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA4BaA,uBAAA,GAAN,8BAA8BC,oBAAA,CAAY;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AA8aH,IAAA,IAAA,CAAA,sBAAA,uBAAgD,GAAA,EAAI;AAAA,EAAA;AAAA,EAhapD,gBAAA,CACI,MACA,IAAA,EACmB;AAEnB,IAAA,IAAI,IAAA,KAAS,MAAA,IAAa,IAAA,CAAK,IAAA,OAAW,EAAA,EAAI;AAC1C,MAAA,OAAO,IAAA;AAAA,IACX;AAEA,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,IAAI,CAAA,KAAA,KAAS,QAAA,CAAS,KAAA,EAAO,EAAE,CAAC,CAAA;AAChE,IAAA,IAAI,OAAA,GAA+B,IAAA;AAEnC,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AACzB,MAAA,IAAI,CAAC,OAAA,EAAS;AACV,QAAA,OAAO,MAAA;AAAA,MACX;AAGA,MAAA,MAAM,eAAA,GAAkB,KAAA,CAAM,IAAA,CAAK,OAAA,CAAQ,UAAU,CAAA,CAAE,MAAA;AAAA,QAAO,CAAA,KAAA,KAAS,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK,YAAA,IAC3F,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK,aAAA,IAAiB,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK;AAAA,OACrE;AAEA,MAAA,IAAI,KAAA,IAAS,gBAAgB,MAAA,EAAQ;AACjC,QAAA,OAAO,MAAA;AAAA,MACX;AAEA,MAAA,OAAA,GAAU,gBAAgB,KAAK,CAAA;AAAA,IACnC;AACA,IAAA,OAAO,OAAA;AAAA,EACX;AAAA,EAUA,iBAAiB,IAAA,EAAoC;AACjD,IAAA,MAAMC,OAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsBC,cAAQ,CAAA;AAEvD,IAAA,MAAM,IAAA,GAAO,SAAS,cAAA,CAAe,IAAIC,eAAMF,OAAA,CAAM,IAAA,CAAK,EAAE,CAAA,CAAE,EAAE,CAAA;AAEhE,IAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,IAAA,EAAMA,OAAA,CAAM,IAAI,CAAA;AAAA,EACjD;AAAA,EAWA,mBAAA,CACI,IAAA,EACA,IAAA,EACA,OAAA,EACI;AACJ,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,MAAM,CAAA,EAAG,EAAE,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACxD,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,gBAAA,CAAiB,IAAA,EAAM,UAAU,CAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,KAAA,CAAM,EAAE,CAAA,CAAE,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,IAAA,IAAI,aAAA,EAAe;AACf,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,aAAA,CAAc,QAAQ,CAAA,CAAE,MAAA,CAAO,CAAA,KAAA,KAAS,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK,YAAY,CAAA;AACxG,MAAA,IAAI,KAAA,IAAS,SAAS,MAAA,EAAQ;AAC1B,QAAA,aAAA,CAAc,YAAY,OAAO,CAAA;AAAA,MACrC,CAAA,MAAO;AACH,QAAA,aAAA,CAAc,YAAA,CAAa,OAAA,EAAS,QAAA,CAAS,KAAK,CAAC,CAAA;AAAA,MACvD;AAAA,IACJ;AAAA,EACJ;AAAA,EAUA,mBAAA,CACI,MACA,OAAA,EACI;AACJ,IAAA,MAAMA,OAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsBC,cAAQ,CAAA;AACvD,IAAA,MAAM,IAAA,GAAO,SAAS,cAAA,CAAe,IAAIC,eAAMF,OAAA,CAAM,IAAA,CAAK,EAAE,CAAA,CAAE,EAAE,CAAA;AAChE,IAAA,IAAA,CAAK,mBAAA,CAAoB,IAAA,EAAMA,OAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,EACtD;AAAA,EASA,MACI,IAAA,EACF;AACE,IAAA,MAAMG,OAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsBC,cAAQ,CAAA;AACvD,IAAA,MAAMJ,OAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsBC,cAAQ,CAAA;AAEvD,IAAAE,OAAA,CAAM,KAAA,EAAM;AACZ,IAAAH,OAAA,CAAM,KAAA,EAAM;AAGZ,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC5C,IAAA,OAAA,CAAQ,YAAY,IAAA,CAAK,QAAA;AAGzB,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,4BAAA,CAA6B,IAAA,CAAK,QAAQ,CAAA;AAEjE,IAAA,IAAA,CAAK,oBAAA,CAAqB,OAAA,EAASG,OAAA,EAAO,IAAI,SAAS,CAAA;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,6BAA6B,QAAA,EAAuC;AACxE,IAAA,MAAM,SAAA,uBAAgB,GAAA,EAAoB;AAC1C,IAAA,MAAM,WAAA,GAAc,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAChD,IAAA,WAAA,CAAY,SAAA,GAAY,QAAA;AAGxB,IAAA,IAAA,CAAK,eAAA,CAAgB,WAAA,EAAa,EAAC,EAAG,SAAS,CAAA;AAE/C,IAAA,OAAO,SAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKQ,eAAA,CACJ,aAAA,EACA,UAAA,EACA,SAAA,EACI;AACJ,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,aAAA,CAAc,QAAQ,CAAA;AAElD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACtC,MAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,MAAA,MAAM,WAAA,GAAc,CAAC,GAAG,UAAA,EAAY,CAAC,CAAA;AACrC,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,IAAA,CAAK,GAAG,CAAA;AAGpC,MAAA,SAAA,CAAU,GAAA,CAAI,OAAA,EAAS,OAAA,CAAQ,SAAS,CAAA;AAAA,IAM5C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAA,CACJ,aAAA,EACA,KAAA,EACA,UAAA,EACA,SAAA,EACI;AACJ,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,aAAA,CAAc,QAAQ,CAAA;AAElD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACtC,MAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,MAAA,MAAM,WAAA,GAAc,CAAC,GAAG,UAAA,EAAY,CAAC,CAAA;AACrC,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,IAAA,CAAK,GAAG,CAAA;AAGpC,MAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,GAAA,CAAI,OAAO,CAAA;AAI5C,MAAA,MAAM,OAAA,GAAU,IAAIE,YAAA,CAAQ;AAAA,QACxB,OAAO,KAAA,CAAM,IAAA;AAAA,QACb,SAAA,EAAW,OAAA,CAAQ,OAAA,CAAQ,WAAA,EAAY;AAAA,QACvC,MAAA,EAAQ,kBAAkB,OAAA,CAAQ,SAAA;AAAA,QAClC,UAAU,OAAA,CAAQ;AAAA,OACrB,CAAA;AAGD,MAAA,KAAA,CAAM,GAAA,CAAI,OAAA,EAAS,WAAA,CAAY,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA,IAM5C;AAAA,EACJ;AAAA,EAaA,8BAAA,CACwB,aAEA,MAAA,EACtB;AACE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AAGzB,IAAA,MAAM,WAAA,GAAc,QAAA,CAAS,cAAA,CAAe,IAAA,CAAK,EAAE,CAAA;AAEnD,IAAA,IAAI,CAAC,WAAA,EAAa;AACd,MAAA,MAAA,EAAQ,OAAA,CAAQ,CAAA,sBAAA,EAAyB,IAAA,CAAK,EAAE,CAAA,mBAAA,CAAqB,CAAA;AACrE,MAAA;AAAA,IACJ;AACA,IAAA,WAAA,CAAY,YAAY,IAAA,CAAK,QAAA;AAE7B,IAAA,WAAA,CAAY,YAAA,CAAa,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAAA,EAE3D;AAAA,EAQA,yBAAA,CACwB,WAAA,EACU,OAAA,EAKT,MAAA,EAED,MAAA,EACtB;AACE,IAAA,IAAI;AAEA,MAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,MAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAE1B,MAAA,IAAI,MAAA,CAAO,YAAA,CAAa,IAAI,CAAA,EAAG;AAE3B,QAAA,MAAA,EAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,WAAA,GAAc,CAAA,eAAA,EAAkB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,SAAA,CAAW,CAAA;AACxH,QAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAE5C,QAAA,OAAA,CAAQ,YAAA,CAAa,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAEnD,QAAA,OAAA,CAAQ,YAAY,IAAA,CAAK,QAAA;AAEzB,QAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAG1C,QAAA,IAAI,CAAC,OAAA,EAAS;AACV,UAAA,IAAA,CAAK,mBAAA,CAAoB,MAAM,OAAO,CAAA;AAAA,QAC1C,CAAA,MAAO;AACH,UAAC,OAAA,CAAS,YAAY,OAAO,CAAA;AAAA,QACjC;AAAA,MACJ;AAAA,IAEJ,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AAAA,EAQA,2BAAA,CACwB,WAAA,EACU,OAAA,EAMV,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAE1C,IAAA,MAAA,EAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,WAAA,GAAc,CAAA,iBAAA,EAAoB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAEjH,IAAA,IAAI;AAGA,MAAA,OAAA,CAAQ,WAAA,CAAY,QAAA,CAAS,aAAA,CAAc,CAAA,iBAAA,EAAoB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,GAAG,CAAC,CAAA;AAErH,MAAA,IAAA,CAAK,OAAA,EAAQ;AAAA,IACjB,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AAAA,EAOA,wBAAA,CACwB,WAAA,EACU,OAAA,EAOV,MAAA,EACtB;AAEE,IAAA,IAAI;AAGA,MAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,MAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,MAAA,EAAQ,MAAA,IAAU,EAAA;AAE7C,MAAA,MAAA,EAAQ,KAAA,CAAM,OAAA,EAAS,KAAA,CAAM,WAAA,GAAc,CAAA,0BAAA,EAA6B,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAE5H,MAAA,MAAM,cAAA,GAAiB,CAAA,QAAA,EAAW,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,CAAA;AACnD,MAAA,IAAI,YAAA,GAAe,QAAA,CAAS,aAAA,CAAc,CAAA,CAAA,EAAI,cAAc,CAAA,CAAE,CAAA;AAE9D,MAAA,IAAI,CAAC,YAAA,EAAc;AACf,QAAA,YAAA,GAAe,QAAA,CAAS,cAAc,OAAO,CAAA;AAC7C,QAAA,YAAA,CAAa,EAAA,GAAK,cAAA;AAClB,QAAA,QAAA,CAAS,IAAA,CAAK,YAAY,YAAY,CAAA;AAAA,MAC1C;AACA,MAAA,YAAA,CAAa,SAAA,GAAY,MAAA;AAAA,IAE7B,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AAAA,EAQA,8BAAA,CACwB,WAAA,EACU,OAAA,EAMV,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAgB,OAAA,CAAQ,GAAA,CAAI,SAAS;AAErC,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,WAAA,CAAY,IAAI,CAAA;AACtD,IAAmB,OAAA,CAAQ,GAAA,CAAI,YAAY;AAE3C,IAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,KAAA,CAAM,WAAA,GAAc,CAAA,oBAAA,EAAuB,YAAY,QAAA,CAAS,IAAI,CAAA,cAAA,EAAiB,IAAA,CAAK,MAAM,MAAM,CAAA,SAAA,EAAY,KAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAEhK,IAAA,OAAA,CAAQ,gBAAA,CAAiB,WAAA,CAAY,QAAA,CAAS,IAAA,EAAM,YAAY,QAAyB,CAAA;AAAA,EAC7F;AAAA,EAOA,4BAAA,CACwB,WAAA,EACU,OAAA,EAKX,KAAA,EAEC,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAgB,OAAA,CAAQ,GAAA,CAAI,SAAS;AAErC,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAE1C,IAAA,MAAA,EAAQ,KAAA,CAAM,SAAS,KAAA,CAAM,WAAA,GAAc,sBAAsB,WAAA,CAAY,IAAI,MAAM,WAAA,CAAY,KAAK,iBAAiB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,MAAM,QAAA,EAAU,IAAI,OAAO,CAAA;AAEtL,IAAA,OAAA,CAAQ,YAAA,CAAa,WAAA,CAAY,IAAA,EAAM,WAAA,CAAY,KAAK,CAAA;AAAA,EAC5D;AAAA,EAOA,kBACwB,WAAA,EACtB;AACE,IAAA,IAAA,CAAK,sBAAA,CAAuB,MAAA,CAAO,WAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAAA,EACnE;AAAA,EASA,oCAAA,CACwB,WAAA,EACU,OAAA,EAKX,KAAA,EACE,QAED,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAE1C,IAAA,MAAA,EAAQ,MAAM,SAAA,EAAW,KAAA,CAAM,WAAA,GAAc,CAAA,yBAAA,EAA4B,YAAY,aAAA,CAAc,IAAI,CAAA,cAAA,EAAiB,WAAA,CAAY,KAAK,CAAA,cAAA,EAAiB,IAAA,CAAK,KAAA,CAAM,MAAM,KAAK,WAAW,CAAA;AAE3L,IAAA,MAAM,WAAW,IAAA,CAAK,sBAAA,CAAuB,IAAI,WAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAE7E,IAAA,IAAI,QAAA,EAAU;AACV,MAAA,QAAA,CAAS,YAAY,WAAA,CAAY,KAAA;AAAA,IACrC,CAAA,MAAO;AAEH,MAAA,MAAM,sBAAsB,QAAA,CAAS,gBAAA;AAAA,QACjC,OAAA;AAAA,QACA,UAAA,CAAW,SAAA;AAAA,QACX;AAAA,UACI,UAAA,EAAY,CAACC,KAAAA,KAAS;AAClB,YAAA,IAAIA,KAAAA,CAAK,aAAaA,KAAAA,CAAK,SAAA,CAAU,SAAS,WAAA,CAAY,aAAA,CAAc,GAAG,CAAA,EAAG;AAC1E,cAAA,OAAO,UAAA,CAAW,aAAA;AAAA,YACtB;AACA,YAAA,OAAO,UAAA,CAAW,aAAA;AAAA,UACtB;AAAA;AACJ,OACJ;AAEA,MAAA,MAAM,SAAA,GAAY,oBAAoB,QAAA,EAAS;AAI/C,MAAA,IAAI,SAAA,EAAW;AACX,QAAA,MAAM,QAAQ,SAAA,CAAU,SAAA,CAAW,KAAA,CAAM,WAAA,CAAY,cAAc,GAAG,CAAA;AAEtE,QAAA,MAAM,SAAS,SAAA,CAAU,UAAA;AAEzB,QAAA,IAAI,MAAA,EAAQ;AACR,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACnC,YAAA,MAAM,IAAA,GAAO,MAAM,CAAC,CAAA;AAEpB,YAAA,IAAI,IAAA,EAAM;AACN,cAAA,MAAM,YAAA,GAAe,QAAA,CAAS,cAAA,CAAe,IAAI,CAAA;AACjD,cAAA,MAAA,CAAO,YAAA,CAAa,cAAc,SAAS,CAAA;AAAA,YAC/C;AAEA,YAAA,IAAI,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACtB,cAAA,MAAM,SAAA,GAAY,QAAA,CAAS,cAAA,CAAe,WAAA,CAAY,KAAK,CAAA;AAC3D,cAAA,MAAA,CAAO,YAAA,CAAa,WAAW,SAAS,CAAA;AAGxC,cAAA,IAAA,CAAK,uBAAuB,GAAA,CAAI,WAAA,CAAY,KAAA,CAAM,QAAA,IAAY,SAAS,CAAA;AAAA,YAC3E;AAAA,UACJ;AAGA,UAAA,MAAA,CAAO,YAAY,SAAS,CAAA;AAAA,QAChC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EASA,2BAAA,CACwB,WAAA,EAED,KAAA,EAEC,MAAA,EACtB;AACE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAMN,OAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsBC,cAAQ,CAAA;AACvD,IAAA,MAAM,cAAc,WAAA,CAAY,KAAA;AAEhC,IAAA,MAAA,EAAQ,MAAM,OAAA,EAASD,OAAA,CAAM,cAAc,CAAA,wBAAA,EAA2B,WAAA,CAAY,UAAU,IAAI,CAAA,YAAA,EAAe,KAAK,KAAA,CAAM,MAAM,YAAY,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA,CAAA,EAAIA,SAAO,WAAW,CAAA;AAGvL,IAAA,QAAQ,WAAA,CAAY,UAAU,IAAA;AAAM,MAChC,KAAK,KAAA,EAAO;AACR,QAAA,MAAM,gBAAA,GAAmB,IAAIO,qCAAA,CAAqB,IAAA,EAAMP,QAAM,IAAI,CAAA;AAClE,QAAA,MAAM,kBAAA,GAAqB,IAAIQ,uCAAA,CAAuB,IAAA,EAAMR,QAAM,IAAI,CAAA;AAGtE,QAAA,IAAI,YAAY,KAAA,EAAO;AACnB,UAAA,WAAA,CAAY,OAAO,kBAAkB,CAAA;AAErC,UAAA,WAAA,CAAY,KAAK,gBAAgB,CAAA;AACjC,UAAA,WAAA,CAAY,UAAU,gBAAgB,CAAA;AAAA,QAC1C,CAAA,MAAO;AACH,UAAA,WAAA,CAAY,OAAO,gBAAgB,CAAA;AAEnC,UAAA,WAAA,CAAY,KAAK,kBAAkB,CAAA;AACnC,UAAA,WAAA,CAAY,UAAU,kBAAkB,CAAA;AAAA,QAC5C;AA8BA,QAAA;AAAA,MACJ;AAAA,MACA;AACI,QAAA,MAAA,EAAQ,OAAA,CAAQ,CAAA,mBAAA,EAAsB,WAAA,CAAY,SAAA,CAAU,IAAI,CAAA,YAAA,EAAe,IAAA,CAAK,IAAI,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAAA;AACnI,EAMJ;AAAA,EAOA,4BAAA,CACwB,WAAA,EACU,OAAA,EAKX,KAAA,EAEC,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAgB,IAAA,CAAK,gBAAA,CAAiB,IAAI;AAE1C,IAAA,IAAI;AAEA,MAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,KAAA,CAAM,cAAc,CAAA,oBAAA,EAAuB,WAAA,CAAY,UAAU,IAAI,CAAA,YAAA,EAAe,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,MAAM,QAAA,EAAU,IAAI,WAAW,CAAA;AAAA,IAchL,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AACJ;AAtmBI,eAAA,CAAA;AAAA,EAHCS,eAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EAbQX,uBAAA,CAcT,SAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AAuCA,eAAA,CAAA;AAAA,EAHCW,eAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EApDQX,uBAAA,CAqDT,SAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AAiBA,eAAA,CAAA;AAAA,EAHCW,eAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EArEQX,uBAAA,CAsET,SAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;AA0BA,eAAA,CAAA;AAAA,EAHCW,eAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EA/FQX,uBAAA,CAgGT,SAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;AAgBA,eAAA,CAAA;AAAA,EAHCW,eAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EA/GQX,uBAAA,CAgHT,SAAA,EAAA,OAAA,EAAA,CAAA,CAAA;AA4GA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACC,0CAAyB;AAAA,GACpC,CAAA;AAAA,EAEI,qCAASC,iBAAQ,CAAA,CAAA;AAAA,EAEjB,qCAASC,gBAAQ,CAAA;AAAA,CAAA,EA/NbhB,uBAAA,CA4NT,SAAA,EAAA,gCAAA,EAAA,CAAA,CAAA;AA0BA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACJ,qCAAoB;AAAA,GAC/B,CAAA;AAAA,EAEI,qCAASM,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASE,6BAAkB,CAAA,CAAA;AAAA,EAK3B,qCAASC,gBAAS,CAAA,CAAA;AAAA,EAElB,qCAASF,gBAAQ,CAAA;AAAA,CAAA,EA/PbhB,uBAAA,CAsPT,SAAA,EAAA,2BAAA,EAAA,CAAA,CAAA;AA8CA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACH,uCAAsB;AAAA,GACjC,CAAA;AAAA,EAEI,qCAASK,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASE,6BAAkB,CAAA,CAAA;AAAA,EAM3B,qCAASD,gBAAQ,CAAA;AAAA,CAAA,EA5SbhB,uBAAA,CAoST,SAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;AAiCA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACM,oCAAmB;AAAA,GAC9B,CAAA;AAAA,EAEI,qCAASJ,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASE,6BAAkB,CAAA,CAAA;AAAA,EAO3B,qCAASD,gBAAQ,CAAA;AAAA,CAAA,EA9UbhB,uBAAA,CAqUT,SAAA,EAAA,0BAAA,EAAA,CAAA,CAAA;AA0CA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACO,0CAAyB;AAAA,GACpC,CAAA;AAAA,EAEI,qCAASL,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASE,6BAAkB,CAAA,CAAA;AAAA,EAM3B,qCAASD,gBAAQ,CAAA;AAAA,CAAA,EAvXbhB,uBAAA,CA+WT,SAAA,EAAA,gCAAA,EAAA,CAAA,CAAA;AA4BA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACQ,wCAAuB;AAAA,GAClC,CAAA;AAAA,EAEI,qCAASN,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASE,6BAAkB,CAAA,CAAA;AAAA,EAK3B,qCAASK,gBAAO,CAAA,CAAA;AAAA,EAEhB,qCAASN,gBAAQ,CAAA;AAAA,CAAA,EApZbhB,uBAAA,CA2YT,SAAA,EAAA,8BAAA,EAAA,CAAA,CAAA;AA4BA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,MAAA;AAAA,IAClC,KAAA,EAAO,CAACU,gDAA+B;AAAA,GAC1C,CAAA;AAAA,EAEI,qCAASR,iBAAQ,CAAA;AAAA,CAAA,EAxabf,uBAAA,CAuaT,SAAA,EAAA,mBAAA,EAAA,CAAA,CAAA;AAaA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACU,gDAA+B;AAAA,GAC1C,CAAA;AAAA,EAEI,qCAASR,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASE,6BAAkB,CAAA,CAAA;AAAA,EAK3B,qCAASK,gBAAO,CAAA,CAAA;AAAA,EAChB,qCAASJ,gBAAS,CAAA,CAAA;AAAA,EAElB,qCAASF,gBAAQ,CAAA;AAAA,CAAA,EA9bbhB,uBAAA,CAobT,SAAA,EAAA,sCAAA,EAAA,CAAA,CAAA;AA+EA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,IAAA;AAAA,IAClC,KAAA,EAAO,CAACW,wCAAuB;AAAA,GAClC,CAAA;AAAA,EAEI,qCAAST,iBAAQ,CAAA,CAAA;AAAA,EAEjB,qCAASO,gBAAO,CAAA,CAAA;AAAA,EAEhB,qCAASN,gBAAQ,CAAA;AAAA,CAAA,EAxgBbhB,uBAAA,CAmgBT,SAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;AA6EA,eAAA,CAAA;AAAA,EAJCY,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,4CAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAACW,wCAAuB;AAAA,GAClC,CAAA;AAAA,EAEI,qCAAST,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASE,6BAAkB,CAAA,CAAA;AAAA,EAK3B,qCAASK,gBAAO,CAAA,CAAA;AAAA,EAEhB,qCAASN,gBAAQ,CAAA;AAAA,CAAA,EAzlBbhB,uBAAA,CAglBT,SAAA,EAAA,8BAAA,EAAA,CAAA,CAAA;AAhlBSA,uBAAA,GAAN,eAAA,CAAA;AAAA,EALNW,eAAQ,SAAA,CAAU;AAAA,IACf,SAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAM,iBAAA;AAAA,IACN,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACYX,uBAAA,CAAA","file":"AreHTML.compiler.js","sourcesContent":["import { A_Caller, A_Container, A_Error, A_Feature, A_Inject, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreCompiler } from \"@adaas/are/compiler\";\nimport { AreIndex } from \"@adaas/are/index\";\nimport { AreScene } from \"@adaas/are/scene\";\nimport { AreNode } from \"@adaas/are/node\";\nimport {\n AreSceneInstructionFeatures,\n AttachRootNodeInstruction,\n MountNodeInstruction,\n UnmountNodeInstruction,\n AddStyleInstruction,\n AttachListenerInstruction,\n AddAttributeInstruction,\n ReplaceInterpolationInstruction,\n AddDirectiveInstruction,\n} from \"@adaas/are/scene-instruction\";\nimport { AreSyntax } from \"@adaas/are/syntax\";\nimport { A_ExecutionContext } from \"@adaas/a-utils/a-execution\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\n\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreHTMLCompiler',\n description: 'HTML-specific compiler for A-Concept Rendering Engine (ARE) components, extending the base AreCompiler to handle HTML templates, styles, and rendering logic tailored for web environments.'\n})\nexport class AreHTMLCompiler extends AreCompiler {\n\n\n\n // ==================================================================================\n // ========================= COMPONENT METHODS =======================================\n // ==================================================================================\n /**\n * Get DOM element by string path from root element\n * Works with paths generated by the string-based parser\n */\n @A_Frame.Method({\n description: 'Get DOM element corresponding to the given path from the root element.'\n })\n getElementByPath(\n root: Element,\n path?: string\n ): Element | undefined {\n\n if (path === undefined || path.trim() === '') {\n return root;\n }\n\n const indices = path.split('.').map(index => parseInt(index, 10));\n let current: Element | undefined = root;\n\n for (const index of indices) {\n if (!current) {\n return undefined;\n }\n // Get only element children (not text nodes, comments, etc.)\n\n const elementChildren = Array.from(current.childNodes).filter(child => child.nodeType === Node.ELEMENT_NODE ||\n child.nodeType === Node.DOCUMENT_NODE || child.nodeType === Node.COMMENT_NODE\n );\n\n if (index >= elementChildren.length) {\n return undefined;\n }\n\n current = elementChildren[index] as Element;\n }\n return current;\n }\n /**\n * Get DOM element by AreNode based on its scene path\n * \n * @param node \n * @returns \n */\n @A_Frame.Method({\n description: 'Get DOM element corresponding to the given AreNode based on its scene path.'\n })\n getElementByNode(node: AreNode): Element | undefined {\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n\n const root = document.getElementById(new ASEID(scene.root.id).id)!;\n\n return this.getElementByPath(root, scene.path);\n }\n /**\n * Insert DOM element at specified path within root element\n * \n * @param root \n * @param path \n * @param element \n */\n @A_Frame.Method({\n description: 'Insert a DOM element at the specified path within the root element.'\n })\n insertElementAtPath(\n root: Element,\n path: string,\n element: Element\n ): void {\n const parentPath = path.split('.').slice(0, -1).join('.');\n const parentElement = this.getElementByPath(root, parentPath);\n const index = parseInt(path.split('.').slice(-1)[0], 10);\n if (parentElement) {\n const children = Array.from(parentElement.children).filter(child => child.nodeType === Node.ELEMENT_NODE);\n if (index >= children.length) {\n parentElement.appendChild(element);\n } else {\n parentElement.insertBefore(element, children[index]);\n }\n }\n }\n /**\n * Insert DOM element corresponding to AreNode at its scene path\n * \n * @param node \n * @param element \n */\n @A_Frame.Method({\n description: 'Insert a DOM element corresponding to the given AreNode at its scene path.'\n })\n insertElementByNode(\n node: AreNode,\n element: Element\n ): void {\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n const root = document.getElementById(new ASEID(scene.root.id).id)!;\n this.insertElementAtPath(root, scene.path, element);\n }\n /**\n * Index the elements of the given AreNode within its scene\n * \n * @param node \n */\n @A_Frame.Method({\n description: 'Indexes the elements of the given AreNode within its scene, preserving the original markup structure.'\n })\n index(\n node: AreNode\n ) {\n const index = node.scope.resolveFlat<AreIndex>(AreIndex)!;\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n\n index.clear();\n scene.reset();\n\n // Use a position-based approach that maps DOM paths to original markup exactly\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = node.template;\n\n // Create a mapping of DOM paths to original markup using DOM traversal\n const markupMap = this.createPositionBasedMarkupMap(node.template);\n\n this.indexElementsFromDOM(tempDiv, index, [], markupMap);\n }\n\n /**\n * Create a position-based mapping by parsing the original template with DOM\n * This ensures 1:1 correspondence between DOM structure and original markup\n */\n private createPositionBasedMarkupMap(template: string): Map<string, string> {\n const markupMap = new Map<string, string>();\n const originalDiv = document.createElement('div');\n originalDiv.innerHTML = template;\n\n // Traverse the original DOM and map each position to its outerHTML\n this.mapDOMPositions(originalDiv, [], markupMap);\n\n return markupMap;\n }\n\n /**\n * Recursively map DOM positions to their exact original markup\n */\n private mapDOMPositions(\n parentElement: Element,\n parentPath: number[],\n markupMap: Map<string, string>\n ): void {\n const children = Array.from(parentElement.children);\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i];\n const currentPath = [...parentPath, i];\n const pathKey = currentPath.join('.');\n\n // Store the exact outerHTML for this position\n markupMap.set(pathKey, element.outerHTML);\n\n // Recursively process children\n // if (element.children.length > 0) {\n // this.mapDOMPositions(element, currentPath, markupMap);\n // }\n }\n }\n\n /**\n * Index elements using actual DOM structure with position-based markup mapping\n */\n private indexElementsFromDOM(\n parentElement: Element,\n index: AreIndex,\n parentPath: number[],\n markupMap: Map<string, string>\n ): void {\n const children = Array.from(parentElement.children);\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i];\n const currentPath = [...parentPath, i];\n const pathKey = currentPath.join('.');\n\n // Get the exact markup for this position from our mapping\n const originalMarkup = markupMap.get(pathKey);\n\n\n // Create AreNode with preserved original markup\n const areNode = new AreNode({\n scope: index.name,\n component: element.tagName.toLowerCase(),\n markup: originalMarkup || element.outerHTML,\n template: element.innerHTML,\n });\n\n // Add to index\n index.add(areNode, currentPath.join('.'));\n\n // Recursively process children\n // if (element.children.length > 0) {\n // this.indexElementsFromDOM(element, index, currentPath, markupMap);\n // }\n }\n }\n\n\n\n\n\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AttachRootNodeInstruction]\n })\n applyAttachRootNodeInstruction(\n @A_Inject(A_Caller) instruction: AttachRootNodeInstruction,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = instruction.node;\n\n // ensure root identified\n const rootElement = document.getElementById(node.id);\n\n if (!rootElement) {\n logger?.warning(`Root element with id <${node.id}> not found in DOM.`);\n return;\n }\n rootElement.innerHTML = node.template;\n\n rootElement.setAttribute('aseid', node.aseid.toString());\n\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [MountNodeInstruction]\n })\n applyMountNodeInstruction(\n @A_Inject(A_Caller) instruction: MountNodeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n try {\n\n const node = instruction.node;\n const scene = instruction.scene;\n\n if (syntax.isCustomNode(node)) {\n\n logger?.debug('red', scene.debugPrefix + `Mounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} at path `);\n const wrapper = document.createElement('div');\n\n wrapper.setAttribute('aseid', node.aseid.toString());\n\n wrapper.innerHTML = node.template;\n\n const element = this.getElementByNode(node);\n\n // Replace the placement with the rendered content\n if (!element) {\n this.insertElementByNode(node, wrapper);\n } else {\n (element).replaceWith(wrapper);\n }\n }\n\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [UnmountNodeInstruction]\n })\n applyUnmountNodeInstruction(\n @A_Inject(A_Caller) instruction: UnmountNodeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node)!;\n\n logger?.debug('red', scene.debugPrefix + `Unmounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n try {\n // element.remove();\n\n element.replaceWith(document.createComment(` Unmounted Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} `));\n\n node.unmount();\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddStyleInstruction]\n })\n applyAddStyleInstruction(\n @A_Inject(A_Caller) instruction: AddStyleInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n try {\n\n\n const node = instruction.node;\n const scene = instruction.scene;\n const styles = instruction.params?.styles || '';\n\n logger?.debug('green', scene.debugPrefix + `Applying styles for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n const styleElementId = `a-style-${node.aseid.entity}`;\n let styleElement = document.querySelector(`#${styleElementId}`) as HTMLStyleElement | null;\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleElementId;\n document.head.appendChild(styleElement);\n }\n styleElement.innerHTML = styles;\n\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AttachListenerInstruction]\n })\n applyAttachListenerInstruction(\n @A_Inject(A_Caller) instruction: AttachListenerInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const content = context.get('content')!;\n\n const element = this.getElementByNode(instruction.node)!;\n const mountPoint = context.get('mountPoint')!;\n\n logger?.debug('green', scene.debugPrefix + `Attaching listener '${instruction.listener.name}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n element.addEventListener(instruction.listener.name, instruction.callback as EventListener);\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddAttributeInstruction]\n })\n applyAddAttributeInstruction(\n @A_Inject(A_Caller) instruction: AddAttributeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const content = context.get('content')!;\n\n const element = this.getElementByNode(node)!;\n\n logger?.debug('green', scene.debugPrefix + `Setting attribute '${instruction.name}'='${instruction.value}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, element);\n\n element.setAttribute(instruction.name, instruction.value);\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Revert,\n scope: [ReplaceInterpolationInstruction]\n })\n revertInstruction(\n @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,\n ) {\n this.interpolationTextNodes.delete(instruction.aseid.toString());\n }\n\n\n interpolationTextNodes: Map<string, Text> = new Map();\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [ReplaceInterpolationInstruction]\n })\n applyReplaceInterpolationInstruction(\n @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node)!;\n\n logger?.debug('magenta', scene.debugPrefix + `Replacing interpolation '${instruction.interpolation.name}' with value '${instruction.value}' for target <${node.aseid.entity}>`, instruction);\n\n const textNode = this.interpolationTextNodes.get(instruction.aseid.toString());\n\n if (textNode) {\n textNode.nodeValue = instruction.value;\n } else {\n\n const treeTextNodesWalker = document.createTreeWalker(\n element,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n if (node.nodeValue && node.nodeValue.includes(instruction.interpolation.raw)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_REJECT;\n }\n },\n );\n\n const foundNode = treeTextNodesWalker.nextNode() as Text | null;\n\n\n // then I have to split this node into multiple text nodes\n if (foundNode) {\n const parts = foundNode.nodeValue!.split(instruction.interpolation.raw);\n\n const parent = foundNode.parentNode;\n\n if (parent) {\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n\n if (part) {\n const textNodePart = document.createTextNode(part);\n parent.insertBefore(textNodePart, foundNode);\n }\n\n if (i < parts.length - 1) {\n const valueNode = document.createTextNode(instruction.value);\n parent.insertBefore(valueNode, foundNode);\n\n // store reference to this text node for future updates\n this.interpolationTextNodes.set(instruction.aseid.toString(), valueNode);\n }\n }\n\n // remove the original node\n parent.removeChild(foundNode);\n }\n }\n }\n }\n\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Init,\n scope: [AddDirectiveInstruction]\n })\n initAddDirectiveInstruction(\n @A_Inject(A_Caller) instruction: AddDirectiveInstruction,\n\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = instruction.node;\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n const parentScene = instruction.scene;\n\n logger?.debug('green', scene.debugPrefix + `Initializing directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, scene, parentScene);\n\n\n switch (instruction.directive.name) {\n case '$if': {\n const mountInstruction = new MountNodeInstruction(node, scene.path);\n const unmountInstruction = new UnmountNodeInstruction(node, scene.path);\n\n\n if (instruction.value) {\n parentScene.unPlan(unmountInstruction);\n\n parentScene.plan(mountInstruction);\n parentScene.dropState(mountInstruction);\n } else {\n parentScene.unPlan(mountInstruction);\n\n parentScene.plan(unmountInstruction);\n parentScene.dropState(unmountInstruction);\n }\n\n // switch (true) {\n // case !instruction.value && !!parentScene.getState(mountInstruction):\n // parentScene.unPlan(mountInstruction);\n\n // parentScene.plan(unmountInstruction);\n // parentScene.dropState(unmountInstruction);\n\n // break;\n // case !instruction.value && !parentScene.getState(mountInstruction):\n\n // parentScene.unPlan(mountInstruction);\n\n // break;\n // case instruction.value && !!parentScene.getState(unmountInstruction):\n\n // parentScene.unPlan(unmountInstruction);\n\n // parentScene.plan(mountInstruction);\n // parentScene.dropState(mountInstruction);\n // break;\n // case instruction.value && !parentScene.getState(unmountInstruction):\n\n // parentScene.unPlan(unmountInstruction);\n // break;\n // default:\n // break;\n // }\n\n break;\n }\n default:\n logger?.warning(`Unknown directive '${instruction.directive.name}' for Node <${node.type}> ASEID: ${node.aseid.toString()}`);\n }\n\n\n\n\n // Directives may have async initialization logic in future\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddDirectiveInstruction]\n })\n applyAddDirectiveInstruction(\n @A_Inject(A_Caller) instruction: AddDirectiveInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node);\n\n try {\n\n logger?.debug('green', scene.debugPrefix + `Applying directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, instruction);\n\n // switch (instruction.directive.name) {\n // case '$if': {\n // if (!instruction.value && element) {\n // element.replaceWith(document.createComment(`$if directive removed node <${node.aseid.entity}>`));\n // }\n // break;\n // }\n // default:\n // logger?.warning('yellow', scene.debugPrefix + `Unknown directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n // }\n\n // Directive application logic goes here\n } catch (error) {\n logger?.error(error)\n }\n }\n}"]}
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
import { __decorateClass, __decorateParam } from '../../chunk-EQQGB2QZ.mjs';
|
|
2
|
+
import { A_Feature, A_Inject, A_Caller, A_Scope, ASEID } from '@adaas/a-concept';
|
|
3
|
+
import { A_Frame } from '@adaas/a-frame';
|
|
4
|
+
import { AreCompiler } from '@adaas/are/compiler';
|
|
5
|
+
import { AreIndex } from '@adaas/are/index';
|
|
6
|
+
import { AreScene } from '@adaas/are/scene';
|
|
7
|
+
import { AreNode } from '@adaas/are/node';
|
|
8
|
+
import { AttachRootNodeInstruction, AreSceneInstructionFeatures, MountNodeInstruction, UnmountNodeInstruction, AddStyleInstruction, AttachListenerInstruction, AddAttributeInstruction, ReplaceInterpolationInstruction, AddDirectiveInstruction } from '@adaas/are/scene-instruction';
|
|
9
|
+
import { AreSyntax } from '@adaas/are/syntax';
|
|
10
|
+
import { A_ExecutionContext } from '@adaas/a-utils/a-execution';
|
|
11
|
+
import { A_Logger } from '@adaas/a-utils/a-logger';
|
|
12
|
+
|
|
13
|
+
let AreHTMLCompiler = class extends AreCompiler {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.interpolationTextNodes = /* @__PURE__ */ new Map();
|
|
17
|
+
}
|
|
18
|
+
getElementByPath(root, path) {
|
|
19
|
+
if (path === void 0 || path.trim() === "") {
|
|
20
|
+
return root;
|
|
21
|
+
}
|
|
22
|
+
const indices = path.split(".").map((index) => parseInt(index, 10));
|
|
23
|
+
let current = root;
|
|
24
|
+
for (const index of indices) {
|
|
25
|
+
if (!current) {
|
|
26
|
+
return void 0;
|
|
27
|
+
}
|
|
28
|
+
const elementChildren = Array.from(current.childNodes).filter(
|
|
29
|
+
(child) => child.nodeType === Node.ELEMENT_NODE || child.nodeType === Node.DOCUMENT_NODE || child.nodeType === Node.COMMENT_NODE
|
|
30
|
+
);
|
|
31
|
+
if (index >= elementChildren.length) {
|
|
32
|
+
return void 0;
|
|
33
|
+
}
|
|
34
|
+
current = elementChildren[index];
|
|
35
|
+
}
|
|
36
|
+
return current;
|
|
37
|
+
}
|
|
38
|
+
getElementByNode(node) {
|
|
39
|
+
const scene = node.scope.resolveFlat(AreScene);
|
|
40
|
+
const root = document.getElementById(new ASEID(scene.root.id).id);
|
|
41
|
+
return this.getElementByPath(root, scene.path);
|
|
42
|
+
}
|
|
43
|
+
insertElementAtPath(root, path, element) {
|
|
44
|
+
const parentPath = path.split(".").slice(0, -1).join(".");
|
|
45
|
+
const parentElement = this.getElementByPath(root, parentPath);
|
|
46
|
+
const index = parseInt(path.split(".").slice(-1)[0], 10);
|
|
47
|
+
if (parentElement) {
|
|
48
|
+
const children = Array.from(parentElement.children).filter((child) => child.nodeType === Node.ELEMENT_NODE);
|
|
49
|
+
if (index >= children.length) {
|
|
50
|
+
parentElement.appendChild(element);
|
|
51
|
+
} else {
|
|
52
|
+
parentElement.insertBefore(element, children[index]);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
insertElementByNode(node, element) {
|
|
57
|
+
const scene = node.scope.resolveFlat(AreScene);
|
|
58
|
+
const root = document.getElementById(new ASEID(scene.root.id).id);
|
|
59
|
+
this.insertElementAtPath(root, scene.path, element);
|
|
60
|
+
}
|
|
61
|
+
index(node) {
|
|
62
|
+
const index = node.scope.resolveFlat(AreIndex);
|
|
63
|
+
const scene = node.scope.resolveFlat(AreScene);
|
|
64
|
+
index.clear();
|
|
65
|
+
scene.reset();
|
|
66
|
+
const tempDiv = document.createElement("div");
|
|
67
|
+
tempDiv.innerHTML = node.template;
|
|
68
|
+
const markupMap = this.createPositionBasedMarkupMap(node.template);
|
|
69
|
+
this.indexElementsFromDOM(tempDiv, index, [], markupMap);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a position-based mapping by parsing the original template with DOM
|
|
73
|
+
* This ensures 1:1 correspondence between DOM structure and original markup
|
|
74
|
+
*/
|
|
75
|
+
createPositionBasedMarkupMap(template) {
|
|
76
|
+
const markupMap = /* @__PURE__ */ new Map();
|
|
77
|
+
const originalDiv = document.createElement("div");
|
|
78
|
+
originalDiv.innerHTML = template;
|
|
79
|
+
this.mapDOMPositions(originalDiv, [], markupMap);
|
|
80
|
+
return markupMap;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Recursively map DOM positions to their exact original markup
|
|
84
|
+
*/
|
|
85
|
+
mapDOMPositions(parentElement, parentPath, markupMap) {
|
|
86
|
+
const children = Array.from(parentElement.children);
|
|
87
|
+
for (let i = 0; i < children.length; i++) {
|
|
88
|
+
const element = children[i];
|
|
89
|
+
const currentPath = [...parentPath, i];
|
|
90
|
+
const pathKey = currentPath.join(".");
|
|
91
|
+
markupMap.set(pathKey, element.outerHTML);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Index elements using actual DOM structure with position-based markup mapping
|
|
96
|
+
*/
|
|
97
|
+
indexElementsFromDOM(parentElement, index, parentPath, markupMap) {
|
|
98
|
+
const children = Array.from(parentElement.children);
|
|
99
|
+
for (let i = 0; i < children.length; i++) {
|
|
100
|
+
const element = children[i];
|
|
101
|
+
const currentPath = [...parentPath, i];
|
|
102
|
+
const pathKey = currentPath.join(".");
|
|
103
|
+
const originalMarkup = markupMap.get(pathKey);
|
|
104
|
+
const areNode = new AreNode({
|
|
105
|
+
scope: index.name,
|
|
106
|
+
component: element.tagName.toLowerCase(),
|
|
107
|
+
markup: originalMarkup || element.outerHTML,
|
|
108
|
+
template: element.innerHTML
|
|
109
|
+
});
|
|
110
|
+
index.add(areNode, currentPath.join("."));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
applyAttachRootNodeInstruction(instruction, logger) {
|
|
114
|
+
const node = instruction.node;
|
|
115
|
+
const rootElement = document.getElementById(node.id);
|
|
116
|
+
if (!rootElement) {
|
|
117
|
+
logger?.warning(`Root element with id <${node.id}> not found in DOM.`);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
rootElement.innerHTML = node.template;
|
|
121
|
+
rootElement.setAttribute("aseid", node.aseid.toString());
|
|
122
|
+
}
|
|
123
|
+
applyMountNodeInstruction(instruction, context, syntax, logger) {
|
|
124
|
+
try {
|
|
125
|
+
const node = instruction.node;
|
|
126
|
+
const scene = instruction.scene;
|
|
127
|
+
if (syntax.isCustomNode(node)) {
|
|
128
|
+
logger?.debug("red", scene.debugPrefix + `Mounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} at path `);
|
|
129
|
+
const wrapper = document.createElement("div");
|
|
130
|
+
wrapper.setAttribute("aseid", node.aseid.toString());
|
|
131
|
+
wrapper.innerHTML = node.template;
|
|
132
|
+
const element = this.getElementByNode(node);
|
|
133
|
+
if (!element) {
|
|
134
|
+
this.insertElementByNode(node, wrapper);
|
|
135
|
+
} else {
|
|
136
|
+
element.replaceWith(wrapper);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
} catch (error) {
|
|
140
|
+
logger?.error(error);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
applyUnmountNodeInstruction(instruction, context, logger) {
|
|
144
|
+
const node = instruction.node;
|
|
145
|
+
const scene = instruction.scene;
|
|
146
|
+
const element = this.getElementByNode(node);
|
|
147
|
+
logger?.debug("red", scene.debugPrefix + `Unmounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
|
|
148
|
+
try {
|
|
149
|
+
element.replaceWith(document.createComment(` Unmounted Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} `));
|
|
150
|
+
node.unmount();
|
|
151
|
+
} catch (error) {
|
|
152
|
+
logger?.error(error);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
applyAddStyleInstruction(instruction, context, logger) {
|
|
156
|
+
try {
|
|
157
|
+
const node = instruction.node;
|
|
158
|
+
const scene = instruction.scene;
|
|
159
|
+
const styles = instruction.params?.styles || "";
|
|
160
|
+
logger?.debug("green", scene.debugPrefix + `Applying styles for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
|
|
161
|
+
const styleElementId = `a-style-${node.aseid.entity}`;
|
|
162
|
+
let styleElement = document.querySelector(`#${styleElementId}`);
|
|
163
|
+
if (!styleElement) {
|
|
164
|
+
styleElement = document.createElement("style");
|
|
165
|
+
styleElement.id = styleElementId;
|
|
166
|
+
document.head.appendChild(styleElement);
|
|
167
|
+
}
|
|
168
|
+
styleElement.innerHTML = styles;
|
|
169
|
+
} catch (error) {
|
|
170
|
+
logger?.error(error);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
applyAttachListenerInstruction(instruction, context, logger) {
|
|
174
|
+
const node = instruction.node;
|
|
175
|
+
const scene = instruction.scene;
|
|
176
|
+
context.get("content");
|
|
177
|
+
const element = this.getElementByNode(instruction.node);
|
|
178
|
+
context.get("mountPoint");
|
|
179
|
+
logger?.debug("green", scene.debugPrefix + `Attaching listener '${instruction.listener.name}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
|
|
180
|
+
element.addEventListener(instruction.listener.name, instruction.callback);
|
|
181
|
+
}
|
|
182
|
+
applyAddAttributeInstruction(instruction, context, scope, logger) {
|
|
183
|
+
const node = instruction.node;
|
|
184
|
+
const scene = instruction.scene;
|
|
185
|
+
context.get("content");
|
|
186
|
+
const element = this.getElementByNode(node);
|
|
187
|
+
logger?.debug("green", scene.debugPrefix + `Setting attribute '${instruction.name}'='${instruction.value}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, element);
|
|
188
|
+
element.setAttribute(instruction.name, instruction.value);
|
|
189
|
+
}
|
|
190
|
+
revertInstruction(instruction) {
|
|
191
|
+
this.interpolationTextNodes.delete(instruction.aseid.toString());
|
|
192
|
+
}
|
|
193
|
+
applyReplaceInterpolationInstruction(instruction, context, scope, syntax, logger) {
|
|
194
|
+
const node = instruction.node;
|
|
195
|
+
const scene = instruction.scene;
|
|
196
|
+
const element = this.getElementByNode(node);
|
|
197
|
+
logger?.debug("magenta", scene.debugPrefix + `Replacing interpolation '${instruction.interpolation.name}' with value '${instruction.value}' for target <${node.aseid.entity}>`, instruction);
|
|
198
|
+
const textNode = this.interpolationTextNodes.get(instruction.aseid.toString());
|
|
199
|
+
if (textNode) {
|
|
200
|
+
textNode.nodeValue = instruction.value;
|
|
201
|
+
} else {
|
|
202
|
+
const treeTextNodesWalker = document.createTreeWalker(
|
|
203
|
+
element,
|
|
204
|
+
NodeFilter.SHOW_TEXT,
|
|
205
|
+
{
|
|
206
|
+
acceptNode: (node2) => {
|
|
207
|
+
if (node2.nodeValue && node2.nodeValue.includes(instruction.interpolation.raw)) {
|
|
208
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
209
|
+
}
|
|
210
|
+
return NodeFilter.FILTER_REJECT;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
const foundNode = treeTextNodesWalker.nextNode();
|
|
215
|
+
if (foundNode) {
|
|
216
|
+
const parts = foundNode.nodeValue.split(instruction.interpolation.raw);
|
|
217
|
+
const parent = foundNode.parentNode;
|
|
218
|
+
if (parent) {
|
|
219
|
+
for (let i = 0; i < parts.length; i++) {
|
|
220
|
+
const part = parts[i];
|
|
221
|
+
if (part) {
|
|
222
|
+
const textNodePart = document.createTextNode(part);
|
|
223
|
+
parent.insertBefore(textNodePart, foundNode);
|
|
224
|
+
}
|
|
225
|
+
if (i < parts.length - 1) {
|
|
226
|
+
const valueNode = document.createTextNode(instruction.value);
|
|
227
|
+
parent.insertBefore(valueNode, foundNode);
|
|
228
|
+
this.interpolationTextNodes.set(instruction.aseid.toString(), valueNode);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
parent.removeChild(foundNode);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
initAddDirectiveInstruction(instruction, scope, logger) {
|
|
237
|
+
const node = instruction.node;
|
|
238
|
+
const scene = node.scope.resolveFlat(AreScene);
|
|
239
|
+
const parentScene = instruction.scene;
|
|
240
|
+
logger?.debug("green", scene.debugPrefix + `Initializing directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, scene, parentScene);
|
|
241
|
+
switch (instruction.directive.name) {
|
|
242
|
+
case "$if": {
|
|
243
|
+
const mountInstruction = new MountNodeInstruction(node, scene.path);
|
|
244
|
+
const unmountInstruction = new UnmountNodeInstruction(node, scene.path);
|
|
245
|
+
if (instruction.value) {
|
|
246
|
+
parentScene.unPlan(unmountInstruction);
|
|
247
|
+
parentScene.plan(mountInstruction);
|
|
248
|
+
parentScene.dropState(mountInstruction);
|
|
249
|
+
} else {
|
|
250
|
+
parentScene.unPlan(mountInstruction);
|
|
251
|
+
parentScene.plan(unmountInstruction);
|
|
252
|
+
parentScene.dropState(unmountInstruction);
|
|
253
|
+
}
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
default:
|
|
257
|
+
logger?.warning(`Unknown directive '${instruction.directive.name}' for Node <${node.type}> ASEID: ${node.aseid.toString()}`);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
applyAddDirectiveInstruction(instruction, context, scope, logger) {
|
|
261
|
+
const node = instruction.node;
|
|
262
|
+
const scene = instruction.scene;
|
|
263
|
+
this.getElementByNode(node);
|
|
264
|
+
try {
|
|
265
|
+
logger?.debug("green", scene.debugPrefix + `Applying directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, instruction);
|
|
266
|
+
} catch (error) {
|
|
267
|
+
logger?.error(error);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
__decorateClass([
|
|
272
|
+
A_Frame.Method({
|
|
273
|
+
description: "Get DOM element corresponding to the given path from the root element."
|
|
274
|
+
})
|
|
275
|
+
], AreHTMLCompiler.prototype, "getElementByPath", 1);
|
|
276
|
+
__decorateClass([
|
|
277
|
+
A_Frame.Method({
|
|
278
|
+
description: "Get DOM element corresponding to the given AreNode based on its scene path."
|
|
279
|
+
})
|
|
280
|
+
], AreHTMLCompiler.prototype, "getElementByNode", 1);
|
|
281
|
+
__decorateClass([
|
|
282
|
+
A_Frame.Method({
|
|
283
|
+
description: "Insert a DOM element at the specified path within the root element."
|
|
284
|
+
})
|
|
285
|
+
], AreHTMLCompiler.prototype, "insertElementAtPath", 1);
|
|
286
|
+
__decorateClass([
|
|
287
|
+
A_Frame.Method({
|
|
288
|
+
description: "Insert a DOM element corresponding to the given AreNode at its scene path."
|
|
289
|
+
})
|
|
290
|
+
], AreHTMLCompiler.prototype, "insertElementByNode", 1);
|
|
291
|
+
__decorateClass([
|
|
292
|
+
A_Frame.Method({
|
|
293
|
+
description: "Indexes the elements of the given AreNode within its scene, preserving the original markup structure."
|
|
294
|
+
})
|
|
295
|
+
], AreHTMLCompiler.prototype, "index", 1);
|
|
296
|
+
__decorateClass([
|
|
297
|
+
A_Feature.Extend({
|
|
298
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
299
|
+
scope: [AttachRootNodeInstruction]
|
|
300
|
+
}),
|
|
301
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
302
|
+
__decorateParam(1, A_Inject(A_Logger))
|
|
303
|
+
], AreHTMLCompiler.prototype, "applyAttachRootNodeInstruction", 1);
|
|
304
|
+
__decorateClass([
|
|
305
|
+
A_Feature.Extend({
|
|
306
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
307
|
+
scope: [MountNodeInstruction]
|
|
308
|
+
}),
|
|
309
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
310
|
+
__decorateParam(1, A_Inject(A_ExecutionContext)),
|
|
311
|
+
__decorateParam(2, A_Inject(AreSyntax)),
|
|
312
|
+
__decorateParam(3, A_Inject(A_Logger))
|
|
313
|
+
], AreHTMLCompiler.prototype, "applyMountNodeInstruction", 1);
|
|
314
|
+
__decorateClass([
|
|
315
|
+
A_Feature.Extend({
|
|
316
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
317
|
+
scope: [UnmountNodeInstruction]
|
|
318
|
+
}),
|
|
319
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
320
|
+
__decorateParam(1, A_Inject(A_ExecutionContext)),
|
|
321
|
+
__decorateParam(2, A_Inject(A_Logger))
|
|
322
|
+
], AreHTMLCompiler.prototype, "applyUnmountNodeInstruction", 1);
|
|
323
|
+
__decorateClass([
|
|
324
|
+
A_Feature.Extend({
|
|
325
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
326
|
+
scope: [AddStyleInstruction]
|
|
327
|
+
}),
|
|
328
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
329
|
+
__decorateParam(1, A_Inject(A_ExecutionContext)),
|
|
330
|
+
__decorateParam(2, A_Inject(A_Logger))
|
|
331
|
+
], AreHTMLCompiler.prototype, "applyAddStyleInstruction", 1);
|
|
332
|
+
__decorateClass([
|
|
333
|
+
A_Feature.Extend({
|
|
334
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
335
|
+
scope: [AttachListenerInstruction]
|
|
336
|
+
}),
|
|
337
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
338
|
+
__decorateParam(1, A_Inject(A_ExecutionContext)),
|
|
339
|
+
__decorateParam(2, A_Inject(A_Logger))
|
|
340
|
+
], AreHTMLCompiler.prototype, "applyAttachListenerInstruction", 1);
|
|
341
|
+
__decorateClass([
|
|
342
|
+
A_Feature.Extend({
|
|
343
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
344
|
+
scope: [AddAttributeInstruction]
|
|
345
|
+
}),
|
|
346
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
347
|
+
__decorateParam(1, A_Inject(A_ExecutionContext)),
|
|
348
|
+
__decorateParam(2, A_Inject(A_Scope)),
|
|
349
|
+
__decorateParam(3, A_Inject(A_Logger))
|
|
350
|
+
], AreHTMLCompiler.prototype, "applyAddAttributeInstruction", 1);
|
|
351
|
+
__decorateClass([
|
|
352
|
+
A_Feature.Extend({
|
|
353
|
+
name: AreSceneInstructionFeatures.Revert,
|
|
354
|
+
scope: [ReplaceInterpolationInstruction]
|
|
355
|
+
}),
|
|
356
|
+
__decorateParam(0, A_Inject(A_Caller))
|
|
357
|
+
], AreHTMLCompiler.prototype, "revertInstruction", 1);
|
|
358
|
+
__decorateClass([
|
|
359
|
+
A_Feature.Extend({
|
|
360
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
361
|
+
scope: [ReplaceInterpolationInstruction]
|
|
362
|
+
}),
|
|
363
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
364
|
+
__decorateParam(1, A_Inject(A_ExecutionContext)),
|
|
365
|
+
__decorateParam(2, A_Inject(A_Scope)),
|
|
366
|
+
__decorateParam(3, A_Inject(AreSyntax)),
|
|
367
|
+
__decorateParam(4, A_Inject(A_Logger))
|
|
368
|
+
], AreHTMLCompiler.prototype, "applyReplaceInterpolationInstruction", 1);
|
|
369
|
+
__decorateClass([
|
|
370
|
+
A_Feature.Extend({
|
|
371
|
+
name: AreSceneInstructionFeatures.Init,
|
|
372
|
+
scope: [AddDirectiveInstruction]
|
|
373
|
+
}),
|
|
374
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
375
|
+
__decorateParam(1, A_Inject(A_Scope)),
|
|
376
|
+
__decorateParam(2, A_Inject(A_Logger))
|
|
377
|
+
], AreHTMLCompiler.prototype, "initAddDirectiveInstruction", 1);
|
|
378
|
+
__decorateClass([
|
|
379
|
+
A_Feature.Extend({
|
|
380
|
+
name: AreSceneInstructionFeatures.Apply,
|
|
381
|
+
scope: [AddDirectiveInstruction]
|
|
382
|
+
}),
|
|
383
|
+
__decorateParam(0, A_Inject(A_Caller)),
|
|
384
|
+
__decorateParam(1, A_Inject(A_ExecutionContext)),
|
|
385
|
+
__decorateParam(2, A_Inject(A_Scope)),
|
|
386
|
+
__decorateParam(3, A_Inject(A_Logger))
|
|
387
|
+
], AreHTMLCompiler.prototype, "applyAddDirectiveInstruction", 1);
|
|
388
|
+
AreHTMLCompiler = __decorateClass([
|
|
389
|
+
A_Frame.Component({
|
|
390
|
+
namespace: "A-ARE",
|
|
391
|
+
name: "AreHTMLCompiler",
|
|
392
|
+
description: "HTML-specific compiler for A-Concept Rendering Engine (ARE) components, extending the base AreCompiler to handle HTML templates, styles, and rendering logic tailored for web environments."
|
|
393
|
+
})
|
|
394
|
+
], AreHTMLCompiler);
|
|
395
|
+
|
|
396
|
+
export { AreHTMLCompiler };
|
|
397
|
+
//# sourceMappingURL=AreHTML.compiler.mjs.map
|
|
398
|
+
//# sourceMappingURL=AreHTML.compiler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/engines/html/AreHTML.compiler.ts"],"names":["node"],"mappings":";;;;;;;;;;;;AA4BO,IAAM,eAAA,GAAN,cAA8B,WAAA,CAAY;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AA8aH,IAAA,IAAA,CAAA,sBAAA,uBAAgD,GAAA,EAAI;AAAA,EAAA;AAAA,EAhapD,gBAAA,CACI,MACA,IAAA,EACmB;AAEnB,IAAA,IAAI,IAAA,KAAS,MAAA,IAAa,IAAA,CAAK,IAAA,OAAW,EAAA,EAAI;AAC1C,MAAA,OAAO,IAAA;AAAA,IACX;AAEA,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,IAAI,CAAA,KAAA,KAAS,QAAA,CAAS,KAAA,EAAO,EAAE,CAAC,CAAA;AAChE,IAAA,IAAI,OAAA,GAA+B,IAAA;AAEnC,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AACzB,MAAA,IAAI,CAAC,OAAA,EAAS;AACV,QAAA,OAAO,MAAA;AAAA,MACX;AAGA,MAAA,MAAM,eAAA,GAAkB,KAAA,CAAM,IAAA,CAAK,OAAA,CAAQ,UAAU,CAAA,CAAE,MAAA;AAAA,QAAO,CAAA,KAAA,KAAS,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK,YAAA,IAC3F,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK,aAAA,IAAiB,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK;AAAA,OACrE;AAEA,MAAA,IAAI,KAAA,IAAS,gBAAgB,MAAA,EAAQ;AACjC,QAAA,OAAO,MAAA;AAAA,MACX;AAEA,MAAA,OAAA,GAAU,gBAAgB,KAAK,CAAA;AAAA,IACnC;AACA,IAAA,OAAO,OAAA;AAAA,EACX;AAAA,EAUA,iBAAiB,IAAA,EAAoC;AACjD,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsB,QAAQ,CAAA;AAEvD,IAAA,MAAM,IAAA,GAAO,SAAS,cAAA,CAAe,IAAI,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE,CAAA,CAAE,EAAE,CAAA;AAEhE,IAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,IAAA,EAAM,KAAA,CAAM,IAAI,CAAA;AAAA,EACjD;AAAA,EAWA,mBAAA,CACI,IAAA,EACA,IAAA,EACA,OAAA,EACI;AACJ,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,MAAM,CAAA,EAAG,EAAE,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACxD,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,gBAAA,CAAiB,IAAA,EAAM,UAAU,CAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,KAAA,CAAM,EAAE,CAAA,CAAE,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,IAAA,IAAI,aAAA,EAAe;AACf,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,aAAA,CAAc,QAAQ,CAAA,CAAE,MAAA,CAAO,CAAA,KAAA,KAAS,KAAA,CAAM,QAAA,KAAa,IAAA,CAAK,YAAY,CAAA;AACxG,MAAA,IAAI,KAAA,IAAS,SAAS,MAAA,EAAQ;AAC1B,QAAA,aAAA,CAAc,YAAY,OAAO,CAAA;AAAA,MACrC,CAAA,MAAO;AACH,QAAA,aAAA,CAAc,YAAA,CAAa,OAAA,EAAS,QAAA,CAAS,KAAK,CAAC,CAAA;AAAA,MACvD;AAAA,IACJ;AAAA,EACJ;AAAA,EAUA,mBAAA,CACI,MACA,OAAA,EACI;AACJ,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsB,QAAQ,CAAA;AACvD,IAAA,MAAM,IAAA,GAAO,SAAS,cAAA,CAAe,IAAI,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE,CAAA,CAAE,EAAE,CAAA;AAChE,IAAA,IAAA,CAAK,mBAAA,CAAoB,IAAA,EAAM,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,EACtD;AAAA,EASA,MACI,IAAA,EACF;AACE,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsB,QAAQ,CAAA;AACvD,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsB,QAAQ,CAAA;AAEvD,IAAA,KAAA,CAAM,KAAA,EAAM;AACZ,IAAA,KAAA,CAAM,KAAA,EAAM;AAGZ,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC5C,IAAA,OAAA,CAAQ,YAAY,IAAA,CAAK,QAAA;AAGzB,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,4BAAA,CAA6B,IAAA,CAAK,QAAQ,CAAA;AAEjE,IAAA,IAAA,CAAK,oBAAA,CAAqB,OAAA,EAAS,KAAA,EAAO,IAAI,SAAS,CAAA;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,6BAA6B,QAAA,EAAuC;AACxE,IAAA,MAAM,SAAA,uBAAgB,GAAA,EAAoB;AAC1C,IAAA,MAAM,WAAA,GAAc,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAChD,IAAA,WAAA,CAAY,SAAA,GAAY,QAAA;AAGxB,IAAA,IAAA,CAAK,eAAA,CAAgB,WAAA,EAAa,EAAC,EAAG,SAAS,CAAA;AAE/C,IAAA,OAAO,SAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKQ,eAAA,CACJ,aAAA,EACA,UAAA,EACA,SAAA,EACI;AACJ,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,aAAA,CAAc,QAAQ,CAAA;AAElD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACtC,MAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,MAAA,MAAM,WAAA,GAAc,CAAC,GAAG,UAAA,EAAY,CAAC,CAAA;AACrC,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,IAAA,CAAK,GAAG,CAAA;AAGpC,MAAA,SAAA,CAAU,GAAA,CAAI,OAAA,EAAS,OAAA,CAAQ,SAAS,CAAA;AAAA,IAM5C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAA,CACJ,aAAA,EACA,KAAA,EACA,UAAA,EACA,SAAA,EACI;AACJ,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,aAAA,CAAc,QAAQ,CAAA;AAElD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACtC,MAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,MAAA,MAAM,WAAA,GAAc,CAAC,GAAG,UAAA,EAAY,CAAC,CAAA;AACrC,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,IAAA,CAAK,GAAG,CAAA;AAGpC,MAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,GAAA,CAAI,OAAO,CAAA;AAI5C,MAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ;AAAA,QACxB,OAAO,KAAA,CAAM,IAAA;AAAA,QACb,SAAA,EAAW,OAAA,CAAQ,OAAA,CAAQ,WAAA,EAAY;AAAA,QACvC,MAAA,EAAQ,kBAAkB,OAAA,CAAQ,SAAA;AAAA,QAClC,UAAU,OAAA,CAAQ;AAAA,OACrB,CAAA;AAGD,MAAA,KAAA,CAAM,GAAA,CAAI,OAAA,EAAS,WAAA,CAAY,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA,IAM5C;AAAA,EACJ;AAAA,EAaA,8BAAA,CACwB,aAEA,MAAA,EACtB;AACE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AAGzB,IAAA,MAAM,WAAA,GAAc,QAAA,CAAS,cAAA,CAAe,IAAA,CAAK,EAAE,CAAA;AAEnD,IAAA,IAAI,CAAC,WAAA,EAAa;AACd,MAAA,MAAA,EAAQ,OAAA,CAAQ,CAAA,sBAAA,EAAyB,IAAA,CAAK,EAAE,CAAA,mBAAA,CAAqB,CAAA;AACrE,MAAA;AAAA,IACJ;AACA,IAAA,WAAA,CAAY,YAAY,IAAA,CAAK,QAAA;AAE7B,IAAA,WAAA,CAAY,YAAA,CAAa,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAAA,EAE3D;AAAA,EAQA,yBAAA,CACwB,WAAA,EACU,OAAA,EAKT,MAAA,EAED,MAAA,EACtB;AACE,IAAA,IAAI;AAEA,MAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,MAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAE1B,MAAA,IAAI,MAAA,CAAO,YAAA,CAAa,IAAI,CAAA,EAAG;AAE3B,QAAA,MAAA,EAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,WAAA,GAAc,CAAA,eAAA,EAAkB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,SAAA,CAAW,CAAA;AACxH,QAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAE5C,QAAA,OAAA,CAAQ,YAAA,CAAa,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAEnD,QAAA,OAAA,CAAQ,YAAY,IAAA,CAAK,QAAA;AAEzB,QAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAG1C,QAAA,IAAI,CAAC,OAAA,EAAS;AACV,UAAA,IAAA,CAAK,mBAAA,CAAoB,MAAM,OAAO,CAAA;AAAA,QAC1C,CAAA,MAAO;AACH,UAAC,OAAA,CAAS,YAAY,OAAO,CAAA;AAAA,QACjC;AAAA,MACJ;AAAA,IAEJ,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AAAA,EAQA,2BAAA,CACwB,WAAA,EACU,OAAA,EAMV,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAE1C,IAAA,MAAA,EAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,WAAA,GAAc,CAAA,iBAAA,EAAoB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAEjH,IAAA,IAAI;AAGA,MAAA,OAAA,CAAQ,WAAA,CAAY,QAAA,CAAS,aAAA,CAAc,CAAA,iBAAA,EAAoB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,GAAG,CAAC,CAAA;AAErH,MAAA,IAAA,CAAK,OAAA,EAAQ;AAAA,IACjB,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AAAA,EAOA,wBAAA,CACwB,WAAA,EACU,OAAA,EAOV,MAAA,EACtB;AAEE,IAAA,IAAI;AAGA,MAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,MAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,MAAA,EAAQ,MAAA,IAAU,EAAA;AAE7C,MAAA,MAAA,EAAQ,KAAA,CAAM,OAAA,EAAS,KAAA,CAAM,WAAA,GAAc,CAAA,0BAAA,EAA6B,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAE5H,MAAA,MAAM,cAAA,GAAiB,CAAA,QAAA,EAAW,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,CAAA;AACnD,MAAA,IAAI,YAAA,GAAe,QAAA,CAAS,aAAA,CAAc,CAAA,CAAA,EAAI,cAAc,CAAA,CAAE,CAAA;AAE9D,MAAA,IAAI,CAAC,YAAA,EAAc;AACf,QAAA,YAAA,GAAe,QAAA,CAAS,cAAc,OAAO,CAAA;AAC7C,QAAA,YAAA,CAAa,EAAA,GAAK,cAAA;AAClB,QAAA,QAAA,CAAS,IAAA,CAAK,YAAY,YAAY,CAAA;AAAA,MAC1C;AACA,MAAA,YAAA,CAAa,SAAA,GAAY,MAAA;AAAA,IAE7B,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AAAA,EAQA,8BAAA,CACwB,WAAA,EACU,OAAA,EAMV,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAgB,OAAA,CAAQ,GAAA,CAAI,SAAS;AAErC,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,WAAA,CAAY,IAAI,CAAA;AACtD,IAAmB,OAAA,CAAQ,GAAA,CAAI,YAAY;AAE3C,IAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,KAAA,CAAM,WAAA,GAAc,CAAA,oBAAA,EAAuB,YAAY,QAAA,CAAS,IAAI,CAAA,cAAA,EAAiB,IAAA,CAAK,MAAM,MAAM,CAAA,SAAA,EAAY,KAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAEhK,IAAA,OAAA,CAAQ,gBAAA,CAAiB,WAAA,CAAY,QAAA,CAAS,IAAA,EAAM,YAAY,QAAyB,CAAA;AAAA,EAC7F;AAAA,EAOA,4BAAA,CACwB,WAAA,EACU,OAAA,EAKX,KAAA,EAEC,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAgB,OAAA,CAAQ,GAAA,CAAI,SAAS;AAErC,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAE1C,IAAA,MAAA,EAAQ,KAAA,CAAM,SAAS,KAAA,CAAM,WAAA,GAAc,sBAAsB,WAAA,CAAY,IAAI,MAAM,WAAA,CAAY,KAAK,iBAAiB,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,MAAM,QAAA,EAAU,IAAI,OAAO,CAAA;AAEtL,IAAA,OAAA,CAAQ,YAAA,CAAa,WAAA,CAAY,IAAA,EAAM,WAAA,CAAY,KAAK,CAAA;AAAA,EAC5D;AAAA,EAOA,kBACwB,WAAA,EACtB;AACE,IAAA,IAAA,CAAK,sBAAA,CAAuB,MAAA,CAAO,WAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAAA,EACnE;AAAA,EASA,oCAAA,CACwB,WAAA,EACU,OAAA,EAKX,KAAA,EACE,QAED,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,gBAAA,CAAiB,IAAI,CAAA;AAE1C,IAAA,MAAA,EAAQ,MAAM,SAAA,EAAW,KAAA,CAAM,WAAA,GAAc,CAAA,yBAAA,EAA4B,YAAY,aAAA,CAAc,IAAI,CAAA,cAAA,EAAiB,WAAA,CAAY,KAAK,CAAA,cAAA,EAAiB,IAAA,CAAK,KAAA,CAAM,MAAM,KAAK,WAAW,CAAA;AAE3L,IAAA,MAAM,WAAW,IAAA,CAAK,sBAAA,CAAuB,IAAI,WAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAE7E,IAAA,IAAI,QAAA,EAAU;AACV,MAAA,QAAA,CAAS,YAAY,WAAA,CAAY,KAAA;AAAA,IACrC,CAAA,MAAO;AAEH,MAAA,MAAM,sBAAsB,QAAA,CAAS,gBAAA;AAAA,QACjC,OAAA;AAAA,QACA,UAAA,CAAW,SAAA;AAAA,QACX;AAAA,UACI,UAAA,EAAY,CAACA,KAAAA,KAAS;AAClB,YAAA,IAAIA,KAAAA,CAAK,aAAaA,KAAAA,CAAK,SAAA,CAAU,SAAS,WAAA,CAAY,aAAA,CAAc,GAAG,CAAA,EAAG;AAC1E,cAAA,OAAO,UAAA,CAAW,aAAA;AAAA,YACtB;AACA,YAAA,OAAO,UAAA,CAAW,aAAA;AAAA,UACtB;AAAA;AACJ,OACJ;AAEA,MAAA,MAAM,SAAA,GAAY,oBAAoB,QAAA,EAAS;AAI/C,MAAA,IAAI,SAAA,EAAW;AACX,QAAA,MAAM,QAAQ,SAAA,CAAU,SAAA,CAAW,KAAA,CAAM,WAAA,CAAY,cAAc,GAAG,CAAA;AAEtE,QAAA,MAAM,SAAS,SAAA,CAAU,UAAA;AAEzB,QAAA,IAAI,MAAA,EAAQ;AACR,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACnC,YAAA,MAAM,IAAA,GAAO,MAAM,CAAC,CAAA;AAEpB,YAAA,IAAI,IAAA,EAAM;AACN,cAAA,MAAM,YAAA,GAAe,QAAA,CAAS,cAAA,CAAe,IAAI,CAAA;AACjD,cAAA,MAAA,CAAO,YAAA,CAAa,cAAc,SAAS,CAAA;AAAA,YAC/C;AAEA,YAAA,IAAI,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACtB,cAAA,MAAM,SAAA,GAAY,QAAA,CAAS,cAAA,CAAe,WAAA,CAAY,KAAK,CAAA;AAC3D,cAAA,MAAA,CAAO,YAAA,CAAa,WAAW,SAAS,CAAA;AAGxC,cAAA,IAAA,CAAK,uBAAuB,GAAA,CAAI,WAAA,CAAY,KAAA,CAAM,QAAA,IAAY,SAAS,CAAA;AAAA,YAC3E;AAAA,UACJ;AAGA,UAAA,MAAA,CAAO,YAAY,SAAS,CAAA;AAAA,QAChC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EASA,2BAAA,CACwB,WAAA,EAED,KAAA,EAEC,MAAA,EACtB;AACE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,WAAA,CAAsB,QAAQ,CAAA;AACvD,IAAA,MAAM,cAAc,WAAA,CAAY,KAAA;AAEhC,IAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,KAAA,CAAM,cAAc,CAAA,wBAAA,EAA2B,WAAA,CAAY,UAAU,IAAI,CAAA,YAAA,EAAe,KAAK,KAAA,CAAM,MAAM,YAAY,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA,CAAA,EAAI,OAAO,WAAW,CAAA;AAGvL,IAAA,QAAQ,WAAA,CAAY,UAAU,IAAA;AAAM,MAChC,KAAK,KAAA,EAAO;AACR,QAAA,MAAM,gBAAA,GAAmB,IAAI,oBAAA,CAAqB,IAAA,EAAM,MAAM,IAAI,CAAA;AAClE,QAAA,MAAM,kBAAA,GAAqB,IAAI,sBAAA,CAAuB,IAAA,EAAM,MAAM,IAAI,CAAA;AAGtE,QAAA,IAAI,YAAY,KAAA,EAAO;AACnB,UAAA,WAAA,CAAY,OAAO,kBAAkB,CAAA;AAErC,UAAA,WAAA,CAAY,KAAK,gBAAgB,CAAA;AACjC,UAAA,WAAA,CAAY,UAAU,gBAAgB,CAAA;AAAA,QAC1C,CAAA,MAAO;AACH,UAAA,WAAA,CAAY,OAAO,gBAAgB,CAAA;AAEnC,UAAA,WAAA,CAAY,KAAK,kBAAkB,CAAA;AACnC,UAAA,WAAA,CAAY,UAAU,kBAAkB,CAAA;AAAA,QAC5C;AA8BA,QAAA;AAAA,MACJ;AAAA,MACA;AACI,QAAA,MAAA,EAAQ,OAAA,CAAQ,CAAA,mBAAA,EAAsB,WAAA,CAAY,SAAA,CAAU,IAAI,CAAA,YAAA,EAAe,IAAA,CAAK,IAAI,CAAA,SAAA,EAAY,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAAA;AACnI,EAMJ;AAAA,EAOA,4BAAA,CACwB,WAAA,EACU,OAAA,EAKX,KAAA,EAEC,MAAA,EACtB;AAEE,IAAA,MAAM,OAAO,WAAA,CAAY,IAAA;AACzB,IAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,IAAgB,IAAA,CAAK,gBAAA,CAAiB,IAAI;AAE1C,IAAA,IAAI;AAEA,MAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,KAAA,CAAM,cAAc,CAAA,oBAAA,EAAuB,WAAA,CAAY,UAAU,IAAI,CAAA,YAAA,EAAe,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,SAAA,EAAY,IAAA,CAAK,MAAM,QAAA,EAAU,IAAI,WAAW,CAAA;AAAA,IAchL,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AACJ;AAtmBI,eAAA,CAAA;AAAA,EAHC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EAbQ,eAAA,CAcT,SAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AAuCA,eAAA,CAAA;AAAA,EAHC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EApDQ,eAAA,CAqDT,SAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AAiBA,eAAA,CAAA;AAAA,EAHC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EArEQ,eAAA,CAsET,SAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;AA0BA,eAAA,CAAA;AAAA,EAHC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EA/FQ,eAAA,CAgGT,SAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;AAgBA,eAAA,CAAA;AAAA,EAHC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EA/GQ,eAAA,CAgHT,SAAA,EAAA,OAAA,EAAA,CAAA,CAAA;AA4GA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,yBAAyB;AAAA,GACpC,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EAEjB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EA/Nb,eAAA,CA4NT,SAAA,EAAA,gCAAA,EAAA,CAAA,CAAA;AA0BA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,oBAAoB;AAAA,GAC/B,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,kBAAkB,CAAA,CAAA;AAAA,EAK3B,4BAAS,SAAS,CAAA,CAAA;AAAA,EAElB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EA/Pb,eAAA,CAsPT,SAAA,EAAA,2BAAA,EAAA,CAAA,CAAA;AA8CA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,sBAAsB;AAAA,GACjC,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,kBAAkB,CAAA,CAAA;AAAA,EAM3B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EA5Sb,eAAA,CAoST,SAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;AAiCA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,mBAAmB;AAAA,GAC9B,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,kBAAkB,CAAA,CAAA;AAAA,EAO3B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EA9Ub,eAAA,CAqUT,SAAA,EAAA,0BAAA,EAAA,CAAA,CAAA;AA0CA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,yBAAyB;AAAA,GACpC,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,kBAAkB,CAAA,CAAA;AAAA,EAM3B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAvXb,eAAA,CA+WT,SAAA,EAAA,gCAAA,EAAA,CAAA,CAAA;AA4BA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,uBAAuB;AAAA,GAClC,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,kBAAkB,CAAA,CAAA;AAAA,EAK3B,4BAAS,OAAO,CAAA,CAAA;AAAA,EAEhB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EApZb,eAAA,CA2YT,SAAA,EAAA,8BAAA,EAAA,CAAA,CAAA;AA4BA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,MAAA;AAAA,IAClC,KAAA,EAAO,CAAC,+BAA+B;AAAA,GAC1C,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAxab,eAAA,CAuaT,SAAA,EAAA,mBAAA,EAAA,CAAA,CAAA;AAaA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,+BAA+B;AAAA,GAC1C,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,kBAAkB,CAAA,CAAA;AAAA,EAK3B,4BAAS,OAAO,CAAA,CAAA;AAAA,EAChB,4BAAS,SAAS,CAAA,CAAA;AAAA,EAElB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EA9bb,eAAA,CAobT,SAAA,EAAA,sCAAA,EAAA,CAAA,CAAA;AA+EA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,IAAA;AAAA,IAClC,KAAA,EAAO,CAAC,uBAAuB;AAAA,GAClC,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EAEjB,4BAAS,OAAO,CAAA,CAAA;AAAA,EAEhB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAxgBb,eAAA,CAmgBT,SAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;AA6EA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,2BAAA,CAA4B,KAAA;AAAA,IAClC,KAAA,EAAO,CAAC,uBAAuB;AAAA,GAClC,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,kBAAkB,CAAA,CAAA;AAAA,EAK3B,4BAAS,OAAO,CAAA,CAAA;AAAA,EAEhB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAzlBb,eAAA,CAglBT,SAAA,EAAA,8BAAA,EAAA,CAAA,CAAA;AAhlBS,eAAA,GAAN,eAAA,CAAA;AAAA,EALN,QAAQ,SAAA,CAAU;AAAA,IACf,SAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAM,iBAAA;AAAA,IACN,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACY,eAAA,CAAA","file":"AreHTML.compiler.mjs","sourcesContent":["import { A_Caller, A_Container, A_Error, A_Feature, A_Inject, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreCompiler } from \"@adaas/are/compiler\";\nimport { AreIndex } from \"@adaas/are/index\";\nimport { AreScene } from \"@adaas/are/scene\";\nimport { AreNode } from \"@adaas/are/node\";\nimport {\n AreSceneInstructionFeatures,\n AttachRootNodeInstruction,\n MountNodeInstruction,\n UnmountNodeInstruction,\n AddStyleInstruction,\n AttachListenerInstruction,\n AddAttributeInstruction,\n ReplaceInterpolationInstruction,\n AddDirectiveInstruction,\n} from \"@adaas/are/scene-instruction\";\nimport { AreSyntax } from \"@adaas/are/syntax\";\nimport { A_ExecutionContext } from \"@adaas/a-utils/a-execution\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\n\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreHTMLCompiler',\n description: 'HTML-specific compiler for A-Concept Rendering Engine (ARE) components, extending the base AreCompiler to handle HTML templates, styles, and rendering logic tailored for web environments.'\n})\nexport class AreHTMLCompiler extends AreCompiler {\n\n\n\n // ==================================================================================\n // ========================= COMPONENT METHODS =======================================\n // ==================================================================================\n /**\n * Get DOM element by string path from root element\n * Works with paths generated by the string-based parser\n */\n @A_Frame.Method({\n description: 'Get DOM element corresponding to the given path from the root element.'\n })\n getElementByPath(\n root: Element,\n path?: string\n ): Element | undefined {\n\n if (path === undefined || path.trim() === '') {\n return root;\n }\n\n const indices = path.split('.').map(index => parseInt(index, 10));\n let current: Element | undefined = root;\n\n for (const index of indices) {\n if (!current) {\n return undefined;\n }\n // Get only element children (not text nodes, comments, etc.)\n\n const elementChildren = Array.from(current.childNodes).filter(child => child.nodeType === Node.ELEMENT_NODE ||\n child.nodeType === Node.DOCUMENT_NODE || child.nodeType === Node.COMMENT_NODE\n );\n\n if (index >= elementChildren.length) {\n return undefined;\n }\n\n current = elementChildren[index] as Element;\n }\n return current;\n }\n /**\n * Get DOM element by AreNode based on its scene path\n * \n * @param node \n * @returns \n */\n @A_Frame.Method({\n description: 'Get DOM element corresponding to the given AreNode based on its scene path.'\n })\n getElementByNode(node: AreNode): Element | undefined {\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n\n const root = document.getElementById(new ASEID(scene.root.id).id)!;\n\n return this.getElementByPath(root, scene.path);\n }\n /**\n * Insert DOM element at specified path within root element\n * \n * @param root \n * @param path \n * @param element \n */\n @A_Frame.Method({\n description: 'Insert a DOM element at the specified path within the root element.'\n })\n insertElementAtPath(\n root: Element,\n path: string,\n element: Element\n ): void {\n const parentPath = path.split('.').slice(0, -1).join('.');\n const parentElement = this.getElementByPath(root, parentPath);\n const index = parseInt(path.split('.').slice(-1)[0], 10);\n if (parentElement) {\n const children = Array.from(parentElement.children).filter(child => child.nodeType === Node.ELEMENT_NODE);\n if (index >= children.length) {\n parentElement.appendChild(element);\n } else {\n parentElement.insertBefore(element, children[index]);\n }\n }\n }\n /**\n * Insert DOM element corresponding to AreNode at its scene path\n * \n * @param node \n * @param element \n */\n @A_Frame.Method({\n description: 'Insert a DOM element corresponding to the given AreNode at its scene path.'\n })\n insertElementByNode(\n node: AreNode,\n element: Element\n ): void {\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n const root = document.getElementById(new ASEID(scene.root.id).id)!;\n this.insertElementAtPath(root, scene.path, element);\n }\n /**\n * Index the elements of the given AreNode within its scene\n * \n * @param node \n */\n @A_Frame.Method({\n description: 'Indexes the elements of the given AreNode within its scene, preserving the original markup structure.'\n })\n index(\n node: AreNode\n ) {\n const index = node.scope.resolveFlat<AreIndex>(AreIndex)!;\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n\n index.clear();\n scene.reset();\n\n // Use a position-based approach that maps DOM paths to original markup exactly\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = node.template;\n\n // Create a mapping of DOM paths to original markup using DOM traversal\n const markupMap = this.createPositionBasedMarkupMap(node.template);\n\n this.indexElementsFromDOM(tempDiv, index, [], markupMap);\n }\n\n /**\n * Create a position-based mapping by parsing the original template with DOM\n * This ensures 1:1 correspondence between DOM structure and original markup\n */\n private createPositionBasedMarkupMap(template: string): Map<string, string> {\n const markupMap = new Map<string, string>();\n const originalDiv = document.createElement('div');\n originalDiv.innerHTML = template;\n\n // Traverse the original DOM and map each position to its outerHTML\n this.mapDOMPositions(originalDiv, [], markupMap);\n\n return markupMap;\n }\n\n /**\n * Recursively map DOM positions to their exact original markup\n */\n private mapDOMPositions(\n parentElement: Element,\n parentPath: number[],\n markupMap: Map<string, string>\n ): void {\n const children = Array.from(parentElement.children);\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i];\n const currentPath = [...parentPath, i];\n const pathKey = currentPath.join('.');\n\n // Store the exact outerHTML for this position\n markupMap.set(pathKey, element.outerHTML);\n\n // Recursively process children\n // if (element.children.length > 0) {\n // this.mapDOMPositions(element, currentPath, markupMap);\n // }\n }\n }\n\n /**\n * Index elements using actual DOM structure with position-based markup mapping\n */\n private indexElementsFromDOM(\n parentElement: Element,\n index: AreIndex,\n parentPath: number[],\n markupMap: Map<string, string>\n ): void {\n const children = Array.from(parentElement.children);\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i];\n const currentPath = [...parentPath, i];\n const pathKey = currentPath.join('.');\n\n // Get the exact markup for this position from our mapping\n const originalMarkup = markupMap.get(pathKey);\n\n\n // Create AreNode with preserved original markup\n const areNode = new AreNode({\n scope: index.name,\n component: element.tagName.toLowerCase(),\n markup: originalMarkup || element.outerHTML,\n template: element.innerHTML,\n });\n\n // Add to index\n index.add(areNode, currentPath.join('.'));\n\n // Recursively process children\n // if (element.children.length > 0) {\n // this.indexElementsFromDOM(element, index, currentPath, markupMap);\n // }\n }\n }\n\n\n\n\n\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AttachRootNodeInstruction]\n })\n applyAttachRootNodeInstruction(\n @A_Inject(A_Caller) instruction: AttachRootNodeInstruction,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = instruction.node;\n\n // ensure root identified\n const rootElement = document.getElementById(node.id);\n\n if (!rootElement) {\n logger?.warning(`Root element with id <${node.id}> not found in DOM.`);\n return;\n }\n rootElement.innerHTML = node.template;\n\n rootElement.setAttribute('aseid', node.aseid.toString());\n\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [MountNodeInstruction]\n })\n applyMountNodeInstruction(\n @A_Inject(A_Caller) instruction: MountNodeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n try {\n\n const node = instruction.node;\n const scene = instruction.scene;\n\n if (syntax.isCustomNode(node)) {\n\n logger?.debug('red', scene.debugPrefix + `Mounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} at path `);\n const wrapper = document.createElement('div');\n\n wrapper.setAttribute('aseid', node.aseid.toString());\n\n wrapper.innerHTML = node.template;\n\n const element = this.getElementByNode(node);\n\n // Replace the placement with the rendered content\n if (!element) {\n this.insertElementByNode(node, wrapper);\n } else {\n (element).replaceWith(wrapper);\n }\n }\n\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [UnmountNodeInstruction]\n })\n applyUnmountNodeInstruction(\n @A_Inject(A_Caller) instruction: UnmountNodeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node)!;\n\n logger?.debug('red', scene.debugPrefix + `Unmounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n try {\n // element.remove();\n\n element.replaceWith(document.createComment(` Unmounted Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} `));\n\n node.unmount();\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddStyleInstruction]\n })\n applyAddStyleInstruction(\n @A_Inject(A_Caller) instruction: AddStyleInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n try {\n\n\n const node = instruction.node;\n const scene = instruction.scene;\n const styles = instruction.params?.styles || '';\n\n logger?.debug('green', scene.debugPrefix + `Applying styles for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n const styleElementId = `a-style-${node.aseid.entity}`;\n let styleElement = document.querySelector(`#${styleElementId}`) as HTMLStyleElement | null;\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleElementId;\n document.head.appendChild(styleElement);\n }\n styleElement.innerHTML = styles;\n\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AttachListenerInstruction]\n })\n applyAttachListenerInstruction(\n @A_Inject(A_Caller) instruction: AttachListenerInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const content = context.get('content')!;\n\n const element = this.getElementByNode(instruction.node)!;\n const mountPoint = context.get('mountPoint')!;\n\n logger?.debug('green', scene.debugPrefix + `Attaching listener '${instruction.listener.name}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n element.addEventListener(instruction.listener.name, instruction.callback as EventListener);\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddAttributeInstruction]\n })\n applyAddAttributeInstruction(\n @A_Inject(A_Caller) instruction: AddAttributeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const content = context.get('content')!;\n\n const element = this.getElementByNode(node)!;\n\n logger?.debug('green', scene.debugPrefix + `Setting attribute '${instruction.name}'='${instruction.value}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, element);\n\n element.setAttribute(instruction.name, instruction.value);\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Revert,\n scope: [ReplaceInterpolationInstruction]\n })\n revertInstruction(\n @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,\n ) {\n this.interpolationTextNodes.delete(instruction.aseid.toString());\n }\n\n\n interpolationTextNodes: Map<string, Text> = new Map();\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [ReplaceInterpolationInstruction]\n })\n applyReplaceInterpolationInstruction(\n @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node)!;\n\n logger?.debug('magenta', scene.debugPrefix + `Replacing interpolation '${instruction.interpolation.name}' with value '${instruction.value}' for target <${node.aseid.entity}>`, instruction);\n\n const textNode = this.interpolationTextNodes.get(instruction.aseid.toString());\n\n if (textNode) {\n textNode.nodeValue = instruction.value;\n } else {\n\n const treeTextNodesWalker = document.createTreeWalker(\n element,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n if (node.nodeValue && node.nodeValue.includes(instruction.interpolation.raw)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_REJECT;\n }\n },\n );\n\n const foundNode = treeTextNodesWalker.nextNode() as Text | null;\n\n\n // then I have to split this node into multiple text nodes\n if (foundNode) {\n const parts = foundNode.nodeValue!.split(instruction.interpolation.raw);\n\n const parent = foundNode.parentNode;\n\n if (parent) {\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n\n if (part) {\n const textNodePart = document.createTextNode(part);\n parent.insertBefore(textNodePart, foundNode);\n }\n\n if (i < parts.length - 1) {\n const valueNode = document.createTextNode(instruction.value);\n parent.insertBefore(valueNode, foundNode);\n\n // store reference to this text node for future updates\n this.interpolationTextNodes.set(instruction.aseid.toString(), valueNode);\n }\n }\n\n // remove the original node\n parent.removeChild(foundNode);\n }\n }\n }\n }\n\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Init,\n scope: [AddDirectiveInstruction]\n })\n initAddDirectiveInstruction(\n @A_Inject(A_Caller) instruction: AddDirectiveInstruction,\n\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = instruction.node;\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n const parentScene = instruction.scene;\n\n logger?.debug('green', scene.debugPrefix + `Initializing directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, scene, parentScene);\n\n\n switch (instruction.directive.name) {\n case '$if': {\n const mountInstruction = new MountNodeInstruction(node, scene.path);\n const unmountInstruction = new UnmountNodeInstruction(node, scene.path);\n\n\n if (instruction.value) {\n parentScene.unPlan(unmountInstruction);\n\n parentScene.plan(mountInstruction);\n parentScene.dropState(mountInstruction);\n } else {\n parentScene.unPlan(mountInstruction);\n\n parentScene.plan(unmountInstruction);\n parentScene.dropState(unmountInstruction);\n }\n\n // switch (true) {\n // case !instruction.value && !!parentScene.getState(mountInstruction):\n // parentScene.unPlan(mountInstruction);\n\n // parentScene.plan(unmountInstruction);\n // parentScene.dropState(unmountInstruction);\n\n // break;\n // case !instruction.value && !parentScene.getState(mountInstruction):\n\n // parentScene.unPlan(mountInstruction);\n\n // break;\n // case instruction.value && !!parentScene.getState(unmountInstruction):\n\n // parentScene.unPlan(unmountInstruction);\n\n // parentScene.plan(mountInstruction);\n // parentScene.dropState(mountInstruction);\n // break;\n // case instruction.value && !parentScene.getState(unmountInstruction):\n\n // parentScene.unPlan(unmountInstruction);\n // break;\n // default:\n // break;\n // }\n\n break;\n }\n default:\n logger?.warning(`Unknown directive '${instruction.directive.name}' for Node <${node.type}> ASEID: ${node.aseid.toString()}`);\n }\n\n\n\n\n // Directives may have async initialization logic in future\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddDirectiveInstruction]\n })\n applyAddDirectiveInstruction(\n @A_Inject(A_Caller) instruction: AddDirectiveInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node);\n\n try {\n\n logger?.debug('green', scene.debugPrefix + `Applying directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, instruction);\n\n // switch (instruction.directive.name) {\n // case '$if': {\n // if (!instruction.value && element) {\n // element.replaceWith(document.createComment(`$if directive removed node <${node.aseid.entity}>`));\n // }\n // break;\n // }\n // default:\n // logger?.warning('yellow', scene.debugPrefix + `Unknown directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n // }\n\n // Directive application logic goes here\n } catch (error) {\n logger?.error(error)\n }\n }\n}"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AreHTMLCompiler } from './AreHTML.compiler.mjs';
|
|
2
|
+
import { A_Component, A_Container } from '@adaas/a-concept';
|
|
3
|
+
import { AreSyntaxContext } from '../../lib/AreSyntax/AreSyntax.context.mjs';
|
|
4
|
+
import { A_Logger } from '@adaas/a-utils/a-logger';
|
|
5
|
+
import '../../lib/AreCompiler/AreCompiler.component.mjs';
|
|
6
|
+
import '../../index-DMXWCL7R.mjs';
|
|
7
|
+
import '../../lib/AreEvent/AreEvent.types.mjs';
|
|
8
|
+
import '../../lib/AreNode/AreNode.types.mjs';
|
|
9
|
+
import '../../lib/AreScene/AreScene.types.mjs';
|
|
10
|
+
import '../../lib/AreProps/AreProps.context.mjs';
|
|
11
|
+
import '@adaas/a-utils/a-execution';
|
|
12
|
+
import '../../lib/AreStore/AreStore.context.mjs';
|
|
13
|
+
import '../../lib/AreSyntax/AreSyntax.component.mjs';
|
|
14
|
+
import '../../lib/AreSyntax/AreSyntax.types.mjs';
|
|
15
|
+
import '@adaas/a-utils/a-signal';
|
|
16
|
+
import '../../lib/AreComponent/Are.component.mjs';
|
|
17
|
+
import '../../lib/AreComponent/Are.context.mjs';
|
|
18
|
+
import '../../lib/AreSceneInstruction/types/AddAttribute.instruction.mjs';
|
|
19
|
+
import '../../lib/AreSceneInstruction/types/AddDirective.instruction.mjs';
|
|
20
|
+
import '../../lib/AreSceneInstruction/types/AddStyle.instruction.mjs';
|
|
21
|
+
import '../../lib/AreSceneInstruction/types/AttachListener.instruction.mjs';
|
|
22
|
+
import '../../lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs';
|
|
23
|
+
import '../../lib/AreSceneInstruction/types/MountNode.instruction.mjs';
|
|
24
|
+
import '../../lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs';
|
|
25
|
+
import '../../lib/AreSceneInstruction/types/UnmountNode.instruction.mjs';
|
|
26
|
+
|
|
27
|
+
declare class AreHTMLEngine extends A_Component {
|
|
28
|
+
/**
|
|
29
|
+
* Inject AreHTMLSyntax into the container scope before loading
|
|
30
|
+
*
|
|
31
|
+
* @param container
|
|
32
|
+
*/
|
|
33
|
+
injectSyntax(container: A_Container, syntax?: AreSyntaxContext, compiler?: AreHTMLCompiler, logger?: A_Logger): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { AreHTMLEngine };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AreHTMLCompiler } from './AreHTML.compiler.js';
|
|
2
|
+
import { A_Component, A_Container } from '@adaas/a-concept';
|
|
3
|
+
import { AreSyntaxContext } from '../../lib/AreSyntax/AreSyntax.context.js';
|
|
4
|
+
import { A_Logger } from '@adaas/a-utils/a-logger';
|
|
5
|
+
import '../../lib/AreCompiler/AreCompiler.component.js';
|
|
6
|
+
import '../../index-BD-6iOuR.js';
|
|
7
|
+
import '../../lib/AreEvent/AreEvent.types.js';
|
|
8
|
+
import '../../lib/AreNode/AreNode.types.js';
|
|
9
|
+
import '../../lib/AreScene/AreScene.types.js';
|
|
10
|
+
import '../../lib/AreProps/AreProps.context.js';
|
|
11
|
+
import '@adaas/a-utils/a-execution';
|
|
12
|
+
import '../../lib/AreStore/AreStore.context.js';
|
|
13
|
+
import '../../lib/AreSyntax/AreSyntax.component.js';
|
|
14
|
+
import '../../lib/AreSyntax/AreSyntax.types.js';
|
|
15
|
+
import '@adaas/a-utils/a-signal';
|
|
16
|
+
import '../../lib/AreComponent/Are.component.js';
|
|
17
|
+
import '../../lib/AreComponent/Are.context.js';
|
|
18
|
+
import '../../lib/AreSceneInstruction/types/AddAttribute.instruction.js';
|
|
19
|
+
import '../../lib/AreSceneInstruction/types/AddDirective.instruction.js';
|
|
20
|
+
import '../../lib/AreSceneInstruction/types/AddStyle.instruction.js';
|
|
21
|
+
import '../../lib/AreSceneInstruction/types/AttachListener.instruction.js';
|
|
22
|
+
import '../../lib/AreSceneInstruction/types/AttachRootNode.instruction.js';
|
|
23
|
+
import '../../lib/AreSceneInstruction/types/MountNode.instruction.js';
|
|
24
|
+
import '../../lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js';
|
|
25
|
+
import '../../lib/AreSceneInstruction/types/UnmountNode.instruction.js';
|
|
26
|
+
|
|
27
|
+
declare class AreHTMLEngine extends A_Component {
|
|
28
|
+
/**
|
|
29
|
+
* Inject AreHTMLSyntax into the container scope before loading
|
|
30
|
+
*
|
|
31
|
+
* @param container
|
|
32
|
+
*/
|
|
33
|
+
injectSyntax(container: A_Container, syntax?: AreSyntaxContext, compiler?: AreHTMLCompiler, logger?: A_Logger): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { AreHTMLEngine };
|