@acorex/platform 19.3.0-next.0 → 19.3.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/common/lib/layout/task-badge/task-badge.service.d.ts +1 -1
  2. package/common/lib/settings/settings.types.d.ts +1 -1
  3. package/common/lib/workflows/navigate.workflow.d.ts +1 -1
  4. package/core/lib/directives/grid-layout.directive.d.ts +15 -0
  5. package/core/lib/directives/index.d.ts +1 -0
  6. package/core/lib/expression-evaluator/expression-evaluator.service.d.ts +1 -2
  7. package/core/lib/types/core.types.d.ts +1 -0
  8. package/core/lib/types/index.d.ts +1 -0
  9. package/core/lib/types/interactive.types.d.ts +1 -0
  10. package/core/lib/types/layout.types.d.ts +27 -0
  11. package/core/lib/types/validation.types.d.ts +30 -1
  12. package/fesm2022/acorex-platform-common.mjs +5 -7
  13. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-core.mjs +98 -33
  15. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-builder.mjs +436 -401
  17. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-designer.mjs +10 -10
  19. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-entity.mjs +96 -67
  21. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  22. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-3gmbdeJ_.mjs → acorex-platform-themes-default-entity-master-create-view.component-CnqS3y7P.mjs} +5 -5
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-3gmbdeJ_.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CnqS3y7P.mjs.map} +1 -1
  24. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs → acorex-platform-themes-default-entity-master-list-view.component-BqMlSX6b.mjs} +147 -37
  25. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BqMlSX6b.mjs.map +1 -0
  26. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-8DdICjNs.mjs → acorex-platform-themes-default-entity-master-modify-view.component-DzHZdi2R.mjs} +4 -4
  27. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DzHZdi2R.mjs.map +1 -0
  28. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-DadBeY1I.mjs → acorex-platform-themes-default-entity-master-single-view.component-BBJ7Aapd.mjs} +15 -8
  29. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BBJ7Aapd.mjs.map +1 -0
  30. package/fesm2022/{acorex-platform-themes-default-search-popup.component-BADEuoeJ.mjs → acorex-platform-themes-default-search-popup.component-ChJiJ12h.mjs} +8 -8
  31. package/fesm2022/{acorex-platform-themes-default-search-popup.component-BADEuoeJ.mjs.map → acorex-platform-themes-default-search-popup.component-ChJiJ12h.mjs.map} +1 -1
  32. package/fesm2022/{acorex-platform-themes-default-setting-page.component-Cj73brIK.mjs → acorex-platform-themes-default-setting-page.component-BxGzaKws.mjs} +4 -4
  33. package/fesm2022/{acorex-platform-themes-default-setting-page.component-Cj73brIK.mjs.map → acorex-platform-themes-default-setting-page.component-BxGzaKws.mjs.map} +1 -1
  34. package/fesm2022/{acorex-platform-themes-default-setting-view.component-rrAq6hg2.mjs → acorex-platform-themes-default-setting-view.component-CjmlI9Jb.mjs} +5 -5
  35. package/fesm2022/{acorex-platform-themes-default-setting-view.component-rrAq6hg2.mjs.map → acorex-platform-themes-default-setting-view.component-CjmlI9Jb.mjs.map} +1 -1
  36. package/fesm2022/acorex-platform-themes-default.mjs +210 -28
  37. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  38. package/fesm2022/acorex-platform-themes-shared.mjs +8 -6
  39. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  40. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs → acorex-platform-widgets-button-widget-designer.component-DSO0iNB_.mjs} +3 -3
  41. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DSO0iNB_.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-CrdfTgeq.mjs → acorex-platform-widgets-checkbox-widget-designer.component-DDIkt5nB.mjs} +3 -3
  43. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DDIkt5nB.mjs.map +1 -0
  44. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-DfSoF52n.mjs → acorex-platform-widgets-checkbox-widget-view.component-CqHkVcv-.mjs} +3 -3
  45. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CqHkVcv-.mjs.map +1 -0
  46. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-BM1G-WaN.mjs → acorex-platform-widgets-color-box-widget-designer.component-l_Of5uKT.mjs} +3 -3
  47. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-l_Of5uKT.mjs.map +1 -0
  48. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-B1cKV-TM.mjs → acorex-platform-widgets-contact-widget-filter.component-KvKD5byB.mjs} +3 -3
  49. package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-KvKD5byB.mjs.map +1 -0
  50. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DtwyOnuO.mjs → acorex-platform-widgets-page-widget-designer.component-BIvAjvW3.mjs} +5 -5
  51. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BIvAjvW3.mjs.map +1 -0
  52. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CybYV1Kf.mjs} +2 -2
  53. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-CybYV1Kf.mjs.map} +1 -1
  54. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-C3H0Zldz.mjs → acorex-platform-widgets-text-block-widget-designer.component-DPy2UR_J.mjs} +3 -3
  55. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DPy2UR_J.mjs.map +1 -0
  56. package/fesm2022/acorex-platform-widgets.mjs +1323 -1552
  57. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  58. package/layout/builder/lib/builder/index.d.ts +2 -0
  59. package/layout/builder/lib/builder/view.types.d.ts +94 -0
  60. package/layout/builder/lib/builder/widget-base.component.d.ts +112 -0
  61. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  62. package/layout/builder/lib/builder/widget-renderer.directive.d.ts +12 -3
  63. package/layout/builder/lib/builder/widget.types.d.ts +9 -101
  64. package/layout/designer/lib/designer/shared/designer.service.d.ts +2 -2
  65. package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +2 -2
  66. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +4 -2
  67. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +4 -2
  68. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +4 -4
  69. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +2 -2
  70. package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +7 -0
  71. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.d.ts +2 -2
  72. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.d.ts +2 -2
  73. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.d.ts +2 -2
  74. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.d.ts +2 -2
  75. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.d.ts +2 -2
  76. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +2 -2
  77. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.d.ts +2 -2
  78. package/package.json +1 -1
  79. package/themes/default/index.d.ts +1 -0
  80. package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +14 -2
  81. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +2 -1
  82. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +2 -1
  83. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.d.ts +4 -1
  84. package/themes/default/lib/layouts/view-layouts/index.d.ts +1 -0
  85. package/themes/default/lib/layouts/view-layouts/layout-detail-view/layout-detail-view.component.d.ts +19 -0
  86. package/themes/shared/lib/components/layout-elements/layout-side.component.d.ts +1 -1
  87. package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.component.d.ts +2 -2
  88. package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.component.d.ts +2 -2
  89. package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.component.d.ts +2 -2
  90. package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.component.d.ts +2 -2
  91. package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.component.d.ts +2 -2
  92. package/widgets/lib/properties/layout.props.d.ts +0 -6
  93. package/widgets/lib/widgets/actions/button/button-widget-designer.component.d.ts +2 -2
  94. package/widgets/lib/widgets/actions/button/button-widget-view.component.d.ts +2 -2
  95. package/widgets/lib/widgets/advance/avatar/avatar-widget-designer.component.d.ts +2 -2
  96. package/widgets/lib/widgets/advance/avatar/avatar-widget-edit.component.d.ts +2 -2
  97. package/widgets/lib/widgets/advance/avatar/avatar-widget-print.component.d.ts +2 -2
  98. package/widgets/lib/widgets/advance/avatar/avatar-widget-view.component.d.ts +2 -2
  99. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +2 -2
  100. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +2 -2
  101. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +2 -2
  102. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +2 -2
  103. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +2 -2
  104. package/widgets/lib/widgets/advance/file/file-box-widget-column.component.d.ts +2 -2
  105. package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +14 -14
  106. package/widgets/lib/widgets/advance/file/file-box-widget-filter.component.d.ts +2 -2
  107. package/widgets/lib/widgets/advance/file/file-box-widget-print.component.d.ts +2 -2
  108. package/widgets/lib/widgets/advance/file/file-box-widget-view.component.d.ts +2 -2
  109. package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +2 -2
  110. package/widgets/lib/widgets/advance/gallery/gallery-widget-print.component.d.ts +2 -2
  111. package/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.d.ts +2 -2
  112. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +2 -2
  113. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +2 -2
  114. package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +2 -2
  115. package/widgets/lib/widgets/advance/signature/signature-pad-widget-column.component.d.ts +2 -2
  116. package/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.d.ts +2 -2
  117. package/widgets/lib/widgets/advance/signature/signature-pad-widget-filter.component.d.ts +2 -2
  118. package/widgets/lib/widgets/advance/signature/signature-pad-widget-print.component.d.ts +2 -2
  119. package/widgets/lib/widgets/advance/signature/signature-pad-widget-view.component.d.ts +2 -2
  120. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.component.d.ts +13 -24
  121. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +2 -7
  122. package/widgets/lib/widgets/charts/chart.type.d.ts +1 -5
  123. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.component.d.ts +2 -2
  124. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget.component.d.ts +25 -21
  125. package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +52 -23
  126. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.component.d.ts +21 -7
  127. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +1 -8
  128. package/widgets/lib/widgets/charts/shared/chart-base.component.d.ts +4 -4
  129. package/widgets/lib/widgets/charts/shared/components/chart-tooltip/chart-tooltip.component.d.ts +28 -0
  130. package/widgets/lib/widgets/charts/shared/components/chart-tooltip/index.d.ts +1 -0
  131. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.component.d.ts +8 -4
  132. package/widgets/lib/widgets/charts/weather/weather-widget.component.d.ts +2 -2
  133. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.d.ts +2 -2
  134. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +2 -2
  135. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.d.ts +2 -2
  136. package/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.d.ts +7 -0
  137. package/widgets/lib/widgets/editors/color/color-box-widget-designer.component.d.ts +2 -2
  138. package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +2 -2
  139. package/widgets/lib/widgets/editors/color/color-box-widget-filter.component.d.ts +2 -2
  140. package/widgets/lib/widgets/editors/color/color-box-widget-print.component.d.ts +2 -2
  141. package/widgets/lib/widgets/editors/color/color-box-widget-view.component.d.ts +2 -2
  142. package/widgets/lib/widgets/editors/color/color-box-widget.config.d.ts +7 -0
  143. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +2 -2
  144. package/widgets/lib/widgets/editors/contact/contact-widget-filter.component.d.ts +2 -2
  145. package/widgets/lib/widgets/editors/contact/contact-widget-print.component.d.ts +2 -2
  146. package/widgets/lib/widgets/editors/contact/contact-widget-view.component.d.ts +2 -2
  147. package/widgets/lib/widgets/editors/contact/contact-widget.config.d.ts +9 -0
  148. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.d.ts +2 -2
  149. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-filter.component.d.ts +2 -2
  150. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-print.component.d.ts +2 -2
  151. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-view.component.d.ts +2 -2
  152. package/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.d.ts +8 -0
  153. package/widgets/lib/widgets/editors/email/email-box-widget-edit.component.d.ts +2 -2
  154. package/widgets/lib/widgets/editors/email/email-box-widget-filter.component.d.ts +2 -2
  155. package/widgets/lib/widgets/editors/email/email-box-widget-print.component.d.ts +2 -2
  156. package/widgets/lib/widgets/editors/email/email-box-widget-view.component.d.ts +2 -2
  157. package/widgets/lib/widgets/editors/email/email-box-widget.config.d.ts +7 -0
  158. package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +2 -2
  159. package/widgets/lib/widgets/editors/large-text/large-text-widget-filter.component.d.ts +2 -2
  160. package/widgets/lib/widgets/editors/large-text/large-text-widget-print.component.d.ts +2 -2
  161. package/widgets/lib/widgets/editors/large-text/large-text-widget-view.component.d.ts +2 -2
  162. package/widgets/lib/widgets/editors/large-text/large-text-widget.config.d.ts +5 -0
  163. package/widgets/lib/widgets/editors/link/link-widget-edit.component.d.ts +2 -2
  164. package/widgets/lib/widgets/editors/link/link-widget-filter.component.d.ts +2 -2
  165. package/widgets/lib/widgets/editors/link/link-widget-print.component.d.ts +2 -2
  166. package/widgets/lib/widgets/editors/link/link-widget-view.component.d.ts +2 -2
  167. package/widgets/lib/widgets/editors/link/link-widget.config.d.ts +6 -0
  168. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-edit.component.d.ts +2 -2
  169. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-filter.component.d.ts +2 -2
  170. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-print.component.d.ts +2 -2
  171. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-view.component.d.ts +2 -2
  172. package/widgets/lib/widgets/editors/meta-data/meta-data-widget.config.d.ts +2 -0
  173. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +2 -2
  174. package/widgets/lib/widgets/editors/number/number-box-widget-filter.component.d.ts +2 -2
  175. package/widgets/lib/widgets/editors/number/number-box-widget-print.component.d.ts +2 -2
  176. package/widgets/lib/widgets/editors/number/number-box-widget-view.component.d.ts +2 -2
  177. package/widgets/lib/widgets/editors/number/number-box-widget.config.d.ts +10 -0
  178. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-edit.component.d.ts +2 -2
  179. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-filter.component.d.ts +2 -2
  180. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-print.component.d.ts +2 -2
  181. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-view.component.d.ts +2 -2
  182. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget.config.d.ts +10 -0
  183. package/widgets/lib/widgets/editors/password/password-box-widget-edit.component.d.ts +2 -2
  184. package/widgets/lib/widgets/editors/password/password-box-widget-filter.component.d.ts +2 -2
  185. package/widgets/lib/widgets/editors/password/password-box-widget-print.component.d.ts +2 -2
  186. package/widgets/lib/widgets/editors/password/password-box-widget-view.component.d.ts +2 -2
  187. package/widgets/lib/widgets/editors/password/password-box-widget.config.d.ts +7 -0
  188. package/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.d.ts +2 -2
  189. package/widgets/lib/widgets/editors/phone/phone-box-widget-filter.component.d.ts +2 -2
  190. package/widgets/lib/widgets/editors/phone/phone-box-widget-print.component.d.ts +2 -2
  191. package/widgets/lib/widgets/editors/phone/phone-box-widget-view.component.d.ts +2 -2
  192. package/widgets/lib/widgets/editors/phone/phone-box-widget.config.d.ts +4 -0
  193. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +2 -2
  194. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-filter.component.d.ts +2 -2
  195. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-print.component.d.ts +2 -2
  196. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.d.ts +2 -2
  197. package/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.d.ts +5 -0
  198. package/widgets/lib/widgets/editors/select/select-box-widget-filter.component.d.ts +2 -2
  199. package/widgets/lib/widgets/editors/select/select-box-widget-print.component.d.ts +2 -2
  200. package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +2 -2
  201. package/widgets/lib/widgets/editors/select/select-box-widget.config.d.ts +11 -0
  202. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-filter.component.d.ts +2 -2
  203. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-print.component.d.ts +2 -2
  204. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +2 -2
  205. package/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.d.ts +8 -0
  206. package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-column.component.d.ts +2 -2
  207. package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-edit.component.d.ts +2 -2
  208. package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-filter.component.d.ts +2 -2
  209. package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-print.component.d.ts +2 -2
  210. package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-view.component.d.ts +2 -2
  211. package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget.config.d.ts +2 -0
  212. package/widgets/lib/widgets/editors/tabular-data/table-widget.config.d.ts +7 -0
  213. package/widgets/lib/widgets/editors/tabular-data/tabular-data-filter.component.d.ts +2 -2
  214. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-edit.component.d.ts +2 -2
  215. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-print.component.d.ts +2 -2
  216. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-view.component.d.ts +2 -2
  217. package/widgets/lib/widgets/editors/template-box/template-box-widget-column.component.d.ts +2 -2
  218. package/widgets/lib/widgets/editors/template-box/template-box-widget-edit.component.d.ts +2 -2
  219. package/widgets/lib/widgets/editors/template-box/template-box-widget-filter.component.d.ts +2 -2
  220. package/widgets/lib/widgets/editors/template-box/template-box-widget-print.component.d.ts +2 -2
  221. package/widgets/lib/widgets/editors/template-box/template-box-widget-view.component.d.ts +2 -2
  222. package/widgets/lib/widgets/editors/template-box/template-box-widget.config.d.ts +5 -0
  223. package/widgets/lib/widgets/editors/text/text-box-widget-edit.component.d.ts +2 -2
  224. package/widgets/lib/widgets/editors/text/text-box-widget-filter.component.d.ts +2 -2
  225. package/widgets/lib/widgets/editors/text/text-box-widget-print.component.d.ts +2 -2
  226. package/widgets/lib/widgets/editors/text/text-box-widget-view.component.d.ts +2 -2
  227. package/widgets/lib/widgets/editors/text/text-box-widget.config.d.ts +8 -0
  228. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +2 -2
  229. package/widgets/lib/widgets/editors/toggle/toggle-widget-filter.component.d.ts +2 -2
  230. package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +2 -2
  231. package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +2 -2
  232. package/widgets/lib/widgets/editors/toggle/toggle-widget.config.d.ts +7 -0
  233. package/widgets/lib/widgets/filters/boolean-filter/boolean-filter-widget-edit.component.d.ts +2 -2
  234. package/widgets/lib/widgets/filters/date-time-filter/date-time-filter-widget-edit.component.d.ts +2 -2
  235. package/widgets/lib/widgets/filters/number-filter/number-filter-widget-edit.component.d.ts +2 -2
  236. package/widgets/lib/widgets/filters/string-filter/string-filter-widget-edit.component.d.ts +2 -2
  237. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-designer.component.d.ts +2 -2
  238. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-view.component.d.ts +2 -2
  239. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget.config.d.ts +2 -0
  240. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-designer.component.d.ts +2 -2
  241. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-print.component.d.ts +2 -2
  242. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-view.component.d.ts +2 -2
  243. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget.config.d.ts +2 -0
  244. package/widgets/lib/widgets/layout/block/block-widget-designer.component.d.ts +2 -7
  245. package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +4 -7
  246. package/widgets/lib/widgets/layout/block/block-widget.config.d.ts +17 -0
  247. package/widgets/lib/widgets/layout/document/document-widget.config.d.ts +2 -0
  248. package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +2 -2
  249. package/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.d.ts +2 -2
  250. package/widgets/lib/widgets/layout/form-field/form-field-widget.config.d.ts +3 -0
  251. package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +2 -2
  252. package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +2 -2
  253. package/widgets/lib/widgets/layout/grid/grid-widget.config.d.ts +3 -0
  254. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +2 -2
  255. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.d.ts +2 -2
  256. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +2 -2
  257. package/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.d.ts +18 -0
  258. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.d.ts +2 -2
  259. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-print.component.d.ts +2 -2
  260. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +2 -2
  261. package/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.d.ts +4 -0
  262. package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +2 -2
  263. package/widgets/lib/widgets/layout/page/page-widget-view.component.d.ts +2 -2
  264. package/widgets/lib/widgets/layout/page/page-widget.config.d.ts +7 -0
  265. package/widgets/lib/widgets/layout/panel/index.d.ts +3 -0
  266. package/widgets/lib/widgets/layout/panel/panel-widget-designer.component.d.ts +15 -0
  267. package/widgets/lib/widgets/layout/panel/panel-widget-view.component.d.ts +15 -0
  268. package/widgets/lib/widgets/layout/panel/panel-widget.config.d.ts +7 -0
  269. package/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.d.ts +2 -2
  270. package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +2 -2
  271. package/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.d.ts +2 -2
  272. package/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.d.ts +2 -2
  273. package/widgets/lib/widgets/layout/repeater/repeater-widget.config.d.ts +5 -0
  274. package/widgets/lib/widgets/layout/text-block/text-block-widget-designer.component.d.ts +2 -2
  275. package/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.d.ts +2 -2
  276. package/widgets/lib/widgets/layout/text-block/text-block-widget.config.d.ts +3 -0
  277. package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget-editor.component.d.ts +2 -2
  278. package/widgets/lib/widgets/property-editors/border/border-widget-editor.component.d.ts +2 -2
  279. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +7 -6
  280. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.type.d.ts +3 -9
  281. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget-editor.component.d.ts +2 -2
  282. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +2 -2
  283. package/widgets/lib/widgets/validations/between-validation/between-validation-widget-edit.component.d.ts +2 -2
  284. package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget-edit.component.d.ts +2 -2
  285. package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget-edit.component.d.ts +2 -2
  286. package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget-edit.component.d.ts +2 -2
  287. package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget-edit.component.d.ts +2 -2
  288. package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget-edit.component.d.ts +2 -2
  289. package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget-edit.component.d.ts +2 -2
  290. package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget-edit.component.d.ts +2 -2
  291. package/widgets/lib/widgets/validations/required-validation/required-validation-widget-edit.component.d.ts +2 -2
  292. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs.map +0 -1
  293. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-8DdICjNs.mjs.map +0 -1
  294. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DadBeY1I.mjs.map +0 -1
  295. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs.map +0 -1
  296. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-CrdfTgeq.mjs.map +0 -1
  297. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-DfSoF52n.mjs.map +0 -1
  298. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-BM1G-WaN.mjs.map +0 -1
  299. package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-B1cKV-TM.mjs.map +0 -1
  300. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DtwyOnuO.mjs.map +0 -1
  301. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-C3H0Zldz.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../../../../libs/platform/layout/builder/src/lib/builder/widget-status.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-registery.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/context-store.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/datasource-provider.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-catalog.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-column-renderer.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-container.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-placeholder.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-renderer.directive.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.module.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-categories.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-group.types.ts","../../../../libs/platform/layout/builder/src/acorex-platform-layout-builder.ts"],"sourcesContent":["export enum AXPPageStatus {\n // Rendering statuses\n Rendering = 'rendering', // The widget is being rendered.\n Rendered = 'rendered', // The rendering process is complete.\n\n // Processing statuses\n Processing = 'processing', // The widget is performing a task or interaction.\n\n // Submission statuses\n Submitting = 'submitting', // The form is being submitted.\n Submitted = 'submitted', // Submission is completed.\n\n // Validation statuses\n Validating = 'validating', // The form is being validated.\n Validated = 'validated', // Validation is completed. \n\n // Error handling\n Error = 'error',\n}\n\nexport enum AXPWidgetStatus {\n // Rendering statuses\n Rendering = 'rendering', // The widget is being rendered.\n Rendered = 'rendered', // The rendering process is complete.\n\n // Processing statuses\n Processing = 'processing', // The widget is performing a task or interaction.\n\n // Error handling\n Error = 'error', // An error occurred during any phase.\n}\n","import { computed, Injectable, Signal, signal } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPPageStatus, AXPWidgetStatus } from './widget-status.types';\n\nexport type AXPLayoutElementAPI = { [name: string]: Subject<any> | Function };\n\nexport abstract class AXPLayoutElement {\n abstract get id(): string | null;\n abstract get status(): Signal<AXPWidgetStatus>;\n\n api(): AXPLayoutElementAPI {\n return {};\n }\n}\n\n@Injectable()\nexport class AXPLayoutBuilderService {\n\n\n private readonly variables$ = signal<any>({});\n private readonly functions$ = signal<{ [key: string]: Function }>({});\n\n public readonly onRefresh: Subject<void> = new Subject<void>();\n\n private widgets = new Map<string, AXPLayoutElement>();\n\n private readonly status$ = signal<AXPPageStatus>(AXPPageStatus.Rendering);\n public readonly status = this.status$.asReadonly();\n\n\n public readonly isBusy = computed(() => {\n return [AXPPageStatus.Processing, AXPPageStatus.Submitting, AXPPageStatus.Rendering].includes(this.status());\n });\n\n get variables() {\n return this.variables$();\n }\n\n get functions(): { [key: string]: Function } {\n return this.functions$();\n }\n\n public updateStatus() {\n this.status$.update(() => this.detectStatus());\n }\n\n private detectStatus(): AXPPageStatus {\n const statuses = Array.from(this.widgets.values()).map(c => c.status());\n // Rendering statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {\n return AXPPageStatus.Rendering;\n }\n if (statuses.every((status) => status === AXPWidgetStatus.Rendered)) {\n return AXPPageStatus.Rendered;\n }\n\n // Processing statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Processing)) {\n return AXPPageStatus.Processing;\n }\n\n // Error handling\n if (statuses.some((status) => status === AXPWidgetStatus.Error)) {\n return AXPPageStatus.Error;\n }\n\n return AXPPageStatus.Rendered; // Default to Loaded when all widgets are in a completed state\n }\n\n refresh() {\n setTimeout(() => {\n this.onRefresh.next();\n }, 0);\n }\n\n setStatus(status: AXPPageStatus) {\n this.status$.set(status);\n }\n\n\n\n setVariables(keysValues: any): void;\n setVariables(key: string, value: any): void;\n setVariables(...args: any[]): void {\n if (args.length == 0) return;\n else if (args.length == 1) this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update((v) => set(v, args[0], args[1]));\n }\n }\n\n setFunctions(keysValues: any): void;\n setFunctions(key: string, value: any): void;\n setFunctions(...args: any[]): void {\n if (args.length == 0) return;\n else if (args.length == 1) this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update((v) => set(v, args[0], args[1]));\n }\n }\n\n\n registerWidget(id: string, widget: AXPLayoutElement) {\n this.widgets.set(id, widget);\n }\n\n getWidget(id: string): AXPLayoutElement | undefined {\n return this.widgets.get(id);\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPWidgetConfig } from './widget.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWidgetRegistryService {\n private types: Map<string, AXPWidgetConfig> = new Map();\n\n register(widget: AXPWidgetConfig) {\n this.types.set(widget.name, widget);\n }\n\n extend(parentName: string, widget: AXPWidgetConfig) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n\n resolve(name: string): AXPWidgetConfig | undefined {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n\n public all(): AXPWidgetConfig[] {\n return Array.from(this.types.values());\n }\n}\n","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, get, set, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { setSmart } from '@acorex/platform/core';\n\nexport type AXPLayoutContextState = 'initiated' | 'restored' | 'changed';\n\nexport class AXPLayoutContextChangeEvent {\n oldValue?: any;\n newValue?: any;\n path?: string;\n state: AXPLayoutContextState;\n data: any;\n}\n\nexport const AXPLayoutBuilderContextStore = signalStore(\n // Initial State\n withState(() => ({\n data: {}, // Shared context data\n state: 'initiated' as AXPLayoutContextState, // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n } as AXPLayoutContextChangeEvent, // Last change event\n })),\n\n // Computed Signals\n withComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n })),\n\n // Methods for State Management\n withMethods((store) => ({\n // Update a specific value\n update(path: string, value: any) {\n const currentData = cloneDeep(store.data());\n const oldValue = get(currentData, path);\n\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n\n // Initialize the state\n set(initialData: any) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n\n // Get a specific value\n getValue(path: string) {\n return get(store.data(), path);\n },\n }))\n);\n","import { AXDataSource } from '@acorex/components/common';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\n\nexport interface AXPWidgetDataSource<T = any> {\n name: string;\n title: string;\n valueField: string;\n textField: string;\n columns: {\n name: string;\n title: string;\n // dataType: string;\n // nullable?: boolean;\n // interface?: Partial<AXEntityPropertyWidget>;\n }[];\n samples?: any[];\n source: () => AXDataSource<T> | Promise<AXDataSource<T>>;\n}\n\nexport interface AXPWidgetDataSourceProvider {\n items(): Promise<AXPWidgetDataSource[]>;\n}\n\nexport const AXP_WIDGET_DATASOURCE_PROVIDER = new InjectionToken<AXPWidgetDataSourceProvider[]>(\n 'AXP_WIDGET_DATASOURCE_PROVIDER'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AXPWidgetDataSourceProviderService implements AXPWidgetDataSourceProvider {\n private providers = inject(AXP_WIDGET_DATASOURCE_PROVIDER, { optional: true });\n\n async items(): Promise<AXPWidgetDataSource[]> {\n const items: AXPWidgetDataSource[] = [];\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n\n async get(name: string): Promise<AXPWidgetDataSource | undefined> {\n return (await this.items()).find((c) => c.name == name);\n }\n}\n","import { AXPWidgetTypesMap } from './widget-map';\n\nconst AXPWidgetsCatalog: AXPWidgetTypesMap = {\n documentAttachment: 'document-attachment-editor',\n\n singleFileBox: 'single-file-box-editor',\n\n tagable: 'tagable-editor',\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n email: 'email-editor',\n largeText: 'large-text-editor',\n link: 'link-editor',\n number: 'number-editor',\n numberUnit: 'number-unit-editor',\n password: 'password-editor',\n phone: 'phone-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n table: 'table-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n file: 'file',\n fileTypeExtension: 'file-type-extension',\n map: 'map',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n advancedGrid: 'advanced-grid-layout',\n advancedGridItem: 'advanced-grid-item-layout',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n template: 'template',\n templateDesigner: 'template-designer',\n cronJob: 'cron-job',\n spacing: 'spacing',\n border: 'border',\n avatar: 'avatar',\n themePaletteChooser: 'theme-palette-chooser',\n themeModeChooser: 'theme-mode-chooser',\n menuOrientationChooser: 'menu-orientation-chooser',\n fontStyleChooser: 'font-style-chooser',\n fontSizeChooser: 'font-size-chooser',\n gridOptions: 'grid-options',\n advancedGridOptions: 'advanced-grid-options',\n stringFilter: 'string-filter',\n numberFilter: 'number-filter',\n dateTimeFilter: 'datetime-filter',\n booleanFilter: 'boolean-filter',\n lookupFilter: 'lookup-filter',\n flexOptions: 'flex-options',\n selectFilter: 'select-filter',\n requiredValidation: 'required-validation',\n regularExpressionValidation: 'regular-expression-validation',\n minLengthValidation: 'min-length-validation',\n maxLengthValidation: 'max-length-validation',\n lessThanValidation: 'less-than-validation',\n greaterThanValidation: 'greater-than-validation',\n betweenValidation: 'between-validation',\n equalValidation: 'equal-validation',\n callbackValidation: 'callback-validation',\n donutChart: 'donut-chart',\n barChart: 'bar-chart',\n gaugeChart: 'gauge-chart',\n stickyNote: 'sticky-note',\n clockCalendar: 'clock-calendar',\n weather: 'weather',\n metaData: 'meta-data-editor',\n templateEditor: 'template-box-editor',\n};\n\nexport { AXPWidgetsCatalog };\n","import { AXDataSource, AXValueChangedEvent, convertArrayToDataSource } from '@acorex/components/common';\nimport {\n AXPDataType,\n AXPMetaData,\n AXPOptionsData,\n AXPPartialNested,\n AXPValidationRule,\n AXPValidationRules,\n AXPValueTransformerFunctions,\n AXPWidgetTriggers,\n} from '@acorex/platform/core';\nimport { computed, effect, ElementRef, inject, Injectable, InjectionToken, OnInit, signal } from '@angular/core';\nimport { cloneDeep, get, isEqual, isNil, isUndefined, merge } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetDataSourceProviderService } from './datasource-provider.service';\nimport { AXPWidgetsCatalog } from './widget-catalog';\nimport { AXPWidgetCategory } from './widget-categories';\nimport { AXPWidgetGroup } from './widget-group.types';\nimport { AXPWidgetTypesMap } from './widget-map';\nimport { AXPPageStatus, AXPWidgetStatus } from './widget-status.types';\n\nexport interface AXPWidgetPropertyGroup {\n name: string;\n title: string;\n order: number;\n}\n\nexport interface AXPWidgetProperty {\n name: string;\n title: string;\n description?: string;\n group: AXPWidgetPropertyGroup;\n order?: number;\n schema: {\n dataType: AXPDataType;\n nullable?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;\n };\n options?: AXPOptionsData;\n validations?: AXPValidationRules;\n visible: boolean;\n}\n\nexport function cloneProperty(\n property: AXPWidgetProperty,\n values: AXPPartialNested<AXPWidgetProperty>\n): AXPWidgetProperty {\n return merge(cloneDeep(property), values);\n}\n\nexport function createStringProperty(ctor: {\n defaultValue?: string;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\n\nexport function createNumberProperty(ctor: {\n defaultValue?: number;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n options?: {\n minValue?: number;\n maxValue?: number;\n decimals?: number;\n };\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'number',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.number,\n options: ctor.options,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\n\nexport function createBooleanProperty(ctor: {\n defaultValue?: boolean;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport function createSelectProperty<T = string | { id: string; title: string }>(ctor: {\n defaultValue: T | T[] | any;\n dataSource: T[];\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport interface AXPWidgetNode {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n path?: string;\n name?: string;\n defaultValue?: any;\n formula?: string;\n children?: AXPWidgetNode[];\n options?: AXPOptionsData;\n triggers?: AXPWidgetTriggers;\n meta?: AXPMetaData;\n valueTransforms?: AXPValueTransformerFunctions;\n}\n\nexport interface AXPWidgetNodeToken {\n config: AXPWidgetConfig;\n node: AXPWidgetNode;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNode {\n type: string;\n path: string;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {\n config: AXPWidgetConfig;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetNodeToken>('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken<AXPWidgetColumnNodeToken>('AXP_WIDGET_COLUMN_TOKEN');\n\nexport interface AXPWidgetComponentConfig {\n component: () => Promise<any>;\n properties?: AXPWidgetProperty[];\n}\n\nexport interface AXPWidgetConfigComponents {\n designer?: AXPWidgetComponentConfig;\n view?: AXPWidgetComponentConfig;\n edit?: AXPWidgetComponentConfig;\n print?: AXPWidgetComponentConfig;\n column?: AXPWidgetComponentConfig;\n filter?: AXPWidgetComponentConfig;\n}\n\nexport type AXPWidgetViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';\n\nexport type AXPWidgetOptionsMap = {\n container: { canInsert: boolean };\n editor: {\n needLabel: boolean;\n };\n action: {};\n view: {};\n};\n\nexport type AXPExtractWidgetConfig<T> = {\n type: AXPWidgetViewType;\n options: T extends { type: infer V } ? (V extends keyof AXPWidgetOptionsMap ? AXPWidgetOptionsMap[V] : any) : any;\n};\n\nexport interface AXPWidgetConfig<T = any> {\n name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n title: string;\n icon?: string;\n description?: string;\n categories?: AXPWidgetCategory | AXPWidgetCategory[];\n groups?: AXPWidgetGroup[];\n properties?: AXPWidgetProperty[];\n components: AXPWidgetConfigComponents;\n meta?: AXPMetaData;\n type: AXPExtractWidgetConfig<T>['type'];\n defaultFilterWidgetName?:\n | 'string-filter'\n | 'number-filter'\n | 'datetime-filter'\n | 'boolean-filter'\n | 'select-filter'\n | 'lookup-filter';\n options?: AXPExtractWidgetConfig<T>['options'];\n}\nexport interface extendedWidget {\n widget: AXPWidgetConfig;\n parentName: string;\n}\n\nexport type AXPWidgetRenderMode = keyof AXPWidgetConfigComponents;\n\nexport interface AXPLayoutBuilderStatusChangedEvent {\n status: AXPPageStatus;\n}\n\n@Injectable()\nexport abstract class AXPWidgetComponent<T = any | null | void> extends AXPLayoutElement implements OnInit {\n protected readonly token = inject(AXP_WIDGET_TOKEN);\n public readonly host = inject(ElementRef).nativeElement as HTMLDivElement;\n\n public readonly config = this.token.config;\n public readonly node = this.token.node;\n\n protected readonly name = this.token.node.name;\n protected readonly path = this.token.node.path;\n protected readonly defaultValue = this.token.node.defaultValue;\n\n protected readonly _children = signal(this.token.node.children ?? []);\n protected children = this._children.asReadonly();\n\n protected _options = signal<any>(this.token.options ?? {});\n protected options = this._options.asReadonly();\n\n protected readonly layoutService = inject(AXPLayoutBuilderService);\n protected readonly contextService = inject(AXPLayoutBuilderContextStore);\n\n private _isValueWidget = false;\n private isValueWidget = () => this._isValueWidget;\n\n private _id: string | null;\n public get id(): string | null {\n return this._id;\n }\n\n private _status = signal<AXPWidgetStatus>(AXPWidgetStatus.Rendering);\n public status = this._status.asReadonly();\n public readonly onStatusChanged = new BehaviorSubject<AXPWidgetStatus>(this._status());\n #statusEffect = effect(() => {\n this.onStatusChanged.next(this.status());\n });\n\n public isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()));\n\n parent: AXPWidgetComponent | null | undefined;\n index: number | null | undefined;\n mode: AXPWidgetRenderMode;\n locked: boolean;\n\n protected outputs(): (string | { [name: string]: unknown })[] {\n return [];\n }\n\n protected fullPath = signal<string | null>(null);\n\n ngOnInit() {\n this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;\n if (this.isValueWidget()) {\n this.detectFullPath();\n if (!isNil(this.defaultValue) && isNil(this.getValue())) {\n this.setValue(this.defaultValue);\n }\n }\n //\n if (get(this.node, '__meta__.added')) {\n this.onAdded();\n }\n this.setStatus(AXPWidgetStatus.Rendered);\n }\n\n public getValue = computed<T>(\n () => {\n return this.fullPath() ? this.extractValue(this.fullPath()!) : null;\n },\n { equal: isEqual }\n );\n\n protected validationRules = computed<AXPValidationRules>(() => {\n const validationsRaw = this.options()['validations'];\n if (validationsRaw == null) {\n return [];\n }\n return Object.values(this.options()['validations'])\n .filter((c) => c != null)\n .map(\n (c: any) =>\n ({\n rule: c.rule,\n message: c.message,\n options: c.options,\n } as AXPValidationRule)\n );\n });\n\n protected extractValue(path: string): any {\n const rawValue = this.contextService.getValue(path);\n if (this.node.valueTransforms?.getter) {\n return this.node.valueTransforms?.getter(rawValue);\n }\n return rawValue;\n }\n\n setValue(value: T | null | undefined) {\n if (this.node.valueTransforms?.setter) {\n value = this.node.valueTransforms?.setter(value);\n }\n const oldValue = this.getValue();\n value = isUndefined(value) ? null : value;\n if (isNil(value) && isNil(oldValue)) {\n return;\n }\n if (isEqual(oldValue, value)) {\n return;\n }\n if (this.fullPath()) {\n this.contextService.update(this.fullPath()!, value);\n }\n }\n\n public setStatus(status: AXPWidgetStatus) {\n this._status.set(status);\n this.layoutService.updateStatus();\n }\n\n public setOptions(values: any): void {\n this._options.set({ ...this.options(), ...values });\n }\n\n output<T = any>(name: string): T {\n const outputs = this.outputs().map((c) => (typeof c == 'string' ? { name: c, value: c } : c)) as {\n name: string;\n value: unknown;\n }[];\n\n if (outputs.some((c) => c.name == name)) {\n const opt = get(this, name);\n if (typeof opt == 'function') {\n return opt();\n }\n return opt;\n }\n return null as T;\n }\n\n call(name: string, ...args: any[]): void {\n const fn = get(this, name) as Function;\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n\n setChildren(children: AXPWidgetNode[]) {\n this._children.set([...children]);\n }\n\n onAdded() {}\n\n private detectFullPath() {\n const sections = [];\n const ids = [];\n //\n let parent: AXPWidgetComponent | null | undefined = this as AXPWidgetComponent;\n //\n while (parent) {\n const isValue = parent.isValueWidget() && parent.index == null;\n const path = parent.path ?? (isValue ? parent.name : null);\n const id = parent.name;\n //\n if (path) {\n sections.push(path);\n }\n if (parent.index != null && parent.isValueWidget()) {\n sections.push(`[${parent.index}]`);\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this.fullPath.set(sections.reverse().join('.'));\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.layoutService.registerWidget(this._id, this);\n }\n }\n\n protected handleValueChanged(e: AXValueChangedEvent<T>) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n}\n\n@Injectable()\nexport abstract class AXPDataListWidgetComponent extends AXPWidgetComponent<any> {\n private dataService = inject(AXPWidgetDataSourceProviderService);\n\n protected dataSource = signal<AXDataSource>(convertArrayToDataSource([]));\n protected textField = computed<string>(() => this.options()['textField'] ?? 'title');\n protected valueField = computed<string>(() => (this.options()['valueField'] as string) ?? 'id');\n\n public selectedItems = signal<any[]>([]);\n\n private rf = effect(async () => {\n const rawValue = this.options()['dataSource'];\n // static datasource class\n if (rawValue instanceof AXDataSource) {\n this.dataSource.set(rawValue);\n }\n // static array datasource\n else if (Array.isArray(rawValue)) {\n const ds = new AXDataSource({\n key: this.valueField(),\n pageSize: 10,\n load: async (e: any) => {\n const raw = this.options()['dataSource'];\n return {\n items: raw,\n total: raw.length,\n };\n },\n byKey: (key: unknown) => {\n const raw = this.options()['dataSource'];\n const item = raw.filter((c: any) => c[this.valueField()] == key);\n return Promise.resolve(item[0]) as any;\n },\n });\n this.dataSource.set(ds);\n }\n // resolve data source by name\n else if (rawValue && (typeof rawValue == 'string' || typeof rawValue == 'object')) {\n const id = typeof rawValue == 'object' ? rawValue['id'] : rawValue;\n const c = await this.dataService.get(id);\n if (this.mode == 'designer' && c?.samples?.length) {\n this.dataSource.set(\n convertArrayToDataSource(c.samples, {\n key: this.valueField(),\n pageSize: 500,\n })\n );\n } else {\n const ds = c?.source();\n if (ds && ds instanceof Promise) {\n const d = await ds;\n this.dataSource.set(d);\n } else if (ds) {\n this.dataSource.set(ds);\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n });\n}\n\n@Injectable()\nexport abstract class AXPColumnWidgetComponent<T = any | null | void> {\n private readonly token = inject(AXP_WIDGET_COLUMN_TOKEN);\n\n protected readonly path = this.token.path;\n protected readonly options = this.token.options ?? {};\n protected readonly rawValue: any = null;\n}\n","import { AXBaseDataTable, AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n signal,\n} from '@angular/core';\nimport { get, merge } from 'lodash-es';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetColumnNode, AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport { getSmart } from '@acorex/platform/core';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else { @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n } }\n </div>\n } @if(component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n standalone: false,\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n private grid = inject(AXBaseDataTable);\n\n @Input() customExpandIcon: string;\n @Input() customCollapseIcon: string;\n\n @Input() customWidth: string;\n\n private _node: AXPWidgetColumnNode;\n @Input({ required: true })\n public get node(): AXPWidgetColumnNode {\n return this._node;\n }\n public set node(v: AXPWidgetColumnNode) {\n this._node = v;\n }\n\n private mergedOptions = signal<any>({});\n protected loadingRow = signal(null);\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public expandHandler: boolean;\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n protected async handleExpandRow(row: any) {\n this.loadingRow.set(row);\n await this.grid.expandRow(row);\n this.loadingRow.set(null);\n // if (row.data?.__meta__?.expanded === undefined) {\n // this.width = `${parseInt(this.width as string) + 24}px`;\n // }\n }\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.node.path}`;\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column';\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions(),\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n\n this.width = this.customWidth ? this.customWidth : this.mergedOptions().width ?? '200px';\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n\n getInputs(data: any): any {\n return { rawValue: getSmart(data, this.node.path!) };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore, AXPLayoutContextChangeEvent } from './context-store.service';\n\n@Component({\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore],\n standalone: false,\n})\nexport class AXPWidgetContainerComponent {\n public readonly contextService = inject(AXPLayoutBuilderContextStore);\n public readonly builderService = inject(AXPLayoutBuilderService);\n\n @Output()\n public readonly onContextChanged = new EventEmitter<AXPLayoutContextChangeEvent>();\n\n @Input()\n set context(value: any) {\n this.contextService.set(value);\n }\n\n @Input()\n public set functions(v: any) {\n this.builderService.setFunctions(v);\n }\n\n constructor() {\n effect(() => {\n if (this.contextService.isChanged()) {\n this.onContextChanged.emit(this.contextService.changeEvent());\n }\n });\n }\n\n public status = computed(() => {\n return this.builderService.status();\n });\n\n public isBusy = computed(() => {\n return this.builderService.isBusy();\n });\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'axp-widget-placeholder',\n template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXSkeletonModule],\n standalone: true,\n})\nexport class AXPWidgetPlaceholderComponent {}\n","import { AXTranslateOptions, AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPMetaData } from '@acorex/platform/core';\nimport {\n ComponentRef,\n Directive,\n Injector,\n SimpleChanges,\n ViewContainerRef,\n WritableSignal,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { cloneDeep, get, isEmpty, isNil, isString, merge, set, sum } from 'lodash-es';\nimport { Observable, Subject, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetPlaceholderComponent } from './widget-placeholder.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport {\n AXPWidgetComponent,\n AXPWidgetConfig,\n AXPWidgetNode,\n AXPWidgetNodeToken,\n AXPWidgetRenderMode,\n AXP_WIDGET_TOKEN,\n} from './widget.types';\n\nexport type AXPWidgetRendererDirectiveOptions = AXPMetaData;\n\n@Directive({\n selector: '[axp-widget-renderer]',\n exportAs: 'widgetRenderer',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n standalone: false,\n})\nexport class AXPWidgetRendererDirective {\n parentNode = input<AXPWidgetComponent | null>();\n\n index = input<number | null>();\n\n mode = input.required<AXPWidgetRenderMode>();\n node = input.required<AXPWidgetNode>();\n\n private _options = signal<AXPWidgetRendererDirectiveOptions>({});\n public options = this._options.asReadonly();\n\n protected mergedOptions: WritableSignal<any> = signal<any>({});\n\n private injector = inject(Injector);\n protected builderService = inject(AXPLayoutBuilderService);\n protected contextService = inject(AXPLayoutBuilderContextStore);\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n protected unsubscriber = inject(AXUnsubscriber);\n protected translateService = inject(AXTranslationService);\n protected widgetService = inject(AXPWidgetRegistryService);\n private viewContainerRef = inject(ViewContainerRef);\n\n protected isLoading = signal(false);\n private instance!: AXPWidgetComponent;\n private expressionCache: Map<string, () => Promise<any>> = new Map();\n private expressionEvaluators: Map<string, () => Promise<any>> = new Map();\n private scope: any = null;\n private componentRef: ComponentRef<any>;\n\n private onContextChanged = new Subject<{ path: string }>();\n\n constructor() {\n effect(async () => {\n const changed = this.contextService.changeEvent();\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node().formula, changed.path)) {\n await this.updateValueBasedOnFormula();\n }\n //\n if (changed.path) {\n this.onContextChanged.next({ path: changed.path });\n }\n });\n this.builderService.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n });\n }\n\n // Detect input changes\n ngOnChanges(changes: SimpleChanges) {\n if (changes['mode'] || changes['node']) {\n // Check if either 'mode' or 'node' has changed\n this.rerenderComponent();\n }\n }\n\n private rerenderComponent() {\n this.isLoading.set(false);\n // Call loadComponent to create and render the component\n setTimeout(async () => {\n await this.loadComponent();\n });\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n private async loadComponent() {\n if (this.isLoading()) {\n return;\n }\n this.isLoading.set(true);\n // Destroy the existing component if it exists\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.viewContainerRef.clear();\n //\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const props = [...(widget?.properties ?? []), ...(widget?.components[this.mode()]?.properties ?? [])]\n ?.filter((c) => c.schema.defaultValue != null)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, widget?.options, this.node().options) || {});\n\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n //\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: widget,\n } as AXPWidgetNodeToken;\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n const loadingRef = this.viewContainerRef.createComponent(AXPWidgetPlaceholderComponent);\n //\n const com = await widget?.components[this.mode()]?.component();\n this.componentRef = this.viewContainerRef.createComponent<AXPWidgetComponent<any>>(com, { injector: token });\n this.instance = this.componentRef.instance;\n this.instance.setStatus(AXPWidgetStatus.Rendering);\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n this.instance.setStatus(AXPWidgetStatus.Rendered);\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n loadingRef.destroy();\n this.isLoading.set(false);\n //\n }\n\n private applyOptions() {\n if (!this.instance) return;\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n this.instance.setOptions(this.mergedOptions());\n }\n\n private checkFormulaForUpdate(formula: string | undefined, path?: string | null): boolean {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match: any) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n } else return false;\n }\n\n preprocessAndInitialOptions(obj: any, pathPrefix: string = ''): void {\n if (!obj) {\n return;\n }\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n } else if (\n typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))\n ) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n } else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n\n async updateOptionsBasedOnContext() {\n const updatePromises = Array.from(this.expressionEvaluators).map(async ([path, evaluator]) => {\n const newValue = await evaluator();\n return { path, newValue };\n });\n // Wait for all evaluators to complete\n const updates = await Promise.all(updatePromises);\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula!);\n this.instance.setValue(value);\n }\n }\n\n private async evaluateExpression(templateExpression: string): Promise<any> {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function(\n 'scope',\n `with (scope) { return (async function() { return ${expression}; })(); }`\n );\n return await sandbox(scope);\n };\n\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n } else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private getGlobalScope() {\n if (this.scope) return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n\n private getContextScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => this.contextService.getValue(path));\n set(scope, 'set', (path: string, value: any) => {\n this.contextService.update(path, value);\n });\n return scope;\n }\n\n private getEventScope(): any {\n const scope: any = {};\n set(scope, 'context', (path?: string) => {\n return this.onContextChanged.pipe(\n filter((c) => {\n if (path == null) {\n return true;\n }\n if (path.endsWith('*')) {\n return c.path.startsWith(path.substring(0, path.length - 1));\n } else if (path.startsWith('*')) {\n return c.path.startsWith(path.substring(1, path.length));\n } else {\n return path == c.path;\n }\n })\n );\n });\n set(scope, 'from', (event: string) => get(this.instance.api(), event));\n return scope;\n }\n\n private getWidgetScope(): any {\n const scope: any = {};\n set(scope, 'call', (name: string, ...args: any[]) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'setValue', (value: any) => {\n this.instance.setValue(value);\n });\n set(scope, 'output', (name: any) => {\n this.instance.output(name);\n });\n set(scope, 'find', (id: string) => {\n return this.builderService.getWidget(id);\n });\n return scope;\n }\n\n private getFunctionScope(): any {\n const scope: any = {};\n set(scope, 'sum', (values: any) => {\n return sum(values);\n });\n set(scope, 'translate', (text: string, options?: AXTranslateOptions) => {\n return this.translateService.translateAsync(text, options);\n });\n set(scope, 'widgetInfo', (name: string): AXPWidgetConfig | undefined => {\n return this.widgetService.resolve(name);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args: any[]) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n\n private getVariablesScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => get(this.builderService.variables, path));\n return scope;\n }\n\n private async assignTriggers() {\n this.node().triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n const exec = (action: string) => {\n if (!isEmpty(action) && isString(action)) {\n this.evaluateAction(action);\n }\n }\n const actions = Array.isArray(t.action) ? t.action : [t.action];\n actions.forEach(a => exec(a));\n });\n });\n }\n\n private evaluateTrigger(templateExpression: string): Observable<any> | null {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n\n private evaluateAction(templateExpression: string) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope: any = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget-column-renderer';\nimport { AXPWidgetContainerComponent } from './widget-container.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetRendererDirective } from './widget-renderer.directive';\nimport { AXPWidgetConfig, extendedWidget } from './widget.types';\n\nexport interface AXPLayoutBuilderModuleConfigs {\n widgets?: AXPWidgetConfig[];\n extendedWidgets?: extendedWidget[];\n}\n\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\n\n@NgModule({\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class AXPLayoutBuilderModule {\n static forRoot(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n\n await Promise.all(\n config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []\n );\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n\n await Promise.all(\n config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []\n );\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPLayoutBuilderModuleFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n}\n","export interface AXPWidgetCategory {\n name: string;\n title: string;\n order: number;\n}\n\nexport const AXP_WIDGETS_LAYOUT_CATEGORY: AXPWidgetCategory = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\n\nexport const AXP_WIDGETS_EDITOR_CATEGORY: AXPWidgetCategory = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\n\nexport const AXP_WIDGETS_ACTION_CATEGORY: AXPWidgetCategory = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\n\nexport const AXP_WIDGETS_ADVANCE_CATEGORY: AXPWidgetCategory = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\n\n\n\nexport const AXP_WIDGETS_CATEGORIES: AXPWidgetCategory[] = [\n AXP_WIDGETS_LAYOUT_CATEGORY,\n AXP_WIDGETS_EDITOR_CATEGORY,\n AXP_WIDGETS_ACTION_CATEGORY,\n AXP_WIDGETS_ADVANCE_CATEGORY,\n];\n","export type AXPWidgetGroup =\n 'form-element' |\n 'dashboard-widget' |\n 'form-template' |\n 'property-editor' |\n 'meta-data' |\n 'setting-widget' |\n 'entity-widget';\n\n\nexport enum AXPWidgetGroupEnum {\n FormElement = 'form-element',\n DashboardWidget = 'dashboard-widget',\n FormTemplate = 'form-template',\n PropertyEditor = 'property-editor',\n MetaData = 'meta-data',\n SettingWidget = 'setting-widget',\n EntityWidget = 'entity-widget',\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../../../../libs/platform/layout/builder/src/lib/builder/widget-status.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-registery.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-catalog.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-column-renderer.ts","../../../../libs/platform/layout/builder/src/lib/builder/context-store.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-container.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-placeholder.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-renderer.directive.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.module.ts","../../../../libs/platform/layout/builder/src/lib/builder/datasource-provider.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-categories.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-group.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-base.component.ts","../../../../libs/platform/layout/builder/src/acorex-platform-layout-builder.ts"],"sourcesContent":["export enum AXPPageStatus {\n // Rendering statuses\n Rendering = 'rendering', // The widget is being rendered.\n Rendered = 'rendered', // The rendering process is complete.\n\n // Processing statuses\n Processing = 'processing', // The widget is performing a task or interaction.\n\n // Submission statuses\n Submitting = 'submitting', // The form is being submitted.\n Submitted = 'submitted', // Submission is completed.\n\n // Validation statuses\n Validating = 'validating', // The form is being validated.\n Validated = 'validated', // Validation is completed. \n\n // Error handling\n Error = 'error',\n}\n\nexport enum AXPWidgetStatus {\n // Rendering statuses\n Rendering = 'rendering', // The widget is being rendered.\n Rendered = 'rendered', // The rendering process is complete.\n\n // Processing statuses\n Processing = 'processing', // The widget is performing a task or interaction.\n\n // Error handling\n Error = 'error', // An error occurred during any phase.\n}\n","import { computed, Injectable, Signal, signal } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPPageStatus, AXPWidgetStatus } from './widget-status.types';\n\nexport type AXPLayoutElementAPI = { [name: string]: Subject<any> | Function };\n\nexport abstract class AXPLayoutElement {\n abstract get id(): string | null;\n abstract get status(): Signal<AXPWidgetStatus>;\n\n api(): AXPLayoutElementAPI {\n return {};\n }\n}\n\n@Injectable()\nexport class AXPLayoutBuilderService {\n\n\n private readonly variables$ = signal<any>({});\n private readonly functions$ = signal<{ [key: string]: Function }>({});\n\n public readonly onRefresh: Subject<void> = new Subject<void>();\n\n private widgets = new Map<string, AXPLayoutElement>();\n\n private readonly status$ = signal<AXPPageStatus>(AXPPageStatus.Rendering);\n public readonly status = this.status$.asReadonly();\n\n\n public readonly isBusy = computed(() => {\n return [AXPPageStatus.Processing, AXPPageStatus.Submitting, AXPPageStatus.Rendering].includes(this.status());\n });\n\n get variables() {\n return this.variables$();\n }\n\n get functions(): { [key: string]: Function } {\n return this.functions$();\n }\n\n public updateStatus() {\n this.status$.update(() => this.detectStatus());\n }\n\n private detectStatus(): AXPPageStatus {\n const statuses = Array.from(this.widgets.values()).map(c => c.status());\n // Rendering statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {\n return AXPPageStatus.Rendering;\n }\n if (statuses.every((status) => status === AXPWidgetStatus.Rendered)) {\n return AXPPageStatus.Rendered;\n }\n\n // Processing statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Processing)) {\n return AXPPageStatus.Processing;\n }\n\n // Error handling\n if (statuses.some((status) => status === AXPWidgetStatus.Error)) {\n return AXPPageStatus.Error;\n }\n\n return AXPPageStatus.Rendered; // Default to Loaded when all widgets are in a completed state\n }\n\n refresh() {\n setTimeout(() => {\n this.onRefresh.next();\n }, 0);\n }\n\n setStatus(status: AXPPageStatus) {\n this.status$.set(status);\n }\n\n\n\n setVariables(keysValues: any): void;\n setVariables(key: string, value: any): void;\n setVariables(...args: any[]): void {\n if (args.length == 0) return;\n else if (args.length == 1) this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update((v) => set(v, args[0], args[1]));\n }\n }\n\n setFunctions(keysValues: any): void;\n setFunctions(key: string, value: any): void;\n setFunctions(...args: any[]): void {\n if (args.length == 0) return;\n else if (args.length == 1) this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update((v) => set(v, args[0], args[1]));\n }\n }\n\n\n registerWidget(id: string, widget: AXPLayoutElement) {\n this.widgets.set(id, widget);\n }\n\n getWidget(id: string): AXPLayoutElement | undefined {\n return this.widgets.get(id);\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPWidgetConfig } from './widget.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWidgetRegistryService {\n private types: Map<string, AXPWidgetConfig> = new Map();\n\n register(widget: AXPWidgetConfig) {\n this.types.set(widget.name, widget);\n }\n\n extend(parentName: string, widget: AXPWidgetConfig) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n\n resolve(name: string): AXPWidgetConfig | undefined {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n\n public all(): AXPWidgetConfig[] {\n return Array.from(this.types.values());\n }\n}\n","import { AXPWidgetTypesMap } from './widget-map';\n\nconst AXPWidgetsCatalog: AXPWidgetTypesMap = {\n documentAttachment: 'document-attachment-editor',\n\n singleFileBox: 'single-file-box-editor',\n\n tagable: 'tagable-editor',\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n email: 'email-editor',\n largeText: 'large-text-editor',\n link: 'link-editor',\n number: 'number-editor',\n numberUnit: 'number-unit-editor',\n password: 'password-editor',\n phone: 'phone-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n table: 'table-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n file: 'file',\n fileTypeExtension: 'file-type-extension',\n map: 'map',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n advancedGrid: 'advanced-grid-layout',\n advancedGridItem: 'advanced-grid-item-layout',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n template: 'template',\n templateDesigner: 'template-designer',\n cronJob: 'cron-job',\n spacing: 'spacing',\n border: 'border',\n avatar: 'avatar',\n themePaletteChooser: 'theme-palette-chooser',\n themeModeChooser: 'theme-mode-chooser',\n menuOrientationChooser: 'menu-orientation-chooser',\n fontStyleChooser: 'font-style-chooser',\n fontSizeChooser: 'font-size-chooser',\n gridOptions: 'grid-options',\n advancedGridOptions: 'advanced-grid-options',\n stringFilter: 'string-filter',\n numberFilter: 'number-filter',\n dateTimeFilter: 'datetime-filter',\n booleanFilter: 'boolean-filter',\n lookupFilter: 'lookup-filter',\n flexOptions: 'flex-options',\n selectFilter: 'select-filter',\n requiredValidation: 'required-validation',\n regularExpressionValidation: 'regular-expression-validation',\n minLengthValidation: 'min-length-validation',\n maxLengthValidation: 'max-length-validation',\n lessThanValidation: 'less-than-validation',\n greaterThanValidation: 'greater-than-validation',\n betweenValidation: 'between-validation',\n equalValidation: 'equal-validation',\n callbackValidation: 'callback-validation',\n donutChart: 'donut-chart',\n barChart: 'bar-chart',\n gaugeChart: 'gauge-chart',\n stickyNote: 'sticky-note',\n clockCalendar: 'clock-calendar',\n weather: 'weather',\n metaData: 'meta-data-editor',\n templateEditor: 'template-box-editor',\n panel: 'panel',\n};\n\nexport { AXPWidgetsCatalog };\n","import {\n AXPDataType,\n AXPMetaData,\n AXPOptionsData,\n AXPPartialNested,\n AXPValidationRules,\n AXPValueTransformerFunctions,\n AXPWidgetTriggers,\n} from '@acorex/platform/core';\nimport { InjectionToken } from '@angular/core';\nimport { cloneDeep, isNil, merge } from 'lodash-es';\nimport { AXPWidgetsCatalog } from './widget-catalog';\nimport { AXPWidgetCategory } from './widget-categories';\nimport { AXPWidgetGroup } from './widget-group.types';\nimport { AXPWidgetTypesMap } from './widget-map';\nimport { AXPPageStatus } from './widget-status.types';\n\nexport interface AXPWidgetPropertyGroup {\n name: string;\n title: string;\n order: number;\n}\n\nexport interface AXPWidgetProperty {\n name: string;\n title: string;\n description?: string;\n group: AXPWidgetPropertyGroup;\n order?: number;\n schema: {\n dataType: AXPDataType;\n nullable?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;\n };\n options?: AXPOptionsData;\n validations?: AXPValidationRules;\n visible: boolean;\n}\n\nexport function cloneProperty(\n property: AXPWidgetProperty,\n values: AXPPartialNested<AXPWidgetProperty>\n): AXPWidgetProperty {\n return merge(cloneDeep(property), values);\n}\n\nexport function createStringProperty(ctor: {\n defaultValue?: string;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\n\nexport function createNumberProperty(ctor: {\n defaultValue?: number;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n options?: {\n minValue?: number;\n maxValue?: number;\n decimals?: number;\n };\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'number',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.number,\n options: ctor.options,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\n\nexport function createBooleanProperty(ctor: {\n defaultValue?: boolean;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport function createSelectProperty<T = string | { id: string; title: string }>(ctor: {\n defaultValue: T | T[] | any;\n dataSource: T[];\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport interface AXPWidgetNode {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap;\n path?: string;\n name?: string;\n defaultValue?: any;\n formula?: string;\n children?: AXPWidgetNode[];\n options?: AXPOptionsData;\n triggers?: AXPWidgetTriggers;\n meta?: AXPMetaData;\n valueTransforms?: AXPValueTransformerFunctions;\n}\n\nexport interface AXPWidgetNodeToken {\n config: AXPWidgetConfig;\n node: AXPWidgetNode;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNode {\n type: string;\n path: string;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {\n config: AXPWidgetConfig;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetNodeToken>('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken<AXPWidgetColumnNodeToken>('AXP_WIDGET_COLUMN_TOKEN');\n\nexport interface AXPWidgetComponentConfig {\n component: () => Promise<any>;\n properties?: AXPWidgetProperty[];\n}\n\nexport interface AXPWidgetConfigComponents {\n designer?: AXPWidgetComponentConfig;\n view?: AXPWidgetComponentConfig;\n edit?: AXPWidgetComponentConfig;\n print?: AXPWidgetComponentConfig;\n column?: AXPWidgetComponentConfig;\n filter?: AXPWidgetComponentConfig;\n}\n\nexport type AXPWidgetViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';\n\nexport type AXPWidgetDesignerOptionsMap = {\n container: { canInsert: boolean };\n editor: {\n needLabel: boolean;\n };\n action: {};\n view: {};\n};\n\nexport type AXPExtractWidgetConfig<T> = {\n type: AXPWidgetViewType;\n designer: T extends { type: infer V }\n ? V extends keyof AXPWidgetDesignerOptionsMap\n ? AXPWidgetDesignerOptionsMap[V]\n : any\n : any;\n};\n\nexport interface AXPWidgetConfig<T = any> {\n name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap;\n title: string;\n icon?: string;\n description?: string;\n categories?: AXPWidgetCategory | AXPWidgetCategory[];\n groups?: AXPWidgetGroup[];\n properties?: AXPWidgetProperty[];\n components: AXPWidgetConfigComponents;\n meta?: AXPMetaData;\n type: AXPExtractWidgetConfig<T>['type'];\n designer?: AXPExtractWidgetConfig<T>['designer'];\n options?: Record<string, any>;\n defaultFilterWidgetName?:\n | 'string-filter'\n | 'number-filter'\n | 'datetime-filter'\n | 'boolean-filter'\n | 'select-filter'\n | 'lookup-filter';\n}\nexport interface extendedWidget {\n widget: AXPWidgetConfig;\n parentName: string;\n}\n\nexport type AXPWidgetRenderMode = keyof AXPWidgetConfigComponents;\n\nexport interface AXPLayoutBuilderStatusChangedEvent {\n status: AXPPageStatus;\n}\n\n\n","import { AXBaseDataTable, AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n signal,\n} from '@angular/core';\nimport { get, merge } from 'lodash-es';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetColumnNode, AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport { getSmart } from '@acorex/platform/core';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else { @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n } }\n </div>\n } @if(component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n standalone: false,\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n private grid = inject(AXBaseDataTable);\n\n @Input() customExpandIcon: string;\n @Input() customCollapseIcon: string;\n\n @Input() customWidth: string;\n\n private _node: AXPWidgetColumnNode;\n @Input({ required: true })\n public get node(): AXPWidgetColumnNode {\n return this._node;\n }\n public set node(v: AXPWidgetColumnNode) {\n this._node = v;\n }\n\n private mergedOptions = signal<any>({});\n protected loadingRow = signal(null);\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public expandHandler: boolean;\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n protected async handleExpandRow(row: any) {\n this.loadingRow.set(row);\n await this.grid.expandRow(row);\n this.loadingRow.set(null);\n // if (row.data?.__meta__?.expanded === undefined) {\n // this.width = `${parseInt(this.width as string) + 24}px`;\n // }\n }\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.node.path}`;\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column';\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions(),\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n\n this.width = this.customWidth ? this.customWidth : this.mergedOptions().width ?? '200px';\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n\n getInputs(data: any): any {\n return { rawValue: getSmart(data, this.node.path!) };\n }\n}\n","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, get, set, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { setSmart } from '@acorex/platform/core';\n\nexport type AXPLayoutContextState = 'initiated' | 'restored' | 'changed';\n\nexport class AXPLayoutContextChangeEvent {\n oldValue?: any;\n newValue?: any;\n path?: string;\n state: AXPLayoutContextState;\n data: any;\n}\n\nexport const AXPLayoutBuilderContextStore = signalStore(\n // Initial State\n withState(() => ({\n data: {}, // Shared context data\n state: 'initiated' as AXPLayoutContextState, // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n } as AXPLayoutContextChangeEvent, // Last change event\n })),\n\n // Computed Signals\n withComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n })),\n\n // Methods for State Management\n withMethods((store) => ({\n // Update a specific value\n update(path: string, value: any) {\n const currentData = cloneDeep(store.data());\n const oldValue = get(currentData, path);\n\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n\n // Initialize the state\n set(initialData: any) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n\n // Get a specific value\n getValue(path: string) {\n return get(store.data(), path);\n },\n }))\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore, AXPLayoutContextChangeEvent } from './context-store.service';\n\n@Component({\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore],\n standalone: false,\n})\nexport class AXPWidgetContainerComponent {\n public readonly contextService = inject(AXPLayoutBuilderContextStore);\n public readonly builderService = inject(AXPLayoutBuilderService);\n\n @Output()\n public readonly onContextChanged = new EventEmitter<AXPLayoutContextChangeEvent>();\n\n @Input()\n set context(value: any) {\n this.contextService.set(value);\n }\n\n @Input()\n public set functions(v: any) {\n this.builderService.setFunctions(v);\n }\n\n constructor() {\n effect(() => {\n if (this.contextService.isChanged()) {\n this.onContextChanged.emit(this.contextService.changeEvent());\n }\n });\n }\n\n public status = computed(() => {\n return this.builderService.status();\n });\n\n public isBusy = computed(() => {\n return this.builderService.isBusy();\n });\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'axp-widget-placeholder',\n template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXSkeletonModule],\n standalone: true,\n})\nexport class AXPWidgetPlaceholderComponent {}\n","import { AXTranslateOptions, AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPMetaData } from '@acorex/platform/core';\nimport {\n ComponentRef,\n Directive,\n Injector,\n SimpleChanges,\n ViewContainerRef,\n WritableSignal,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { cloneDeep, get, isEmpty, isString, merge, set, sum } from 'lodash-es';\nimport { Observable, Subject, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPBaseWidgetComponent, AXPLayoutWidgetComponent, AXPValueWidgetComponent } from './widget-base.component';\nimport { AXPWidgetPlaceholderComponent } from './widget-placeholder.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport {\n AXPWidgetConfig,\n AXPWidgetNode,\n AXPWidgetNodeToken,\n AXPWidgetRenderMode,\n AXP_WIDGET_TOKEN,\n} from './widget.types';\n\nexport type AXPWidgetRendererDirectiveOptions = AXPMetaData;\n\n@Directive({\n selector: '[axp-widget-renderer]',\n exportAs: 'widgetRenderer',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n standalone: false,\n})\nexport class AXPWidgetRendererDirective {\n parentNode = input<AXPLayoutWidgetComponent | null>();\n\n index = input<number | null>();\n\n mode = input.required<AXPWidgetRenderMode>();\n node = input.required<AXPWidgetNode>();\n\n private _options = signal<AXPWidgetRendererDirectiveOptions>({});\n public options = this._options.asReadonly();\n\n public onOptionsChanged = output<{ sender: AXPWidgetRendererDirective; widget: AXPBaseWidgetComponent }>();\n public onValueChanged = output<{ sender: AXPWidgetRendererDirective; widget: AXPValueWidgetComponent }>();\n\n protected mergedOptions: WritableSignal<any> = signal<any>({});\n\n private injector = inject(Injector);\n protected builderService = inject(AXPLayoutBuilderService);\n protected contextService = inject(AXPLayoutBuilderContextStore);\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n protected unsubscriber = inject(AXUnsubscriber);\n protected translateService = inject(AXTranslationService);\n protected widgetService = inject(AXPWidgetRegistryService);\n private viewContainerRef = inject(ViewContainerRef);\n\n protected isLoading = signal(false);\n private instance!: AXPValueWidgetComponent;\n private expressionCache: Map<string, () => Promise<any>> = new Map();\n private expressionEvaluators: Map<string, () => Promise<any>> = new Map();\n private scope: any = null;\n private componentRef: ComponentRef<any>;\n\n private onContextChanged = new Subject<{ path: string }>();\n\n constructor() {\n effect(async () => {\n const changed = this.contextService.changeEvent();\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node().formula, changed.path)) {\n await this.updateValueBasedOnFormula();\n }\n //\n if (changed.path) {\n this.onContextChanged.next({ path: changed.path });\n }\n });\n this.builderService.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n });\n }\n\n // Detect input changes\n ngOnChanges(changes: SimpleChanges) {\n if (changes['mode'] || changes['node']) {\n // Check if either 'mode' or 'node' has changed\n this.rerenderComponent();\n }\n }\n\n private rerenderComponent() {\n this.isLoading.set(false);\n // Call loadComponent to create and render the component\n setTimeout(async () => {\n await this.loadComponent();\n });\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n private async loadComponent() {\n if (this.isLoading()) {\n return;\n }\n this.isLoading.set(true);\n // Destroy the existing component if it exists\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.viewContainerRef.clear();\n //\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const props = [...(widget?.properties ?? []), ...(widget?.components[this.mode()]?.properties ?? [])]\n ?.filter((c) => c.schema.defaultValue != null)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, widget?.options, this.node().options) || {});\n\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n //\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: widget,\n } as AXPWidgetNodeToken;\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n const loadingRef = this.viewContainerRef.createComponent(AXPWidgetPlaceholderComponent);\n //\n const com = await widget?.components[this.mode()]?.component();\n this.componentRef = this.viewContainerRef.createComponent<AXPValueWidgetComponent<any>>(com, { injector: token });\n this.instance = this.componentRef.instance;\n this.instance.setStatus(AXPWidgetStatus.Rendering);\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n this.instance.setStatus(AXPWidgetStatus.Rendered);\n this.instance?.onOptionsChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onOptionsChanged.emit({ sender: this, widget: c.sender });\n });\n this.instance?.onValueChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onValueChanged.emit({ sender: this, widget: c.sender as AXPValueWidgetComponent });\n });\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n loadingRef.destroy();\n this.isLoading.set(false);\n //\n }\n\n private applyOptions() {\n if (!this.instance) return;\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n this.instance.setOptions(this.mergedOptions());\n }\n\n private checkFormulaForUpdate(formula: string | undefined, path?: string | null): boolean {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match: any) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n } else return false;\n }\n\n preprocessAndInitialOptions(obj: any, pathPrefix: string = ''): void {\n if (!obj) {\n return;\n }\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n } else if (\n typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))\n ) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n } else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n\n async updateOptionsBasedOnContext() {\n const updatePromises = Array.from(this.expressionEvaluators).map(async ([path, evaluator]) => {\n const newValue = await evaluator();\n return { path, newValue };\n });\n // Wait for all evaluators to complete\n const updates = await Promise.all(updatePromises);\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula!);\n this.instance.setValue(value);\n }\n }\n\n private async evaluateExpression(templateExpression: string): Promise<any> {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function(\n 'scope',\n `with (scope) { return (async function() { return ${expression}; })(); }`\n );\n return await sandbox(scope);\n };\n\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n } else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private getGlobalScope() {\n if (this.scope) return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n\n private getContextScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => this.contextService.getValue(path));\n set(scope, 'set', (path: string, value: any) => {\n this.contextService.update(path, value);\n });\n return scope;\n }\n\n private getEventScope(): any {\n const scope: any = {};\n set(scope, 'context', (path?: string) => {\n return this.onContextChanged.pipe(\n filter((c) => {\n if (path == null) {\n return true;\n }\n if (path.endsWith('*')) {\n return c.path.startsWith(path.substring(0, path.length - 1));\n } else if (path.startsWith('*')) {\n return c.path.startsWith(path.substring(1, path.length));\n } else {\n return path == c.path;\n }\n })\n );\n });\n set(scope, 'from', (event: string) => get(this.instance.api(), event));\n return scope;\n }\n\n private getWidgetScope(): any {\n const scope: any = {};\n set(scope, 'call', (name: string, ...args: any[]) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'setValue', (value: any) => {\n this.instance.setValue(value);\n });\n set(scope, 'output', (name: any) => {\n this.instance.output(name);\n });\n set(scope, 'find', (id: string) => {\n return this.builderService.getWidget(id);\n });\n return scope;\n }\n\n private getFunctionScope(): any {\n const scope: any = {};\n set(scope, 'sum', (values: any) => {\n return sum(values);\n });\n set(scope, 'translate', (text: string, options?: AXTranslateOptions) => {\n return this.translateService.translateAsync(text, options);\n });\n set(scope, 'widgetInfo', (name: string): AXPWidgetConfig | undefined => {\n return this.widgetService.resolve(name);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args: any[]) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n\n private getVariablesScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => get(this.builderService.variables, path));\n return scope;\n }\n\n private async assignTriggers() {\n this.node().triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n const exec = (action: string) => {\n if (!isEmpty(action) && isString(action)) {\n this.evaluateAction(action);\n }\n };\n const actions = Array.isArray(t.action) ? t.action : [t.action];\n actions.forEach((a) => exec(a));\n });\n });\n }\n\n private evaluateTrigger(templateExpression: string): Observable<any> | null {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n\n private evaluateAction(templateExpression: string) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope: any = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget-column-renderer';\nimport { AXPWidgetContainerComponent } from './widget-container.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetRendererDirective } from './widget-renderer.directive';\nimport { AXPWidgetConfig, extendedWidget } from './widget.types';\n\nexport interface AXPLayoutBuilderModuleConfigs {\n widgets?: AXPWidgetConfig[];\n extendedWidgets?: extendedWidget[];\n}\n\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\n\n@NgModule({\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class AXPLayoutBuilderModule {\n static forRoot(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n\n await Promise.all(\n config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []\n );\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n\n await Promise.all(\n config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []\n );\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPLayoutBuilderModuleFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n}\n","import { AXDataSource } from '@acorex/components/common';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\n\nexport interface AXPWidgetDataSource<T = any> {\n name: string;\n title: string;\n valueField: string;\n textField: string;\n columns: {\n name: string;\n title: string;\n // dataType: string;\n // nullable?: boolean;\n // interface?: Partial<AXEntityPropertyWidget>;\n }[];\n samples?: any[];\n source: () => AXDataSource<T> | Promise<AXDataSource<T>>;\n}\n\nexport interface AXPWidgetDataSourceProvider {\n items(): Promise<AXPWidgetDataSource[]>;\n}\n\nexport const AXP_WIDGET_DATASOURCE_PROVIDER = new InjectionToken<AXPWidgetDataSourceProvider[]>(\n 'AXP_WIDGET_DATASOURCE_PROVIDER'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AXPWidgetDataSourceProviderService implements AXPWidgetDataSourceProvider {\n private providers = inject(AXP_WIDGET_DATASOURCE_PROVIDER, { optional: true });\n\n async items(): Promise<AXPWidgetDataSource[]> {\n const items: AXPWidgetDataSource[] = [];\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n\n async get(name: string): Promise<AXPWidgetDataSource | undefined> {\n return (await this.items()).find((c) => c.name == name);\n }\n}\n","export interface AXPWidgetCategory {\n name: string;\n title: string;\n order: number;\n}\n\nexport const AXP_WIDGETS_LAYOUT_CATEGORY: AXPWidgetCategory = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\n\nexport const AXP_WIDGETS_EDITOR_CATEGORY: AXPWidgetCategory = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\n\nexport const AXP_WIDGETS_ACTION_CATEGORY: AXPWidgetCategory = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\n\nexport const AXP_WIDGETS_ADVANCE_CATEGORY: AXPWidgetCategory = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\n\n\n\nexport const AXP_WIDGETS_CATEGORIES: AXPWidgetCategory[] = [\n AXP_WIDGETS_LAYOUT_CATEGORY,\n AXP_WIDGETS_EDITOR_CATEGORY,\n AXP_WIDGETS_ACTION_CATEGORY,\n AXP_WIDGETS_ADVANCE_CATEGORY,\n];\n","export type AXPWidgetGroup =\n 'form-element' |\n 'dashboard-widget' |\n 'form-template' |\n 'property-editor' |\n 'meta-data' |\n 'setting-widget' |\n 'entity-widget';\n\n\nexport enum AXPWidgetGroupEnum {\n FormElement = 'form-element',\n DashboardWidget = 'dashboard-widget',\n FormTemplate = 'form-template',\n PropertyEditor = 'property-editor',\n MetaData = 'meta-data',\n SettingWidget = 'setting-widget',\n EntityWidget = 'entity-widget',\n}","import { AXDataSource, AXValueChangedEvent, convertArrayToDataSource } from '@acorex/components/common';\nimport { AXPValidationRule, AXPValidationRules } from '@acorex/platform/core';\nimport { computed, effect, ElementRef, inject, Injectable, OnInit, signal } from '@angular/core';\nimport { get, isEqual, isNil, isUndefined } from 'lodash-es';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetDataSourceProviderService } from './datasource-provider.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN, AXPWidgetNode, AXPWidgetRenderMode } from './widget.types';\n\n@Injectable()\nexport abstract class AXPBaseWidgetComponent extends AXPLayoutElement {\n protected readonly token = inject(AXP_WIDGET_TOKEN);\n public readonly host = inject(ElementRef).nativeElement as HTMLDivElement;\n\n protected readonly layoutService = inject(AXPLayoutBuilderService);\n protected readonly contextService = inject(AXPLayoutBuilderContextStore);\n\n public readonly config = this.token.config;\n public readonly node = this.token.node;\n\n protected readonly name = this.token.node.name;\n\n protected _id: string | null;\n public get id(): string | null {\n return this._id;\n }\n\n protected _options = signal<any>(this.token.options ?? {});\n public options = this._options.asReadonly();\n\n public onOptionsChanged = new Subject<{ sender: AXPBaseWidgetComponent }>();\n\n private _status = signal<AXPWidgetStatus>(AXPWidgetStatus.Rendering);\n public status = this._status.asReadonly();\n\n public readonly onStatusChanged = new BehaviorSubject<AXPWidgetStatus>(this._status());\n\n #statusEffect = effect(() => {\n this.onStatusChanged.next(this.status());\n });\n\n public isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()));\n\n parent: AXPLayoutWidgetComponent | null | undefined;\n index: number | null | undefined;\n mode: AXPWidgetRenderMode;\n locked: boolean;\n\n protected outputs(): (string | { [name: string]: unknown })[] {\n return [];\n }\n\n ngOnInit(): void {\n if (get(this.node, '__meta__.added')) {\n this.onAdded();\n }\n this.setStatus(AXPWidgetStatus.Rendered);\n }\n\n public setStatus(status: AXPWidgetStatus) {\n this._status.set(status);\n this.layoutService.updateStatus();\n }\n\n public setOptions(values: any): void {\n this._options.set({ ...this.options(), ...values });\n this.onOptionsChanged.next({ sender: this });\n }\n\n output<T = any>(name: string): T {\n const outputs = this.outputs().map((c) => (typeof c == 'string' ? { name: c, value: c } : c)) as {\n name: string;\n value: unknown;\n }[];\n\n if (outputs.some((c) => c.name == name)) {\n const opt = get(this, name);\n if (typeof opt == 'function') {\n return opt();\n }\n return opt;\n }\n return null as T;\n }\n\n call(name: string, ...args: any[]): void {\n const fn = get(this, name) as Function;\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n\n protected readonly _children = signal(this.token.node.children ?? []);\n protected children = this._children.asReadonly();\n\n setChildren(children: AXPWidgetNode[]) {\n this._children.set([...children]);\n }\n\n onAdded() {}\n}\n\n@Injectable()\nexport abstract class AXPLayoutWidgetComponent extends AXPBaseWidgetComponent {}\n\n@Injectable()\nexport abstract class AXPValueWidgetComponent<T = any | null> extends AXPLayoutWidgetComponent implements OnInit {\n protected readonly path = this.token.node.path;\n protected readonly defaultValue = this.token.node.defaultValue;\n\n private _isValueWidget = false;\n private isValueWidget = () => this._isValueWidget;\n\n public onValueChanged = new Subject<{ sender: AXPBaseWidgetComponent }>();\n\n protected fullPath = signal<string | null>(null);\n\n override ngOnInit() {\n this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;\n if (this.isValueWidget()) {\n this.detectFullPath();\n if (!isNil(this.defaultValue) && isNil(this.getValue())) {\n this.setValue(this.defaultValue);\n }\n }\n //\n super.ngOnInit();\n }\n\n public getValue = computed<T>(\n () => {\n return this.fullPath() ? this.extractValue(this.fullPath()!) : null;\n },\n { equal: isEqual }\n );\n\n protected validationRules = computed<AXPValidationRules>(() => {\n const validationsRaw = this.options()['validations'];\n if (validationsRaw == null) {\n return [];\n }\n return Object.values(this.options()['validations'])\n .filter((c) => c != null)\n .map(\n (c: any) =>\n ({\n rule: c.rule,\n message: c.message,\n options: c.options,\n } as AXPValidationRule)\n );\n });\n\n protected extractValue(path: string): any {\n const rawValue = this.contextService.getValue(path);\n if (this.node.valueTransforms?.getter) {\n return this.node.valueTransforms?.getter(rawValue);\n }\n return rawValue;\n }\n\n setValue(value: T | null | undefined) {\n if (this.node.valueTransforms?.setter) {\n value = this.node.valueTransforms?.setter(value);\n }\n const oldValue = this.getValue();\n value = isUndefined(value) ? null : value;\n if (isNil(value) && isNil(oldValue)) {\n return;\n }\n if (isEqual(oldValue, value)) {\n return;\n }\n if (this.fullPath()) {\n this.contextService.update(this.fullPath()!, value);\n this.onValueChanged.next({ sender: this });\n }\n }\n\n private detectFullPath() {\n const sections = [];\n const ids = [];\n //\n let parent: AXPLayoutWidgetComponent | null | undefined = this as AXPLayoutWidgetComponent;\n //\n while (parent) {\n const isValueWidget = parent instanceof AXPValueWidgetComponent && parent.isValueWidget() && parent.index == null;\n const valueParent = parent as AXPValueWidgetComponent<any>;\n const path = valueParent.path ?? (isValueWidget ? valueParent.name : null);\n const id = valueParent.name;\n //\n if (path) {\n sections.push(path);\n }\n if (parent.index != null && isValueWidget) {\n sections.push(`[${parent.index}]`);\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this.fullPath.set(sections.reverse().join('.'));\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.layoutService.registerWidget(this._id, this);\n }\n }\n\n protected handleValueChanged(e: AXValueChangedEvent<T>) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n}\n\n@Injectable()\nexport abstract class AXPDataListWidgetComponent extends AXPValueWidgetComponent<any> {\n private dataService = inject(AXPWidgetDataSourceProviderService);\n\n protected dataSource = signal<AXDataSource>(convertArrayToDataSource([]));\n protected textField = computed<string>(() => this.options()['textField'] ?? 'title');\n protected valueField = computed<string>(() => (this.options()['valueField'] as string) ?? 'id');\n\n public selectedItems = signal<any[]>([]);\n\n private rf = effect(async () => {\n const rawValue = this.options()['dataSource'];\n // static datasource class\n if (rawValue instanceof AXDataSource) {\n this.dataSource.set(rawValue);\n }\n // static array datasource\n else if (Array.isArray(rawValue)) {\n const ds = new AXDataSource({\n key: this.valueField(),\n pageSize: 10,\n load: async (e: any) => {\n const raw = this.options()['dataSource'];\n return {\n items: raw,\n total: raw.length,\n };\n },\n byKey: (key: unknown) => {\n const raw = this.options()['dataSource'];\n const item = raw.filter((c: any) => c[this.valueField()] == key);\n return Promise.resolve(item[0]) as any;\n },\n });\n this.dataSource.set(ds);\n }\n // resolve data source by name\n else if (rawValue && (typeof rawValue == 'string' || typeof rawValue == 'object')) {\n const id = typeof rawValue == 'object' ? rawValue['id'] : rawValue;\n const c = await this.dataService.get(id);\n if (this.mode == 'designer' && c?.samples?.length) {\n this.dataSource.set(\n convertArrayToDataSource(c.samples, {\n key: this.valueField(),\n pageSize: 500,\n })\n );\n } else {\n const ds = c?.source();\n if (ds && ds instanceof Promise) {\n const d = await ds;\n this.dataSource.set(d);\n } else if (ds) {\n this.dataSource.set(ds);\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n });\n}\n\n@Injectable()\nexport abstract class AXPColumnWidgetComponent<T = any | null | void> {\n private readonly token = inject(AXP_WIDGET_COLUMN_TOKEN);\n\n protected readonly path = this.token.path;\n protected readonly options = this.token.options ?? {};\n protected readonly rawValue: T = null as T;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}