@ibyar/core 2.3.0 → 2.5.0

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 (105) hide show
  1. package/annotation/decorators.d.ts +23 -2
  2. package/annotation/decorators.d.ts.map +1 -1
  3. package/annotation/decorators.js +18 -0
  4. package/annotation/decorators.js.map +1 -1
  5. package/annotation/options.d.ts +11 -7
  6. package/annotation/options.d.ts.map +1 -1
  7. package/annotation/options.js.map +1 -1
  8. package/binding/binding.expressions.d.ts +2 -2
  9. package/binding/binding.expressions.d.ts.map +1 -1
  10. package/binding/binding.expressions.js.map +1 -1
  11. package/component/component.d.ts +15 -10
  12. package/component/component.d.ts.map +1 -1
  13. package/component/component.js +46 -1
  14. package/component/component.js.map +1 -1
  15. package/component/custom-element.d.ts +6 -2
  16. package/component/custom-element.d.ts.map +1 -1
  17. package/component/custom-element.js.map +1 -1
  18. package/component/events.js.map +1 -1
  19. package/component/initializer.d.ts +67 -0
  20. package/component/initializer.d.ts.map +1 -0
  21. package/component/initializer.js +59 -0
  22. package/component/initializer.js.map +1 -0
  23. package/di/inject.d.ts +11 -4
  24. package/di/inject.d.ts.map +1 -1
  25. package/di/inject.js +18 -2
  26. package/di/inject.js.map +1 -1
  27. package/di/provider.d.ts +7 -5
  28. package/di/provider.d.ts.map +1 -1
  29. package/di/provider.js +29 -13
  30. package/di/provider.js.map +1 -1
  31. package/directive/directive.d.ts +3 -2
  32. package/directive/directive.d.ts.map +1 -1
  33. package/directive/directive.js +6 -3
  34. package/directive/directive.js.map +1 -1
  35. package/html/deserialize.d.ts.map +1 -1
  36. package/html/deserialize.js +11 -2
  37. package/html/deserialize.js.map +1 -1
  38. package/html/expression.d.ts.map +1 -1
  39. package/html/expression.js +14 -5
  40. package/html/expression.js.map +1 -1
  41. package/html/types.d.ts +6 -0
  42. package/html/types.d.ts.map +1 -1
  43. package/html/types.js.map +1 -1
  44. package/index.d.ts +1 -0
  45. package/index.d.ts.map +1 -1
  46. package/index.js +1 -0
  47. package/index.js.map +1 -1
  48. package/initializer/input.d.ts +1 -0
  49. package/initializer/input.d.ts.map +1 -0
  50. package/initializer/input.js +2 -0
  51. package/initializer/input.js.map +1 -0
  52. package/linker/change-detector-ref.d.ts.map +1 -1
  53. package/linker/change-detector-ref.js +26 -4
  54. package/linker/change-detector-ref.js.map +1 -1
  55. package/linker/view-container-ref.d.ts +4 -4
  56. package/linker/view-container-ref.d.ts.map +1 -1
  57. package/linker/view-container-ref.js.map +1 -1
  58. package/package.json +8 -8
  59. package/pipe/pipe.d.ts +6 -6
  60. package/pipe/pipe.d.ts.map +1 -1
  61. package/pipe/pipe.js.map +1 -1
  62. package/signals/factory.d.ts +23 -0
  63. package/signals/factory.d.ts.map +1 -0
  64. package/signals/factory.js +65 -0
  65. package/signals/factory.js.map +1 -0
  66. package/signals/initializer.d.ts +26 -0
  67. package/signals/initializer.d.ts.map +1 -0
  68. package/signals/initializer.js +19 -0
  69. package/signals/initializer.js.map +1 -0
  70. package/signals/input.d.ts +1 -0
  71. package/signals/input.d.ts.map +1 -0
  72. package/signals/input.js +2 -0
  73. package/signals/input.js.map +1 -0
  74. package/signals/runtime.d.ts +37 -0
  75. package/signals/runtime.d.ts.map +1 -0
  76. package/signals/runtime.js +165 -0
  77. package/signals/runtime.js.map +1 -0
  78. package/signals/signals.d.ts +11 -9
  79. package/signals/signals.d.ts.map +1 -1
  80. package/signals/signals.js +23 -41
  81. package/signals/signals.js.map +1 -1
  82. package/utils/typeof.d.ts +4 -2
  83. package/utils/typeof.d.ts.map +1 -1
  84. package/utils/typeof.js.map +1 -1
  85. package/view/base-view.d.ts +2 -2
  86. package/view/base-view.d.ts.map +1 -1
  87. package/view/base-view.js +42 -24
  88. package/view/base-view.js.map +1 -1
  89. package/view/form-view.d.ts +2 -2
  90. package/view/form-view.d.ts.map +1 -1
  91. package/view/form-view.js +2 -1
  92. package/view/form-view.js.map +1 -1
  93. package/view/render.d.ts +4 -1
  94. package/view/render.d.ts.map +1 -1
  95. package/view/render.js +32 -6
  96. package/view/render.js.map +1 -1
  97. package/view/utils.d.ts +2 -2
  98. package/view/utils.d.ts.map +1 -1
  99. package/view/utils.js.map +1 -1
  100. package/view/view.d.ts +3 -3
  101. package/view/view.d.ts.map +1 -1
  102. package/view/view.js +27 -7
  103. package/view/view.js.map +1 -1
  104. package/zone/zone.js +1 -1
  105. package/zone/zone.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/core/view/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqC,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EACN,WAAW,EAAE,0BAA0B,EACvC,cAAc,EAAE,eAAe,EAAW,iBAAiB,EAC3D,eAAe,EAAE,wBAAwB,EACzC,WAAW,EAA6B,kCAAkC,EAC1E,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAiB,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAuB,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAe,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAKvE,SAAS,kBAAkB,CAAC,OAAe;IAC1C,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,OAAO,KAAK,OAAO;YACvB,OAAO,OAAO,CAAC;QAChB,KAAK,OAAO,KAAK,UAAU,CAAC;QAC5B,KAAK,OAAO,KAAK,QAAQ,CAAC;QAC1B,KAAK,kCAAkC,CAAC,OAAO,CAAC;YAC/C,OAAO,QAAQ,CAAC;QACjB;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AACD,MAAM,OAAO,eAAe;IAQR;IAAgC;IAP3C,YAAY,CAAkB;IAC9B,QAAQ,CAAU;IAClB,YAAY,CAAQ;IACpB,iBAAiB,CAAyD;IAC1E,aAAa,CAAqC;IAClD,SAAS,GAA+B,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAEtE,YAAmB,IAAsB,EAAU,aAA2C;QAA3E,SAAI,GAAJ,IAAI,CAAkB;QAAU,kBAAa,GAAb,aAAa,CAA8B;QAC7F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QAC3D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAChE,CAAC;IACD,QAAQ;QACP,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO;QACR,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC5C,CAAC;QAED,IAAI,OAAiC,CAAC;QACtC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACnC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAe,CAAC;YAC9D,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,YAA8B,CAAC;QACnC,IAAI,IAAI,CAAC,QAAQ,YAAY,eAAe,EAAE,CAAC;YAC9C,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtH,CAAC;aAAM,CAAC;YACP,YAAY,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IACD,iBAAiB,CAAC,QAAiB;QAClC,IAAI,QAAQ,YAAY,cAAc,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,KAAK,UAAU,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;gBACjE,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,kBAAkB,CAAC,OAAgB;QAClC,IAAI,CAAC,CAAC,OAAO,YAAY,cAAc,IAAI,OAAO,YAAY,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrG,OAAO;QACR,CAAC;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;QACF,CAAC;IACF,CAAC;IACD,eAAe;QACd,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAa,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACpH,CAAC;IACF,CAAC;IACD,gBAAgB,CAAC,IAAY;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,yBAAyB,CAAC,SAAqC,EAAE,OAAgB,EAAE,cAAqB,EAAE,aAA2C,EAAE,UAAgB,EAAE,IAA8C;QACtN,MAAM,YAAY,GAAG,qBAAqB,CAAC,eAAe,CAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,iDAAiD;YACjD,qDAAqD;YACrD,OAAO;QACR,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,eAAe,CACtC,IAAI,EACJ,SAAS,CAAC,IAAI,EACd,KAAK,EACJ,SAA+C,CAAC,mBAAmB,IAAI,EAAE,CAC1E,CAAC;QACF,IAAI,oBAA6C,CAAC;QAClD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,oBAAoB,GAAG,IAAI,eAAe,CACzC,IAAI,EACJ,SAAS,CAAC,SAAS,EACnB,KAAK,EACL,EAAE,CACF,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC,UAAqB,EAAE,OAAO,CAAC,CAAC;QAElF,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC7C,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;YAC9C,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,wBAAwB,GAAG,YAAY,CAAC,UAAwC,CAAC;QACvF,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,wBAAwB,CACtE,WAAW,EACX,gBAAgB,EAChB,IAAI,EACJ,aAAa,EACb,oBAAoB,CACpB,CAAC,CAAC;QAEH,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;QAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC7D,KAAK,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC;QAChE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,SAAS,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;IACD,aAAa,CAAC,IAAiB;QAC9B,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAiB;QAC3B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,cAAc,CAAC,QAAyB,EAAE,YAAmB,EAAE,aAA2C;QACzG,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,YAAY,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QACxC,YAAY,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9F,aAAa,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACzC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,sBAAsB,CAAC,IAAqB,EAAE,YAAmB,EAAE,UAAgB,EAAE,aAA2C,EAAE,IAA8C;QAC/K,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1H,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,mBAAmB,CAAC,cAA8C,EAAE,KAAc,EAAE,YAAmB,EAAE,UAAgB,EAAE,aAA2C,EAAE,IAA8C;QACrN,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,eAAe,GAAG,KAAK,CAAC,eAAgB,CAAC;gBAC/C,mEAAmE;gBACnE,gBAAgB;gBAChB,WAAW;gBACX,IAAI;gBACJ,oCAAoC;gBACpC,MAAM,WAAW,GAAG,IAAI,eAAe,CACtC,IAAI,EACJ,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EACnC,YAAY,CAAC,SAAS,EAAE,EACxB,EAAE,CACF,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC9D,OAAO;YACR,CAAC;YACD,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxH,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/F,CAAC;aAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACzC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACzC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YAC7C,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1G,CAAC;IACF,CAAC;IACD,sBAAsB,CAAC,IAAsC;QAC5D,IAAI,OAAoB,CAAC;QACzB,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAA0C,CAAC;YAC5F,IAAI,SAAS,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACP,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAChD,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtF,CAAC;YACF,CAAC;QACF,CAAC;aAAM,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,iDAAiD;YACjD,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACP,uBAAuB;YACvB,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,aAAa,CAAC,IAAoB,EAAE,YAAmB,EAAE,aAA2C,EAAE,IAA8C;QACnJ,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACvE,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,oCAAoC,CAAoB,GAAM,EAAE,SAAkB,EAAE,YAA0B;QACrH,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,aAAa,CAAC,oBAAoB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAwB;YACpC,MAAM,EAAE,GAAG;YACX,CAAC,SAAS,CAAC,EAAE,GAAG;SAChB,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC/C,SAAS,CAAC,aAAa,CAAC,SAAmB,EAAE,aAAa,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC;IAClB,CAAC;IAoBD,eAAe,CAAC,OAAoB,EAAE,IAAoB,EAAE,YAAmB,EAAE,aAA2C,EAAE,IAA+C;QAC5K,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAClF,YAAY,CAAC,SAAS,CAAU,YAAY,CAAC,CAAC;QAC9C,MAAM,uBAAuB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAChF,aAAa,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAkC,MAAM,CAAE,CAAC;YACxF,MAAM,QAAQ,GAAG,CAAC,KAA8C,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAG,OAA4B,CAAC,KAAK,CAAC,CAAC;YACnI,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YACpD,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAC3C,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAC5D,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC;YAChG,IAAI,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,IAAK,CAAC,CAAC;YACvF,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAC9F,CAAC;IACF,CAAC;IACO,uBAAuB,CAC9B,mBAAgD,EAChD,OAA0C,EAC1C,YAAmB,EACnB,aAA2C;QAC3C,mBAAmB,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE;YAC5C,MAAM,YAAY,GAAG,qBAAqB,CAAC,eAAe,CAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YACpF,IAAI,CAAC,YAAY;mBACb,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,YAAY,kBAAkB,CAAC;uBAClE,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,YAAY,8BAA8B,CAAC,CAAC,EAAE,CAAC;gBACrF,OAAO;YACR,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAwD,CAAC,CAAC;YACtJ,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,aAAa,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC;YACpD,cAAc,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;YACjD,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEvB,MAAM,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACnF,aAAa,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;YAC9C,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,EAAE,CAAC;gBACvC,OAAO;YACR,CAAC;YACD,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACzC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBACzC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;YACzF,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,OAAoB,EAAE,IAAoB,EAAE,YAAmB;QAC5E,MAAM,aAAa,GAAiC,EAAE,CAAC;QACvD,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9B;;mBAEG;gBACH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,MAAM,EAAE,CAAC;oBACZ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC1B,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;yBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;wBAChC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAe,CAAC,CAAC;oBACvD,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxE,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,QAAkB,CAAC;gBACvB;;;;;;;;mBAQG;gBACH,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,QAAQ,GAAG,CAAC,MAAa,EAAE,EAAE;wBAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;wBACvC,KAAK,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;wBACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtE,CAAC,CAAC;gBACH,CAAC;qBAAM,mDAAmD,CAAC,CAAC;oBAC3D,8DAA8D;oBAC9D,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;gBACxB,CAAC;gBACD,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAW,EAAE,QAAe,CAAC,CAAC;gBAC7D,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAC3C,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAW,EAAE,QAAe,CAAC,CACrE,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,aAAa,CAAC;IACtB,CAAC;IACD,aAAa,CACZ,SAAoF,EACpF,IAA4D,EAC5D,YAAmB;QACnB,MAAM,aAAa,GAAiC,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxE,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5B,MAAM,QAAQ,GAAG,CAAC,MAAa,EAAE,EAAE;oBAClC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;oBACvC,KAAK,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;oBACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC;gBACF,MAAM,YAAY,GAAK,SAAiB,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC7F,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAC3C,GAAG,EAAE,CAAG,SAAiB,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAC9E,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,SAAS;QACT,qBAAqB;QACrB,OAAO,aAAa,CAAC;IACtB,CAAC;CAED","sourcesContent":["import { ReactiveScope, Context, ScopeSubscription, Stack, ReadOnlyScope } from '@ibyar/expressions';\nimport {\n\tCommentNode, DomStructuralDirectiveNode,\n\tDomElementNode, DomFragmentNode, DomNode, isLiveTextContent,\n\tisTagNameNative, isValidCustomElementName, LiveTextContent,\n\tTextContent, DomAttributeDirectiveNode, isFormAssociatedCustomElementByTag\n} from '@ibyar/elements';\nimport type { DomStructuralDirectiveNodeUpgrade } from '@ibyar/elements/node.js';\nimport { ComponentRef } from '../component/component.js';\nimport { HTMLComponent, isHTMLComponent } from '../component/custom-element.js';\nimport { documentStack } from '../context/stack.js';\nimport { classRegistryProvider } from '../providers/provider.js';\nimport { isOnDestroy, isOnInit } from '../component/lifecycle.js';\nimport { hasAttr } from '../utils/elements-util.js';\nimport { AttributeDirective, AttributeOnStructuralDirective, StructuralDirective } from '../directive/directive.js';\nimport { TemplateRef, TemplateRefImpl } from '../linker/template-ref.js';\nimport { ViewContainerRefImpl } from '../linker/view-container-ref.js';\nimport { createDestroySubscription } from '../context/subscription.js';\nimport { EventEmitter } from '../component/events.js';\n\ntype ViewContext = { [element: string]: HTMLElement };\n\nfunction getChangeEventName(tagName: string): 'input' | 'change' | undefined {\n\tswitch (true) {\n\t\tcase tagName === 'input':\n\t\t\treturn 'input';\n\t\tcase tagName === 'textarea':\n\t\tcase tagName === 'select':\n\t\tcase isFormAssociatedCustomElementByTag(tagName):\n\t\t\treturn 'change';\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\nexport class ComponentRender<T extends object> {\n\tprivate componentRef: ComponentRef<T>;\n\tprivate template: DomNode;\n\tprivate contextStack: Stack;\n\tprivate templateNameScope: ReactiveScope<{ [templateName: string]: TemplateRef }>;\n\tprivate exportAsScope: ReactiveScope<Record<string, any>>;\n\tprivate viewScope: ReactiveScope<ViewContext> = new ReactiveScope({});\n\n\tconstructor(public view: HTMLComponent<T>, private subscriptions: ScopeSubscription<Context>[]) {\n\t\tthis.componentRef = this.view.getComponentRef();\n\t\tthis.contextStack = documentStack.copyStack();\n\t\tthis.contextStack.pushScope<Context>(this.view._modelScope);\n\t\tthis.exportAsScope = this.contextStack.pushReactiveScope();\n\t\tthis.templateNameScope = this.contextStack.pushReactiveScope();\n\t}\n\tinitView(): void {\n\t\tif (!this.componentRef.template) {\n\t\t\treturn;\n\t\t}\n\t\tif (typeof this.componentRef.template === 'function') {\n\t\t\tthis.template = this.componentRef.template(this.view._model);\n\t\t} else {\n\t\t\tthis.template = this.componentRef.template;\n\t\t}\n\n\t\tlet rootRef: HTMLElement | ShadowRoot;\n\t\tif (this.componentRef.isShadowDom) {\n\t\t\trootRef = Reflect.get(this.view, '_shadowRoot') as ShadowRoot;\n\t\t\tReflect.deleteProperty(this.view, '_shadowRoot');\n\t\t} else {\n\t\t\trootRef = this.view;\n\t\t}\n\t\tthis.initTemplateRefMap(this.template);\n\t\tlet rootFragment: DocumentFragment;\n\t\tif (this.template instanceof DomFragmentNode) {\n\t\t\trootFragment = this.createDocumentFragment(this.template, this.contextStack, rootRef, this.subscriptions, this.view);\n\t\t} else {\n\t\t\trootFragment = document.createDocumentFragment();\n\t\t\tthis.appendChildToParent(rootFragment, this.template, this.contextStack, rootRef, this.subscriptions, this.view);\n\t\t}\n\t\trootRef.append(rootFragment);\n\t}\n\tisTemplateRefName(template: DomNode): template is DomElementNode {\n\t\tif (template instanceof DomElementNode) {\n\t\t\tif (template.tagName === 'template' && template.templateRefName) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tinitTemplateRefMap(domNode: DomNode) {\n\t\tif (!(domNode instanceof DomElementNode || domNode instanceof DomFragmentNode) || !domNode.children) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let index = 0; index < domNode.children.length; index++) {\n\t\t\tconst child = domNode.children[index];\n\t\t\tif (this.isTemplateRefName(child)) {\n\t\t\t\tthis.templateNameScope.set(child.templateRefName!.name, undefined);\n\t\t\t} else {\n\t\t\t\tthis.initTemplateRefMap(child);\n\t\t\t}\n\t\t}\n\t}\n\tinitViewBinding() {\n\t\tif (this.componentRef.viewBindings) {\n\t\t\tthis.initHtmlElement(this.view, this.componentRef.viewBindings, this.contextStack, this.subscriptions);\n\t\t}\n\t\tif (this.componentRef.windowBindings) {\n\t\t\tthis.subscriptions.push(...this.initAttribute(window as any, this.componentRef.windowBindings, this.contextStack));\n\t\t}\n\t}\n\tgetElementByName(name: string) {\n\t\treturn Reflect.get(this.view, name);\n\t}\n\tcreateStructuralDirective(directive: DomStructuralDirectiveNode, comment: Comment, directiveStack: Stack, subscriptions: ScopeSubscription<Context>[], parentNode: Node, host: HTMLComponent<any> | StructuralDirective): void {\n\t\tconst directiveRef = classRegistryProvider.getDirectiveRef<T>(directive.name);\n\t\tif (!directiveRef) {\n\t\t\t// didn't find directive or it is not define yet.\n\t\t\t// class registry should have 'when defined' callback\n\t\t\treturn;\n\t\t}\n\t\tconst stack = directiveStack.copyStack();\n\t\tconst templateRef = new TemplateRefImpl(\n\t\t\tthis,\n\t\t\tdirective.node,\n\t\t\tstack,\n\t\t\t(directive as DomStructuralDirectiveNodeUpgrade).templateExpressions ?? [],\n\t\t);\n\t\tlet successorTemplateRef: TemplateRef | undefined;\n\t\tif (directive.successor) {\n\t\t\tsuccessorTemplateRef = new TemplateRefImpl(\n\t\t\t\tthis,\n\t\t\t\tdirective.successor,\n\t\t\t\tstack,\n\t\t\t\t[]\n\t\t\t);\n\t\t}\n\n\t\tconst directiveZone = this.view._zone.fork(directiveRef.zone);\n\t\tconst viewContainerRef = new ViewContainerRefImpl(parentNode as Element, comment);\n\n\t\tdirectiveZone.onEmpty.subscribe(() => {\n\t\t\tconst length = viewContainerRef.length;\n\t\t\tfor (let index = 0; index < length; index++) {\n\t\t\t\tviewContainerRef.get(index)?.detectChanges();\n\t\t\t}\n\t\t});\n\n\t\tconst StructuralDirectiveClass = directiveRef.modelClass as typeof StructuralDirective;\n\t\tconst structural = directiveZone.run(() => new StructuralDirectiveClass(\n\t\t\ttemplateRef,\n\t\t\tviewContainerRef,\n\t\t\thost,\n\t\t\tdirectiveZone,\n\t\t\tsuccessorTemplateRef,\n\t\t));\n\n\t\ttemplateRef.host = structural;\n\t\tconst scope = ReactiveScope.readOnlyScopeForThis(structural);\n\t\tscope.getInnerScope('this')!.getContextProxy = () => structural;\n\t\tstack.pushScope(scope);\n\t\tif (directiveRef.exportAs) {\n\t\t\tstack.pushBlockScopeFor({ [directiveRef.exportAs]: structural });\n\t\t}\n\t\tsubscriptions.push(...this.initDirective(structural, directive, stack));\n\t\tif (isOnInit(structural)) {\n\t\t\tdirectiveZone.run(structural.onInit, structural);\n\t\t}\n\t\tif (directive.attributeDirectives?.length) {\n\t\t\tthis.initAttributeDirectives(directive.attributeDirectives, structural, stack, subscriptions);\n\t\t}\n\t\tif (isOnDestroy(structural)) {\n\t\t\tsubscriptions.push(createDestroySubscription(() => structural.onDestroy()));\n\t\t}\n\t}\n\tcreateComment(node: CommentNode): Comment {\n\t\treturn document.createComment(`${node.comment}`);\n\t}\n\tcreateText(node: TextContent): Text {\n\t\treturn new Text(node.value);\n\t}\n\tcreateLiveText(textNode: LiveTextContent, contextStack: Stack, subscriptions: ScopeSubscription<Context>[]): Text {\n\t\tconst liveText = new Text('');\n\t\tcontextStack = contextStack.copyStack();\n\t\tcontextStack.pushBlockScopeFor({ this: liveText });\n\t\tconst textSubscriptions = textNode.expression.subscribe(contextStack, textNode.pipelineNames);\n\t\tsubscriptions.push(...textSubscriptions);\n\t\ttextNode.expression.get(contextStack);\n\t\treturn liveText;\n\t}\n\tcreateDocumentFragment(node: DomFragmentNode, contextStack: Stack, parentNode: Node, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective): DocumentFragment {\n\t\tconst fragment = document.createDocumentFragment();\n\t\tnode.children?.forEach(child => this.appendChildToParent(fragment, child, contextStack, parentNode, subscriptions, host));\n\t\treturn fragment;\n\t}\n\tappendChildToParent(fragmentParent: HTMLElement | DocumentFragment, child: DomNode, contextStack: Stack, parentNode: Node, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective) {\n\t\tif (child instanceof DomElementNode) {\n\t\t\tif (this.isTemplateRefName(child)) {\n\t\t\t\tconst templateRefName = child.templateRefName!;\n\t\t\t\t// const oldRef = this.templateNameScope.get(templateRefName.name);\n\t\t\t\t// if (oldRef) {\n\t\t\t\t// \treturn;\n\t\t\t\t// }\n\t\t\t\t// TODO: extract template expression\n\t\t\t\tconst templateRef = new TemplateRefImpl(\n\t\t\t\t\tthis,\n\t\t\t\t\tnew DomFragmentNode(child.children),\n\t\t\t\t\tcontextStack.copyStack(),\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tthis.templateNameScope.set(templateRefName.name, templateRef);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfragmentParent.append(this.createElement(child, contextStack, subscriptions, host));\n\t\t} else if (child instanceof DomStructuralDirectiveNode) {\n\t\t\tconst comment = document.createComment(` @${child.name.substring(1)} ${typeof child.value ? `(${child.value}) ` : ''}`);\n\t\t\tfragmentParent.append(comment);\n\t\t\tthis.createStructuralDirective(child, comment, contextStack, subscriptions, parentNode, host);\n\t\t} else if (isLiveTextContent(child)) {\n\t\t\tfragmentParent.append(this.createLiveText(child, contextStack, subscriptions));\n\t\t} else if (child instanceof TextContent) {\n\t\t\tfragmentParent.append(this.createText(child));\n\t\t} else if (child instanceof CommentNode) {\n\t\t\tfragmentParent.append(this.createComment(child));\n\t\t} else if (child instanceof DomFragmentNode) {\n\t\t\tfragmentParent.append(this.createDocumentFragment(child, contextStack, parentNode, subscriptions, host));\n\t\t}\n\t}\n\tcreateElementByTagName(node: { tagName: string, is?: string }): HTMLElement {\n\t\tlet element: HTMLElement;\n\t\tif (isValidCustomElementName(node.tagName)) {\n\t\t\tconst ViewClass = customElements.get(node.tagName) as ((new () => HTMLElement) | undefined);\n\t\t\tif (ViewClass) {\n\t\t\t\telement = new ViewClass();\n\t\t\t} else {\n\t\t\t\telement = document.createElement(node.tagName);\n\t\t\t\tif (element.constructor.name === 'HTMLElement') {\n\t\t\t\t\tcustomElements.whenDefined(node.tagName).then(() => customElements.upgrade(element));\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isTagNameNative(node.tagName)) {\n\t\t\t// native tags // and custom tags can be used her\n\t\t\telement = document.createElement(node.tagName, node.is ? { is: node.is } : undefined);\n\t\t} else {\n\t\t\t// html unknown element\n\t\t\telement = document.createElement(node.tagName);\n\t\t}\n\t\treturn element;\n\t}\n\tcreateElement(node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective): HTMLElement {\n\t\tconst element = this.createElementByTagName(node);\n\t\tthis.initHtmlElement(element, node, contextStack, subscriptions, host);\n\t\treturn element;\n\t}\n\n\tprivate createReadOnlyWithReactiveInnerScope<T extends Context>(ctx: T, aliasName?: string, propertyKeys?: (keyof T)[]) {\n\t\tif (!aliasName) {\n\t\t\treturn ReactiveScope.readOnlyScopeForThis(ctx, propertyKeys);\n\t\t}\n\t\tconst reactiveScope = ReactiveScope.for(ctx, propertyKeys);\n\t\tconst context: Record<string, any> = {\n\t\t\t'this': ctx,\n\t\t\t[aliasName]: ctx,\n\t\t};\n\t\tconst rootScope = ReadOnlyScope.for(context, ['this', aliasName]);\n\t\trootScope.setInnerScope('this', reactiveScope);\n\t\trootScope.setInnerScope(aliasName as 'this', reactiveScope);\n\t\treturn rootScope;\n\t}\n\n\t/**\n\t * use for init host bindings\n\t * @param element \n\t * @param node \n\t * @param contextStack \n\t * @param subscriptions \n\t */\n\tinitHtmlElement(element: HTMLElement, node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[]): void;\n\n\t/**\n\t * use to init a new create html element\n\t * @param element \n\t * @param node \n\t * @param contextStack \n\t * @param subscriptions \n\t * @param host is the direct html element `this.view` or a sub `structural directive` like `*if` or `*for`, etc...\n\t */\n\tinitHtmlElement(element: HTMLElement, node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective): void;\n\tinitHtmlElement(element: HTMLElement, node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[], host?: HTMLComponent<any> | StructuralDirective): void {\n\t\tconst elementStack = contextStack.copyStack();\n\t\tconst elementScope = isHTMLComponent(element)\n\t\t\t? element._viewScope\n\t\t\t: this.createReadOnlyWithReactiveInnerScope(element, node.templateRefName?.name);\n\t\telementStack.pushScope<Context>(elementScope);\n\t\tconst attributesSubscriptions = this.initAttribute(element, node, elementStack);\n\t\tsubscriptions.push(...attributesSubscriptions);\n\t\tconst changeEventName = getChangeEventName(node.tagName);\n\t\tif (changeEventName) {\n\t\t\tconst inputScope = elementScope.getInnerScope<ReactiveScope<HTMLInputElement>>('this')!;\n\t\t\tconst listener = (event: HTMLElementEventMap['input' | 'change']) => inputScope.emit('value', (element as HTMLInputElement).value);\n\t\t\telement.addEventListener(changeEventName, listener);\n\t\t\tsubscriptions.push(createDestroySubscription(\n\t\t\t\t() => element.removeEventListener(changeEventName, listener),\n\t\t\t));\n\t\t}\n\n\t\tconst templateRefName = node.templateRefName;\n\t\tif (templateRefName) {\n\t\t\tReflect.set(this.view, templateRefName.name, element);\n\t\t\tthis.viewScope.set(templateRefName.name, element);\n\t\t\tconst view = this.componentRef.viewChild.find(child => child.selector === templateRefName.name);\n\t\t\tif (view) {\n\t\t\t\tReflect.set(this.view._model, view.modelName, element);\n\t\t\t}\n\t\t}\n\t\tif (node.children) {\n\t\t\tfor (const child of node.children) {\n\t\t\t\tthis.appendChildToParent(element, child, elementStack, element, subscriptions, host!);\n\t\t\t}\n\t\t}\n\t\tif (node.attributeDirectives?.length) {\n\t\t\tthis.initAttributeDirectives(node.attributeDirectives, element, contextStack, subscriptions);\n\t\t}\n\t}\n\tprivate initAttributeDirectives(\n\t\tattributeDirectives: DomAttributeDirectiveNode[],\n\t\telement: HTMLElement | StructuralDirective,\n\t\tcontextStack: Stack,\n\t\tsubscriptions: ScopeSubscription<Context>[]) {\n\t\tattributeDirectives?.forEach(directiveNode => {\n\t\t\tconst directiveRef = classRegistryProvider.getDirectiveRef<any>(directiveNode.name);\n\t\t\tif (!directiveRef\n\t\t\t\t|| !((directiveRef.modelClass.prototype instanceof AttributeDirective)\n\t\t\t\t\t|| (directiveRef.modelClass.prototype instanceof AttributeOnStructuralDirective))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst directiveZone = this.view._zone.fork(directiveRef.zone);\n\t\t\tconst directive = directiveZone.run(() => new directiveRef.modelClass(element, directiveZone) as AttributeDirective | AttributeOnStructuralDirective);\n\t\t\tif (directiveRef.exportAs) {\n\t\t\t\tthis.exportAsScope.set(directiveRef.exportAs, directive);\n\t\t\t}\n\n\t\t\tconst stack = contextStack.copyStack();\n\t\t\tconst scope = ReactiveScope.readOnlyScopeForThis(directive);\n\t\t\tconst directiveScope = scope.getInnerScope('this')!;\n\t\t\tdirectiveScope.getContextProxy = () => directive;\n\t\t\tstack.pushScope(scope);\n\n\t\t\tconst directiveSubscriptions = this.initDirective(directive, directiveNode, stack);\n\t\t\tsubscriptions.push(...directiveSubscriptions);\n\t\t\tif (isOnInit(directive)) {\n\t\t\t\tdirectiveZone.run(directive.onInit, directive);\n\t\t\t}\n\t\t\tif (isOnDestroy(directive)) {\n\t\t\t\tsubscriptions.push(createDestroySubscription(() => directive.onDestroy()));\n\t\t\t}\n\t\t\tif (!(element instanceof HTMLElement)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst attributeName = directiveRef.selector.replace(/[A-Z]/g, m => '-' + m.toLowerCase());\n\t\t\tif (!element.hasAttribute(attributeName)) {\n\t\t\t\telement.setAttribute(attributeName, '');\n\t\t\t}\n\t\t\tif (directiveRef.viewBindings) {\n\t\t\t\tconst directiveStack = stack.copyStack();\n\t\t\t\tdirectiveStack.pushScope(directiveScope);\n\t\t\t\tthis.initHtmlElement(element, directiveRef.viewBindings, directiveStack, subscriptions);\n\t\t\t}\n\t\t});\n\t}\n\n\tinitAttribute(element: HTMLElement, node: DomElementNode, contextStack: Stack): ScopeSubscription<Context>[] {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\t\tif (node.attributes?.length) {\n\t\t\tnode.attributes.forEach(attr => {\n\t\t\t\t/**\n\t\t\t\t * <input id=\"23\" name=\"person-name\" data-id=\"1234567890\" data-user=\"carinaanand\" data-date-of-birth />\n\t\t\t\t */\n\t\t\t\tconst isAttr = hasAttr(element, attr.name);\n\t\t\t\tif (isAttr) {\n\t\t\t\t\tif (attr.value === false) {\n\t\t\t\t\t\telement.removeAttribute(attr.name);\n\t\t\t\t\t} else if (attr.value === true) {\n\t\t\t\t\t\telement.setAttribute(attr.name, '');\n\t\t\t\t\t} else {\n\t\t\t\t\t\telement.setAttribute(attr.name, attr.value as string);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tReflect.set(element, attr.name, attr.value);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (node.twoWayBinding?.length) {\n\t\t\tnode.twoWayBinding.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.inputs?.length) {\n\t\t\tnode.inputs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack, attr.pipelineNames);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.outputs?.length) {\n\t\t\tnode.outputs.forEach(event => {\n\t\t\t\tlet listener: Function;\n\t\t\t\t/**\n\t\t\t\t * <a (click)=\"onLinkClick($event)\"></a>\n\t\t\t\t * <a @click=\"onLinkClick($event)\"></a>\n\t\t\t\t * <input [(value)]=\"person.name\" />\n\t\t\t\t * <input (value)=\"person.name\" />\n\t\t\t\t * <!-- <input (value)=\"person.name = $event\" /> -->\n\t\t\t\t * \n\t\t\t\t * TODO: diff of event listener and back-way data binding\n\t\t\t\t */\n\t\t\t\tif (typeof event.value === 'string') {\n\t\t\t\t\tlistener = ($event: Event) => {\n\t\t\t\t\t\tconst stack = contextStack.copyStack();\n\t\t\t\t\t\tstack.pushBlockScopeFor({ $event });\n\t\t\t\t\t\tthis.view._zone.run(event.expression.get, event.expression, [stack]);\n\t\t\t\t\t};\n\t\t\t\t} else /* if (typeof event.sourceHandler === 'function')*/ {\n\t\t\t\t\t// let eventName: keyof HTMLElementEventMap = event.eventName;\n\t\t\t\t\tlistener = event.value;\n\t\t\t\t}\n\t\t\t\telement.addEventListener(event.name as any, listener as any);\n\t\t\t\tsubscriptions.push(createDestroySubscription(\n\t\t\t\t\t() => element.removeEventListener(event.name as any, listener as any),\n\t\t\t\t));\n\t\t\t});\n\t\t}\n\t\tif (node.templateAttrs?.length) {\n\t\t\tnode.templateAttrs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\treturn subscriptions;\n\t}\n\tinitDirective(\n\t\tdirective: StructuralDirective | AttributeDirective | AttributeOnStructuralDirective,\n\t\tnode: DomStructuralDirectiveNode | DomAttributeDirectiveNode,\n\t\tcontextStack: Stack): ScopeSubscription<Context>[] {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\n\t\tif (node.attributes?.length) {\n\t\t\tnode.attributes.forEach(attr => Reflect.set(directive, attr.name, attr.value));\n\t\t}\n\t\tif (node.twoWayBinding?.length) {\n\t\t\tnode.twoWayBinding.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.inputs?.length) {\n\t\t\tnode.inputs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack, attr.pipelineNames);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.outputs?.length) {\n\t\t\tnode.outputs.forEach(event => {\n\t\t\t\tconst listener = ($event: Event) => {\n\t\t\t\t\tconst stack = contextStack.copyStack();\n\t\t\t\t\tstack.pushBlockScopeFor({ $event });\n\t\t\t\t\tthis.view._zone.run(event.expression.get, event.expression, [stack]);\n\t\t\t\t};\n\t\t\t\tconst subscription = ((directive as any)[event.name] as EventEmitter<T>).subscribe(listener);\n\t\t\t\tsubscriptions.push(createDestroySubscription(\n\t\t\t\t\t() => ((directive as any)[event.name] as EventEmitter<T>).remove(subscription),\n\t\t\t\t));\n\t\t\t});\n\t\t}\n\t\tif (node.templateAttrs?.length) {\n\t\t\tnode.templateAttrs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\t// TODO: \n\t\t// check host binding\n\t\treturn subscriptions;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/core/view/render.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactiveScope, Context, ScopeSubscription, Stack, ReadOnlyScope, Identifier, Signal } from '@ibyar/expressions';\nimport {\n\tCommentNode, DomStructuralDirectiveNode, LocalTemplateVariables,\n\tDomElementNode, DomFragmentNode, DomNode, isLiveTextContent,\n\tisTagNameNative, isValidCustomElementName, LiveTextContent,\n\tTextContent, DomAttributeDirectiveNode, isFormAssociatedCustomElementByTag\n} from '@ibyar/elements';\nimport type { DomStructuralDirectiveNodeUpgrade } from '@ibyar/elements/node.js';\nimport { ComponentRef } from '../component/component.js';\nimport { HTMLComponent, isHTMLComponent } from '../component/custom-element.js';\nimport { documentStack } from '../context/stack.js';\nimport { classRegistryProvider } from '../providers/provider.js';\nimport { isOnDestroy, isOnInit } from '../component/lifecycle.js';\nimport { hasAttr } from '../utils/elements-util.js';\nimport { AttributeDirective, AttributeOnStructuralDirective, StructuralDirective } from '../directive/directive.js';\nimport { TemplateRef, TemplateRefImpl } from '../linker/template-ref.js';\nimport { ViewContainerRefImpl } from '../linker/view-container-ref.js';\nimport { createDestroySubscription } from '../context/subscription.js';\nimport { EventEmitter } from '../component/events.js';\nimport { isViewChildSignal } from '../component/initializer.js';\nimport { ChildRef } from '../component/reflect.js';\n\ntype ViewContext = { [element: string]: HTMLElement };\n\nfunction getChangeEventName(tagName: string): 'input' | 'change' | undefined {\n\tswitch (true) {\n\t\tcase tagName === 'input':\n\t\t\treturn 'input';\n\t\tcase tagName === 'textarea':\n\t\tcase tagName === 'select':\n\t\tcase isFormAssociatedCustomElementByTag(tagName):\n\t\t\treturn 'change';\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\nexport class ComponentRender<T extends object> {\n\tprivate componentRef: ComponentRef<T>;\n\tprivate template: DomNode;\n\tprivate contextStack: Stack;\n\tprivate templateNameScope: ReactiveScope<{ [templateName: string]: TemplateRef }>;\n\tprivate exportAsScope: ReactiveScope<Record<string, any>>;\n\tprivate viewScope: ReactiveScope<ViewContext> = new ReactiveScope({});\n\tprivate viewChildSignal: ChildRef[];\n\n\tconstructor(public view: HTMLComponent<T>, private subscriptions: ScopeSubscription<Context>[]) {\n\t\tthis.componentRef = this.view.getComponentRef();\n\t\tthis.contextStack = documentStack.copyStack();\n\t\tthis.contextStack.pushScope<Context>(this.view._modelScope);\n\t\tthis.exportAsScope = this.contextStack.pushReactiveScope();\n\t\tthis.templateNameScope = this.contextStack.pushReactiveScope();\n\t\tthis.viewChildSignal = this.componentRef.viewChild.filter(child => child.selector === 'ɵSignal');\n\t}\n\tinitView(): void {\n\t\tif (!this.componentRef.template) {\n\t\t\treturn;\n\t\t}\n\t\tif (typeof this.componentRef.template === 'function') {\n\t\t\tthis.template = this.componentRef.template(this.view._model);\n\t\t} else {\n\t\t\tthis.template = this.componentRef.template;\n\t\t}\n\n\t\tlet rootRef: HTMLElement | ShadowRoot;\n\t\tif (this.componentRef.isShadowDom) {\n\t\t\trootRef = Reflect.get(this.view, '_shadowRoot') as ShadowRoot;\n\t\t\tReflect.deleteProperty(this.view, '_shadowRoot');\n\t\t} else {\n\t\t\trootRef = this.view;\n\t\t}\n\t\tthis.initTemplateRefMap(this.template);\n\t\tlet rootFragment: DocumentFragment;\n\t\tif (this.template instanceof DomFragmentNode) {\n\t\t\trootFragment = this.createDocumentFragment(this.template, this.contextStack, rootRef, this.subscriptions, this.view);\n\t\t} else {\n\t\t\trootFragment = document.createDocumentFragment();\n\t\t\tthis.appendChildToParent(rootFragment, this.template, this.contextStack, rootRef, this.subscriptions, this.view);\n\t\t}\n\t\trootRef.append(rootFragment);\n\t}\n\tisTemplateRefName(template: DomNode): template is DomElementNode {\n\t\tif (template instanceof DomElementNode) {\n\t\t\tif (template.tagName === 'template' && template.templateRefName) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tinitTemplateRefMap(domNode: DomNode) {\n\t\tif (!(domNode instanceof DomElementNode || domNode instanceof DomFragmentNode) || !domNode.children) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let index = 0; index < domNode.children.length; index++) {\n\t\t\tconst child = domNode.children[index];\n\t\t\tif (this.isTemplateRefName(child)) {\n\t\t\t\tthis.templateNameScope.set(child.templateRefName!.name, undefined);\n\t\t\t} else {\n\t\t\t\tthis.initTemplateRefMap(child);\n\t\t\t}\n\t\t}\n\t}\n\tinitViewBinding() {\n\t\tif (this.componentRef.viewBindings) {\n\t\t\tthis.initHtmlElement(this.view, this.componentRef.viewBindings, this.contextStack, this.subscriptions);\n\t\t}\n\t\tif (this.componentRef.windowBindings) {\n\t\t\tthis.subscriptions.push(...this.initAttribute(window as any, this.componentRef.windowBindings, this.contextStack));\n\t\t}\n\t}\n\tgetElementByName(name: string) {\n\t\treturn Reflect.get(this.view, name);\n\t}\n\tcreateStructuralDirective(directive: DomStructuralDirectiveNode, comment: Comment, directiveStack: Stack, subscriptions: ScopeSubscription<Context>[], parentNode: Node, host: HTMLComponent<any> | StructuralDirective): void {\n\t\tconst directiveRef = classRegistryProvider.getDirectiveRef<T>(directive.name);\n\t\tif (!directiveRef) {\n\t\t\t// didn't find directive or it is not define yet.\n\t\t\t// class registry should have 'when defined' callback\n\t\t\treturn;\n\t\t}\n\t\tconst stack = directiveStack.copyStack();\n\t\tconst templateRef = new TemplateRefImpl(\n\t\t\tthis,\n\t\t\tdirective.node,\n\t\t\tstack,\n\t\t\t(directive as DomStructuralDirectiveNodeUpgrade).templateExpressions ?? [],\n\t\t);\n\t\tconst successorTemplateRefs = Object.fromEntries((directive.successors ?? [])?.map(\n\t\t\tsuccessor => [successor.name, new TemplateRefImpl(this, successor, stack, [])]\n\t\t));\n\t\tconst directiveZone = this.view._zone.fork(directiveRef.zone);\n\t\tconst viewContainerRef = new ViewContainerRefImpl(parentNode as Element, comment);\n\n\t\tdirectiveZone.onEmpty.subscribe(() => {\n\t\t\tconst length = viewContainerRef.length;\n\t\t\tfor (let index = 0; index < length; index++) {\n\t\t\t\tviewContainerRef.get(index)?.detectChanges();\n\t\t\t}\n\t\t});\n\n\t\tconst StructuralDirectiveClass = directiveRef.modelClass as typeof StructuralDirective;\n\t\tconst structural = directiveZone.run(() => new StructuralDirectiveClass(\n\t\t\ttemplateRef,\n\t\t\tviewContainerRef,\n\t\t\thost,\n\t\t\tdirectiveZone,\n\t\t\tsuccessorTemplateRefs,\n\t\t));\n\n\t\ttemplateRef.host = structural;\n\t\tconst scope = ReactiveScope.readOnlyScopeForThis(structural);\n\t\tscope.getInnerScope('this')!.getContextProxy = () => structural;\n\t\tstack.pushScope(scope);\n\t\tif (directiveRef.exportAs) {\n\t\t\tstack.pushBlockScopeFor({ [directiveRef.exportAs]: structural });\n\t\t}\n\t\tsubscriptions.push(...this.initDirective(structural, directive, stack));\n\t\tif (isOnInit(structural)) {\n\t\t\tdirectiveZone.run(structural.onInit, structural);\n\t\t}\n\t\tif (directive.attributeDirectives?.length) {\n\t\t\tthis.initAttributeDirectives(directive.attributeDirectives, structural, stack, subscriptions);\n\t\t}\n\t\tif (isOnDestroy(structural)) {\n\t\t\tsubscriptions.push(createDestroySubscription(() => structural.onDestroy()));\n\t\t}\n\t}\n\tcreateComment(node: CommentNode): Comment {\n\t\treturn document.createComment(`${node.comment}`);\n\t}\n\tcreateText(node: TextContent): Text {\n\t\treturn new Text(node.value);\n\t}\n\tcreateLiveText(textNode: LiveTextContent, contextStack: Stack, subscriptions: ScopeSubscription<Context>[]): Text {\n\t\tconst liveText = new Text('');\n\t\tcontextStack = contextStack.copyStack();\n\t\tcontextStack.pushBlockScopeFor({ this: liveText });\n\t\tconst textSubscriptions = textNode.expression.subscribe(contextStack, textNode.pipelineNames);\n\t\tsubscriptions.push(...textSubscriptions);\n\t\ttextNode.expression.get(contextStack);\n\t\treturn liveText;\n\t}\n\tcreateLocalTemplateVariables(localNode: LocalTemplateVariables, contextStack: Stack, subscriptions: ScopeSubscription<Context>[]): void {\n\t\tconst entries = localNode.variables.map(variable => [(variable.expression.getLeft() as Identifier).getDeclarationName(), undefined]);\n\t\tconst context = Object.fromEntries(entries);\n\t\tcontextStack.pushReactiveScopeFor(context);\n\t\tlocalNode.variables.forEach(variable => {\n\t\t\tconst localSubscriptions = variable.expression.subscribe(contextStack, variable.pipelineNames);\n\t\t\tsubscriptions.push(...localSubscriptions);\n\t\t\tvariable.expression.get(contextStack);\n\t\t});\n\t}\n\tcreateDocumentFragment(node: DomFragmentNode, contextStack: Stack, parentNode: Node, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective): DocumentFragment {\n\t\tconst fragment = document.createDocumentFragment();\n\t\tnode.children?.forEach(child => this.appendChildToParent(fragment, child, contextStack, parentNode, subscriptions, host));\n\t\treturn fragment;\n\t}\n\tappendChildToParent(fragmentParent: HTMLElement | DocumentFragment, child: DomNode, contextStack: Stack, parentNode: Node, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective) {\n\t\tif (child instanceof DomElementNode) {\n\t\t\tif (this.isTemplateRefName(child)) {\n\t\t\t\tconst templateRefName = child.templateRefName!;\n\t\t\t\t// const oldRef = this.templateNameScope.get(templateRefName.name);\n\t\t\t\t// if (oldRef) {\n\t\t\t\t// \treturn;\n\t\t\t\t// }\n\t\t\t\t// TODO: extract template expression\n\t\t\t\tconst templateRef = new TemplateRefImpl(\n\t\t\t\t\tthis,\n\t\t\t\t\tnew DomFragmentNode(child.children),\n\t\t\t\t\tcontextStack.copyStack(),\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tthis.templateNameScope.set(templateRefName.name, templateRef);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfragmentParent.append(this.createElement(child, contextStack, subscriptions, host));\n\t\t} else if (child instanceof DomStructuralDirectiveNode) {\n\t\t\tconst comment = document.createComment(` @${child.name.substring(1)} ${typeof child.value ? `(${child.value}) ` : ''}`);\n\t\t\tfragmentParent.append(comment);\n\t\t\tthis.createStructuralDirective(child, comment, contextStack, subscriptions, parentNode, host);\n\t\t} else if (isLiveTextContent(child)) {\n\t\t\tfragmentParent.append(this.createLiveText(child, contextStack, subscriptions));\n\t\t} else if (child instanceof LocalTemplateVariables) {\n\t\t\tthis.createLocalTemplateVariables(child, contextStack, subscriptions);\n\t\t} else if (child instanceof TextContent) {\n\t\t\tfragmentParent.append(this.createText(child));\n\t\t} else if (child instanceof CommentNode) {\n\t\t\tfragmentParent.append(this.createComment(child));\n\t\t} else if (child instanceof DomFragmentNode) {\n\t\t\tfragmentParent.append(this.createDocumentFragment(child, contextStack, parentNode, subscriptions, host));\n\t\t}\n\t}\n\tcreateElementByTagName(node: { tagName: string, is?: string }): HTMLElement {\n\t\tlet element: HTMLElement;\n\t\tif (isValidCustomElementName(node.tagName)) {\n\t\t\tconst ViewClass = customElements.get(node.tagName) as ((new () => HTMLElement) | undefined);\n\t\t\tif (ViewClass) {\n\t\t\t\telement = new ViewClass();\n\t\t\t} else {\n\t\t\t\telement = document.createElement(node.tagName);\n\t\t\t\tif (element.constructor.name === 'HTMLElement') {\n\t\t\t\t\tcustomElements.whenDefined(node.tagName).then(() => customElements.upgrade(element));\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isTagNameNative(node.tagName)) {\n\t\t\t// native tags // and custom tags can be used her\n\t\t\telement = document.createElement(node.tagName, node.is ? { is: node.is } : undefined);\n\t\t} else {\n\t\t\t// html unknown element\n\t\t\telement = document.createElement(node.tagName);\n\t\t}\n\t\treturn element;\n\t}\n\tcreateElement(node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective): HTMLElement {\n\t\tconst element = this.createElementByTagName(node);\n\t\tthis.initHtmlElement(element, node, contextStack, subscriptions, host);\n\t\treturn element;\n\t}\n\n\tprivate createReadOnlyWithReactiveInnerScope<T extends Context>(ctx: T, aliasName?: string, propertyKeys?: (keyof T)[]) {\n\t\tif (!aliasName) {\n\t\t\treturn ReactiveScope.readOnlyScopeForThis(ctx, propertyKeys);\n\t\t}\n\t\tconst reactiveScope = ReactiveScope.for(ctx, propertyKeys);\n\t\tconst context: Record<string, any> = {\n\t\t\t'this': ctx,\n\t\t\t[aliasName]: ctx,\n\t\t};\n\t\tconst rootScope = ReadOnlyScope.for(context, ['this', aliasName]);\n\t\trootScope.setInnerScope('this', reactiveScope);\n\t\trootScope.setInnerScope(aliasName as 'this', reactiveScope);\n\t\treturn rootScope;\n\t}\n\n\t/**\n\t * use for init host bindings\n\t * @param element \n\t * @param node \n\t * @param contextStack \n\t * @param subscriptions \n\t */\n\tinitHtmlElement(element: HTMLElement, node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[]): void;\n\n\t/**\n\t * use to init a new create html element\n\t * @param element \n\t * @param node \n\t * @param contextStack \n\t * @param subscriptions \n\t * @param host is the direct html element `this.view` or a sub `structural directive` like `*if` or `*for`, etc...\n\t */\n\tinitHtmlElement(element: HTMLElement, node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[], host: HTMLComponent<any> | StructuralDirective): void;\n\tinitHtmlElement(element: HTMLElement, node: DomElementNode, contextStack: Stack, subscriptions: ScopeSubscription<Context>[], host?: HTMLComponent<any> | StructuralDirective): void {\n\t\tconst elementStack = contextStack.copyStack();\n\t\tconst elementScope = isHTMLComponent(element)\n\t\t\t? element._viewScope\n\t\t\t: this.createReadOnlyWithReactiveInnerScope(element, node.templateRefName?.name);\n\t\telementStack.pushScope<Context>(elementScope);\n\t\tconst attributesSubscriptions = this.initAttribute(element, node, elementStack);\n\t\tsubscriptions.push(...attributesSubscriptions);\n\t\tconst changeEventName = getChangeEventName(node.tagName);\n\t\tif (changeEventName) {\n\t\t\tconst inputScope = elementScope.getInnerScope<ReactiveScope<HTMLInputElement>>('this')!;\n\t\t\tconst listener = (event: HTMLElementEventMap['input' | 'change']) => inputScope.emit('value', (element as HTMLInputElement).value);\n\t\t\telement.addEventListener(changeEventName, listener);\n\t\t\tsubscriptions.push(createDestroySubscription(\n\t\t\t\t() => element.removeEventListener(changeEventName, listener),\n\t\t\t));\n\t\t}\n\n\t\tconst templateRefName = node.templateRefName;\n\t\tif (templateRefName) {\n\t\t\tReflect.set(this.view, templateRefName.name, element);\n\t\t\tthis.viewScope.set(templateRefName.name, element);\n\t\t\tconst view = this.componentRef.viewChild.find(child => child.selector === templateRefName.name);\n\t\t\tlet signal: Signal<any> | undefined;\n\t\t\tif (view) {\n\t\t\t\tReflect.set(this.view._model, view.modelName, element);\n\t\t\t} else if (signal = this.getViewChildSignal(templateRefName.name)) {\n\t\t\t\tsignal.set(element);\n\t\t\t}\n\t\t}\n\t\tif (node.children) {\n\t\t\tfor (const child of node.children) {\n\t\t\t\tthis.appendChildToParent(element, child, elementStack, element, subscriptions, host!);\n\t\t\t}\n\t\t}\n\t\tif (node.attributeDirectives?.length) {\n\t\t\tthis.initAttributeDirectives(node.attributeDirectives, element, contextStack, subscriptions);\n\t\t}\n\t}\n\tprivate initAttributeDirectives(\n\t\tattributeDirectives: DomAttributeDirectiveNode[],\n\t\telement: HTMLElement | StructuralDirective,\n\t\tcontextStack: Stack,\n\t\tsubscriptions: ScopeSubscription<Context>[]) {\n\t\tattributeDirectives?.forEach(directiveNode => {\n\t\t\tconst directiveRef = classRegistryProvider.getDirectiveRef<any>(directiveNode.name);\n\t\t\tif (!directiveRef\n\t\t\t\t|| !((directiveRef.modelClass.prototype instanceof AttributeDirective)\n\t\t\t\t\t|| (directiveRef.modelClass.prototype instanceof AttributeOnStructuralDirective))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst directiveZone = this.view._zone.fork(directiveRef.zone);\n\t\t\tconst directive = directiveZone.run(() => new directiveRef.modelClass(element, directiveZone) as AttributeDirective | AttributeOnStructuralDirective);\n\t\t\tif (directiveRef.exportAs) {\n\t\t\t\tthis.exportAsScope.set(directiveRef.exportAs, directive);\n\t\t\t}\n\n\t\t\tconst stack = contextStack.copyStack();\n\t\t\tconst scope = ReactiveScope.readOnlyScopeForThis(directive);\n\t\t\tconst directiveScope = scope.getInnerScope('this')!;\n\t\t\tdirectiveScope.getContextProxy = () => directive;\n\t\t\tstack.pushScope(scope);\n\n\t\t\tconst directiveSubscriptions = this.initDirective(directive, directiveNode, stack);\n\t\t\tsubscriptions.push(...directiveSubscriptions);\n\t\t\tif (isOnInit(directive)) {\n\t\t\t\tdirectiveZone.run(directive.onInit, directive);\n\t\t\t}\n\t\t\tif (isOnDestroy(directive)) {\n\t\t\t\tsubscriptions.push(createDestroySubscription(() => directive.onDestroy()));\n\t\t\t}\n\t\t\tif (!(element instanceof HTMLElement)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst attributeName = directiveRef.selector.replace(/[A-Z]/g, m => '-' + m.toLowerCase());\n\t\t\tif (!element.hasAttribute(attributeName)) {\n\t\t\t\telement.setAttribute(attributeName, '');\n\t\t\t}\n\t\t\tif (directiveRef.viewBindings) {\n\t\t\t\tconst directiveStack = stack.copyStack();\n\t\t\t\tdirectiveStack.pushScope(directiveScope);\n\t\t\t\tthis.initHtmlElement(element, directiveRef.viewBindings, directiveStack, subscriptions);\n\t\t\t}\n\t\t});\n\t}\n\n\tinitAttribute(element: HTMLElement, node: DomElementNode, contextStack: Stack): ScopeSubscription<Context>[] {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\t\tif (node.attributes?.length) {\n\t\t\tnode.attributes.forEach(attr => {\n\t\t\t\t/**\n\t\t\t\t * <input id=\"23\" name=\"person-name\" data-id=\"1234567890\" data-user=\"carinaanand\" data-date-of-birth />\n\t\t\t\t */\n\t\t\t\tconst isAttr = hasAttr(element, attr.name);\n\t\t\t\tif (isAttr) {\n\t\t\t\t\tif (attr.value === false) {\n\t\t\t\t\t\telement.removeAttribute(attr.name);\n\t\t\t\t\t} else if (attr.value === true) {\n\t\t\t\t\t\telement.setAttribute(attr.name, '');\n\t\t\t\t\t} else {\n\t\t\t\t\t\telement.setAttribute(attr.name, attr.value as string);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tReflect.set(element, attr.name, attr.value);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (node.twoWayBinding?.length) {\n\t\t\tnode.twoWayBinding.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.inputs?.length) {\n\t\t\tnode.inputs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack, attr.pipelineNames);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.outputs?.length) {\n\t\t\tnode.outputs.forEach(event => {\n\t\t\t\tlet listener: Function;\n\t\t\t\t/**\n\t\t\t\t * <a (click)=\"onLinkClick($event)\"></a>\n\t\t\t\t * <a @click=\"onLinkClick($event)\"></a>\n\t\t\t\t * <input [(value)]=\"person.name\" />\n\t\t\t\t * <input (value)=\"person.name\" />\n\t\t\t\t * <!-- <input (value)=\"person.name = $event\" /> -->\n\t\t\t\t * \n\t\t\t\t * TODO: diff of event listener and back-way data binding\n\t\t\t\t */\n\t\t\t\tif (typeof event.value === 'string') {\n\t\t\t\t\tlistener = ($event: Event) => {\n\t\t\t\t\t\tconst stack = contextStack.copyStack();\n\t\t\t\t\t\tstack.pushBlockScopeFor({ $event });\n\t\t\t\t\t\tthis.view._zone.run(event.expression.get, event.expression, [stack]);\n\t\t\t\t\t};\n\t\t\t\t} else /* if (typeof event.sourceHandler === 'function')*/ {\n\t\t\t\t\t// let eventName: keyof HTMLElementEventMap = event.eventName;\n\t\t\t\t\tlistener = event.value;\n\t\t\t\t}\n\t\t\t\telement.addEventListener(event.name as any, listener as any);\n\t\t\t\tsubscriptions.push(createDestroySubscription(\n\t\t\t\t\t() => element.removeEventListener(event.name as any, listener as any),\n\t\t\t\t));\n\t\t\t});\n\t\t}\n\t\tif (node.templateAttrs?.length) {\n\t\t\tnode.templateAttrs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\treturn subscriptions;\n\t}\n\tinitDirective(\n\t\tdirective: StructuralDirective | AttributeDirective | AttributeOnStructuralDirective,\n\t\tnode: DomStructuralDirectiveNode | DomAttributeDirectiveNode,\n\t\tcontextStack: Stack): ScopeSubscription<Context>[] {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\n\t\tif (node.attributes?.length) {\n\t\t\tnode.attributes.forEach(attr => Reflect.set(directive, attr.name, attr.value));\n\t\t}\n\t\tif (node.twoWayBinding?.length) {\n\t\t\tnode.twoWayBinding.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.inputs?.length) {\n\t\t\tnode.inputs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack, attr.pipelineNames);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\tif (node.outputs?.length) {\n\t\t\tnode.outputs.forEach(event => {\n\t\t\t\tconst listener = ($event: Event) => {\n\t\t\t\t\tconst stack = contextStack.copyStack();\n\t\t\t\t\tstack.pushBlockScopeFor({ $event });\n\t\t\t\t\tthis.view._zone.run(event.expression.get, event.expression, [stack]);\n\t\t\t\t};\n\t\t\t\tconst subscription = ((directive as any)[event.name] as EventEmitter<T>).subscribe(listener);\n\t\t\t\tsubscriptions.push(createDestroySubscription(\n\t\t\t\t\t() => ((directive as any)[event.name] as EventEmitter<T>).remove(subscription),\n\t\t\t\t));\n\t\t\t});\n\t\t}\n\t\tif (node.templateAttrs?.length) {\n\t\t\tnode.templateAttrs.forEach(attr => {\n\t\t\t\tconst sub = attr.expression.subscribe(contextStack);\n\t\t\t\tsubscriptions.push(...sub);\n\t\t\t\tattr.expression.get(contextStack);\n\t\t\t});\n\t\t}\n\t\t// TODO: \n\t\t// check host binding\n\t\treturn subscriptions;\n\t}\n\n\tprivate getViewChildSignal(templateRefName: string) {\n\t\tfor (const child of this.viewChildSignal) {\n\t\t\tconst signal = this.view._model[child.modelName];\n\t\t\tif (isViewChildSignal(signal) && signal.selector === templateRefName) {\n\t\t\t\treturn signal;\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\n}\n"]}
package/view/utils.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { MetadataClass } from '@ibyar/decorators';
2
2
  import type { HTMLComponent } from '../component/custom-element.js';
3
- import type { TypeOf } from '../utils/typeof.js';
3
+ import type { Type } from '../utils/typeof.js';
4
4
  import type { ComponentModelClass } from './view.js';
5
5
  export declare function isComponentModelClass(target: MetadataClass): target is ComponentModelClass;
6
- export declare function getComponentView<T extends object>(modelClass: MetadataClass<T>, selector?: string): TypeOf<HTMLComponent<T>> | undefined;
6
+ export declare function getComponentView<T extends object>(modelClass: MetadataClass<T>, selector?: string): Type<HTMLComponent<T>> | undefined;
7
7
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/core/view/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,mBAAmB,CAE1F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAcxI"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/core/view/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,mBAAmB,CAE1F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CActI"}
package/view/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/view/utils.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAmB,UAA4B,EAAE,QAAiB;IACjG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO;IACR,CAAC;IACD,IAAI,aAAqB,CAAC;IAC1B,IAAI,QAAQ,EAAE,CAAC;QACd,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,iBAAiB,QAAQ,UAAU,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;SAAM,CAAC;QACP,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import type { MetadataClass } from '@ibyar/decorators';\nimport type { HTMLComponent } from '../component/custom-element.js';\nimport type { TypeOf } from '../utils/typeof.js';\nimport type { ComponentModelClass } from './view.js';\n\nexport function isComponentModelClass(target: MetadataClass): target is ComponentModelClass {\n\treturn Reflect.has(target, 'component');\n}\n\nexport function getComponentView<T extends object>(modelClass: MetadataClass<T>, selector?: string): TypeOf<HTMLComponent<T>> | undefined {\n\tif (!isComponentModelClass(modelClass)) {\n\t\treturn;\n\t}\n\tlet viewClassName: string;\n\tif (selector) {\n\t\tviewClassName = modelClass.component[selector];\n\t\tif (!viewClassName) {\n\t\t\tthrow new Error(`${modelClass.name} doesn't have ${selector} as view`);\n\t\t}\n\t} else {\n\t\tviewClassName = Object.keys(modelClass.component)[0];\n\t}\n\treturn modelClass[viewClassName];\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/view/utils.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAmB,UAA4B,EAAE,QAAiB;IACjG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO;IACR,CAAC;IACD,IAAI,aAAqB,CAAC;IAC1B,IAAI,QAAQ,EAAE,CAAC;QACd,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,iBAAiB,QAAQ,UAAU,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;SAAM,CAAC;QACP,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import type { MetadataClass } from '@ibyar/decorators';\nimport type { HTMLComponent } from '../component/custom-element.js';\nimport type { Type } from '../utils/typeof.js';\nimport type { ComponentModelClass } from './view.js';\n\nexport function isComponentModelClass(target: MetadataClass): target is ComponentModelClass {\n\treturn Reflect.has(target, 'component');\n}\n\nexport function getComponentView<T extends object>(modelClass: MetadataClass<T>, selector?: string): Type<HTMLComponent<T>> | undefined {\n\tif (!isComponentModelClass(modelClass)) {\n\t\treturn;\n\t}\n\tlet viewClassName: string;\n\tif (selector) {\n\t\tviewClassName = modelClass.component[selector];\n\t\tif (!viewClassName) {\n\t\t\tthrow new Error(`${modelClass.name} doesn't have ${selector} as view`);\n\t\t}\n\t} else {\n\t\tviewClassName = Object.keys(modelClass.component)[0];\n\t}\n\treturn modelClass[viewClassName];\n}\n"]}
package/view/view.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { TypeOf } from '../utils/typeof.js';
1
+ import type { Type } from '../utils/typeof.js';
2
2
  import { MetadataClass } from '@ibyar/decorators';
3
3
  import { ComponentRef } from '../component/component.js';
4
4
  import { HTMLComponent } from '../component/custom-element.js';
@@ -15,8 +15,8 @@ export type ComponentModelClass = MetadataClass & {
15
15
  [key: string]: string;
16
16
  };
17
17
  } & {
18
- [key: string]: TypeOf<HTMLComponent<any>>;
18
+ [key: string]: Type<HTMLComponent<any>>;
19
19
  };
20
- export declare function addViewToModelClass<T extends object>(modelClass: MetadataClass<T>, selector: string, viewClass: TypeOf<HTMLComponent<T>>, htmlViewClassName: string): void;
20
+ export declare function addViewToModelClass<T extends object>(modelClass: MetadataClass<T>, selector: string, viewClass: Type<HTMLComponent<T>>, htmlViewClassName: string): void;
21
21
  export declare function buildViewClassNameFromSelector(selector: string): string;
22
22
  //# sourceMappingURL=view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/core/view/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAY,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAS/D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CA2FpJ;AAED,MAAM,MAAM,mBAAmB,GAC9B,aAAa,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACzB;IAAE,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAAE,GACxC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,QAUnK;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,UAK9D"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/core/view/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAY,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAS/D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CA4GpJ;AAED,MAAM,MAAM,mBAAmB,GAC9B,aAAa,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACzB;IAAE,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAAE,GACxC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE,CAAC;AAE/C,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,QAUjK;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,UAK9D"}
package/view/view.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { __esDecorate, __propKey, __runInitializers, __setFunctionName } from "tslib";
2
2
  import { Metadata } from '@ibyar/decorators';
3
+ import { getReactiveNode, Signal } from '@ibyar/expressions';
3
4
  import { getAllAttributes } from '@ibyar/elements';
4
5
  import { ToCamelCase } from '../utils/utils.js';
5
6
  import { baseFactoryView } from './base-view.js';
@@ -14,7 +15,6 @@ const FACTORY_CACHE = new WeakMap();
14
15
  export function initCustomElementView(modelClass, componentRef) {
15
16
  var _a;
16
17
  const htmlParent = componentRef.extend.classRef;
17
- let viewClass;
18
18
  const viewClassName = buildViewClassNameFromSelector(componentRef.selector);
19
19
  const htmlViewClassName = `HTML${viewClassName}Element`;
20
20
  let parentClass;
@@ -30,7 +30,7 @@ export function initCustomElementView(modelClass, componentRef) {
30
30
  FACTORY_CACHE.set(htmlParent, parentClass);
31
31
  }
32
32
  }
33
- viewClass = ({
33
+ const viewClass = ({
34
34
  [_a = __propKey(htmlViewClassName)]: (() => {
35
35
  let _classDecorators = [Metadata()];
36
36
  let _classDescriptor;
@@ -45,11 +45,16 @@ export function initCustomElementView(modelClass, componentRef) {
45
45
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
46
46
  class_1 = _classThis = _classDescriptor.value;
47
47
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
48
- __runInitializers(_classThis, _classExtraInitializers);
49
48
  }
49
+ static allAttributes = [];
50
+ static disabledFeatures = [];
51
+ static observedAttributes = [];
50
52
  constructor(optionalComponentRef, modelConstructor) {
51
53
  super(optionalComponentRef ?? componentRef, modelConstructor ?? modelClass);
52
54
  }
55
+ static {
56
+ __runInitializers(_classThis, _classExtraInitializers);
57
+ }
53
58
  };
54
59
  return class_1 = _classThis;
55
60
  })()
@@ -57,10 +62,22 @@ export function initCustomElementView(modelClass, componentRef) {
57
62
  componentRef.inputs.forEach((input) => {
58
63
  Object.defineProperty(viewClass.prototype, input.viewAttribute, {
59
64
  get() {
60
- return this._modelScope.get(input.modelProperty);
65
+ const value = this._modelScope.get(input.modelProperty);
66
+ const signal = getReactiveNode(value);
67
+ if (signal) {
68
+ return signal.get();
69
+ }
70
+ return value;
61
71
  },
62
72
  set(value) {
63
- this._modelScope.set(input.modelProperty, value);
73
+ const model = this._modelScope.get(input.modelProperty);
74
+ const signal = getReactiveNode(model);
75
+ if (signal instanceof Signal) {
76
+ signal.set(value);
77
+ }
78
+ else {
79
+ this._modelScope.set(input.modelProperty, value);
80
+ }
64
81
  },
65
82
  enumerable: true,
66
83
  });
@@ -109,8 +126,11 @@ export function initCustomElementView(modelClass, componentRef) {
109
126
  if (componentRef.formAssociated && !observedAttributes.includes('value')) {
110
127
  observedAttributes.push('value');
111
128
  }
112
- Reflect.set(viewClass, 'observedAttributes', observedAttributes);
113
- Reflect.set(viewClass, 'allAttributes', defaultAttributes.concat(observedAttributes));
129
+ viewClass.allAttributes.push(...defaultAttributes.concat(observedAttributes));
130
+ viewClass.observedAttributes.push(...observedAttributes);
131
+ if (Array.isArray(componentRef.disabledFeatures)) {
132
+ viewClass.disabledFeatures.push(...componentRef.disabledFeatures);
133
+ }
114
134
  addViewToModelClass(modelClass, componentRef.selector, viewClass, htmlViewClassName);
115
135
  if (!Reflect.has(window, htmlViewClassName)) {
116
136
  Reflect.set(window, htmlViewClassName, viewClass);
package/view/view.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/core/view/view.ts"],"names":[],"mappings":";AACA,OAAO,EAAiB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,aAAa,GAAG,IAAI,OAAO,EAAmD,CAAC;AAErF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAmB,UAA4B,EAAE,YAA6B;;IAClH,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,QAA+B,CAAC;IACvE,IAAI,SAAmC,CAAC;IACxC,MAAM,aAAa,GAAG,8BAA8B,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5E,MAAM,iBAAiB,GAAG,OAAO,aAAa,SAAS,CAAC;IAExD,IAAI,WAAqC,CAAC;IAC1C,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACtC,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,QAAoC,CAAC;IACxE,CAAC;SAAM,CAAC;QACP,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAA6B,CAAC;QACzE,CAAC;aAAM,CAAC;YACP,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAI,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAI,UAAU,CAAC,CAAC;YAChH,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;IAED,SAAS,GAAG,CAAC;QACZ,gBAAC,iBAAiB,EAAC;oCAAG,QAAQ,EAAE;;;;8BAAe,WAAW;+BAAnB,SAAQ,WAAW;;;;;oBAAzB,6KAIhC;;;oBAJgC,uDAIhC;;gBAHA,YAAY,oBAAsC,EAAE,gBAA4B;oBAC/E,KAAK,CAAC,oBAAoB,IAAI,YAAY,EAAE,gBAAgB,IAAI,UAAU,CAAC,CAAC;gBAC7E,CAAC;;;YACD;KACD,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAEtB,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE;YAC/D,GAAG;gBACF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAClD,CAAC;YACD,GAAG,CAA+C,KAAU;gBAC3D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;YACD,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACrC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE;YAChE,GAAG;gBACF,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YACD,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,aAAmC,CAAC;QACxC,IAAI,YAA+B,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YACpF,GAAG;gBACF,OAAO,aAAa,CAAC;YACtB,CAAC;YACD,GAAG,CAAyB,KAAwB;gBACnD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,IAAI,YAAY,EAAE,CAAC;wBAClB,YAAY,CAAC,WAAW,EAAE,CAAC;wBAC3B,aAAa,GAAG,SAAS,CAAC;oBAC3B,CAAC;gBACF,CAAC;gBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1B,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9C,CAAC;oBACD,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;gBACD,aAAa,GAAG,KAAiB,CAAC;gBAClC,YAAY,GAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1F,CAAC;YACD,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;SACnD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAChE,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACpE,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5D,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;SACzD,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAEpE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;SAC9E,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACvF,IAAI,YAAY,CAAC,cAAc,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1E,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,iBAAiB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACtF,mBAAmB,CAAI,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACxF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,SAA0B,CAAC;AACnC,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAAmB,UAA4B,EAAE,QAAgB,EAAE,SAAmC,EAAE,iBAAyB;IACnK,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAE3E,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC;IACpD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,QAAgB;IAC9D,OAAO,QAAQ;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC5D,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC","sourcesContent":["import type { TypeOf } from '../utils/typeof.js';\nimport { MetadataClass, Metadata } from '@ibyar/decorators';\nimport { getAllAttributes } from '@ibyar/elements';\nimport { ComponentRef } from '../component/component.js';\nimport { HTMLComponent } from '../component/custom-element.js';\nimport { EventEmitter, Subscription } from '../component/events.js';\nimport { ToCamelCase } from '../utils/utils.js';\nimport { baseFactoryView } from './base-view.js';\nimport { baseFormFactoryView } from './form-view.js';\nimport { isComponentModelClass } from './utils.js';\n\nconst FACTORY_CACHE = new WeakMap<TypeOf<HTMLElement>, TypeOf<HTMLComponent<any>>>();\n\n/**\n * \n * @param modelClass \n * @param componentRef \n */\nexport function initCustomElementView<T extends Object>(modelClass: MetadataClass<T>, componentRef: ComponentRef<T>): MetadataClass<HTMLComponent<T>> {\n\tconst htmlParent = componentRef.extend.classRef as TypeOf<HTMLElement>;\n\tlet viewClass: TypeOf<HTMLComponent<T>>;\n\tconst viewClassName = buildViewClassNameFromSelector(componentRef.selector);\n\tconst htmlViewClassName = `HTML${viewClassName}Element`;\n\n\tlet parentClass: TypeOf<HTMLComponent<T>>;\n\tif (componentRef.extendCustomElement) {\n\t\tparentClass = componentRef.extend.classRef as TypeOf<HTMLComponent<T>>;\n\t} else {\n\t\tif (FACTORY_CACHE.has(htmlParent)) {\n\t\t\tparentClass = FACTORY_CACHE.get(htmlParent) as TypeOf<HTMLComponent<T>>;\n\t\t} else {\n\t\t\tparentClass = componentRef.formAssociated ? baseFormFactoryView<T>(htmlParent) : baseFactoryView<T>(htmlParent);\n\t\t\tFACTORY_CACHE.set(htmlParent, parentClass);\n\t\t}\n\t}\n\n\tviewClass = ({\n\t\t[htmlViewClassName]: @Metadata() class extends parentClass {\n\t\t\tconstructor(optionalComponentRef?: ComponentRef<T>, modelConstructor?: TypeOf<T>) {\n\t\t\t\tsuper(optionalComponentRef ?? componentRef, modelConstructor ?? modelClass);\n\t\t\t}\n\t\t}\n\t})[htmlViewClassName];\n\n\tcomponentRef.inputs.forEach((input) => {\n\t\tObject.defineProperty(viewClass.prototype, input.viewAttribute, {\n\t\t\tget(this: HTMLComponent<T>): any {\n\t\t\t\treturn this._modelScope.get(input.modelProperty);\n\t\t\t},\n\t\t\tset(this: HTMLComponent<{ [key: string]: any; }>, value: any) {\n\t\t\t\tthis._modelScope.set(input.modelProperty, value);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t});\n\t});\n\n\tcomponentRef.outputs.forEach(output => {\n\t\tObject.defineProperty(viewClass.prototype, output.viewAttribute, {\n\t\t\tget(): EventEmitter<any> {\n\t\t\t\treturn this._model[output.modelProperty];\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t\tlet eventListener: Function | undefined;\n\t\tlet subscription: Subscription<any>;\n\t\tObject.defineProperty(viewClass.prototype, 'on' + ToCamelCase(output.viewAttribute), {\n\t\t\tget(): Function | undefined {\n\t\t\t\treturn eventListener;\n\t\t\t},\n\t\t\tset(this: HTMLComponent<T>, event: string | Function): void {\n\t\t\t\tif (!event) {\n\t\t\t\t\tif (subscription) {\n\t\t\t\t\t\tsubscription.unsubscribe();\n\t\t\t\t\t\teventListener = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof event === 'string') {\n\t\t\t\t\tif (event.endsWith('()')) {\n\t\t\t\t\t\tevent = event.substring(0, event.length - 2);\n\t\t\t\t\t}\n\t\t\t\t\tevent = Reflect.get(window, event);\n\t\t\t\t}\n\t\t\t\teventListener = event as Function;\n\t\t\t\tsubscription = (this._model[output.modelProperty] as EventEmitter<any>).subscribe(event);\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t});\n\n\tcomponentRef.inputs.map(input => input.modelProperty)\n\t\t.concat(componentRef.outputs.map(output => output.modelProperty))\n\t\t.concat(componentRef.hostBindings.map(host => host.hostPropertyName))\n\t\t.concat(componentRef.viewChild.map(child => child.modelName))\n\t\t.filter(modelName => !(modelName in modelClass.prototype))\n\t\t.forEach(modelName => modelClass.prototype[modelName] = undefined);\n\n\tconst defaultAttributes = getAllAttributes(componentRef.extend.name);\n\tconst observedAttributes = componentRef.inputs.map(input => input.viewAttribute)\n\t\t.concat(componentRef.outputs.map(output => 'on' + ToCamelCase(output.viewAttribute)));\n\tif (componentRef.formAssociated && !observedAttributes.includes('value')) {\n\t\tobservedAttributes.push('value');\n\t}\n\tReflect.set(viewClass, 'observedAttributes', observedAttributes);\n\tReflect.set(viewClass, 'allAttributes', defaultAttributes.concat(observedAttributes));\n\taddViewToModelClass<T>(modelClass, componentRef.selector, viewClass, htmlViewClassName);\n\tif (!Reflect.has(window, htmlViewClassName)) {\n\t\tReflect.set(window, htmlViewClassName, viewClass);\n\t}\n\treturn viewClass as MetadataClass;\n}\n\nexport type ComponentModelClass =\n\tMetadataClass\n\t& { [key: string]: string }\n\t& { component: { [key: string]: string } }\n\t& { [key: string]: TypeOf<HTMLComponent<any>> };\n\nexport function addViewToModelClass<T extends object>(modelClass: MetadataClass<T>, selector: string, viewClass: TypeOf<HTMLComponent<T>>, htmlViewClassName: string) {\n\tObject.defineProperty(modelClass, htmlViewClassName, { value: viewClass });\n\n\tif (!isComponentModelClass(modelClass)) {\n\t\tReflect.set(modelClass, 'component', {});\n\t}\n\n\tif (isComponentModelClass(modelClass)) {\n\t\tmodelClass.component[selector] = htmlViewClassName;\n\t}\n}\n\nexport function buildViewClassNameFromSelector(selector: string) {\n\treturn selector\n\t\t.split('-')\n\t\t.map(name => name.replace(/^\\w/, char => char.toUpperCase()))\n\t\t.join('');\n}\n"]}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/core/view/view.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Type } from '../utils/typeof.js';\nimport { MetadataClass, Metadata } from '@ibyar/decorators';\nimport { getReactiveNode, Signal } from '@ibyar/expressions';\nimport { getAllAttributes } from '@ibyar/elements';\nimport { ComponentRef } from '../component/component.js';\nimport { HTMLComponent } from '../component/custom-element.js';\nimport { EventEmitter, Subscription } from '../component/events.js';\nimport { ToCamelCase } from '../utils/utils.js';\nimport { baseFactoryView } from './base-view.js';\nimport { baseFormFactoryView } from './form-view.js';\nimport { isComponentModelClass } from './utils.js';\n\nconst FACTORY_CACHE = new WeakMap<Type<HTMLElement>, Type<HTMLComponent<any>>>();\n\n/**\n * \n * @param modelClass \n * @param componentRef \n */\nexport function initCustomElementView<T extends Object>(modelClass: MetadataClass<T>, componentRef: ComponentRef<T>): MetadataClass<HTMLComponent<T>> {\n\tconst htmlParent = componentRef.extend.classRef as Type<HTMLElement>;\n\tconst viewClassName = buildViewClassNameFromSelector(componentRef.selector);\n\tconst htmlViewClassName = `HTML${viewClassName}Element`;\n\n\tlet parentClass: Type<HTMLComponent<T>>;\n\tif (componentRef.extendCustomElement) {\n\t\tparentClass = componentRef.extend.classRef as Type<HTMLComponent<T>>;\n\t} else {\n\t\tif (FACTORY_CACHE.has(htmlParent)) {\n\t\t\tparentClass = FACTORY_CACHE.get(htmlParent) as Type<HTMLComponent<T>>;\n\t\t} else {\n\t\t\tparentClass = componentRef.formAssociated ? baseFormFactoryView<T>(htmlParent) : baseFactoryView<T>(htmlParent);\n\t\t\tFACTORY_CACHE.set(htmlParent, parentClass);\n\t\t}\n\t}\n\n\tconst viewClass = ({\n\t\t[htmlViewClassName]: @Metadata() class extends parentClass {\n\t\t\tpublic static allAttributes: string[] = [];\n\t\t\tpublic static disabledFeatures: string[] = [];\n\t\t\tpublic static observedAttributes: string[] = [];\n\t\t\tconstructor(optionalComponentRef?: ComponentRef<T>, modelConstructor?: Type<T>) {\n\t\t\t\tsuper(optionalComponentRef ?? componentRef, modelConstructor ?? modelClass);\n\t\t\t}\n\t\t}\n\t})[htmlViewClassName];\n\n\tcomponentRef.inputs.forEach((input) => {\n\t\tObject.defineProperty(viewClass.prototype, input.viewAttribute, {\n\t\t\tget(this: HTMLComponent<T>): any {\n\t\t\t\tconst value = this._modelScope.get(input.modelProperty);\n\t\t\t\tconst signal = getReactiveNode(value);\n\t\t\t\tif (signal) {\n\t\t\t\t\treturn signal.get();\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(this: HTMLComponent<{ [key: string]: any; }>, value: any) {\n\t\t\t\tconst model = this._modelScope.get(input.modelProperty);\n\t\t\t\tconst signal = getReactiveNode(model);\n\t\t\t\tif (signal instanceof Signal) {\n\t\t\t\t\tsignal.set(value);\n\t\t\t\t} else {\n\t\t\t\t\tthis._modelScope.set(input.modelProperty, value);\n\t\t\t\t}\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t});\n\t});\n\n\tcomponentRef.outputs.forEach(output => {\n\t\tObject.defineProperty(viewClass.prototype, output.viewAttribute, {\n\t\t\tget(): EventEmitter<any> {\n\t\t\t\treturn this._model[output.modelProperty];\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t\tlet eventListener: Function | undefined;\n\t\tlet subscription: Subscription<any>;\n\t\tObject.defineProperty(viewClass.prototype, 'on' + ToCamelCase(output.viewAttribute), {\n\t\t\tget(): Function | undefined {\n\t\t\t\treturn eventListener;\n\t\t\t},\n\t\t\tset(this: HTMLComponent<T>, event: string | Function): void {\n\t\t\t\tif (!event) {\n\t\t\t\t\tif (subscription) {\n\t\t\t\t\t\tsubscription.unsubscribe();\n\t\t\t\t\t\teventListener = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof event === 'string') {\n\t\t\t\t\tif (event.endsWith('()')) {\n\t\t\t\t\t\tevent = event.substring(0, event.length - 2);\n\t\t\t\t\t}\n\t\t\t\t\tevent = Reflect.get(window, event);\n\t\t\t\t}\n\t\t\t\teventListener = event as Function;\n\t\t\t\tsubscription = (this._model[output.modelProperty] as EventEmitter<any>).subscribe(event);\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t});\n\n\tcomponentRef.inputs.map(input => input.modelProperty)\n\t\t.concat(componentRef.outputs.map(output => output.modelProperty))\n\t\t.concat(componentRef.hostBindings.map(host => host.hostPropertyName))\n\t\t.concat(componentRef.viewChild.map(child => child.modelName))\n\t\t.filter(modelName => !(modelName in modelClass.prototype))\n\t\t.forEach(modelName => modelClass.prototype[modelName] = undefined);\n\n\tconst defaultAttributes = getAllAttributes(componentRef.extend.name);\n\tconst observedAttributes = componentRef.inputs.map(input => input.viewAttribute)\n\t\t.concat(componentRef.outputs.map(output => 'on' + ToCamelCase(output.viewAttribute)));\n\tif (componentRef.formAssociated && !observedAttributes.includes('value')) {\n\t\tobservedAttributes.push('value');\n\t}\n\n\tviewClass.allAttributes.push(...defaultAttributes.concat(observedAttributes));\n\tviewClass.observedAttributes.push(...observedAttributes);\n\tif (Array.isArray(componentRef.disabledFeatures)) {\n\t\tviewClass.disabledFeatures.push(...componentRef.disabledFeatures);\n\t}\n\taddViewToModelClass<T>(modelClass, componentRef.selector, viewClass, htmlViewClassName);\n\tif (!Reflect.has(window, htmlViewClassName)) {\n\t\tReflect.set(window, htmlViewClassName, viewClass);\n\t}\n\treturn viewClass as Type<HTMLComponent<T>> as MetadataClass;\n}\n\nexport type ComponentModelClass =\n\tMetadataClass\n\t& { [key: string]: string }\n\t& { component: { [key: string]: string } }\n\t& { [key: string]: Type<HTMLComponent<any>> };\n\nexport function addViewToModelClass<T extends object>(modelClass: MetadataClass<T>, selector: string, viewClass: Type<HTMLComponent<T>>, htmlViewClassName: string) {\n\tObject.defineProperty(modelClass, htmlViewClassName, { value: viewClass });\n\n\tif (!isComponentModelClass(modelClass)) {\n\t\tReflect.set(modelClass, 'component', {});\n\t}\n\n\tif (isComponentModelClass(modelClass)) {\n\t\tmodelClass.component[selector] = htmlViewClassName;\n\t}\n}\n\nexport function buildViewClassNameFromSelector(selector: string) {\n\treturn selector\n\t\t.split('-')\n\t\t.map(name => name.replace(/^\\w/, char => char.toUpperCase()))\n\t\t.join('');\n}\n"]}
package/zone/zone.js CHANGED
@@ -88,7 +88,7 @@ export class AuroraZone extends AbstractAuroraZone {
88
88
  }
89
89
  runTask(callback, applyThis, applyArgs, name) {
90
90
  const zone = this._inner;
91
- const task = zone.scheduleEventTask('AuroraZoneEvent: ' + name ?? '', callback, EMPTY_PAYLOAD, NOOP, NOOP);
91
+ const task = zone.scheduleEventTask(`AuroraZoneEvent: ${name ?? ''}`, callback, EMPTY_PAYLOAD, NOOP, NOOP);
92
92
  try {
93
93
  return zone.runTask(task, applyThis, applyArgs);
94
94
  }
package/zone/zone.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../src/core/zone/zone.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types='zone.js' />\nimport { EventEmitter } from '../component/events.js';\nimport { ZoneType } from './bootstrap.js';\n\nconst NOOP = () => { };\nconst EMPTY_PAYLOAD = {};\n\nexport interface AuroraZone {\n\n\treadonly onTry: EventEmitter<void>;\n\treadonly onCatch: EventEmitter<void>;\n\treadonly onFinal: EventEmitter<void>;\n\treadonly onEmpty: EventEmitter<void>;\n\n\n\tfork(type?: ZoneType): AuroraZone;\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nlet LastId = 0;\n\nexport abstract class AbstractAuroraZone implements AuroraZone {\n\treadonly onTry: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onCatch: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onFinal: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onEmpty: EventEmitter<void> = new EventEmitter<void>();\n\tprotected id: number;\n\tconstructor() {\n\t\tthis.id = ++LastId;\n\t}\n\tabstract fork(type?: ZoneType): AuroraZone;\n\n\tabstract run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\tabstract runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nexport class AuroraZone extends AbstractAuroraZone {\n\tstatic isInAuroraZone(): boolean {\n\t\treturn typeof Zone !== 'undefined' && Zone.current.get('aurora-zone') === true;\n\t}\n\n\tstatic assertInAuroraZone(): void {\n\t\tif (!AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to be in Aurora Zone, but it is not!');\n\t\t}\n\t}\n\n\tstatic assertNotInAuroraZone(): void {\n\t\tif (AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to not be in Aurora Zone, but it is!');\n\t\t}\n\t}\n\n\tconstructor(parent?: AuroraZone) {\n\t\tif (typeof Zone == 'undefined') {\n\t\t\tthrow new Error(`In this configuration Zone.js is required`);\n\t\t}\n\t\tZone.assertZonePatched();\n\t\tsuper();\n\t\tconst self = this as any as AuroraZonePrivate;\n\t\tself._nesting = 0;\n\t\tself._outer = Zone.root;\n\t\tif (parent) {\n\t\t\tself._parent = (parent as AuroraZonePrivate);\n\t\t\tself._inner = (parent as AuroraZonePrivate)._inner;\n\t\t} else {\n\t\t\tself._inner = Zone.current;\n\t\t\tif ((Zone as any)['TaskTrackingZoneSpec']) {\n\t\t\t\tself._inner = self._inner.fork(new ((Zone as any)['TaskTrackingZoneSpec'] as any));\n\t\t\t}\n\t\t}\n\t\tself._inner = self._inner.fork({\n\t\t\tname: 'aurora',\n\t\t\tproperties: { 'aurora-zone': true, id: self.id },\n\t\t\tonInvoke: (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs?, source?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInvokeTask: (parentZoneDelegate, currentZone, targetZone, task, applyThis, applyArgs?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invokeTask(targetZone, task, applyThis, applyArgs);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHandleError: (parentZoneDelegate, currentZone, targetZone, error) => {\n\t\t\t\tparentZoneDelegate.handleError(targetZone, error);\n\t\t\t\tself.runOutsideAurora(() => self.onCatch.emit(error));\n\t\t\t\treturn false;\n\t\t\t},\n\t\t});\n\t}\n\tfork(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t}\n\t\treturn new AuroraZone(this);\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.run(callback, applyThis, applyArgs);\n\t}\n\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T {\n\t\tconst zone = (this as any as AuroraZonePrivate)._inner;\n\t\tconst task = zone.scheduleEventTask('AuroraZoneEvent: ' + name ?? '', callback, EMPTY_PAYLOAD, NOOP, NOOP);\n\t\ttry {\n\t\t\treturn zone.runTask(task, applyThis, applyArgs);\n\t\t} finally {\n\t\t\tzone.cancelTask(task);\n\t\t}\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.runGuarded(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn (this as any as AuroraZonePrivate)._outer.run(callback);\n\t}\n}\n\ninterface AuroraZonePrivate extends AuroraZone {\n\t_inner: Zone;\n\t_outer: Zone;\n\t_nesting: number;\n\t_parent: AuroraZonePrivate;\n}\n\nfunction before(zone: AuroraZonePrivate) {\n\tzone.onTry.emit();\n\tzone._nesting++;\n}\n\nfunction after(zone: AuroraZonePrivate) {\n\tzone._nesting--;\n\tzone.onFinal.emit();\n\tif (zone._nesting === 0) {\n\t\tzone.onEmpty.emit();\n\t}\n}\n\nexport class ManualAuroraZone extends AbstractAuroraZone {\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(type?: ZoneType): AuroraZone {\n\t\tif (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\n\t\treturn new ManualAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n}\n\nexport class ProxyAuroraZone extends AbstractAuroraZone {\n\n\tprivate _cdPromise?: Promise<void>\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\n\t\treturn new ProxyAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n\tscheduleChangesDetection() {\n\t\tthis._cdPromise ??= Promise\n\t\t\t.resolve()\n\t\t\t.then(() => {\n\t\t\t\tthis.runCallback(NOOP);\n\t\t\t\tthis._cdPromise = undefined;\n\t\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../src/core/zone/zone.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types='zone.js' />\nimport { EventEmitter } from '../component/events.js';\nimport { ZoneType } from './bootstrap.js';\n\nconst NOOP = () => { };\nconst EMPTY_PAYLOAD = {};\n\nexport interface AuroraZone {\n\n\treadonly onTry: EventEmitter<void>;\n\treadonly onCatch: EventEmitter<void>;\n\treadonly onFinal: EventEmitter<void>;\n\treadonly onEmpty: EventEmitter<void>;\n\n\n\tfork(type?: ZoneType): AuroraZone;\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nlet LastId = 0;\n\nexport abstract class AbstractAuroraZone implements AuroraZone {\n\treadonly onTry: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onCatch: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onFinal: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onEmpty: EventEmitter<void> = new EventEmitter<void>();\n\tprotected id: number;\n\tconstructor() {\n\t\tthis.id = ++LastId;\n\t}\n\tabstract fork(type?: ZoneType): AuroraZone;\n\n\tabstract run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\tabstract runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nexport class AuroraZone extends AbstractAuroraZone {\n\tstatic isInAuroraZone(): boolean {\n\t\treturn typeof Zone !== 'undefined' && Zone.current.get('aurora-zone') === true;\n\t}\n\n\tstatic assertInAuroraZone(): void {\n\t\tif (!AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to be in Aurora Zone, but it is not!');\n\t\t}\n\t}\n\n\tstatic assertNotInAuroraZone(): void {\n\t\tif (AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to not be in Aurora Zone, but it is!');\n\t\t}\n\t}\n\n\tconstructor(parent?: AuroraZone) {\n\t\tif (typeof Zone == 'undefined') {\n\t\t\tthrow new Error(`In this configuration Zone.js is required`);\n\t\t}\n\t\tZone.assertZonePatched();\n\t\tsuper();\n\t\tconst self = this as any as AuroraZonePrivate;\n\t\tself._nesting = 0;\n\t\tself._outer = Zone.root;\n\t\tif (parent) {\n\t\t\tself._parent = (parent as AuroraZonePrivate);\n\t\t\tself._inner = (parent as AuroraZonePrivate)._inner;\n\t\t} else {\n\t\t\tself._inner = Zone.current;\n\t\t\tif ((Zone as any)['TaskTrackingZoneSpec']) {\n\t\t\t\tself._inner = self._inner.fork(new ((Zone as any)['TaskTrackingZoneSpec'] as any));\n\t\t\t}\n\t\t}\n\t\tself._inner = self._inner.fork({\n\t\t\tname: 'aurora',\n\t\t\tproperties: { 'aurora-zone': true, id: self.id },\n\t\t\tonInvoke: (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs?, source?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInvokeTask: (parentZoneDelegate, currentZone, targetZone, task, applyThis, applyArgs?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invokeTask(targetZone, task, applyThis, applyArgs);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHandleError: (parentZoneDelegate, currentZone, targetZone, error) => {\n\t\t\t\tparentZoneDelegate.handleError(targetZone, error);\n\t\t\t\tself.runOutsideAurora(() => self.onCatch.emit(error));\n\t\t\t\treturn false;\n\t\t\t},\n\t\t});\n\t}\n\tfork(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t}\n\t\treturn new AuroraZone(this);\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.run(callback, applyThis, applyArgs);\n\t}\n\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T {\n\t\tconst zone = (this as any as AuroraZonePrivate)._inner;\n\t\tconst task = zone.scheduleEventTask(`AuroraZoneEvent: ${name ?? ''}`, callback, EMPTY_PAYLOAD, NOOP, NOOP);\n\t\ttry {\n\t\t\treturn zone.runTask(task, applyThis, applyArgs);\n\t\t} finally {\n\t\t\tzone.cancelTask(task);\n\t\t}\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.runGuarded(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn (this as any as AuroraZonePrivate)._outer.run(callback);\n\t}\n}\n\ninterface AuroraZonePrivate extends AuroraZone {\n\t_inner: Zone;\n\t_outer: Zone;\n\t_nesting: number;\n\t_parent: AuroraZonePrivate;\n}\n\nfunction before(zone: AuroraZonePrivate) {\n\tzone.onTry.emit();\n\tzone._nesting++;\n}\n\nfunction after(zone: AuroraZonePrivate) {\n\tzone._nesting--;\n\tzone.onFinal.emit();\n\tif (zone._nesting === 0) {\n\t\tzone.onEmpty.emit();\n\t}\n}\n\nexport class ManualAuroraZone extends AbstractAuroraZone {\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(type?: ZoneType): AuroraZone {\n\t\tif (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\n\t\treturn new ManualAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n}\n\nexport class ProxyAuroraZone extends AbstractAuroraZone {\n\n\tprivate _cdPromise?: Promise<void>\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\n\t\treturn new ProxyAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n\tscheduleChangesDetection() {\n\t\tthis._cdPromise ??= Promise\n\t\t\t.resolve()\n\t\t\t.then(() => {\n\t\t\t\tthis.runCallback(NOOP);\n\t\t\t\tthis._cdPromise = undefined;\n\t\t\t});\n\t}\n}\n"]}