@adaas/are-html 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/README.md +4 -4
  2. package/dist/browser/index.d.mts +88 -5
  3. package/dist/browser/index.mjs +542 -176
  4. package/dist/browser/index.mjs.map +1 -1
  5. package/dist/node/attributes/AreBinding.attribute.js +17 -4
  6. package/dist/node/attributes/AreBinding.attribute.js.map +1 -1
  7. package/dist/node/attributes/AreBinding.attribute.mjs +10 -3
  8. package/dist/node/attributes/AreBinding.attribute.mjs.map +1 -1
  9. package/dist/node/attributes/AreDirective.attribute.js +17 -4
  10. package/dist/node/attributes/AreDirective.attribute.js.map +1 -1
  11. package/dist/node/attributes/AreDirective.attribute.mjs +10 -3
  12. package/dist/node/attributes/AreDirective.attribute.mjs.map +1 -1
  13. package/dist/node/attributes/AreEvent.attribute.js +17 -4
  14. package/dist/node/attributes/AreEvent.attribute.js.map +1 -1
  15. package/dist/node/attributes/AreEvent.attribute.mjs +10 -3
  16. package/dist/node/attributes/AreEvent.attribute.mjs.map +1 -1
  17. package/dist/node/attributes/AreStatic.attribute.js +17 -4
  18. package/dist/node/attributes/AreStatic.attribute.js.map +1 -1
  19. package/dist/node/attributes/AreStatic.attribute.mjs +10 -3
  20. package/dist/node/attributes/AreStatic.attribute.mjs.map +1 -1
  21. package/dist/node/directives/AreDirectiveFor.directive.d.mts +8 -0
  22. package/dist/node/directives/AreDirectiveFor.directive.d.ts +8 -0
  23. package/dist/node/directives/AreDirectiveFor.directive.js +78 -33
  24. package/dist/node/directives/AreDirectiveFor.directive.js.map +1 -1
  25. package/dist/node/directives/AreDirectiveFor.directive.mjs +78 -33
  26. package/dist/node/directives/AreDirectiveFor.directive.mjs.map +1 -1
  27. package/dist/node/directives/AreDirectiveIf.directive.d.mts +18 -0
  28. package/dist/node/directives/AreDirectiveIf.directive.d.ts +18 -0
  29. package/dist/node/directives/AreDirectiveIf.directive.js +10 -3
  30. package/dist/node/directives/AreDirectiveIf.directive.js.map +1 -1
  31. package/dist/node/directives/AreDirectiveIf.directive.mjs +10 -3
  32. package/dist/node/directives/AreDirectiveIf.directive.mjs.map +1 -1
  33. package/dist/node/engine/AreHTML.compiler.d.mts +2 -2
  34. package/dist/node/engine/AreHTML.compiler.d.ts +2 -2
  35. package/dist/node/engine/AreHTML.compiler.js +57 -29
  36. package/dist/node/engine/AreHTML.compiler.js.map +1 -1
  37. package/dist/node/engine/AreHTML.compiler.mjs +58 -30
  38. package/dist/node/engine/AreHTML.compiler.mjs.map +1 -1
  39. package/dist/node/engine/AreHTML.constants.d.mts +53 -1
  40. package/dist/node/engine/AreHTML.constants.d.ts +53 -1
  41. package/dist/node/engine/AreHTML.constants.js +100 -0
  42. package/dist/node/engine/AreHTML.constants.js.map +1 -1
  43. package/dist/node/engine/AreHTML.constants.mjs +93 -0
  44. package/dist/node/engine/AreHTML.constants.mjs.map +1 -1
  45. package/dist/node/engine/AreHTML.context.d.mts +6 -2
  46. package/dist/node/engine/AreHTML.context.d.ts +6 -2
  47. package/dist/node/engine/AreHTML.context.js +42 -7
  48. package/dist/node/engine/AreHTML.context.js.map +1 -1
  49. package/dist/node/engine/AreHTML.context.mjs +35 -6
  50. package/dist/node/engine/AreHTML.context.mjs.map +1 -1
  51. package/dist/node/engine/AreHTML.engine.js +10 -7
  52. package/dist/node/engine/AreHTML.engine.js.map +1 -1
  53. package/dist/node/engine/AreHTML.engine.mjs +10 -7
  54. package/dist/node/engine/AreHTML.engine.mjs.map +1 -1
  55. package/dist/node/engine/AreHTML.interpreter.js +155 -43
  56. package/dist/node/engine/AreHTML.interpreter.js.map +1 -1
  57. package/dist/node/engine/AreHTML.interpreter.mjs +155 -43
  58. package/dist/node/engine/AreHTML.interpreter.mjs.map +1 -1
  59. package/dist/node/engine/AreHTML.lifecycle.js +17 -12
  60. package/dist/node/engine/AreHTML.lifecycle.js.map +1 -1
  61. package/dist/node/engine/AreHTML.lifecycle.mjs +9 -2
  62. package/dist/node/engine/AreHTML.lifecycle.mjs.map +1 -1
  63. package/dist/node/engine/AreHTML.tokenizer.js +14 -9
  64. package/dist/node/engine/AreHTML.tokenizer.js.map +1 -1
  65. package/dist/node/engine/AreHTML.tokenizer.mjs +10 -3
  66. package/dist/node/engine/AreHTML.tokenizer.mjs.map +1 -1
  67. package/dist/node/engine/AreHTML.transformer.js +13 -8
  68. package/dist/node/engine/AreHTML.transformer.js.map +1 -1
  69. package/dist/node/engine/AreHTML.transformer.mjs +9 -2
  70. package/dist/node/engine/AreHTML.transformer.mjs.map +1 -1
  71. package/dist/node/index.d.mts +2 -1
  72. package/dist/node/index.d.ts +2 -1
  73. package/dist/node/index.js +3 -3
  74. package/dist/node/index.mjs +1 -1
  75. package/dist/node/instructions/AddAttribute.instruction.js +3 -4
  76. package/dist/node/instructions/AddAttribute.instruction.js.map +1 -1
  77. package/dist/node/instructions/AddAttribute.instruction.mjs +3 -4
  78. package/dist/node/instructions/AddAttribute.instruction.mjs.map +1 -1
  79. package/dist/node/instructions/AddComment.instruction.js +3 -4
  80. package/dist/node/instructions/AddComment.instruction.js.map +1 -1
  81. package/dist/node/instructions/AddComment.instruction.mjs +3 -4
  82. package/dist/node/instructions/AddComment.instruction.mjs.map +1 -1
  83. package/dist/node/instructions/AddElement.instruction.js +3 -4
  84. package/dist/node/instructions/AddElement.instruction.js.map +1 -1
  85. package/dist/node/instructions/AddElement.instruction.mjs +3 -4
  86. package/dist/node/instructions/AddElement.instruction.mjs.map +1 -1
  87. package/dist/node/instructions/AddInterpolation.instruction.js +3 -4
  88. package/dist/node/instructions/AddInterpolation.instruction.js.map +1 -1
  89. package/dist/node/instructions/AddInterpolation.instruction.mjs +3 -4
  90. package/dist/node/instructions/AddInterpolation.instruction.mjs.map +1 -1
  91. package/dist/node/instructions/AddListener.instruction.js +3 -4
  92. package/dist/node/instructions/AddListener.instruction.js.map +1 -1
  93. package/dist/node/instructions/AddListener.instruction.mjs +3 -4
  94. package/dist/node/instructions/AddListener.instruction.mjs.map +1 -1
  95. package/dist/node/instructions/AddStyle.instruction.js +3 -4
  96. package/dist/node/instructions/AddStyle.instruction.js.map +1 -1
  97. package/dist/node/instructions/AddStyle.instruction.mjs +3 -4
  98. package/dist/node/instructions/AddStyle.instruction.mjs.map +1 -1
  99. package/dist/node/instructions/AddText.instruction.js +3 -4
  100. package/dist/node/instructions/AddText.instruction.js.map +1 -1
  101. package/dist/node/instructions/AddText.instruction.mjs +3 -4
  102. package/dist/node/instructions/AddText.instruction.mjs.map +1 -1
  103. package/dist/node/lib/AreDirective/AreDirective.component.js +5 -0
  104. package/dist/node/lib/AreDirective/AreDirective.component.js.map +1 -1
  105. package/dist/node/lib/AreDirective/AreDirective.component.mjs +5 -0
  106. package/dist/node/lib/AreDirective/AreDirective.component.mjs.map +1 -1
  107. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.js +17 -4
  108. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.js.map +1 -1
  109. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.mjs +10 -3
  110. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.mjs.map +1 -1
  111. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js +3 -4
  112. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js.map +1 -1
  113. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs +3 -4
  114. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs.map +1 -1
  115. package/dist/node/lib/AreRoot/AreRoot.component.js +3 -4
  116. package/dist/node/lib/AreRoot/AreRoot.component.js.map +1 -1
  117. package/dist/node/lib/AreRoot/AreRoot.component.mjs +3 -4
  118. package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +1 -1
  119. package/dist/node/lib/{AreWatcher/AreWatcher.component.d.mts → AreRouteWatcher/AreRouteWatcher.component.d.mts} +2 -2
  120. package/dist/node/lib/{AreWatcher/AreWatcher.component.d.ts → AreRouteWatcher/AreRouteWatcher.component.d.ts} +2 -2
  121. package/dist/node/lib/{AreWatcher/AreWatcher.component.js → AreRouteWatcher/AreRouteWatcher.component.js} +9 -10
  122. package/dist/node/lib/AreRouteWatcher/AreRouteWatcher.component.js.map +1 -0
  123. package/dist/node/lib/{AreWatcher/AreWatcher.component.mjs → AreRouteWatcher/AreRouteWatcher.component.mjs} +10 -11
  124. package/dist/node/lib/AreRouteWatcher/AreRouteWatcher.component.mjs.map +1 -0
  125. package/dist/node/lib/AreStyle/AreStyle.context.js +17 -4
  126. package/dist/node/lib/AreStyle/AreStyle.context.js.map +1 -1
  127. package/dist/node/lib/AreStyle/AreStyle.context.mjs +10 -3
  128. package/dist/node/lib/AreStyle/AreStyle.context.mjs.map +1 -1
  129. package/dist/node/nodes/AreComment.js +17 -4
  130. package/dist/node/nodes/AreComment.js.map +1 -1
  131. package/dist/node/nodes/AreComment.mjs +10 -3
  132. package/dist/node/nodes/AreComment.mjs.map +1 -1
  133. package/dist/node/nodes/AreComponent.js +3 -4
  134. package/dist/node/nodes/AreComponent.js.map +1 -1
  135. package/dist/node/nodes/AreComponent.mjs +3 -4
  136. package/dist/node/nodes/AreComponent.mjs.map +1 -1
  137. package/dist/node/nodes/AreInterpolation.js +17 -4
  138. package/dist/node/nodes/AreInterpolation.js.map +1 -1
  139. package/dist/node/nodes/AreInterpolation.mjs +10 -3
  140. package/dist/node/nodes/AreInterpolation.mjs.map +1 -1
  141. package/dist/node/nodes/AreRoot.js +3 -4
  142. package/dist/node/nodes/AreRoot.js.map +1 -1
  143. package/dist/node/nodes/AreRoot.mjs +3 -4
  144. package/dist/node/nodes/AreRoot.mjs.map +1 -1
  145. package/dist/node/nodes/AreText.js +17 -4
  146. package/dist/node/nodes/AreText.js.map +1 -1
  147. package/dist/node/nodes/AreText.mjs +10 -3
  148. package/dist/node/nodes/AreText.mjs.map +1 -1
  149. package/dist/node/signals/AreRoute.signal.js +18 -5
  150. package/dist/node/signals/AreRoute.signal.js.map +1 -1
  151. package/dist/node/signals/AreRoute.signal.mjs +10 -3
  152. package/dist/node/signals/AreRoute.signal.mjs.map +1 -1
  153. package/docs/SYNTAX.md +714 -0
  154. package/docs/arehtml.monaco.json +235 -0
  155. package/docs/arehtml.monaco.ts +119 -0
  156. package/examples/dashboard/dist/index.html +1 -1
  157. package/examples/dashboard/dist/mpioi5ab-8c3oa9.js +13674 -0
  158. package/examples/jumpstart/dist/index.html +1 -1
  159. package/examples/{dashboard/dist/mnzfypsd-6zjt7w.js → jumpstart/dist/mor90p6y-0plg7g.js} +1869 -1926
  160. package/examples/jumpstart/dist/{mnpl1g4i-nobz9g.js → mor90p7p-1898bz.js} +2797 -2282
  161. package/examples/jumpstart/src/components/List.component.ts +14 -13
  162. package/examples/jumpstart/src/concept.ts +5 -4
  163. package/jest.config.ts +1 -1
  164. package/package.json +10 -6
  165. package/src/attributes/AreBinding.attribute.ts +5 -0
  166. package/src/attributes/AreDirective.attribute.ts +5 -0
  167. package/src/attributes/AreEvent.attribute.ts +5 -0
  168. package/src/attributes/AreStatic.attribute.ts +5 -0
  169. package/src/directives/AreDirectiveFor.directive.ts +97 -60
  170. package/src/directives/AreDirectiveIf.directive.ts +37 -15
  171. package/src/engine/AreHTML.compiler.ts +64 -36
  172. package/src/engine/AreHTML.constants.ts +144 -0
  173. package/src/engine/AreHTML.context.ts +33 -4
  174. package/src/engine/AreHTML.engine.ts +12 -7
  175. package/src/engine/AreHTML.interpreter.ts +195 -68
  176. package/src/engine/AreHTML.lifecycle.ts +5 -0
  177. package/src/engine/AreHTML.tokenizer.ts +6 -1
  178. package/src/engine/AreHTML.transformer.ts +5 -0
  179. package/src/index.ts +2 -2
  180. package/src/instructions/AddAttribute.instruction.ts +3 -4
  181. package/src/instructions/AddComment.instruction.ts +3 -4
  182. package/src/instructions/AddElement.instruction.ts +3 -4
  183. package/src/instructions/AddInterpolation.instruction.ts +3 -4
  184. package/src/instructions/AddListener.instruction.ts +3 -4
  185. package/src/instructions/AddStyle.instruction.ts +3 -4
  186. package/src/instructions/AddText.instruction.ts +3 -4
  187. package/src/lib/AreDirective/AreDirective.component.ts +5 -0
  188. package/src/lib/AreHTMLAttribute/AreHTML.attribute.ts +5 -0
  189. package/src/lib/AreHTMLNode/AreHTMLNode.ts +3 -4
  190. package/src/lib/AreRoot/AreRoot.component.ts +3 -4
  191. package/src/lib/{AreWatcher/AreWatcher.component.ts → AreRouteWatcher/AreRouteWatcher.component.ts} +5 -6
  192. package/src/lib/AreStyle/AreStyle.context.ts +5 -0
  193. package/src/nodes/AreComment.ts +5 -0
  194. package/src/nodes/AreComponent.ts +3 -4
  195. package/src/nodes/AreInterpolation.ts +5 -0
  196. package/src/nodes/AreRoot.ts +3 -4
  197. package/src/nodes/AreText.ts +5 -0
  198. package/src/signals/AreRoute.signal.ts +5 -0
  199. package/dist/node/lib/AreWatcher/AreWatcher.component.js.map +0 -1
  200. package/dist/node/lib/AreWatcher/AreWatcher.component.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.interpreter.ts"],"names":[],"mappings":";;;;;;;;;AA0BO,IAAM,kBAAA,GAAN,cAAiC,cAAA,CAAe;AAAA,EASnD,UAAA,CACwB,WAAA,EACY,OAAA,EACZ,MAAA,EACtB;AACE,IAAA,IAAI;AACA,MAAA,MAAM,OAAO,WAAA,CAAY,KAAA;AAEzB,MAAA,IAAI,WAAA,GAAuC,IAAA;AAC3C,MAAA,IAAI,SAAkC,IAAA,CAAK,MAAA;AAE3C,MAAA,OAAO,MAAA,EAAQ;AACX,QAAA,IAAI,OAAA,CAAQ,cAAA,CAAe,MAAM,CAAA,EAAG;AAChC,UAAA;AAAA,QACJ;AACA,QAAA,WAAA,GAAc,MAAA;AACd,QAAA,MAAA,GAAS,MAAA,CAAO,MAAA;AAAA,MACpB;AAIA,MAAA,MAAM,MAAM,IAAA,CAAK,GAAA;AAEjB,MAAA,IAAI,MAAA,EAAQ;AAER,QAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,cAAA,CAAe,MAAM,CAAA;AAEhD,QAAA,IAAI,CAAC,UAAA,EAAY;AACb,UAAA,MAAM,IAAI,mBAAA,CAAoB;AAAA,YAC1B,KAAA,EAAO,uBAAA;AAAA,YACP,WAAA,EAAa,CAAA,mDAAA,EAAsD,IAAA,CAAK,EAAE,CAAA,yIAAA;AAAA,WAC7E,CAAA;AAAA,QACL;AAEA,QAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,SAAA,CAAU,aAAA,CAAc,GAAG,CAAA;AAEnD,QAAA,IAAI,UAAA,CAAW,QAAA,KAAa,IAAA,CAAK,YAAA,EAAc;AAE3C,UAAA,UAAA,CAAW,YAAY,OAAO,CAAA;AAAA,QAClC,CAAA,MAAO;AAGH,UAAA,UAAA,CAAW,UAAA,EAAY,YAAA,CAAa,OAAA,EAAS,UAAU,CAAA;AAAA,QAC3D;AAEA,QAAA,OAAA,CAAQ,qBAAA,CAAsB,aAAa,OAAO,CAAA;AAAA,MAEtD,CAAA,MAAO;AACH,QAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,SAAA,CAAU,cAAA,CAAe,KAAK,EAAE,CAAA;AAC3D,QAAA,IAAI,CAAC,UAAA,EAAY;AACb,UAAA,MAAM,IAAI,mBAAA,CAAoB;AAAA,YAC1B,KAAA,EAAO,uBAAA;AAAA,YACP,WAAA,EAAa,CAAA,mDAAA,EAAsD,IAAA,CAAK,EAAE,CAAA,yIAAA;AAAA,WAC7E,CAAA;AAAA,QACL;AAEA,QAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,SAAA,CAAU,aAAA,CAAc,GAAG,CAAA;AAEnD,QAAA,OAAA,CAAQ,YAAA,CAAa,YAAA,EAAc,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAExD,QAAA,UAAA,CAAW,UAAA,EAAY,YAAA,CAAa,OAAA,EAAS,UAAU,CAAA;AAEvD,QAAA,OAAA,CAAQ,qBAAA,CAAsB,aAAa,OAAO,CAAA;AAAA,MACtD;AAIA,MAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,CAAA,QAAA,EAAW,KAAK,KAAA,CAAM,QAAA,EAAU,CAAA,kBAAA,CAAoB,CAAA;AAAA,IAE/E,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AACnB,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EAQA,aAAA,CACwB,aACY,OAAA,EAClC;AACE,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,uBAAA,CAAwB,WAAW,CAAA;AAE3D,IAAA,IAAI,OAAA,IAAW,QAAQ,UAAA,EAAY;AAC/B,MAAA,OAAA,CAAQ,UAAA,CAAW,YAAY,OAAO,CAAA;AAAA,IAC1C;AAEA,IAAA,OAAA,CAAQ,yBAAyB,WAAW,CAAA;AAAA,EAChD;AAAA,EAWA,aACwB,QAAA,EACY,OAAA,EACZ,KAAA,EACC,MAAA,EACU,kBAEX,MAAA,EAChB;AACJ,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,uBAAA,CAAwB,QAAA,CAAS,MAAO,CAAA;AAGhE,IAAA,IAAI,CAAC,OAAA,EAAS;AACV,MAAA,MAAM,IAAI,mBAAA,CAAoB;AAAA,QAC1B,KAAA,EAAO,mBAAA;AAAA,QACP,WAAA,EAAa,CAAA,oEAAA,EAAuE,QAAA,CAAS,MAAM,CAAA,iIAAA;AAAA,OACtG,CAAA;AAAA,IACL;AACA,IAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,KAAa,QAAA,CAAS,OAAA;AAE7C,IAAA,MAAM,KAAA,GAAQ,QAAA,GAAW,MAAA,CAAO,QAAA,CAAS,SAAS,KAAA,EAAO;AAAA,MACrD,GAAI,gBAAA,EAAkB,KAAA,IAAS;AAAC,KACnC,CAAA,GAAI,OAAA;AAML,IAAA,IAAI,QAAA,CAAS,UAAU,MAAA,EAAW;AAE9B,MAAA,MAAM,aAAA,GAAiB,OAAA,CAAwB,YAAA,CAAa,IAAI,CAAA;AAEhE,MAAA,MAAM,SAAU,aAAA,GAAgB,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,GAAK,KAAA;AAE9D,MAAC,OAAA,CAAwB,YAAA,CAAa,IAAA,EAAM,MAAM,CAAA;AAElD,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AAAA,IAErB,CAAA,MAAO;AAEH,MAAA,MAAM,aAAA,GAAiB,OAAA,CAAwB,YAAA,CAAa,IAAI,CAAA;AAEhE,MAAA,MAAM,aAAA,GAAgB,gBAAgB,aAAA,CAAc,KAAA,CAAM,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,GAAI,EAAC;AACpF,MAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAK,QAAA,CAAS,KAAA,CAAiB,MAAM,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAC,CAAA;AAChF,MAAA,MAAM,QAAA,GAAW,QAAQ,KAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,GAAI,EAAC;AAE/D,MAAA,MAAM,SAAS,CAAC,GAAG,aAAA,CAAc,MAAA,CAAO,UAAQ,CAAC,QAAA,CAAS,GAAA,CAAI,IAAI,CAAC,CAAA,EAAG,GAAG,QAAQ,CAAA,CAAE,KAAK,GAAG,CAAA;AAE3F,MAAC,OAAA,CAAwB,YAAA,CAAa,IAAA,EAAM,MAAM,CAAA;AAElD,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AAAA,IACrB;AAAA,EAGJ;AAAA,EAMA,eAAA,CACwB,UACY,OAAA,EAC5B;AACJ,IAAA,IAAI;AACA,MAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,uBAAA,CAAwB,QAAA,CAAS,MAAO,CAAA;AAEhE,MAAA,IAAI,CAAC,OAAA,EAAS;AAEd,MAAA,MAAM,EAAE,IAAA,EAAK,GAAI,QAAA,CAAS,OAAA;AAE1B,MAAA,IAAI,IAAA,IAAQ,OAAA,CAAQ,QAAA,KAAa,IAAA,CAAK,YAAA,EAAc;AAChD,QAAC,OAAA,EAAyB,gBAAgB,IAAI,CAAA;AAAA,MAClD;AAAA,IACJ,SAAS,KAAA,EAAO;AACZ,MAAA,OAAA,CAAQ,GAAA,CAAI,6BAA6B,KAAK,CAAA;AAAA,IAClD;AAAA,EAEJ;AAAA,EAWA,iBACwB,QAAA,EACY,OAAA,EACZ,KAAA,EACC,MAAA,EACU,kBACX,MAAA,EACtB;AAEE,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,uBAAA,CAAwB,QAAA,CAAS,MAAM,CAAA;AAE/D,IAAA,IAAI,CAAC,OAAA,EAAS;AACV,MAAA,MAAM,IAAI,mBAAA,CAAoB;AAAA,QAC1B,KAAA,EAAO,mBAAA;AAAA,QACP,WAAA,EAAa,CAAA,oEAAA,EAAuE,QAAA,CAAS,MAAM,CAAA,2HAAA;AAAA,OACtG,CAAA;AAAA,IACL;AAeA,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,mBAAA,CAAoB,QAAA,CAAS,QAAQ,OAAO,CAAA;AACpE,IAAA,MAAM,eAAe,EAAC;AAEtB,IAAA,KAAA,MAAW,WAAW,QAAA,EAAU;AAC5B,MAAA,MAAM,SAAA,GAAY,IAAI,IAAA,KAAgB;AAClC,QAAA,MAAM,KAAA,GAAQ,IAAI,QAAA,CAAS,OAAO,CAAA;AAElC,QAAA,KAAA,CAAM,GAAA,CAAI,QAAQ,IAAI,CAAA;AACtB,QAAA,KAAA,CAAM,GAAA,CAAI,WAAW,OAAO,CAAA;AAC5B,QAAA,KAAA,CAAM,GAAA,CAAI,eAAe,QAAQ,CAAA;AAEjC,QAAA,QAAA,CAAS,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA,MAC7B,CAAA;AAEA,MAAA,YAAA,CAAa,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAA,GAAI,SAAA;AAAA,IAClC;AAEA,IAAA,MAAM,QAAA,GAAW,CAAC,CAAA,KAAa;AAC3B,MAAA,OAAA,CAAQ,iBAAiB,OAAO,CAAA;AAEhC,MAAA,MAAM,SAAS,MAAA,CAAO,QAAA,CAAS,QAAA,CAAS,OAAA,CAAQ,SAAS,KAAA,EAAO;AAAA,QAC5D,GAAG,YAAA;AAAA,QACH,GAAI,gBAAA,EAAkB,KAAA,IAAS;AAAC,OACnC,CAAA;AACD,MAAA,IAAI,OAAO,MAAA,KAAW,UAAA,EAAY,MAAA,CAAO,CAAC,CAAA;AAAA,IAC9C,CAAA;AAGA,IAAA,IAAI,QAAA,EAAU;AACV,MAAA,OAAA,CAAQ,gBAAA,CAAiB,QAAA,CAAS,OAAA,CAAQ,IAAA,EAAM,QAAQ,CAAA;AACxD,MAAA,OAAA,CAAQ,WAAA,CAAY,OAAA,EAAS,QAAA,CAAS,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAAA,IAChE;AAAA,EACJ;AAAA,EAOA,mBAAA,CACwB,UACY,OAAA,EAClC;AACE,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,uBAAA,CAAwB,QAAA,CAAS,MAAM,CAAA;AAE/D,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,QAAA,CAAS,OAAA;AAE1B,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,WAAA,CAAY,OAAA,EAAS,IAAI,CAAA;AAElD,IAAA,IAAI,QAAA,EAAU;AACV,MAAA,OAAA,CAAQ,mBAAA,CAAoB,MAAM,QAAQ,CAAA;AAC1C,MAAA,OAAA,CAAQ,cAAA,CAAe,SAAS,IAAI,CAAA;AAAA,IACxC;AAAA,EACJ;AAAA,EAYA,QACwB,WAAA,EACY,OAAA,EACZ,KAAA,EACC,MAAA,EACU,kBAEX,MAAA,EACtB;AACE,IAAA,MAAM,IAAA,GAAO,YAAY,KAAA,CAAM,MAAA;AAC/B,IAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAI,WAAA,CAAY,OAAA;AAE1C,IAAA,MAAM,KAAA,GAAQ,QAAA,GAAW,MAAA,CAAO,QAAA,CAAS,SAAS,KAAA,EAAO;AAAA,MACrD,GAAI,gBAAA,EAAkB,KAAA,IAAS;AAAC,KACnC,CAAA,GAAI,OAAA;AAGL,IAAA,IAAI,CAAC,IAAA,EAAM;AACP,MAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,SAAA,CAAU,cAAA,CAAe,KAAK,CAAA;AACvD,MAAA,OAAA,CAAQ,SAAA,CAAU,IAAA,CAAK,WAAA,CAAY,QAAQ,CAAA;AAC3C,MAAA,OAAA,CAAQ,qBAAA,CAAsB,aAAa,QAAQ,CAAA;AAAA,IAEvD,CAAA,MAAO;AACH,MAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,cAAA,CAAe,IAAI,CAAA;AAE3C,MAAA,IAAI,CAAC,OAAA,EAAS;AACV,QAAA,MAAM,IAAI,mBAAA,CAAoB;AAAA,UAC1B,KAAA,EAAO,mBAAA;AAAA,UACP,WAAA,EAAa,CAAA,oEAAA,EAAuE,WAAA,CAAY,KAAA,CAAM,OAAO,KAAK,CAAA,iIAAA;AAAA,SACrH,CAAA;AAAA,MAEL;AAEA,MAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,uBAAA,CAAwB,WAAW,CAAA;AAEhE,MAAA,IAAI,YAAA,EAAc;AACd,QAAA,YAAA,CAAa,WAAA,GAAc,KAAA;AAAA,MAC/B,CAAA,MAAO;AACH,QAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,SAAA,CAAU,cAAA,CAAe,KAAK,CAAA;AACvD,QAAA,OAAA,CAAQ,YAAY,QAAQ,CAAA;AAE5B,QAAA,OAAA,CAAQ,qBAAA,CAAsB,aAAa,QAAQ,CAAA;AAAA,MACvD;AAAA,IACJ;AAIA,IAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,CAAA,KAAA,EAAQ,MAAM,KAAA,CAAM,QAAA,EAAU,CAAA,kBAAA,CAAoB,CAAA;AAAA,EAE7E;AAAA,EAOA,UAAA,CACwB,aACY,OAAA,EAClC;AACE,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,uBAAA,CAAwB,WAAW,CAAA;AAE3D,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,OAAA,CAAQ,UAAA,EAAY,YAAY,OAAO,CAAA;AACvC,IAAA,OAAA,CAAQ,yBAAyB,WAAW,CAAA;AAAA,EAChD;AAAA,EASA,WACwB,WAAA,EACY,OAAA,EACZ,KAAA,EACC,MAAA,EACU,kBAEX,MAAA,EACtB;AACE,IAAA,MAAM,IAAA,GAAO,YAAY,KAAA,CAAM,MAAA;AAC/B,IAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAI,WAAA,CAAY,OAAA;AAE1C,IAAA,MAAM,KAAA,GAAQ,QAAA,GAAW,MAAA,CAAO,QAAA,CAAS,SAAS,KAAA,EAAO;AAAA,MACrD,GAAI,gBAAA,EAAkB,KAAA,IAAS;AAAC,KACnC,CAAA,GAAI,OAAA;AAGL,IAAA,IAAI,CAAC,IAAA,EAAM;AACP,MAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,SAAA,CAAU,aAAA,CAAc,KAAK,CAAA;AACzD,MAAA,OAAA,CAAQ,SAAA,CAAU,IAAA,CAAK,WAAA,CAAY,WAAW,CAAA;AAC9C,MAAA,OAAA,CAAQ,qBAAA,CAAsB,aAAa,WAAW,CAAA;AAAA,IAE1D,CAAA,MAAO;AACH,MAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,cAAA,CAAe,IAAI,CAAA;AAE3C,MAAA,IAAI,CAAC,OAAA,EAAS;AACV,QAAA,MAAM,IAAI,mBAAA,CAAoB;AAAA,UAC1B,KAAA,EAAO,mBAAA;AAAA,UACP,WAAA,EAAa,CAAA,oEAAA,EAAuE,WAAA,CAAY,KAAA,CAAM,OAAO,KAAK,CAAA,iIAAA;AAAA,SACrH,CAAA;AAAA,MACL;AAEA,MAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,uBAAA,CAAwB,WAAW,CAAA;AAEhE,MAAA,IAAI,YAAA,EAAc;AACd,QAAA,YAAA,CAAa,WAAA,GAAc,KAAA;AAAA,MAC/B,CAAA,MAAO;AACH,QAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,SAAA,CAAU,aAAA,CAAc,KAAK,CAAA;AACzD,QAAA,OAAA,CAAQ,YAAY,WAAW,CAAA;AAE/B,QAAA,OAAA,CAAQ,qBAAA,CAAsB,aAAa,WAAW,CAAA;AAAA,MAC1D;AAAA,IACJ;AAIA,IAAA,MAAA,EAAQ,MAAM,OAAA,EAAS,CAAA,QAAA,EAAW,MAAM,KAAA,CAAM,QAAA,EAAU,CAAA,kBAAA,CAAoB,CAAA;AAAA,EAChF;AAAA,EAOA,aAAA,CACwB,aACY,OAAA,EAClC;AACE,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,uBAAA,CAAwB,WAAW,CAAA;AAE3D,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,OAAA,CAAQ,UAAA,EAAY,YAAY,OAAO,CAAA;AACvC,IAAA,OAAA,CAAQ,yBAAyB,WAAW,CAAA;AAAA,EAChD;AACJ;AA9aI,eAAA,CAAA;AAAA,EALC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,KAAA,CAAM,0BAAA,CAA2B,OAAO,CAAA;AAAA,EACvD,cAAA,CAAe,KAAA,CAAM,mBAAA,CAAoB,UAAU,CAAA;AAAA,EAE/C,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA,CAAA;AAAA,EAC7B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAZb,kBAAA,CAST,SAAA,EAAA,YAAA,EAAA,CAAA,CAAA;AAiFA,eAAA,CAAA;AAAA,EALC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,MAAA,CAAO,0BAAA,CAA2B,OAAO,CAAA;AAAA,EACxD,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,UAAU,CAAA;AAAA,EAEhD,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA;AAAA,CAAA,EA5FzB,kBAAA,CA0FT,SAAA,EAAA,eAAA,EAAA,CAAA,CAAA;AAsBA,eAAA,CAAA;AAAA,EALC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,KAAA,CAAM,mBAAA,CAAoB,YAAY,CAAA;AAAA,EACrD,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,YAAY,CAAA;AAAA,EAElD,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA,CAAA;AAAA,EAC7B,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,mBAAmB,CAAA,CAAA;AAAA,EAE5B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAvHb,kBAAA,CAgHT,SAAA,EAAA,cAAA,EAAA,CAAA,CAAA;AA4DA,eAAA,CAAA;AAAA,EAJC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,YAAY,CAAA;AAAA,EAElD,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA;AAAA,CAAA,EA9KzB,kBAAA,CA4KT,SAAA,EAAA,iBAAA,EAAA,CAAA,CAAA;AA6BA,eAAA,CAAA;AAAA,EAJC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,KAAA,CAAM,mBAAA,CAAoB,WAAW,CAAA;AAAA,EAEhD,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA,CAAA;AAAA,EAC7B,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,mBAAmB,CAAA,CAAA;AAAA,EAC5B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EA/Mb,kBAAA,CAyMT,SAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AAsEA,eAAA,CAAA;AAAA,EAJC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,WAAW,CAAA;AAAA,EAEjD,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA;AAAA,CAAA,EAjRzB,kBAAA,CA+QT,SAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;AA4BA,eAAA,CAAA;AAAA,EALC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,KAAA,CAAM,mBAAA,CAAoB,OAAO,CAAA;AAAA,EAChD,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,OAAO,CAAA;AAAA,EAE7C,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA,CAAA;AAAA,EAC7B,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,mBAAmB,CAAA,CAAA;AAAA,EAE5B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAlTb,kBAAA,CA2ST,SAAA,EAAA,SAAA,EAAA,CAAA,CAAA;AAwDA,eAAA,CAAA;AAAA,EAJC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,OAAO,CAAA;AAAA,EAE7C,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA;AAAA,CAAA,EArWzB,kBAAA,CAmWT,SAAA,EAAA,YAAA,EAAA,CAAA,CAAA;AAmBA,eAAA,CAAA;AAAA,EALC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,KAAA,CAAM,mBAAA,CAAoB,UAAU,CAAA;AAAA,EACnD,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,UAAU,CAAA;AAAA,EAEhD,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA,CAAA;AAAA,EAC7B,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,mBAAmB,CAAA,CAAA;AAAA,EAE5B,4BAAS,QAAQ,CAAA;AAAA,CAAA,EA7Xb,kBAAA,CAsXT,SAAA,EAAA,YAAA,EAAA,CAAA,CAAA;AAsDA,eAAA,CAAA;AAAA,EAJC,QAAQ,MAAA,CAAO;AAAA,IACZ,WAAA,EAAa;AAAA,GAChB,CAAA;AAAA,EACA,cAAA,CAAe,MAAA,CAAO,mBAAA,CAAoB,UAAU,CAAA;AAAA,EAEhD,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,oBAAoB,CAAA;AAAA,CAAA,EA9azB,kBAAA,CA4aT,SAAA,EAAA,eAAA,EAAA,CAAA,CAAA;AA5aS,kBAAA,GAAN,eAAA,CAAA;AAAA,EALN,QAAQ,SAAA,CAAU;AAAA,IACf,SAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACY,kBAAA,CAAA","file":"AreHTML.interpreter.mjs","sourcesContent":["import { A_Caller, A_Inject } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport {\n AreSyntax, AreStore,\n AreEvent,\n AreInstructionDefaultNames,\n AreInterpreterError,\n AreInterpreter\n} from \"@adaas/are\";\nimport { AreHTMLInstructions } from \"@adaas/are-html/instructions/AreHTML.instructions.constants\";\nimport { AddAttributeInstruction } from \"@adaas/are-html/instructions/AddAttribute.instruction\";\nimport { AddCommentInstruction } from \"@adaas/are-html/instructions/AddComment.instruction\";\nimport { AddElementInstruction } from \"@adaas/are-html/instructions/AddElement.instruction\";\nimport { AddListenerInstruction } from \"@adaas/are-html/instructions/AddListener.instruction\";\nimport { AddTextInstruction } from \"@adaas/are-html/instructions/AddText.instruction\";\nimport { AreDirectiveContext } from \"@adaas/are-html/directive/AreDirective.context\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\nimport { AreHTMLEngineContext } from \"./AreHTML.context\";\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreHTMLInterpreter',\n description: 'AreHTMLInterpreter is a component that serves as a host for rendering AreNodes into HTML. It provides the necessary context and environment for AreNodes to be rendered and interact with the DOM.'\n})\nexport class AreHTMLInterpreter extends AreInterpreter {\n // ─────────────────────────────────────────────────────────────────────────────\n // ── CreateElement — Apply / Revert ───────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n @A_Frame.Method({\n description: 'Create an HTML element based on the provided declaration instruction. Handles both root-level mounting and child element creation based on the structural parent hierarchy.'\n })\n @AreInterpreter.Apply(AreInstructionDefaultNames.Default)\n @AreInterpreter.Apply(AreHTMLInstructions.AddElement)\n addElement(\n @A_Inject(A_Caller) declaration: AddElementInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n try {\n const node = declaration.owner as AreHTMLNode;\n\n let currentNode: AreHTMLNode | undefined = node;\n let parent: AreHTMLNode | undefined = node.parent as AreHTMLNode | undefined;\n\n while (parent) {\n if (context.getNodeElement(parent)) {\n break;\n }\n currentNode = parent;\n parent = parent.parent as AreHTMLNode | undefined;\n }\n\n\n // Determine the element tag — components render as a wrapper div\n const tag = node.tag;\n\n if (parent) {\n\n const mountPoint = context.getNodeElement(parent)\n\n if (!mountPoint) {\n throw new AreInterpreterError({\n title: 'Mount Point Not Found',\n description: `Could not find a mount point for the node with id \"${node.id}\". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`\n });\n }\n\n const element = context.container.createElement(tag);\n\n if (mountPoint.nodeType === Node.ELEMENT_NODE) {\n // parent is a real element — just append\n mountPoint.appendChild(element);\n } else {\n // parent is an anchor (comment/text node) — insert before it\n // so content always appears before the anchor marker\n mountPoint.parentNode?.insertBefore(element, mountPoint);\n }\n\n context.setInstructionElement(declaration, element);\n\n } else {\n const mountPoint = context.container.getElementById(node.id);\n if (!mountPoint) {\n throw new AreInterpreterError({\n title: 'Mount Point Not Found',\n description: `Could not find a mount point for the node with id \"${node.id}\". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`\n });\n }\n\n const element = context.container.createElement(tag);\n\n element.setAttribute('data-aseid', node.aseid.toString());\n\n mountPoint.parentNode?.replaceChild(element, mountPoint);\n\n context.setInstructionElement(declaration, element);\n }\n\n // Register the element in the context index\n\n logger?.debug('green', `Element ${node.aseid.toString()} added to Context:`);\n\n } catch (error) {\n logger?.error(error);\n throw error;\n }\n }\n\n\n @A_Frame.Method({\n description: 'Remove an HTML element that was created by a CreateElement declaration. Cleans up the DOM and the context index.'\n })\n @AreInterpreter.Revert(AreInstructionDefaultNames.Default)\n @AreInterpreter.Revert(AreHTMLInstructions.AddElement)\n removeElement(\n @A_Inject(A_Caller) declaration: AddElementInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n context.removeInstructionElement(declaration);\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── AddAttribute — Apply / Revert ────────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n @A_Frame.Method({\n description: 'Add an attribute to an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddAttribute)\n @AreInterpreter.Update(AreHTMLInstructions.AddAttribute)\n addAttribute(\n @A_Inject(A_Caller) mutation: AddAttributeInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ): void {\n const element = context.getElementByInstruction(mutation.parent!);\n\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${mutation.parent}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n }\n const { name, content, evaluate } = mutation.payload;\n\n const value = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n\n /**\n * First time\n */\n if (mutation.cache === undefined) {\n\n const existingValue = (element as HTMLElement).getAttribute(name);\n\n const result = (existingValue ? `${existingValue} ${value}` : value);\n\n (element as HTMLElement).setAttribute(name, result);\n\n mutation.cache = value;\n\n } else {\n\n const existingValue = (element as HTMLElement).getAttribute(name);\n\n const existingParts = existingValue ? existingValue.split(/\\s+/).filter(Boolean) : [];\n const oldParts = new Set((mutation.cache as string).split(/\\s+/).filter(Boolean));\n const newParts = value ? value.split(/\\s+/).filter(Boolean) : [];\n\n const result = [...existingParts.filter(part => !oldParts.has(part)), ...newParts].join(' ');\n\n (element as HTMLElement).setAttribute(name, result);\n\n mutation.cache = value;\n }\n\n\n }\n\n @A_Frame.Method({\n description: 'Remove an attribute from an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddAttribute)\n removeAttribute(\n @A_Inject(A_Caller) mutation: AddAttributeInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ): void {\n try {\n const element = context.getElementByInstruction(mutation.parent!);\n\n if (!element) return;\n\n const { name } = mutation.payload;\n\n if (name && element.nodeType === Node.ELEMENT_NODE) {\n (element as HTMLElement)?.removeAttribute(name);\n }\n } catch (error) {\n console.log('Error removing attribute:', error);\n }\n\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── addEventListener — Apply / Revert ────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n\n @A_Frame.Method({\n description: 'Add an event listener to an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddListener)\n addEventListener(\n @A_Inject(A_Caller) mutation: AddListenerInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const element = context.getElementByInstruction(mutation.parent);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${mutation.parent}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before adding event listeners.`\n });\n }\n\n /**\n * e.g. @click=\"handleClick\" \n * \n * e.g. @click=\"handleClick($event, element)\"\n * \n * e.g. @click=\"(e)=> user.name ? handleClick(e) : null\" (with conditional logic)\n * \n * e.g. @click=\"(e)=> isValid(user.name) ? handleClick(e) : null\" (with conditional logic)\n * \n * e.g. @click=\"(e)=> isValid(user.name) ? handleClick(e, format(user.name)) : null\" (with conditional logic)\n */\n\n\n const handlers = syntax.extractEmitHandlers(mutation.payload.handler);\n const handlerScope = {}\n\n for (const handler of handlers) {\n const handlerFn = (...args: any[]) => {\n const event = new AreEvent(handler)\n\n event.set('args', args);\n event.set('element', element);\n event.set('instruction', mutation);\n\n mutation.owner.emit(event);\n }\n\n handlerScope[`$${handler}`] = handlerFn;\n }\n\n const callback = (e: Event) => {\n context.startPerformance('Click')\n\n const result = syntax.evaluate(mutation.payload.handler, store, {\n ...handlerScope,\n ...(directiveContext?.scope || {})\n });\n if (typeof result === 'function') result(e);\n };\n\n\n if (callback) {\n element.addEventListener(mutation.payload.name, callback);\n context.addListener(element, mutation.payload.name, callback);\n }\n }\n\n\n @A_Frame.Method({\n description: 'Remove an event listener from an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddListener)\n removeEventListener(\n @A_Inject(A_Caller) mutation: AddListenerInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(mutation.parent);\n\n if (!element) return;\n\n const { name } = mutation.payload;\n\n const listener = context.getListener(element, name);\n\n if (listener) {\n element.removeEventListener(name, listener);\n context.removeListener(element, name);\n }\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── AddText — Apply / Revert ─────────────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n\n @A_Frame.Method({\n description: 'Add text content to an HTML element based on the provided declaration instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddText)\n @AreInterpreter.Update(AreHTMLInstructions.AddText)\n addText(\n @A_Inject(A_Caller) declaration: AddTextInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = declaration.owner.parent;\n const { content, evaluate } = declaration.payload;\n\n const value = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n\n if (!node) {\n const textNode = context.container.createTextNode(value);\n context.container.body.appendChild(textNode);\n context.setInstructionElement(declaration, textNode);\n\n } else {\n const element = context.getNodeElement(node);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${declaration.owner.parent.aseid}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n\n }\n\n const existingNode = context.getElementByInstruction(declaration);\n\n if (existingNode) {\n existingNode.textContent = value;\n } else {\n const textNode = context.container.createTextNode(value);\n element.appendChild(textNode);\n\n context.setInstructionElement(declaration, textNode);\n }\n }\n\n\n\n logger?.debug('green', `Text ${node?.aseid.toString()} added to Context:`);\n\n }\n\n\n @A_Frame.Method({\n description: 'Remove text content from an HTML element based on the provided declaration instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddText)\n removeText(\n @A_Inject(A_Caller) declaration: AddTextInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (!element) return;\n\n element.parentNode?.removeChild(element);\n context.removeInstructionElement(declaration);\n }\n\n\n\n @A_Frame.Method({\n description: 'Add a comment node to the DOM based on the provided declaration instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddComment)\n @AreInterpreter.Update(AreHTMLInstructions.AddComment)\n addComment(\n @A_Inject(A_Caller) declaration: AddCommentInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = declaration.owner.parent;\n const { content, evaluate } = declaration.payload;\n\n const value = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n\n if (!node) {\n const commentNode = context.container.createComment(value);\n context.container.body.appendChild(commentNode);\n context.setInstructionElement(declaration, commentNode);\n\n } else {\n const element = context.getNodeElement(node);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${declaration.owner.parent.aseid}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n }\n\n const existingNode = context.getElementByInstruction(declaration);\n\n if (existingNode) {\n existingNode.textContent = value;\n } else {\n const commentNode = context.container.createComment(value);\n element.appendChild(commentNode);\n\n context.setInstructionElement(declaration, commentNode);\n }\n }\n\n\n\n logger?.debug('green', `Comment ${node?.aseid.toString()} added to Context:`);\n }\n\n\n @A_Frame.Method({\n description: 'Remove a comment node from the DOM based on the provided declaration instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddComment)\n removeComment(\n @A_Inject(A_Caller) declaration: AddCommentInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (!element) return;\n\n element.parentNode?.removeChild(element);\n context.removeInstructionElement(declaration);\n }\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.interpreter.ts"],"names":[],"mappings":"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","file":"AreHTML.interpreter.mjs","sourcesContent":["import { A_Caller, A_Inject } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame/core\"\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport {\n AreSyntax, AreStore,\n AreEvent,\n AreInstructionDefaultNames,\n AreInterpreterError,\n AreInterpreter\n} from \"@adaas/are\";\nimport { AreHTMLInstructions } from \"@adaas/are-html/instructions/AreHTML.instructions.constants\";\nimport { AddAttributeInstruction } from \"@adaas/are-html/instructions/AddAttribute.instruction\";\nimport { AddCommentInstruction } from \"@adaas/are-html/instructions/AddComment.instruction\";\nimport { AddElementInstruction } from \"@adaas/are-html/instructions/AddElement.instruction\";\nimport { AddListenerInstruction } from \"@adaas/are-html/instructions/AddListener.instruction\";\nimport { AddTextInstruction } from \"@adaas/are-html/instructions/AddText.instruction\";\nimport { AreDirectiveContext } from \"@adaas/are-html/directive/AreDirective.context\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\nimport { AreHTMLEngineContext } from \"./AreHTML.context\";\nimport {\n isBooleanAttribute,\n isIDLFormProperty,\n normalizeClassValue,\n normalizeStyleValue,\n parseEventName,\n toDOMString,\n} from \"./AreHTML.constants\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'DOM interpreter for the HTML rendering pipeline. Extends AreInterpreter to apply and revert each ARE instruction type directly against the browser DOM — creating and removing elements, setting and removing attributes and event listeners, managing inline styles, and inserting text and comment nodes. Driven by the scene diff computed per render cycle.'\n})\nexport class AreHTMLInterpreter extends AreInterpreter {\n // ─────────────────────────────────────────────────────────────────────────────\n // ── CreateElement — Apply / Revert ───────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n @A_Frame.Define({\n description: 'Create an HTML element based on the provided declaration instruction. Handles both root-level mounting and child element creation based on the structural parent hierarchy.'\n })\n @AreInterpreter.Apply(AreInstructionDefaultNames.Default)\n @AreInterpreter.Apply(AreHTMLInstructions.AddElement)\n addElement(\n @A_Inject(A_Caller) declaration: AddElementInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n try {\n const node = declaration.owner as AreHTMLNode;\n\n let currentNode: AreHTMLNode | undefined = node;\n let parent: AreHTMLNode | undefined = node.parent as AreHTMLNode | undefined;\n\n while (parent) {\n if (context.getNodeElement(parent)) {\n break;\n }\n currentNode = parent;\n parent = parent.parent as AreHTMLNode | undefined;\n }\n\n\n // Determine the element tag — components render as a wrapper div\n const tag = node.tag;\n\n if (parent) {\n\n const mountPoint = context.getNodeElement(parent)\n\n if (!mountPoint) {\n throw new AreInterpreterError({\n title: 'Mount Point Not Found',\n description: `Could not find a mount point for the node with id \"${node.id}\". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`\n });\n }\n\n const element = context.container.createElement(tag);\n element.setAttribute('data-aseid', node.aseid.toString());\n\n if (mountPoint.nodeType === Node.ELEMENT_NODE) {\n // parent is a real element — just append\n mountPoint.appendChild(element);\n } else {\n // parent is an anchor (comment/text node) — insert before it\n // so content always appears before the anchor marker\n mountPoint.parentNode?.insertBefore(element, mountPoint);\n }\n\n context.setInstructionElement(declaration, element);\n\n } else {\n const mountPoint = context.container.getElementById(node.id);\n if (!mountPoint) {\n throw new AreInterpreterError({\n title: 'Mount Point Not Found',\n description: `Could not find a mount point for the node with id \"${node.id}\". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`\n });\n }\n\n const element = context.container.createElement(tag);\n\n element.setAttribute('data-aseid', node.aseid.toString());\n\n mountPoint.parentNode?.replaceChild(element, mountPoint);\n\n context.setInstructionElement(declaration, element);\n }\n\n // Register the element in the context index\n\n logger?.debug('green', `Element ${node.aseid.toString()} added to Context:`);\n\n } catch (error) {\n logger?.error(error);\n throw error;\n }\n }\n\n\n @A_Frame.Define({\n description: 'Remove an HTML element that was created by a CreateElement declaration. Cleans up the DOM and the context index.'\n })\n @AreInterpreter.Revert(AreInstructionDefaultNames.Default)\n @AreInterpreter.Revert(AreHTMLInstructions.AddElement)\n removeElement(\n @A_Inject(A_Caller) declaration: AddElementInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n context.removeInstructionElement(declaration);\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── AddAttribute — Apply / Revert ────────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n @A_Frame.Define({\n description: 'Add an attribute to an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddAttribute)\n @AreInterpreter.Update(AreHTMLInstructions.AddAttribute)\n addAttribute(\n @A_Inject(A_Caller) mutation: AddAttributeInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ): void {\n const element = context.getElementByInstruction(mutation.parent!);\n\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${mutation.parent}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n }\n const { name, content, evaluate } = mutation.payload;\n\n const rawValue = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n const el = element as HTMLElement;\n const lowerName = name.toLowerCase();\n\n // ── 1. Boolean attributes ────────────────────────────────────────────\n if (isBooleanAttribute(lowerName)) {\n if (rawValue) {\n el.setAttribute(lowerName, '');\n // also reflect IDL property where supported (disabled, hidden, …)\n try { (el as any)[lowerName] = true; } catch { /* ignore */ }\n } else {\n el.removeAttribute(lowerName);\n try { (el as any)[lowerName] = false; } catch { /* ignore */ }\n }\n mutation.cache = rawValue ? 'true' : '';\n return;\n }\n\n // ── 2. Form-control IDL properties (value/checked/selected) ─────────\n if (isIDLFormProperty(el.tagName, name)) {\n const propName = name === 'value' ? 'value'\n : name === 'checked' ? 'checked'\n : name === 'selected' ? 'selected'\n : name === 'indeterminate' ? 'indeterminate'\n : name;\n try {\n if (propName === 'checked' || propName === 'selected' || propName === 'indeterminate') {\n (el as any)[propName] = !!rawValue;\n } else {\n (el as any)[propName] = toDOMString(rawValue);\n }\n } catch { /* ignore */ }\n // also keep the attribute in sync for SSR/CSS selectors\n if (propName !== 'value') {\n if (rawValue) el.setAttribute(name, ''); else el.removeAttribute(name);\n } else {\n el.setAttribute(name, toDOMString(rawValue));\n }\n mutation.cache = toDOMString(rawValue);\n return;\n }\n\n // ── 3. Class binding — supports object/array/string and merges ──────\n if (lowerName === 'class') {\n const newValue = normalizeClassValue(rawValue);\n\n if (mutation.cache === undefined) {\n const existingValue = el.getAttribute('class');\n const merged = existingValue ? `${existingValue} ${newValue}`.trim() : newValue;\n if (merged) el.setAttribute('class', merged); else el.removeAttribute('class');\n } else {\n const existingValue = el.getAttribute('class');\n const existingParts = existingValue ? existingValue.split(/\\s+/).filter(Boolean) : [];\n const oldParts = new Set((mutation.cache as string).split(/\\s+/).filter(Boolean));\n const newParts = newValue ? newValue.split(/\\s+/).filter(Boolean) : [];\n\n const merged = [...existingParts.filter(p => !oldParts.has(p)), ...newParts].join(' ');\n if (merged) el.setAttribute('class', merged); else el.removeAttribute('class');\n }\n mutation.cache = newValue;\n return;\n }\n\n // ── 4. Style binding — supports object/array/string ─────────────────\n if (lowerName === 'style') {\n const newValue = normalizeStyleValue(rawValue);\n if (newValue) el.setAttribute('style', newValue); else el.removeAttribute('style');\n mutation.cache = newValue;\n return;\n }\n\n // ── 5. Default: replace attribute (no whitespace merge) ─────────────\n const stringValue = toDOMString(rawValue);\n if (stringValue === '' && evaluate && (rawValue === false || rawValue === null || rawValue === undefined)) {\n el.removeAttribute(name);\n } else {\n el.setAttribute(name, stringValue);\n }\n mutation.cache = stringValue;\n\n\n }\n\n @A_Frame.Define({\n description: 'Remove an attribute from an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddAttribute)\n removeAttribute(\n @A_Inject(A_Caller) mutation: AddAttributeInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ): void {\n try {\n const element = context.getElementByInstruction(mutation.parent!);\n\n if (!element) return;\n\n const { name } = mutation.payload;\n\n if (name && element.nodeType === Node.ELEMENT_NODE) {\n (element as HTMLElement)?.removeAttribute(name);\n }\n } catch (error) {\n console.log('Error removing attribute:', error);\n }\n\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── addEventListener — Apply / Revert ────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n\n @A_Frame.Define({\n description: 'Add an event listener to an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddListener)\n addEventListener(\n @A_Inject(A_Caller) mutation: AddListenerInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const element = context.getElementByInstruction(mutation.parent);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${mutation.parent}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before adding event listeners.`\n });\n }\n\n /**\n * e.g. @click=\"handleClick\"\n * e.g. @click=\"handleClick($event, element)\"\n * e.g. @click.stop.prevent=\"handleClick\"\n * e.g. @keydown.enter=\"submit\"\n * e.g. @click=\"(e)=> user.name ? handleClick(e) : null\"\n */\n\n const { event: eventName, modifiers } = parseEventName(mutation.payload.name);\n\n const listenerOptions: AddEventListenerOptions = {};\n if (modifiers.has('capture')) listenerOptions.capture = true;\n if (modifiers.has('once')) listenerOptions.once = true;\n if (modifiers.has('passive')) listenerOptions.passive = true;\n\n const handlers = syntax.extractEmitHandlers(mutation.payload.handler);\n\n // Holds the live DOM event so handler invocations (with or without\n // template arguments) always have access to it.\n let liveEvent: Event | null = null;\n\n const handlerScope: Record<string, any> = {};\n\n for (const handler of handlers) {\n const handlerFn = (...args: any[]) => {\n const event = new AreEvent(handler);\n // If user passed only template args (e.g. $h('x')), append the DOM\n // event as the last arg. If they passed nothing, args[0] is the DOM event.\n const effectiveArgs = args.length === 0 && liveEvent\n ? [liveEvent]\n : liveEvent\n ? [...args, liveEvent]\n : args;\n event.set('args', effectiveArgs);\n event.set('element', element);\n event.set('instruction', mutation);\n mutation.owner.emit(event);\n };\n handlerScope[`$${handler}`] = handlerFn;\n }\n\n const callback = (e: Event) => {\n try {\n liveEvent = e;\n\n if (modifiers.has('self') && e.target !== element) return;\n if (modifiers.has('stop')) e.stopPropagation();\n if (modifiers.has('prevent')) e.preventDefault();\n\n // key-name modifiers for keyboard events: @keydown.enter / .esc / .tab / .space / .up / .down / .left / .right / .delete\n if (e instanceof KeyboardEvent && modifiers.size > 0) {\n const key = (e.key || '').toLowerCase();\n const KEY_ALIASES: Record<string, string[]> = {\n enter: ['enter'],\n esc: ['escape'],\n escape: ['escape'],\n tab: ['tab'],\n space: [' ', 'spacebar'],\n up: ['arrowup'],\n down: ['arrowdown'],\n left: ['arrowleft'],\n right: ['arrowright'],\n delete: ['delete', 'backspace'],\n };\n const keyMods = [...modifiers].filter(m =>\n m in KEY_ALIASES ||\n m === 'ctrl' || m === 'alt' || m === 'shift' || m === 'meta');\n\n if (keyMods.length > 0) {\n const keyMatch = keyMods.some(m => {\n if (m === 'ctrl') return e.ctrlKey;\n if (m === 'alt') return e.altKey;\n if (m === 'shift') return e.shiftKey;\n if (m === 'meta') return e.metaKey;\n const aliases = KEY_ALIASES[m];\n return aliases && aliases.includes(key);\n });\n if (!keyMatch) return;\n }\n }\n\n context.startPerformance('event:' + eventName);\n\n const result = syntax.evaluate(mutation.payload.handler, store, {\n ...handlerScope,\n $event: e,\n ...(directiveContext?.scope || {})\n });\n if (typeof result === 'function') result(e);\n\n context.endPerformance('event:' + eventName);\n } catch (err) {\n logger?.error(err);\n } finally {\n liveEvent = null;\n }\n };\n\n const useOptions = listenerOptions.capture || listenerOptions.once || listenerOptions.passive;\n if (useOptions) {\n element.addEventListener(eventName, callback, listenerOptions);\n } else {\n element.addEventListener(eventName, callback);\n }\n // Track on both the context (for diagnostics) and the mutation itself\n // so the revert path can detach the exact same callback.\n (mutation.payload as any)._callback = callback;\n context.addListener(element, mutation.payload.name, callback);\n }\n\n\n @A_Frame.Define({\n description: 'Remove an event listener from an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddListener)\n removeEventListener(\n @A_Inject(A_Caller) mutation: AddListenerInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(mutation.parent);\n\n if (!element) return;\n\n const { name } = mutation.payload;\n const { event: eventName } = parseEventName(name);\n\n const listener = (mutation.payload as any)._callback as EventListenerOrEventListenerObject | undefined;\n\n if (listener) {\n element.removeEventListener(eventName, listener);\n context.removeListener(element, name, listener);\n (mutation.payload as any)._callback = undefined;\n }\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── AddText — Apply / Revert ─────────────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n\n @A_Frame.Define({\n description: 'Add text content to an HTML element based on the provided declaration instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddText)\n @AreInterpreter.Update(AreHTMLInstructions.AddText)\n addText(\n @A_Inject(A_Caller) declaration: AddTextInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = declaration.owner.parent;\n const { content, evaluate } = declaration.payload;\n\n const rawValue = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n const value = toDOMString(rawValue);\n\n\n if (!node) {\n const textNode = context.container.createTextNode(value);\n context.container.body.appendChild(textNode);\n context.setInstructionElement(declaration, textNode);\n\n } else {\n const element = context.getNodeElement(node);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${declaration.owner.parent.aseid}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n\n }\n\n const existingNode = context.getElementByInstruction(declaration);\n\n if (existingNode) {\n existingNode.textContent = value;\n } else {\n const textNode = context.container.createTextNode(value);\n element.appendChild(textNode);\n\n context.setInstructionElement(declaration, textNode);\n }\n }\n\n\n\n logger?.debug('green', `Text ${node?.aseid.toString()} added to Context:`);\n\n }\n\n\n @A_Frame.Define({\n description: 'Remove text content from an HTML element based on the provided declaration instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddText)\n removeText(\n @A_Inject(A_Caller) declaration: AddTextInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (!element) return;\n\n element.parentNode?.removeChild(element);\n context.removeInstructionElement(declaration);\n }\n\n\n\n @A_Frame.Define({\n description: 'Add a comment node to the DOM based on the provided declaration instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddComment)\n @AreInterpreter.Update(AreHTMLInstructions.AddComment)\n addComment(\n @A_Inject(A_Caller) declaration: AddCommentInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = declaration.owner.parent;\n const { content, evaluate } = declaration.payload;\n\n const rawValue = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n const value = toDOMString(rawValue);\n\n\n if (!node) {\n const commentNode = context.container.createComment(value);\n context.container.body.appendChild(commentNode);\n context.setInstructionElement(declaration, commentNode);\n\n } else {\n const element = context.getNodeElement(node);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${declaration.owner.parent.aseid}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n }\n\n const existingNode = context.getElementByInstruction(declaration);\n\n if (existingNode) {\n existingNode.textContent = value;\n } else {\n const commentNode = context.container.createComment(value);\n element.appendChild(commentNode);\n\n context.setInstructionElement(declaration, commentNode);\n }\n }\n\n\n\n logger?.debug('green', `Comment ${node?.aseid.toString()} added to Context:`);\n }\n\n\n @A_Frame.Define({\n description: 'Remove a comment node from the DOM based on the provided declaration instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddComment)\n removeComment(\n @A_Inject(A_Caller) declaration: AddCommentInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (!element) return;\n\n element.parentNode?.removeChild(element);\n context.removeInstructionElement(declaration);\n }\n}"]}
@@ -10,19 +10,20 @@ var AreText = require('@adaas/are-html/nodes/AreText');
10
10
  var AreDirective_attribute = require('@adaas/are-html/attributes/AreDirective.attribute');
11
11
  var AreDirective_constants = require('@adaas/are-html/directive/AreDirective.constants');
12
12
  var AreHTML_context = require('./AreHTML.context');
13
+ var core = require('@adaas/a-frame/core');
13
14
 
14
15
  var __defProp = Object.defineProperty;
15
16
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
16
17
  var __decorateClass = (decorators, target, key, kind) => {
17
- var result = __getOwnPropDesc(target, key) ;
18
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
18
19
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
19
20
  if (decorator = decorators[i])
20
- result = (decorator(target, key, result) ) || result;
21
- if (result) __defProp(target, key, result);
21
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
22
+ if (kind && result) __defProp(target, key, result);
22
23
  return result;
23
24
  };
24
25
  var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
25
- class AreHTMLLifecycle extends are.AreLifecycle {
26
+ exports.AreHTMLLifecycle = class AreHTMLLifecycle extends are.AreLifecycle {
26
27
  initComponent(node, scope, context, logger, ...args) {
27
28
  super.init(node, scope, context, logger, ...args);
28
29
  }
@@ -45,14 +46,14 @@ class AreHTMLLifecycle extends are.AreLifecycle {
45
46
  logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named "AreDirective${aConcept.A_FormatterHelper.toPascalCase(directive.name)}" to handle this directive.`);
46
47
  }
47
48
  }
48
- }
49
+ };
49
50
  __decorateClass([
50
51
  are.AreLifecycle.Init(AreComponent.AreComponentNode),
51
52
  __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
52
53
  __decorateParam(1, aConcept.A_Inject(aConcept.A_Scope)),
53
54
  __decorateParam(2, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
54
55
  __decorateParam(3, aConcept.A_Inject(aLogger.A_Logger))
55
- ], AreHTMLLifecycle.prototype, "initComponent");
56
+ ], exports.AreHTMLLifecycle.prototype, "initComponent", 1);
56
57
  __decorateClass([
57
58
  are.AreLifecycle.Init(AreRoot.AreRootNode),
58
59
  __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
@@ -60,21 +61,21 @@ __decorateClass([
60
61
  __decorateParam(2, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
61
62
  __decorateParam(3, aConcept.A_Inject(are.AreSignalsContext)),
62
63
  __decorateParam(4, aConcept.A_Inject(aLogger.A_Logger))
63
- ], AreHTMLLifecycle.prototype, "initRoot");
64
+ ], exports.AreHTMLLifecycle.prototype, "initRoot", 1);
64
65
  __decorateClass([
65
66
  are.AreLifecycle.Init(AreText.AreText),
66
67
  __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
67
68
  __decorateParam(1, aConcept.A_Inject(aConcept.A_Scope)),
68
69
  __decorateParam(2, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
69
70
  __decorateParam(3, aConcept.A_Inject(aLogger.A_Logger))
70
- ], AreHTMLLifecycle.prototype, "initText");
71
+ ], exports.AreHTMLLifecycle.prototype, "initText", 1);
71
72
  __decorateClass([
72
73
  are.AreLifecycle.Init(AreInterpolation.AreInterpolation),
73
74
  __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
74
75
  __decorateParam(1, aConcept.A_Inject(aConcept.A_Scope)),
75
76
  __decorateParam(2, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
76
77
  __decorateParam(3, aConcept.A_Inject(aLogger.A_Logger))
77
- ], AreHTMLLifecycle.prototype, "initInterpolation");
78
+ ], exports.AreHTMLLifecycle.prototype, "initInterpolation", 1);
78
79
  __decorateClass([
79
80
  aConcept.A_Feature.Extend({
80
81
  name: are.AreAttributeFeatures.Update,
@@ -84,8 +85,12 @@ __decorateClass([
84
85
  __decorateParam(1, aConcept.A_Inject(aConcept.A_Scope)),
85
86
  __decorateParam(2, aConcept.A_Inject(aConcept.A_Feature)),
86
87
  __decorateParam(3, aConcept.A_Inject(aLogger.A_Logger))
87
- ], AreHTMLLifecycle.prototype, "updateDirectiveAttribute");
88
-
89
- exports.AreHTMLLifecycle = AreHTMLLifecycle;
88
+ ], exports.AreHTMLLifecycle.prototype, "updateDirectiveAttribute", 1);
89
+ exports.AreHTMLLifecycle = __decorateClass([
90
+ core.A_Frame.Define({
91
+ namespace: "a-are-html",
92
+ description: "HTML-specific lifecycle handler extending AreLifecycle. Wires DOM-aware init hooks for component nodes, root nodes, interpolations, text nodes, and directive attributes to the ARE rendering pipeline, connecting each entity to its HTML engine context and priming the scene for subsequent compilation and interpretation."
93
+ })
94
+ ], exports.AreHTMLLifecycle);
90
95
  //# sourceMappingURL=AreHTML.lifecycle.js.map
91
96
  //# sourceMappingURL=AreHTML.lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.lifecycle.ts"],"names":["AreLifecycle","AreScene","AreDirectiveFeatures","A_FormatterHelper","AreComponentNode","A_Caller","A_Scope","AreHTMLEngineContext","A_Logger","AreRootNode","AreSignalsContext","AreText","AreInterpolation","A_Feature","AreAttributeFeatures","AreDirectiveAttribute"],"mappings":"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","file":"AreHTML.lifecycle.js","sourcesContent":["import { A_Caller, A_Feature, A_FormatterHelper, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { AreLifecycle, AreScene, AreAttributeFeatures, AreSignalsContext } from \"@adaas/are\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreInterpolation } from \"@adaas/are-html/nodes/AreInterpolation\";\nimport { AreText } from \"@adaas/are-html/nodes/AreText\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreDirectiveFeatures } from \"@adaas/are-html/directive/AreDirective.constants\";\nimport { AreHTMLEngineContext } from \"./AreHTML.context\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\n\n\nexport class AreHTMLLifecycle extends AreLifecycle {\n\n @AreLifecycle.Init(AreComponentNode)\n initComponent(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreRootNode)\n initRoot(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreSignalsContext) signalsContext?: AreSignalsContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n signalsContext?.subscribe(node);\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreText)\n initText(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n @AreLifecycle.Init(AreInterpolation)\n initInterpolation(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n\n\n @A_Feature.Extend({\n name: AreAttributeFeatures.Update,\n scope: [AreDirectiveAttribute],\n })\n updateDirectiveAttribute(\n @A_Inject(A_Caller) directive: AreDirectiveAttribute,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_Feature) feature: A_Feature,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n /**\n * 3. If the attribute is a directive, then we should find a component that is responsible for\n * the directive compiling logic, and call it. \n * In case component is not found we just want to log a warning, \n * since the directive may be handled by some parent component or simply is a mistake in the template.\n */\n if (directive.component) {\n feature.chain(directive.component, AreDirectiveFeatures.Update, directive.owner.scope);\n } else {\n logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named \"AreDirective${A_FormatterHelper.toPascalCase(directive.name)}\" to handle this directive.`);\n }\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.lifecycle.ts"],"names":["AreHTMLLifecycle","AreLifecycle","AreScene","AreDirectiveFeatures","A_FormatterHelper","AreComponentNode","A_Caller","A_Scope","AreHTMLEngineContext","A_Logger","AreRootNode","AreSignalsContext","AreText","AreInterpolation","A_Feature","AreAttributeFeatures","AreDirectiveAttribute","A_Frame"],"mappings":"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","file":"AreHTML.lifecycle.js","sourcesContent":["import { A_Caller, A_Feature, A_FormatterHelper, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { AreLifecycle, AreScene, AreAttributeFeatures, AreSignalsContext } from \"@adaas/are\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreInterpolation } from \"@adaas/are-html/nodes/AreInterpolation\";\nimport { AreText } from \"@adaas/are-html/nodes/AreText\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreDirectiveFeatures } from \"@adaas/are-html/directive/AreDirective.constants\";\nimport { AreHTMLEngineContext } from \"./AreHTML.context\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific lifecycle handler extending AreLifecycle. Wires DOM-aware init hooks for component nodes, root nodes, interpolations, text nodes, and directive attributes to the ARE rendering pipeline, connecting each entity to its HTML engine context and priming the scene for subsequent compilation and interpretation.'\n})\nexport class AreHTMLLifecycle extends AreLifecycle {\n\n @AreLifecycle.Init(AreComponentNode)\n initComponent(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreRootNode)\n initRoot(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreSignalsContext) signalsContext?: AreSignalsContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n signalsContext?.subscribe(node);\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreText)\n initText(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n @AreLifecycle.Init(AreInterpolation)\n initInterpolation(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n\n\n @A_Feature.Extend({\n name: AreAttributeFeatures.Update,\n scope: [AreDirectiveAttribute],\n })\n updateDirectiveAttribute(\n @A_Inject(A_Caller) directive: AreDirectiveAttribute,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_Feature) feature: A_Feature,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n /**\n * 3. If the attribute is a directive, then we should find a component that is responsible for\n * the directive compiling logic, and call it. \n * In case component is not found we just want to log a warning, \n * since the directive may be handled by some parent component or simply is a mistake in the template.\n */\n if (directive.component) {\n feature.chain(directive.component, AreDirectiveFeatures.Update, directive.owner.scope);\n } else {\n logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named \"AreDirective${A_FormatterHelper.toPascalCase(directive.name)}\" to handle this directive.`);\n }\n }\n\n}"]}
@@ -9,8 +9,9 @@ import { AreText } from '@adaas/are-html/nodes/AreText';
9
9
  import { AreDirectiveAttribute } from '@adaas/are-html/attributes/AreDirective.attribute';
10
10
  import { AreDirectiveFeatures } from '@adaas/are-html/directive/AreDirective.constants';
11
11
  import { AreHTMLEngineContext } from './AreHTML.context';
12
+ import { A_Frame } from '@adaas/a-frame/core';
12
13
 
13
- class AreHTMLLifecycle extends AreLifecycle {
14
+ let AreHTMLLifecycle = class extends AreLifecycle {
14
15
  initComponent(node, scope, context, logger, ...args) {
15
16
  super.init(node, scope, context, logger, ...args);
16
17
  }
@@ -33,7 +34,7 @@ class AreHTMLLifecycle extends AreLifecycle {
33
34
  logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named "AreDirective${A_FormatterHelper.toPascalCase(directive.name)}" to handle this directive.`);
34
35
  }
35
36
  }
36
- }
37
+ };
37
38
  __decorateClass([
38
39
  AreLifecycle.Init(AreComponentNode),
39
40
  __decorateParam(0, A_Inject(A_Caller)),
@@ -73,6 +74,12 @@ __decorateClass([
73
74
  __decorateParam(2, A_Inject(A_Feature)),
74
75
  __decorateParam(3, A_Inject(A_Logger))
75
76
  ], AreHTMLLifecycle.prototype, "updateDirectiveAttribute", 1);
77
+ AreHTMLLifecycle = __decorateClass([
78
+ A_Frame.Define({
79
+ namespace: "a-are-html",
80
+ description: "HTML-specific lifecycle handler extending AreLifecycle. Wires DOM-aware init hooks for component nodes, root nodes, interpolations, text nodes, and directive attributes to the ARE rendering pipeline, connecting each entity to its HTML engine context and priming the scene for subsequent compilation and interpretation."
81
+ })
82
+ ], AreHTMLLifecycle);
76
83
 
77
84
  export { AreHTMLLifecycle };
78
85
  //# sourceMappingURL=AreHTML.lifecycle.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.lifecycle.ts"],"names":[],"mappings":"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","file":"AreHTML.lifecycle.mjs","sourcesContent":["import { A_Caller, A_Feature, A_FormatterHelper, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { AreLifecycle, AreScene, AreAttributeFeatures, AreSignalsContext } from \"@adaas/are\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreInterpolation } from \"@adaas/are-html/nodes/AreInterpolation\";\nimport { AreText } from \"@adaas/are-html/nodes/AreText\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreDirectiveFeatures } from \"@adaas/are-html/directive/AreDirective.constants\";\nimport { AreHTMLEngineContext } from \"./AreHTML.context\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\n\n\nexport class AreHTMLLifecycle extends AreLifecycle {\n\n @AreLifecycle.Init(AreComponentNode)\n initComponent(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreRootNode)\n initRoot(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreSignalsContext) signalsContext?: AreSignalsContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n signalsContext?.subscribe(node);\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreText)\n initText(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n @AreLifecycle.Init(AreInterpolation)\n initInterpolation(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n\n\n @A_Feature.Extend({\n name: AreAttributeFeatures.Update,\n scope: [AreDirectiveAttribute],\n })\n updateDirectiveAttribute(\n @A_Inject(A_Caller) directive: AreDirectiveAttribute,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_Feature) feature: A_Feature,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n /**\n * 3. If the attribute is a directive, then we should find a component that is responsible for\n * the directive compiling logic, and call it. \n * In case component is not found we just want to log a warning, \n * since the directive may be handled by some parent component or simply is a mistake in the template.\n */\n if (directive.component) {\n feature.chain(directive.component, AreDirectiveFeatures.Update, directive.owner.scope);\n } else {\n logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named \"AreDirective${A_FormatterHelper.toPascalCase(directive.name)}\" to handle this directive.`);\n }\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.lifecycle.ts"],"names":[],"mappings":"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","file":"AreHTML.lifecycle.mjs","sourcesContent":["import { A_Caller, A_Feature, A_FormatterHelper, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { AreLifecycle, AreScene, AreAttributeFeatures, AreSignalsContext } from \"@adaas/are\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreInterpolation } from \"@adaas/are-html/nodes/AreInterpolation\";\nimport { AreText } from \"@adaas/are-html/nodes/AreText\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreDirectiveFeatures } from \"@adaas/are-html/directive/AreDirective.constants\";\nimport { AreHTMLEngineContext } from \"./AreHTML.context\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific lifecycle handler extending AreLifecycle. Wires DOM-aware init hooks for component nodes, root nodes, interpolations, text nodes, and directive attributes to the ARE rendering pipeline, connecting each entity to its HTML engine context and priming the scene for subsequent compilation and interpretation.'\n})\nexport class AreHTMLLifecycle extends AreLifecycle {\n\n @AreLifecycle.Init(AreComponentNode)\n initComponent(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreRootNode)\n initRoot(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreSignalsContext) signalsContext?: AreSignalsContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n signalsContext?.subscribe(node);\n super.init(node, scope, context, logger, ...args);\n }\n\n\n @AreLifecycle.Init(AreText)\n initText(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n @AreLifecycle.Init(AreInterpolation)\n initInterpolation(\n @A_Inject(A_Caller) node: AreHTMLNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ): void {\n const scene = new AreScene(node.aseid);\n\n scope.register(scene);\n }\n\n\n\n\n @A_Feature.Extend({\n name: AreAttributeFeatures.Update,\n scope: [AreDirectiveAttribute],\n })\n updateDirectiveAttribute(\n @A_Inject(A_Caller) directive: AreDirectiveAttribute,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_Feature) feature: A_Feature,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n /**\n * 3. If the attribute is a directive, then we should find a component that is responsible for\n * the directive compiling logic, and call it. \n * In case component is not found we just want to log a warning, \n * since the directive may be handled by some parent component or simply is a mistake in the template.\n */\n if (directive.component) {\n feature.chain(directive.component, AreDirectiveFeatures.Update, directive.owner.scope);\n } else {\n logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named \"AreDirective${A_FormatterHelper.toPascalCase(directive.name)}\" to handle this directive.`);\n }\n }\n\n}"]}
@@ -9,22 +9,23 @@ var AreDirective_attribute = require('@adaas/are-html/attributes/AreDirective.at
9
9
  var AreEvent_attribute = require('@adaas/are-html/attributes/AreEvent.attribute');
10
10
  var AreBinding_attribute = require('@adaas/are-html/attributes/AreBinding.attribute');
11
11
  var AreStatic_attribute = require('@adaas/are-html/attributes/AreStatic.attribute');
12
+ var core = require('@adaas/a-frame/core');
12
13
 
13
14
  var __defProp = Object.defineProperty;
14
15
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
15
16
  var __decorateClass = (decorators, target, key, kind) => {
16
- var result = __getOwnPropDesc(target, key) ;
17
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
17
18
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
18
19
  if (decorator = decorators[i])
19
- result = (decorator(target, key, result) ) || result;
20
- if (result) __defProp(target, key, result);
20
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
21
+ if (kind && result) __defProp(target, key, result);
21
22
  return result;
22
23
  };
23
24
  var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
24
- class AreHTMLTokenizer extends are.AreTokenizer {
25
+ exports.AreHTMLTokenizer = class AreHTMLTokenizer extends are.AreTokenizer {
25
26
  constructor() {
26
27
  super(...arguments);
27
- this.ATTR_PATTERN = /([$:@]?[\w-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>/"'=]+)))?/g;
28
+ this.ATTR_PATTERN = /([$:@]?[\w.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>/"'=]+)))?/g;
28
29
  }
29
30
  tokenize(node, context, logger) {
30
31
  super.tokenize(node, context, logger);
@@ -67,7 +68,7 @@ class AreHTMLTokenizer extends are.AreTokenizer {
67
68
  }
68
69
  return results;
69
70
  }
70
- }
71
+ };
71
72
  __decorateClass([
72
73
  aConcept.A_Feature.Extend({
73
74
  name: are.AreNodeFeatures.onTokenize,
@@ -76,8 +77,12 @@ __decorateClass([
76
77
  __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
77
78
  __decorateParam(1, aConcept.A_Inject(are.AreContext)),
78
79
  __decorateParam(2, aConcept.A_Inject(aLogger.A_Logger))
79
- ], AreHTMLTokenizer.prototype, "tokenize");
80
-
81
- exports.AreHTMLTokenizer = AreHTMLTokenizer;
80
+ ], exports.AreHTMLTokenizer.prototype, "tokenize", 1);
81
+ exports.AreHTMLTokenizer = __decorateClass([
82
+ core.A_Frame.Define({
83
+ namespace: "a-are-html",
84
+ description: "HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required."
85
+ })
86
+ ], exports.AreHTMLTokenizer);
82
87
  //# sourceMappingURL=AreHTML.tokenizer.js.map
83
88
  //# sourceMappingURL=AreHTML.tokenizer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":["AreTokenizer","AreBindingAttribute","AreEventAttribute","AreDirectiveAttribute","AreStaticAttribute","A_Feature","AreNodeFeatures","AreComponentNode","AreRootNode","A_Caller","AreContext","A_Logger"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,yBAAyBA,gBAAA,CAAa;AAAA,EAA5C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEH,IAAA,IAAA,CAAA,YAAA,GAAe,kEAAA;AAAA,EAAA;AAAA,EAOf,QAAA,CACwB,IAAA,EACE,OAAA,EACF,MAAA,EAChB;AAEJ,IAAA,KAAA,CAAM,QAAA,CAAS,IAAA,EAAM,OAAA,EAAS,MAAM,CAAA;AAEpC,IAAA,OAAA,CAAQ,iBAAiB,qBAAqB,CAAA;AAE9C,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,iBAAA,CAAkB,IAAA,CAAK,MAAM,CAAA;AAErD,IAAA,KAAA,MAAW,QAAQ,UAAA,EAAY;AAC3B,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,IAAI,CAAA;AAAA,IAC5B;AAEA,IAAA,OAAA,CAAQ,eAAe,qBAAqB,CAAA;AAAA,EAChD;AAAA,EAIA,kBAAkB,MAAA,EAAoC;AAElD,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,OAAA,CAAQ,4BAAA,EAA8B,EAAE,CAAA;AAGlE,IAAA,IAAI,QAAA,GAAW,KAAA;AACf,IAAA,IAAI,QAAA,GAAW,KAAA;AACf,IAAA,IAAI,SAAS,UAAA,CAAW,MAAA;AAExB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,CAAW,QAAQ,CAAA,EAAA,EAAK;AACxC,MAAA,MAAM,EAAA,GAAK,WAAW,CAAC,CAAA;AACvB,MAAA,IAAI,EAAA,KAAO,GAAA,IAAO,CAAC,QAAA,aAAqB,CAAC,QAAA;AAAA,WAAA,IAChC,EAAA,KAAO,GAAA,IAAO,CAAC,QAAA,aAAqB,CAAC,QAAA;AAAA,WAAA,IACrC,EAAA,KAAO,GAAA,IAAO,CAAC,QAAA,IAAY,CAAC,QAAA,EAAU;AAC3C,QAAA,MAAA,GAAS,CAAA;AACT,QAAA;AAAA,MACJ;AAAA,IACJ;AAEA,IAAA,MAAM,UAAA,GAAa,UAAA,CAAW,KAAA,CAAM,CAAA,EAAG,MAAM,EAAE,OAAA,CAAQ,YAAA,EAAc,EAAE,CAAA,CAAE,IAAA,EAAK;AAE9E,IAAA,MAAM,UAA8B,EAAC;AAErC,IAAA,KAAA,MAAW,KAAA,IAAS,UAAA,CAAW,QAAA,CAAS,IAAA,CAAK,YAAY,CAAA,EAAG;AACxD,MAAA,MAAM,GAAA,GAAM,MAAM,CAAC,CAAA;AACnB,MAAA,MAAM,IAAA,GAAO,MAAM,CAAC,CAAA;AAGpB,MAAA,IAAI,CAAC,IAAA,EAAM;AAEX,MAAA,MAAM,KAAA,GAAQ,MAAM,CAAC,CAAA,IAAK,MAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,CAAA,IAAK,MAAA;AAElD,MAAA,MAAM,MAAA,GAAS,KAAK,CAAC,CAAA;AACrB,MAAA,MAAM,SAAA,GAAY,MAAA,KAAW,GAAA,IAAO,MAAA,KAAW,OAAO,MAAA,KAAW,GAAA;AACjE,MAAA,MAAM,IAAA,GAAO,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,GAAI,IAAA;AAEzC,MAAA,MAAM,IAAA,GAA0B,EAAE,IAAA,EAAM,OAAA,EAAS,OAAO,GAAA,EAAK,MAAA,EAAQ,SAAA,GAAY,MAAA,GAAS,EAAA,EAAG;AAE7F,MAAA,IAAI,WAAW,GAAA,EAAK,OAAA,CAAQ,KAAK,IAAIC,wCAAA,CAAoB,IAAI,CAAC,CAAA;AAAA,WAAA,IACrD,WAAW,GAAA,EAAK,OAAA,CAAQ,KAAK,IAAIC,oCAAA,CAAkB,IAAI,CAAC,CAAA;AAAA,WAAA,IACxD,WAAW,GAAA,EAAK,OAAA,CAAQ,KAAK,IAAIC,4CAAA,CAAsB,IAAI,CAAC,CAAA;AAAA,WAChE,OAAA,CAAQ,IAAA,CAAK,IAAIC,sCAAA,CAAmB,IAAI,CAAC,CAAA;AAAA,IAClD;AAEA,IAAA,OAAO,OAAA;AAAA,EACX;AAEJ;AApEI,eAAA,CAAA;AAAA,EAJCC,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,mBAAA,CAAgB,UAAA;AAAA,IACtB,KAAA,EAAO,CAACC,6BAAA,EAAkBC,mBAAW;AAAA,GACxC,CAAA;AAAA,EAEI,qCAASC,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASC,cAAU,CAAA,CAAA;AAAA,EACnB,qCAASC,gBAAQ,CAAA;AAAA,CAAA,EAZb,gBAAA,CAST,SAAA,EAAA,UAAA,CAAA","file":"AreHTML.tokenizer.js","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\n\n\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w-]+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n super.tokenize(node, context, logger);\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":["AreHTMLTokenizer","AreTokenizer","AreBindingAttribute","AreEventAttribute","AreDirectiveAttribute","AreStaticAttribute","A_Feature","AreNodeFeatures","AreComponentNode","AreRootNode","A_Caller","AreContext","A_Logger","A_Frame"],"mappings":"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","file":"AreHTML.tokenizer.js","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required.'\n})\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w.-]+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n super.tokenize(node, context, logger);\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
@@ -8,11 +8,12 @@ import { AreDirectiveAttribute } from '@adaas/are-html/attributes/AreDirective.a
8
8
  import { AreEventAttribute } from '@adaas/are-html/attributes/AreEvent.attribute';
9
9
  import { AreBindingAttribute } from '@adaas/are-html/attributes/AreBinding.attribute';
10
10
  import { AreStaticAttribute } from '@adaas/are-html/attributes/AreStatic.attribute';
11
+ import { A_Frame } from '@adaas/a-frame/core';
11
12
 
12
- class AreHTMLTokenizer extends AreTokenizer {
13
+ let AreHTMLTokenizer = class extends AreTokenizer {
13
14
  constructor() {
14
15
  super(...arguments);
15
- this.ATTR_PATTERN = /([$:@]?[\w-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>/"'=]+)))?/g;
16
+ this.ATTR_PATTERN = /([$:@]?[\w.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>/"'=]+)))?/g;
16
17
  }
17
18
  tokenize(node, context, logger) {
18
19
  super.tokenize(node, context, logger);
@@ -55,7 +56,7 @@ class AreHTMLTokenizer extends AreTokenizer {
55
56
  }
56
57
  return results;
57
58
  }
58
- }
59
+ };
59
60
  __decorateClass([
60
61
  A_Feature.Extend({
61
62
  name: AreNodeFeatures.onTokenize,
@@ -65,6 +66,12 @@ __decorateClass([
65
66
  __decorateParam(1, A_Inject(AreContext)),
66
67
  __decorateParam(2, A_Inject(A_Logger))
67
68
  ], AreHTMLTokenizer.prototype, "tokenize", 1);
69
+ AreHTMLTokenizer = __decorateClass([
70
+ A_Frame.Define({
71
+ namespace: "a-are-html",
72
+ description: "HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required."
73
+ })
74
+ ], AreHTMLTokenizer);
68
75
 
69
76
  export { AreHTMLTokenizer };
70
77
  //# sourceMappingURL=AreHTML.tokenizer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":[],"mappings":"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","file":"AreHTML.tokenizer.mjs","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\n\n\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w-]+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n super.tokenize(node, context, logger);\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":[],"mappings":"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","file":"AreHTML.tokenizer.mjs","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required.'\n})\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w.-]+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n super.tokenize(node, context, logger);\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
@@ -5,19 +5,20 @@ var aLogger = require('@adaas/a-utils/a-logger');
5
5
  var are = require('@adaas/are');
6
6
  var AreDirective_attribute = require('@adaas/are-html/attributes/AreDirective.attribute');
7
7
  var AreDirective_constants = require('@adaas/are-html/directive/AreDirective.constants');
8
+ var core = require('@adaas/a-frame/core');
8
9
 
9
10
  var __defProp = Object.defineProperty;
10
11
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
12
  var __decorateClass = (decorators, target, key, kind) => {
12
- var result = __getOwnPropDesc(target, key) ;
13
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13
14
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
14
15
  if (decorator = decorators[i])
15
- result = (decorator(target, key, result) ) || result;
16
- if (result) __defProp(target, key, result);
16
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
17
+ if (kind && result) __defProp(target, key, result);
17
18
  return result;
18
19
  };
19
20
  var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
20
- class AreHTMLTransformer extends are.AreTransformer {
21
+ exports.AreHTMLTransformer = class AreHTMLTransformer extends are.AreTransformer {
21
22
  transformDirectiveAttribute(directive, store, feature, logger, ...args) {
22
23
  store.watch(directive);
23
24
  if (directive.component) {
@@ -27,7 +28,7 @@ class AreHTMLTransformer extends are.AreTransformer {
27
28
  }
28
29
  store.unwatch(directive);
29
30
  }
30
- }
31
+ };
31
32
  __decorateClass([
32
33
  aConcept.A_Feature.Extend({
33
34
  name: are.AreAttributeFeatures.Transform,
@@ -37,8 +38,12 @@ __decorateClass([
37
38
  __decorateParam(1, aConcept.A_Inject(are.AreStore)),
38
39
  __decorateParam(2, aConcept.A_Inject(aConcept.A_Feature)),
39
40
  __decorateParam(3, aConcept.A_Inject(aLogger.A_Logger))
40
- ], AreHTMLTransformer.prototype, "transformDirectiveAttribute");
41
-
42
- exports.AreHTMLTransformer = AreHTMLTransformer;
41
+ ], exports.AreHTMLTransformer.prototype, "transformDirectiveAttribute", 1);
42
+ exports.AreHTMLTransformer = __decorateClass([
43
+ core.A_Frame.Define({
44
+ namespace: "a-are-html",
45
+ description: "HTML-specific transformer extending AreTransformer. Handles directive-attribute structural rewrites before compilation \u2014 sorting directives by declared priority and expanding compound directive expressions \u2014 so the compiler receives a clean, ordered AreHTMLNode tree ready for instruction emission."
46
+ })
47
+ ], exports.AreHTMLTransformer);
43
48
  //# sourceMappingURL=AreHTML.transformer.js.map
44
49
  //# sourceMappingURL=AreHTML.transformer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.transformer.ts"],"names":["AreTransformer","AreDirectiveFeatures","A_FormatterHelper","A_Feature","AreAttributeFeatures","AreDirectiveAttribute","A_Caller","AreStore","A_Logger"],"mappings":";;;;;;;;;;;;;;;;;;;AAOO,MAAM,2BAA2BA,kBAAA,CAAe;AAAA,EAMnD,2BAAA,CACwB,SAAA,EACA,KAAA,EACC,OAAA,EACD,WACjB,IAAA,EACL;AACE,IAAA,KAAA,CAAM,MAAM,SAAS,CAAA;AAQrB,IAAA,IAAI,UAAU,SAAA,EAAW;AACrB,MAAA,OAAA,CAAQ,MAAM,SAAA,CAAU,SAAA,EAAWC,4CAAqB,SAAA,EAAW,SAAA,CAAU,MAAM,KAAK,CAAA;AAAA,IAC5F,CAAA,MAAO;AACH,MAAA,MAAA,EAAQ,OAAA,CAAQ,CAAA,qDAAA,EAAwD,SAAA,CAAU,IAAI,CAAA,qDAAA,EAAwDC,2BAAkB,YAAA,CAAa,SAAA,CAAU,IAAI,CAAC,CAAA,2BAAA,CAA6B,CAAA;AAAA,IAC7N;AAEA,IAAA,KAAA,CAAM,QAAQ,SAAS,CAAA;AAAA,EAC3B;AACJ;AAvBI,eAAA,CAAA;AAAA,EAJCC,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,wBAAA,CAAqB,SAAA;AAAA,IAC3B,KAAA,EAAO,CAACC,4CAAqB;AAAA,GAChC,CAAA;AAAA,EAEI,qCAASC,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASC,YAAQ,CAAA,CAAA;AAAA,EACjB,qCAASJ,kBAAS,CAAA,CAAA;AAAA,EAClB,qCAASK,gBAAQ,CAAA;AAAA,CAAA,EAVb,kBAAA,CAMT,SAAA,EAAA,6BAAA,CAAA","file":"AreHTML.transformer.js","sourcesContent":["import { A_Caller, A_Feature, A_FormatterHelper, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreAttributeFeatures, AreTransformer, AreStore } from \"@adaas/are\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreDirectiveFeatures } from \"@adaas/are-html/directive/AreDirective.constants\";\n\n\nexport class AreHTMLTransformer extends AreTransformer {\n\n @A_Feature.Extend({\n name: AreAttributeFeatures.Transform,\n scope: [AreDirectiveAttribute],\n })\n transformDirectiveAttribute(\n @A_Inject(A_Caller) directive: AreDirectiveAttribute,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(A_Feature) feature: A_Feature,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n store.watch(directive);\n\n /**\n * 3. If the attribute is a directive, then we should find a component that is responsible for\n * the directive compiling logic, and call it. \n * In case component is not found we just want to log a warning, \n * since the directive may be handled by some parent component or simply is a mistake in the template.\n */\n if (directive.component) {\n feature.chain(directive.component, AreDirectiveFeatures.Transform, directive.owner.scope);\n } else {\n logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named \"AreDirective${A_FormatterHelper.toPascalCase(directive.name)}\" to handle this directive.`);\n }\n\n store.unwatch(directive);\n }\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.transformer.ts"],"names":["AreHTMLTransformer","AreTransformer","AreDirectiveFeatures","A_FormatterHelper","A_Feature","AreAttributeFeatures","AreDirectiveAttribute","A_Caller","AreStore","A_Logger","A_Frame"],"mappings":";;;;;;;;;;;;;;;;;;;;AAYaA,0BAAA,GAAN,iCAAiCC,kBAAA,CAAe;AAAA,EAMnD,2BAAA,CACwB,SAAA,EACA,KAAA,EACC,OAAA,EACD,WACjB,IAAA,EACL;AACE,IAAA,KAAA,CAAM,MAAM,SAAS,CAAA;AAQrB,IAAA,IAAI,UAAU,SAAA,EAAW;AACrB,MAAA,OAAA,CAAQ,MAAM,SAAA,CAAU,SAAA,EAAWC,4CAAqB,SAAA,EAAW,SAAA,CAAU,MAAM,KAAK,CAAA;AAAA,IAC5F,CAAA,MAAO;AACH,MAAA,MAAA,EAAQ,OAAA,CAAQ,CAAA,qDAAA,EAAwD,SAAA,CAAU,IAAI,CAAA,qDAAA,EAAwDC,2BAAkB,YAAA,CAAa,SAAA,CAAU,IAAI,CAAC,CAAA,2BAAA,CAA6B,CAAA;AAAA,IAC7N;AAEA,IAAA,KAAA,CAAM,QAAQ,SAAS,CAAA;AAAA,EAC3B;AACJ;AAvBI,eAAA,CAAA;AAAA,EAJCC,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,wBAAA,CAAqB,SAAA;AAAA,IAC3B,KAAA,EAAO,CAACC,4CAAqB;AAAA,GAChC,CAAA;AAAA,EAEI,qCAASC,iBAAQ,CAAA,CAAA;AAAA,EACjB,qCAASC,YAAQ,CAAA,CAAA;AAAA,EACjB,qCAASJ,kBAAS,CAAA,CAAA;AAAA,EAClB,qCAASK,gBAAQ,CAAA;AAAA,CAAA,EAVbT,0BAAA,CAMT,SAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;AANSA,0BAAA,GAAN,eAAA,CAAA;AAAA,EAJNU,aAAQ,MAAA,CAAO;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACYV,0BAAA,CAAA","file":"AreHTML.transformer.js","sourcesContent":["import { A_Caller, A_Feature, A_FormatterHelper, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreAttributeFeatures, AreTransformer, AreStore } from \"@adaas/are\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreDirectiveFeatures } from \"@adaas/are-html/directive/AreDirective.constants\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific transformer extending AreTransformer. Handles directive-attribute structural rewrites before compilation — sorting directives by declared priority and expanding compound directive expressions — so the compiler receives a clean, ordered AreHTMLNode tree ready for instruction emission.'\n})\nexport class AreHTMLTransformer extends AreTransformer {\n\n @A_Feature.Extend({\n name: AreAttributeFeatures.Transform,\n scope: [AreDirectiveAttribute],\n })\n transformDirectiveAttribute(\n @A_Inject(A_Caller) directive: AreDirectiveAttribute,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(A_Feature) feature: A_Feature,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n store.watch(directive);\n\n /**\n * 3. If the attribute is a directive, then we should find a component that is responsible for\n * the directive compiling logic, and call it. \n * In case component is not found we just want to log a warning, \n * since the directive may be handled by some parent component or simply is a mistake in the template.\n */\n if (directive.component) {\n feature.chain(directive.component, AreDirectiveFeatures.Transform, directive.owner.scope);\n } else {\n logger?.warning(`Directive handler component not found for directive: ${directive.name}. Make sure to create a component named \"AreDirective${A_FormatterHelper.toPascalCase(directive.name)}\" to handle this directive.`);\n }\n\n store.unwatch(directive);\n }\n}"]}