@acorex/platform 18.2.1 → 18.2.3

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 (454) hide show
  1. package/common/lib/app/application.types.d.ts +8 -0
  2. package/common/lib/app/operators.d.ts +1 -0
  3. package/common/lib/common.module.d.ts +6 -7
  4. package/common/lib/data/entity-storage-service.d.ts +0 -1
  5. package/common/lib/data/filter-middleware.service.d.ts +28 -0
  6. package/common/lib/data/index.d.ts +3 -1
  7. package/common/lib/data/operators.service.d.ts +14 -0
  8. package/common/lib/layout/index.d.ts +0 -2
  9. package/common/lib/layout/menu/index.d.ts +0 -1
  10. package/common/lib/layout/menu/menu.provider.d.ts +11 -4
  11. package/common/lib/layout/menu/menu.service.d.ts +8 -2
  12. package/common/lib/layout/menu/menu.types.d.ts +9 -6
  13. package/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.d.ts +0 -2
  14. package/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.d.ts +1 -0
  15. package/common/lib/schema/widgets/email/email-widget-edit.component.d.ts +0 -2
  16. package/common/lib/schema/widgets/phone/phone-widget-edit.component.d.ts +0 -2
  17. package/common/lib/schema/widgets/text/text-widget-edit.component.d.ts +0 -2
  18. package/common/lib/settings/index.d.ts +2 -1
  19. package/common/lib/settings/setting-definition.provider.d.ts +19 -0
  20. package/common/lib/settings/settings.types.d.ts +51 -0
  21. package/common/lib/utils/index.d.ts +0 -1
  22. package/esm2022/common/lib/app/application.types.mjs +4 -4
  23. package/esm2022/common/lib/app/operators.mjs +16 -1
  24. package/esm2022/common/lib/common.module.mjs +23 -12
  25. package/esm2022/common/lib/data/entity-storage-service.mjs +4 -4
  26. package/esm2022/common/lib/data/filter-middleware.service.mjs +53 -0
  27. package/esm2022/common/lib/data/index.mjs +4 -2
  28. package/esm2022/common/lib/data/operators.service.mjs +15 -0
  29. package/esm2022/common/lib/layout/index.mjs +1 -3
  30. package/esm2022/common/lib/layout/menu/index.mjs +1 -2
  31. package/esm2022/common/lib/layout/menu/menu.provider.mjs +105 -24
  32. package/esm2022/common/lib/layout/menu/menu.service.mjs +43 -11
  33. package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
  34. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +2 -2
  35. package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +2 -2
  36. package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
  37. package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +2 -2
  38. package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +22 -22
  39. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +7 -8
  40. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +47 -25
  41. package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +6 -7
  42. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +2 -2
  43. package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +2 -2
  44. package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +6 -7
  45. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +2 -2
  46. package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +6 -7
  47. package/esm2022/common/lib/settings/index.mjs +3 -2
  48. package/esm2022/common/lib/settings/setting-definition.provider.mjs +183 -0
  49. package/esm2022/common/lib/settings/settings.types.mjs +1 -1
  50. package/esm2022/common/lib/utils/data-generator.mjs +1 -1
  51. package/esm2022/common/lib/utils/index.mjs +1 -2
  52. package/esm2022/common/lib/workflows/common.workflow.mjs +5 -3
  53. package/esm2022/layout/builder/lib/builder/builder.service.mjs +3 -2
  54. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +3 -1
  55. package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +7 -5
  56. package/esm2022/layout/builder/lib/builder/widget.types.mjs +17 -8
  57. package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +61 -34
  58. package/esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.mjs +27 -32
  59. package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +1 -1
  60. package/esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.mjs +2 -2
  61. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +34 -14
  62. package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +23 -23
  63. package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +3 -3
  64. package/esm2022/layout/designer/lib/designer/designer.component.mjs +10 -4
  65. package/esm2022/layout/designer/lib/designer/index.mjs +2 -1
  66. package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +5 -6
  67. package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +158 -61
  68. package/esm2022/layout/designer/lib/designer/shared/designer.types.mjs +1 -1
  69. package/esm2022/layout/designer/lib/designer/shared/generic-commands.types.mjs +52 -0
  70. package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +32 -38
  71. package/esm2022/layout/designer/lib/preview/preview-viewer.component.mjs +3 -3
  72. package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +3 -3
  73. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +10 -9
  74. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +4 -3
  75. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +26 -20
  76. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +5 -3
  77. package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +3 -3
  78. package/esm2022/layout/entity/lib/entity.module.mjs +12 -1
  79. package/esm2022/layout/entity/lib/entity.viewmodel.mjs +7 -5
  80. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +10 -4
  81. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +42 -32
  82. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +3 -3
  83. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +1 -2
  84. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +79 -40
  85. package/esm2022/layout/setting/acorex-platform-layout-setting.mjs +5 -0
  86. package/esm2022/layout/setting/index.mjs +2 -0
  87. package/esm2022/layout/setting/lib/setting.viewmodel.mjs +50 -0
  88. package/esm2022/layouts/lib/admin/admin.module.mjs +17 -5
  89. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +2 -2
  90. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +3 -3
  91. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +4 -3
  92. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +8 -23
  93. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +1 -1
  94. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
  95. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +4 -5
  96. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +8 -11
  97. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +12 -10
  98. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +2 -2
  99. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +3 -3
  100. package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +1 -3
  101. package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +2 -2
  102. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +2 -2
  103. package/esm2022/themes/default/index.mjs +2 -1
  104. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +39 -25
  105. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +2 -2
  106. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +6 -9
  107. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
  108. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +24 -18
  109. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +2 -2
  110. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +6 -8
  111. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +3 -3
  112. package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +6 -8
  113. package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +3 -3
  114. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +11 -40
  115. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +3 -2
  116. package/esm2022/themes/default/lib/layouts/setting-layout/convert-setting-data.mjs +49 -0
  117. package/esm2022/themes/default/lib/layouts/setting-layout/index.mjs +3 -0
  118. package/esm2022/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.mjs +104 -0
  119. package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.mjs +44 -0
  120. package/esm2022/themes/shared/lib/services/theme.service.mjs +183 -19
  121. package/esm2022/widgets/lib/properties/editors.props.mjs +2 -2
  122. package/esm2022/widgets/lib/properties/layout.props.mjs +13 -13
  123. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.mjs +20 -0
  124. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.mjs +18 -0
  125. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.mjs +24 -0
  126. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.mjs +20 -0
  127. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.mjs +19 -0
  128. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.mjs +22 -0
  129. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.mjs +31 -0
  130. package/esm2022/widgets/lib/widgets/advance/cron-job/index.mjs +8 -0
  131. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +2 -2
  132. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +44 -20
  133. package/esm2022/widgets/lib/widgets/editors/contact/popup-component.mjs +1 -1
  134. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +1 -2
  135. package/esm2022/widgets/lib/widgets/editors/link/link-widget-edit.component.mjs +1 -2
  136. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +18 -25
  137. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +7 -11
  138. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +7 -12
  139. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +24 -15
  140. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +14 -7
  141. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.mjs +3 -3
  142. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.mjs +29 -67
  143. package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +32 -17
  144. package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +6 -7
  145. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +1 -22
  146. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +3 -3
  147. package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +76 -78
  148. package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +9 -9
  149. package/esm2022/widgets/lib/widgets/layout/template/template-picker/template-picker.component.mjs +120 -0
  150. package/esm2022/widgets/lib/widgets/layout/template/template-widget-edit.component.mjs +65 -24
  151. package/esm2022/widgets/lib/widgets/layout/template/template-widget-view.component.mjs +27 -7
  152. package/esm2022/widgets/lib/widgets/layout/template/template.provider.mjs +18 -1
  153. package/esm2022/widgets/lib/widgets.module.mjs +5 -2
  154. package/fesm2022/acorex-platform-auth.mjs +1 -1
  155. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs} +4 -6
  156. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs.map → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs.map} +1 -1
  157. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs → acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs} +5 -7
  158. package/fesm2022/acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs.map +1 -0
  159. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs → acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs} +5 -7
  160. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs.map +1 -0
  161. package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs → acorex-platform-common-change-password.component-g_GEw3IZ.mjs} +4 -4
  162. package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs.map → acorex-platform-common-change-password.component-g_GEw3IZ.mjs.map} +1 -1
  163. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs} +5 -7
  164. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs.map → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs.map} +1 -1
  165. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs → acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs} +6 -8
  166. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs.map +1 -0
  167. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs} +5 -7
  168. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs.map → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs.map} +1 -1
  169. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs → acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs} +5 -7
  170. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs.map +1 -0
  171. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs → acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs} +10 -14
  172. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs.map +1 -0
  173. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs → acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs} +50 -30
  174. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs.map +1 -0
  175. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs} +5 -7
  176. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs.map → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs.map} +1 -1
  177. package/fesm2022/{acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs → acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs} +5 -7
  178. package/fesm2022/acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs.map +1 -0
  179. package/fesm2022/{acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs → acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs} +10 -13
  180. package/fesm2022/acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs.map +1 -0
  181. package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs} +4 -6
  182. package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs.map → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs.map} +1 -1
  183. package/fesm2022/{acorex-platform-common-file-widget-column.component-GtbElxmS.mjs → acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs} +5 -7
  184. package/fesm2022/acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs.map +1 -0
  185. package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs} +5 -7
  186. package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs.map → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs.map} +1 -1
  187. package/fesm2022/{acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs → acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs} +5 -7
  188. package/fesm2022/acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs.map +1 -0
  189. package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs} +5 -7
  190. package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs.map → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs.map} +1 -1
  191. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs} +4 -6
  192. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs.map → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs.map} +1 -1
  193. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs → acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs} +5 -7
  194. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs.map +1 -0
  195. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs} +4 -6
  196. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs.map → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs.map} +1 -1
  197. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs → acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs} +4 -6
  198. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs.map +1 -0
  199. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs → acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs} +5 -7
  200. package/fesm2022/acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs.map +1 -0
  201. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs} +5 -7
  202. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs.map → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs.map} +1 -1
  203. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs → acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs} +5 -7
  204. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs.map +1 -0
  205. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs → acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs} +5 -7
  206. package/fesm2022/acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs.map +1 -0
  207. package/fesm2022/{acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs → acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs} +5 -7
  208. package/fesm2022/acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs.map +1 -0
  209. package/fesm2022/{acorex-platform-common-map-widget-view.component-Deos8gVy.mjs → acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs} +5 -7
  210. package/fesm2022/acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs.map +1 -0
  211. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs → acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs} +5 -7
  212. package/fesm2022/acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs.map +1 -0
  213. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs → acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs} +5 -7
  214. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs.map +1 -0
  215. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs} +5 -7
  216. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs.map → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs.map} +1 -1
  217. package/fesm2022/{acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs → acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs} +5 -7
  218. package/fesm2022/acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs.map +1 -0
  219. package/fesm2022/{acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs → acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs} +6 -8
  220. package/fesm2022/acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs.map +1 -0
  221. package/fesm2022/{acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs → acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs} +5 -7
  222. package/fesm2022/acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs.map +1 -0
  223. package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs} +5 -7
  224. package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs.map → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs.map} +1 -1
  225. package/fesm2022/{acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs → acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs} +5 -7
  226. package/fesm2022/acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs.map +1 -0
  227. package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs} +6 -7
  228. package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs.map → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs.map} +1 -1
  229. package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs} +5 -7
  230. package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs.map → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs.map} +1 -1
  231. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs → acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs} +9 -12
  232. package/fesm2022/acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs.map +1 -0
  233. package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs} +5 -7
  234. package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs.map → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs.map} +1 -1
  235. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs} +5 -7
  236. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs.map → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs.map} +1 -1
  237. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs → acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs} +5 -7
  238. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs.map +1 -0
  239. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs → acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs} +5 -7
  240. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs.map +1 -0
  241. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs} +5 -7
  242. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs.map → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs.map} +1 -1
  243. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs → acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs} +6 -8
  244. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs.map +1 -0
  245. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs → acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs} +4 -6
  246. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs.map +1 -0
  247. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs → acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs} +5 -7
  248. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs.map +1 -0
  249. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs} +4 -6
  250. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs.map} +1 -1
  251. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs → acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs} +5 -7
  252. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs.map +1 -0
  253. package/fesm2022/{acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs → acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs} +6 -8
  254. package/fesm2022/acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs.map +1 -0
  255. package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs} +5 -7
  256. package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs.map → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs.map} +1 -1
  257. package/fesm2022/{acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs → acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs} +10 -14
  258. package/fesm2022/acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs.map +1 -0
  259. package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs} +5 -7
  260. package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs.map → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs.map} +1 -1
  261. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs} +5 -7
  262. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs.map → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs.map} +1 -1
  263. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs → acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs} +5 -7
  264. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs.map +1 -0
  265. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs} +5 -7
  266. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs.map → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs.map} +1 -1
  267. package/fesm2022/acorex-platform-common.mjs +1203 -1069
  268. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  269. package/fesm2022/acorex-platform-layout-builder.mjs +25 -11
  270. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  271. package/fesm2022/acorex-platform-layout-designer.mjs +396 -211
  272. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  273. package/fesm2022/acorex-platform-layout-entity.mjs +186 -113
  274. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  275. package/fesm2022/acorex-platform-layout-setting.mjs +57 -0
  276. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -0
  277. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs} +3 -3
  278. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs.map → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs.map} +1 -1
  279. package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs} +2 -2
  280. package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs.map → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs.map} +1 -1
  281. package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs} +3 -3
  282. package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs.map → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs.map} +1 -1
  283. package/fesm2022/acorex-platform-layouts.mjs +47 -55
  284. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  285. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs} +7 -7
  286. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs.map} +1 -1
  287. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs +301 -0
  288. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs.map +1 -0
  289. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs} +7 -7
  290. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs.map} +1 -1
  291. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs +148 -0
  292. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs.map +1 -0
  293. package/fesm2022/acorex-platform-themes-default.mjs +240 -79
  294. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  295. package/fesm2022/acorex-platform-themes-shared.mjs +184 -20
  296. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  297. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs} +2 -2
  298. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs.map → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs.map} +1 -1
  299. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs} +2 -2
  300. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs.map → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs.map} +1 -1
  301. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs} +3 -3
  302. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs.map} +1 -1
  303. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs} +2 -2
  304. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs.map → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs.map} +1 -1
  305. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs} +2 -2
  306. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs.map} +1 -1
  307. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs} +2 -2
  308. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs.map → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs.map} +1 -1
  309. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs → acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs} +76 -78
  310. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs.map +1 -0
  311. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs} +2 -2
  312. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs.map} +1 -1
  313. package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs +123 -0
  314. package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs.map +1 -0
  315. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs +136 -0
  316. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs.map +1 -0
  317. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs} +2 -2
  318. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs.map → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs.map} +1 -1
  319. package/fesm2022/acorex-platform-widgets.mjs +431 -269
  320. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  321. package/fesm2022/acorex-platform-workflow.mjs +1 -1
  322. package/layout/builder/lib/builder/widget.types.d.ts +4 -3
  323. package/layout/designer/lib/designer/components/board/board.component.d.ts +8 -0
  324. package/layout/designer/lib/designer/designer.component.d.ts +3 -1
  325. package/layout/designer/lib/designer/index.d.ts +1 -0
  326. package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +10 -6
  327. package/layout/designer/lib/designer/shared/designer.service.d.ts +18 -3
  328. package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +9 -0
  329. package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +8 -5
  330. package/layout/designer/lib/preview/preview-viewer.component.d.ts +2 -2
  331. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -2
  332. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +3 -1
  333. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +2 -2
  334. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +3 -3
  335. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
  336. package/layout/entity/lib/entity.viewmodel.d.ts +5 -3
  337. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +14 -12
  338. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +13 -10
  339. package/layout/setting/README.md +4 -0
  340. package/layout/setting/index.d.ts +1 -0
  341. package/layout/setting/lib/setting.viewmodel.d.ts +13 -0
  342. package/layouts/lib/admin/admin.module.d.ts +6 -3
  343. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +42 -9
  344. package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
  345. package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +0 -3
  346. package/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.d.ts +4 -2
  347. package/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.d.ts +0 -1
  348. package/package.json +18 -18
  349. package/themes/default/index.d.ts +1 -0
  350. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +47 -9
  351. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +42 -4
  352. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
  353. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +1 -1
  354. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +42 -3
  355. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +42 -2
  356. package/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.d.ts +8 -2
  357. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +42 -14
  358. package/themes/default/lib/layouts/setting-layout/convert-setting-data.d.ts +21 -0
  359. package/themes/default/lib/layouts/setting-layout/index.d.ts +2 -0
  360. package/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.d.ts +24 -0
  361. package/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.d.ts +20 -0
  362. package/themes/shared/lib/components/theme-slot.component.d.ts +31 -5
  363. package/themes/shared/lib/services/theme.service.d.ts +45 -5
  364. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +6 -0
  365. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +6 -0
  366. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +8 -0
  367. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +6 -0
  368. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +6 -0
  369. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +7 -0
  370. package/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.d.ts +7 -0
  371. package/widgets/lib/widgets/advance/cron-job/index.d.ts +7 -0
  372. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +2 -0
  373. package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +2 -3
  374. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +1 -1
  375. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +1 -1
  376. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +3 -3
  377. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +1 -2
  378. package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +1 -1
  379. package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +1 -1
  380. package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +8 -9
  381. package/widgets/lib/widgets/layout/template/template-picker/template-picker.component.d.ts +30 -0
  382. package/widgets/lib/widgets/layout/template/template-widget-edit.component.d.ts +3 -0
  383. package/widgets/lib/widgets/layout/template/template-widget-view.component.d.ts +1 -0
  384. package/widgets/lib/widgets/layout/template/template.provider.d.ts +3 -0
  385. package/common/lib/layout/layout.service.d.ts +0 -19
  386. package/common/lib/layout/menu/menu.loader.d.ts +0 -17
  387. package/common/lib/layout/theme/store/admin-layout.actions.d.ts +0 -7
  388. package/common/lib/layout/theme/store/admin-layout.effects.d.ts +0 -9
  389. package/common/lib/layout/theme/store/admin-layout.reducers.d.ts +0 -19
  390. package/common/lib/layout/theme/store/admin-layout.selectors.d.ts +0 -4
  391. package/common/lib/layout/theme/store/admin-layout.state.d.ts +0 -11
  392. package/common/lib/layout/theme/store/index.d.ts +0 -5
  393. package/common/lib/utils/router-util.service.d.ts +0 -12
  394. package/esm2022/common/lib/layout/layout.service.mjs +0 -79
  395. package/esm2022/common/lib/layout/menu/menu.loader.mjs +0 -39
  396. package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +0 -11
  397. package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +0 -21
  398. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +0 -63
  399. package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +0 -7
  400. package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +0 -13
  401. package/esm2022/common/lib/layout/theme/store/index.mjs +0 -6
  402. package/esm2022/common/lib/utils/router-util.service.mjs +0 -43
  403. package/esm2022/mocks/acorex-platform-mocks.mjs +0 -5
  404. package/esm2022/mocks/index.mjs +0 -7
  405. package/esm2022/mocks/lib/mocks.module.mjs +0 -15
  406. package/esm2022/mocks/lib/services/mocker.service.mjs +0 -114
  407. package/esm2022/mocks/lib/storage/storage.mock.service.mjs +0 -183
  408. package/fesm2022/acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs.map +0 -1
  409. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs.map +0 -1
  410. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs.map +0 -1
  411. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs.map +0 -1
  412. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs.map +0 -1
  413. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs.map +0 -1
  414. package/fesm2022/acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs.map +0 -1
  415. package/fesm2022/acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs.map +0 -1
  416. package/fesm2022/acorex-platform-common-file-widget-column.component-GtbElxmS.mjs.map +0 -1
  417. package/fesm2022/acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs.map +0 -1
  418. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs.map +0 -1
  419. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs.map +0 -1
  420. package/fesm2022/acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs.map +0 -1
  421. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs.map +0 -1
  422. package/fesm2022/acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs.map +0 -1
  423. package/fesm2022/acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs.map +0 -1
  424. package/fesm2022/acorex-platform-common-map-widget-view.component-Deos8gVy.mjs.map +0 -1
  425. package/fesm2022/acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs.map +0 -1
  426. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs.map +0 -1
  427. package/fesm2022/acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs.map +0 -1
  428. package/fesm2022/acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs.map +0 -1
  429. package/fesm2022/acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs.map +0 -1
  430. package/fesm2022/acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs.map +0 -1
  431. package/fesm2022/acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs.map +0 -1
  432. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs.map +0 -1
  433. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs.map +0 -1
  434. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs.map +0 -1
  435. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs.map +0 -1
  436. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs.map +0 -1
  437. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs.map +0 -1
  438. package/fesm2022/acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs.map +0 -1
  439. package/fesm2022/acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs.map +0 -1
  440. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs.map +0 -1
  441. package/fesm2022/acorex-platform-mocks.mjs +0 -319
  442. package/fesm2022/acorex-platform-mocks.mjs.map +0 -1
  443. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs +0 -299
  444. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs.map +0 -1
  445. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs +0 -150
  446. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs.map +0 -1
  447. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs.map +0 -1
  448. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs +0 -96
  449. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs.map +0 -1
  450. package/mocks/README.md +0 -3
  451. package/mocks/index.d.ts +0 -3
  452. package/mocks/lib/mocks.module.d.ts +0 -7
  453. package/mocks/lib/services/mocker.service.d.ts +0 -29
  454. package/mocks/lib/storage/storage.mock.service.d.ts +0 -25
@@ -1,34 +1,31 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, APP_INITIALIZER, inject, RendererFactory2, InjectionToken, Injector, ErrorHandler, Directive, Input, EventEmitter, Output, runInInjectionContext, NgModule, Optional, Inject, Component, ViewEncapsulation, ChangeDetectorRef, ChangeDetectionStrategy, ViewChild } from '@angular/core';
3
- import { kebabCase, sortBy, cloneDeep, merge, assign, isEqual, get, set } from 'lodash-es';
2
+ import { Injectable, APP_INITIALIZER, inject, RendererFactory2, InjectionToken, Injector, ErrorHandler, Inject, NgModule, Input, Directive, EventEmitter, Output, runInInjectionContext, Optional, Component, ViewEncapsulation, ChangeDetectorRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';
3
+ import { kebabCase, cloneDeep, merge, sortBy, assign, isEqual, get, set } from 'lodash-es';
4
4
  import { AXPopupModule } from '@acorex/components/popup';
5
5
  import { AXToastService, AXToastModule } from '@acorex/components/toast';
6
6
  import { AXDateTimeModule } from '@acorex/core/date-time';
7
- import * as i6 from '@acorex/platform/workflow';
7
+ import * as i5 from '@acorex/platform/workflow';
8
8
  import { createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowError, AXPWorkflowModule } from '@acorex/platform/workflow';
9
- import * as i1 from '@angular/router';
10
- import { NavigationEnd, Router, RouterModule } from '@angular/router';
11
- import * as i1$2 from '@ngrx/effects';
12
- import { createEffect, ofType, Actions, EffectsModule } from '@ngrx/effects';
13
- import * as i5$1 from '@ngrx/store';
14
- import { createAction, props, Store, createFeature, createReducer, on, createSelector, StoreModule } from '@ngrx/store';
9
+ import * as i2 from '@angular/router';
10
+ import { Router, RouterModule } from '@angular/router';
11
+ import * as i1 from '@ngrx/effects';
12
+ import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
15
13
  import { applySortArray, applyFilterArray } from '@acorex/platform/core';
16
14
  import Dexie from 'dexie';
17
- import { filter } from 'rxjs/operators';
18
- import { BehaviorSubject, timer, of, Subject, switchMap, fromEvent, debounceTime, map } from 'rxjs';
19
- import * as i5 from '@acorex/components/decorators';
15
+ import { Subject, switchMap, of } from 'rxjs';
16
+ import { createAction, props, Store } from '@ngrx/store';
17
+ import { AXDialogService } from '@acorex/components/dialog';
18
+ import { AXTranslationService } from '@acorex/core/translation';
19
+ import * as i5$1 from '@acorex/components/decorators';
20
20
  import { AXDecoratorModule } from '@acorex/components/decorators';
21
- import * as i2 from '@acorex/components/image';
21
+ import * as i2$1 from '@acorex/components/image';
22
22
  import { AXImageModule } from '@acorex/components/image';
23
23
  import * as i1$1 from '@angular/common';
24
24
  import { CommonModule } from '@angular/common';
25
25
  import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
26
- import { AXPlatform } from '@acorex/core/platform';
27
- import { AXDialogService } from '@acorex/components/dialog';
28
- import { AXTranslationService } from '@acorex/core/translation';
29
- import * as i2$1 from '@acorex/components/skeleton';
26
+ import * as i2$2 from '@acorex/components/skeleton';
30
27
  import { AXSkeletonModule } from '@acorex/components/skeleton';
31
- import * as i1$3 from '@angular/cdk/portal';
28
+ import * as i1$2 from '@angular/cdk/portal';
32
29
  import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
33
30
  import { AXDataTableColumnComponent } from '@acorex/components/data-table';
34
31
  import { AXUnsubscriber } from '@acorex/core/utils';
@@ -100,11 +97,11 @@ function getEntityInfo(entity) {
100
97
  return {
101
98
  source: `${entity.module}.${entity.name}`,
102
99
  module: {
103
- route: kebabCase(entity.module)
100
+ route: kebabCase(entity.module),
104
101
  },
105
102
  entity: {
106
- route: kebabCase(entity.name)
107
- }
103
+ route: kebabCase(entity.name),
104
+ },
108
105
  };
109
106
  }
110
107
  function resolveActionLook(tr) {
@@ -175,6 +172,21 @@ const DATE_OPERATORS = [
175
172
  IS_EMPTY_OPER,
176
173
  IS_NOT_EMPTY_OPER,
177
174
  ];
175
+ const ALL_DEFAULT_OPERATORS = [
176
+ EQ_OPER,
177
+ NOT_EQ_OPER,
178
+ GT_OPER,
179
+ LT_OPER,
180
+ GTE_OPER,
181
+ LTE_OPER,
182
+ CONTAINS_OPER,
183
+ NOT_CONTAINS_OPER,
184
+ STARTS_WITH_OPER,
185
+ ENDS_WITH_OPER,
186
+ IS_EMPTY_OPER,
187
+ IS_NOT_EMPTY_OPER,
188
+ BETWEEN_OPER,
189
+ ];
178
190
 
179
191
  class AXPDataProvider {
180
192
  }
@@ -202,44 +214,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
202
214
  }]
203
215
  }] });
204
216
 
205
- class AXPRouteUtilityService {
206
- constructor(router) {
207
- this.router = router;
208
- this.routeActiveCache = {};
209
- // Subscribe to NavigationEnd events to update the cache
210
- this.router.events
211
- .pipe(filter((event) => event instanceof NavigationEnd))
212
- .subscribe(() => {
213
- this.clearRouteCache();
214
- });
215
- }
216
- isRouteActive(item) {
217
- const route = item.path;
218
- if (!route)
219
- return false;
220
- // // Check if the result is already cached
221
- // if (this.routeActiveCache.hasOwnProperty(route)) {
222
- // return this.routeActiveCache[route];
223
- // }
224
- // Calculate the route activity
225
- const isActive = window.location.pathname.startsWith(route);
226
- // Cache the result
227
- this.routeActiveCache[route] = isActive;
228
- return isActive;
229
- }
230
- clearRouteCache() {
231
- this.routeActiveCache = {};
232
- }
233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRouteUtilityService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
234
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRouteUtilityService, providedIn: 'root' }); }
235
- }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRouteUtilityService, decorators: [{
237
- type: Injectable,
238
- args: [{
239
- providedIn: 'root',
240
- }]
241
- }], ctorParameters: () => [{ type: i1.Router }] });
242
-
243
217
  class AXPDataGenerator {
244
218
  static uuid() {
245
219
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {
@@ -583,6 +557,29 @@ class AXPDexieEntityStorageService extends Dexie {
583
557
  // }
584
558
  // }
585
559
 
560
+ const AXP_DATA_SEEDER_TOKEN = new InjectionToken('AXP_DATA_SEEDER_TOKEN');
561
+ class AXPDataSeederService {
562
+ constructor() {
563
+ this.loader = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });
564
+ }
565
+ async seed() {
566
+ if (Array.isArray(this.loader)) {
567
+ for (const loader of this.loader) {
568
+ await loader.seed();
569
+ }
570
+ }
571
+ else {
572
+ await this.loader?.seed();
573
+ }
574
+ }
575
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
576
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }
577
+ }
578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDataSeederService, decorators: [{
579
+ type: Injectable,
580
+ args: [{ providedIn: 'root' }]
581
+ }] });
582
+
586
583
  class AXPEntityStorageService {
587
584
  }
588
585
  class AXPEntityDataProvider {
@@ -637,35 +634,74 @@ class AXMEntityCrudServiceImpl {
637
634
  async query(request = { skip: 0, take: 100 }) {
638
635
  return this._entityDataProvider.query(request);
639
636
  }
640
- get entityDataProvider() {
641
- return this._entityDataProvider;
642
- }
637
+ // get entityDataProvider() {
638
+ // return this._entityDataProvider;
639
+ // }
643
640
  get storageService() {
644
641
  return this._storageService;
645
642
  }
646
643
  }
647
644
 
648
- const AXP_DATA_SEEDER_TOKEN = new InjectionToken('AXP_DATA_SEEDER_TOKEN');
649
- class AXPDataSeederService {
645
+ class AXPCustomOperatorService {
646
+ }
647
+ class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
648
+ getCustomOperators() {
649
+ return {};
650
+ }
651
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
652
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }
653
+ }
654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{
655
+ type: Injectable
656
+ }] });
657
+
658
+ class AXPFilterOperatorMiddlewareService {
659
+ }
660
+ class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {
650
661
  constructor() {
651
- this.loader = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });
662
+ super(...arguments);
663
+ this.customOperatorService = inject(AXPCustomOperatorService);
664
+ this.operators = {
665
+ ...this.getDefaultOperators(),
666
+ ...this.customOperatorService.getCustomOperators(),
667
+ };
652
668
  }
653
- async seed() {
654
- if (Array.isArray(this.loader)) {
655
- for (const loader of this.loader) {
656
- await loader.seed();
657
- }
658
- }
659
- else {
660
- await this.loader?.seed();
669
+ transformFilters(filters) {
670
+ return filters.map((filter) => this.transformFilter(filter));
671
+ }
672
+ transformFilter(filter) {
673
+ console.log(filter);
674
+ const { operator, value, filters, field } = filter;
675
+ // Find the operator (either default or custom)
676
+ const filterOperator = this.operators[operator?.type] || null;
677
+ // Start by transforming the filter itself
678
+ const transformedFilter = {
679
+ ...filter, // Keep the original filter structure
680
+ operator: filterOperator ? filterOperator : operator, // Add operator name
681
+ };
682
+ // If the filter contains nested filters, recursively transform them
683
+ if (filters && filters.length > 0) {
684
+ transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters
661
685
  }
686
+ return transformedFilter;
662
687
  }
663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
664
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }
688
+ getOperator(key) {
689
+ return this.operators[key];
690
+ }
691
+ // Helper function to return the default operators
692
+ getDefaultOperators() {
693
+ return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {
694
+ acc[operator.name] = {
695
+ type: operator.name,
696
+ };
697
+ return acc;
698
+ }, {});
699
+ }
700
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
701
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }
665
702
  }
666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDataSeederService, decorators: [{
667
- type: Injectable,
668
- args: [{ providedIn: 'root' }]
703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{
704
+ type: Injectable
669
705
  }] });
670
706
 
671
707
  class AXPErrorHandlerRegistryService {
@@ -727,382 +763,518 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
727
763
  args: [{ providedIn: 'root' }]
728
764
  }], ctorParameters: () => [{ type: i0.Injector }, { type: AXPErrorHandlerRegistryService }] });
729
765
 
730
- // src/app/directives/grid-layout.directive.ts
731
- class AXPGridLayoutDirective {
732
- constructor(el, renderer) {
733
- this.el = el;
734
- this.renderer = renderer;
766
+ // Injection token for setting providers
767
+ const AXP_SETTING_PROVIDER = new InjectionToken('AXP_SETTING_PROVIDER');
768
+ class AXPSettingDefinitionProviderService {
769
+ constructor() {
770
+ this.providers = inject(AXP_SETTING_PROVIDER, { optional: true });
771
+ this.cache = null;
772
+ this.pendingInserts = [];
773
+ this.pendingAdditions = [];
735
774
  }
736
- ngOnChanges(changes) {
737
- if (changes['options']) {
738
- this.applyTailwindClasses();
775
+ // Retrieve all setting items, applying any pending operations
776
+ async items() {
777
+ if (this.cache) {
778
+ return this.cache;
779
+ }
780
+ const items = [];
781
+ const context = this.createProviderContext(items);
782
+ if (Array.isArray(this.providers)) {
783
+ for (const provider of this.providers) {
784
+ provider.provide(context);
785
+ }
739
786
  }
787
+ // this.applyPendingOperations(items);
788
+ this.cache = items;
789
+ return items;
740
790
  }
741
- applyTailwindClasses() {
742
- // Clear existing grid classes
743
- this.clearClasses();
744
- // Apply new grid classes based on the input options
745
- this.setClasses(this.options.positions?.default, '');
746
- this.setClasses(this.options.positions?.md, 'md:');
747
- this.setClasses(this.options.positions?.lg, 'lg:');
748
- this.setClasses(this.options.positions?.xl, 'xl:');
749
- this.setClasses(this.options.positions?.xxl, '2xl:');
791
+ findGroupDetails(groupName) {
792
+ if (this.cache) {
793
+ return this.searchGroupDetails(this.cache, groupName, []); // Initialize with an empty breadcrumb
794
+ }
795
+ return null;
750
796
  }
751
- setClasses(positions, prefix) {
752
- if (positions == null)
753
- return;
754
- const colStart = positions.colStart ? `${prefix}ax-col-start-${positions.colStart}` : '';
755
- const colEnd = positions.colEnd ? `${prefix}ax-col-end-${positions.colEnd}` : '';
756
- const colSpan = positions.colSpan ? `${prefix}ax-col-span-${positions.colSpan}` : '';
757
- const rowStart = positions.rowStart ? `${prefix}ax-row-start-${positions.rowStart}` : '';
758
- const rowEnd = positions.rowEnd ? `${prefix}ax-row-end-${positions.rowEnd}` : '';
759
- const rowSpan = positions.rowSpan ? `${prefix}ax-row-span-${positions.rowSpan}` : '';
760
- const order = positions.order ? `${prefix}ax-order-${positions.order}` : ''; // Handling order
761
- [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {
762
- if (cls) {
763
- this.renderer.addClass(this.el.nativeElement, cls);
797
+ searchGroupDetails(groups, groupName, breadcrumb) {
798
+ for (const group of groups) {
799
+ const currentBreadcrumb = [...breadcrumb, { name: group.name, title: group.title }];
800
+ // If the group name matches, return its details
801
+ if (group.name === groupName) {
802
+ return {
803
+ breadcrumb: currentBreadcrumb,
804
+ sections: group.sections.length > 0 ? group.sections : null,
805
+ childGroups: group.groups.length > 0 ? group.groups : null,
806
+ };
764
807
  }
765
- });
766
- }
767
- clearClasses() {
768
- const currentClasses = this.el.nativeElement.className.split(' ');
769
- currentClasses.forEach((className) => {
770
- if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {
771
- this.renderer.removeClass(this.el.nativeElement, className);
808
+ // Recursively search in nested groups
809
+ const nestedResult = this.searchGroupDetails(group.groups, groupName, currentBreadcrumb);
810
+ if (nestedResult) {
811
+ return nestedResult;
772
812
  }
813
+ }
814
+ // If no matching group is found
815
+ return null;
816
+ }
817
+ // Create the provider context with methods to add items and find existing ones
818
+ createProviderContext(items) {
819
+ return {
820
+ addItems: (newItems) => {
821
+ items.push(...newItems);
822
+ },
823
+ addItem: (item) => {
824
+ items.push(item);
825
+ },
826
+ addGroup: (group) => {
827
+ items.push(group);
828
+ },
829
+ // find: (target: string): AXPSettingDefinitionFinderResult => {
830
+ // return {
831
+ // insertGroup: (item, position) => {
832
+ // this.pendingInserts.push({ target, newItems: [item], position });
833
+ // },
834
+ // insertSingle: (item, position) => {
835
+ // this.pendingInserts.push({ target, newItems: [item], position });
836
+ // },
837
+ // insertSingles: (items, position) => {
838
+ // this.pendingInserts.push({ target, newItems: items, position });
839
+ // },
840
+ // addItems: (items) => {
841
+ // this.pendingAdditions.push({ target, newItems: items });
842
+ // },
843
+ // addChildSingleAt: (item, index) => {
844
+ // const foundItemInfo = this.findItemWithParent(this.cache || [], target);
845
+ // if (foundItemInfo && foundItemInfo.foundItem) {
846
+ // const { foundItem } = foundItemInfo;
847
+ // if (foundItem.type === AXPSettingDefinitionItemType.Group) {
848
+ // const group = foundItem as AXPSettingDefinitionGroup;
849
+ // if (index >= 0 && index <= group.singles.length) {
850
+ // group.singles.splice(index, 0, item);
851
+ // } else {
852
+ // console.warn(`Index "${index}" is out of bounds for singles.`);
853
+ // }
854
+ // } else {
855
+ // console.warn(`Target "${target}" is not a group; cannot add a child single.`);
856
+ // }
857
+ // } else {
858
+ // console.warn(`Target "${target}" not found for adding a child single.`);
859
+ // }
860
+ // },
861
+ // addChildSingleFirst: (item) => {
862
+ // const foundItemInfo = this.findItemWithParent(this.cache || [], target);
863
+ // if (foundItemInfo && foundItemInfo.foundItem) {
864
+ // const { foundItem } = foundItemInfo;
865
+ // if (foundItem.type === AXPSettingDefinitionItemType.Group) {
866
+ // const group = foundItem as AXPSettingDefinitionGroup;
867
+ // group.singles.unshift(item);
868
+ // } else {
869
+ // console.warn(`Target "${target}" is not a group; cannot add a child single.`);
870
+ // }
871
+ // } else {
872
+ // console.warn(`Target "${target}" not found for adding a child single.`);
873
+ // }
874
+ // },
875
+ // addChildSingleLast: (item) => {
876
+ // const foundItemInfo = this.findItemWithParent(this.cache || [], target);
877
+ // if (foundItemInfo && foundItemInfo.foundItem) {
878
+ // const { foundItem } = foundItemInfo;
879
+ // if (foundItem.type === AXPSettingDefinitionItemType.Group) {
880
+ // const group = foundItem as AXPSettingDefinitionGroup;
881
+ // group.singles.push(item);
882
+ // } else {
883
+ // console.warn(`Target "${target}" is not a group; cannot add a child single.`);
884
+ // }
885
+ // } else {
886
+ // console.warn(`Target "${target}" not found for adding a child single.`);
887
+ // }
888
+ // },
889
+ // addChildGroupAt: (item, index) => {
890
+ // const foundItemInfo = this.findItemWithParent(this.cache || [], target);
891
+ // if (foundItemInfo && foundItemInfo.foundItem) {
892
+ // const { foundItem } = foundItemInfo;
893
+ // if (foundItem.type === AXPSettingDefinitionItemType.Group) {
894
+ // const group = foundItem as AXPSettingDefinitionGroup;
895
+ // if (index >= 0 && index <= group.groups.length) {
896
+ // group.groups.splice(index, 0, item);
897
+ // } else {
898
+ // console.warn(`Index "${index}" is out of bounds for groups.`);
899
+ // }
900
+ // } else {
901
+ // console.warn(`Target "${target}" is not a group; cannot add a child group.`);
902
+ // }
903
+ // } else {
904
+ // console.warn(`Target "${target}" not found for adding a child group.`);
905
+ // }
906
+ // },
907
+ // addChildGroupFirst: (item) => {
908
+ // const foundItemInfo = this.findItemWithParent(this.cache || [], target);
909
+ // if (foundItemInfo && foundItemInfo.foundItem) {
910
+ // const { foundItem } = foundItemInfo;
911
+ // if (foundItem.type === AXPSettingDefinitionItemType.Group) {
912
+ // const group = foundItem as AXPSettingDefinitionGroup;
913
+ // group.groups.unshift(item);
914
+ // } else {
915
+ // console.warn(`Target "${target}" is not a group; cannot add a child group.`);
916
+ // }
917
+ // } else {
918
+ // console.warn(`Target "${target}" not found for adding a child group.`);
919
+ // }
920
+ // },
921
+ // addChildGroupLast: (item) => {
922
+ // const foundItemInfo = this.findItemWithParent(this.cache || [], target);
923
+ // if (foundItemInfo && foundItemInfo.foundItem) {
924
+ // const { foundItem } = foundItemInfo;
925
+ // if (foundItem.type === AXPSettingDefinitionItemType.Group) {
926
+ // const group = foundItem as AXPSettingDefinitionGroup;
927
+ // group.groups.push(item);
928
+ // } else {
929
+ // console.warn(`Target "${target}" is not a group; cannot add a child group.`);
930
+ // }
931
+ // } else {
932
+ // console.warn(`Target "${target}" not found for adding a child group.`);
933
+ // }
934
+ // },
935
+ // };
936
+ // },
937
+ };
938
+ }
939
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
940
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingDefinitionProviderService, providedIn: 'root' }); }
941
+ }
942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingDefinitionProviderService, decorators: [{
943
+ type: Injectable,
944
+ args: [{ providedIn: 'root' }]
945
+ }] });
946
+
947
+ const AXP_SETTINGS_PROVIDER = new InjectionToken('AXP_SETTINGS_PROVIDER', {
948
+ providedIn: 'root',
949
+ factory: () => {
950
+ return new AXPSettingsProviderDefault();
951
+ }
952
+ });
953
+ class AXPSettingsProviderDefault {
954
+ constructor() {
955
+ this.cache = new Map();
956
+ this.localStorageKey = 'AXP_SETTINGS';
957
+ }
958
+ async load() {
959
+ // Load settings from localStorage as a single key
960
+ const storedSettings = localStorage.getItem(this.localStorageKey);
961
+ if (storedSettings) {
962
+ const parsedSettings = JSON.parse(storedSettings);
963
+ Object.entries(parsedSettings).forEach(([key, value]) => {
964
+ this.cache.set(key, value);
965
+ });
966
+ return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));
967
+ }
968
+ return Promise.resolve([]);
969
+ }
970
+ async set(key, value) {
971
+ this.cache.set(key, value);
972
+ // Save to localStorage as a single key
973
+ const settingsObject = {};
974
+ this.cache.forEach((val, k) => {
975
+ settingsObject[k] = val;
773
976
  });
977
+ localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));
774
978
  }
775
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
776
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: AXPGridLayoutDirective, isStandalone: true, selector: "[gridLayout]", inputs: { options: ["gridLayout", "options"] }, usesOnChanges: true, ngImport: i0 }); }
777
979
  }
778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{
779
- type: Directive,
780
- args: [{
781
- selector: '[gridLayout]',
782
- standalone: true,
783
- }]
784
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { options: [{
785
- type: Input,
786
- args: ['gridLayout']
787
- }] } });
788
980
 
789
- class AXPLayoutService {
981
+ class AXPSettingsService {
790
982
  constructor() {
791
- this.minimumDisplayTime = 500; // milliseconds
792
- //
793
- this.navigationLoadingSubject = new BehaviorSubject(false);
794
- this.navigationLoadingTaskCount = 0;
795
- this.navigationLoadingStateActive = false;
796
- //
797
- this.overlayLoadingSubject = new BehaviorSubject(false);
798
- this.overlayLoadingTaskCount = 0;
799
- this.overlayLoadingStateActive = false;
800
- }
801
- get navigationLoading$() {
802
- return this.navigationLoadingSubject.asObservable();
803
- }
804
- setNavigationLoading(value) {
805
- if (value) {
806
- this.navigationLoadingTaskCount++;
807
- this.updateNavigationLoadingState(true);
983
+ this.settingsProvider = inject(AXP_SETTINGS_PROVIDER);
984
+ this.settingsCache = new Map();
985
+ this.changed = new Subject();
986
+ }
987
+ async load() {
988
+ try {
989
+ const settingsList = await this.settingsProvider.load();
990
+ this.settingsCache.clear();
991
+ settingsList.forEach((setting) => {
992
+ this.settingsCache.set(setting.key, setting.value);
993
+ });
994
+ return settingsList;
808
995
  }
809
- else {
810
- if (this.navigationLoadingTaskCount > 0) {
811
- this.navigationLoadingTaskCount--;
812
- }
813
- if (this.navigationLoadingTaskCount === 0) {
814
- // Start timer to keep loading state for minimum display time
815
- timer(this.minimumDisplayTime).subscribe(() => {
816
- if (this.navigationLoadingTaskCount === 0) {
817
- this.updateNavigationLoadingState(false);
818
- }
819
- });
820
- }
996
+ catch (error) {
997
+ console.error('Error loading settings', error);
998
+ throw error; // Re-throw or handle it appropriately
821
999
  }
822
1000
  }
823
- updateNavigationLoadingState(state) {
824
- if (state !== this.navigationLoadingStateActive) {
825
- this.navigationLoadingStateActive = state;
826
- this.navigationLoadingSubject.next(state);
1001
+ async get(key) {
1002
+ if (this.settingsCache.size == 0) {
1003
+ await this.load();
827
1004
  }
1005
+ return cloneDeep(this.settingsCache.get(key));
828
1006
  }
829
- get overlayLoading$() {
830
- return this.overlayLoadingSubject.asObservable();
831
- }
832
- setOverlayLoading(value) {
833
- if (value) {
834
- this.overlayLoadingTaskCount++;
835
- this.updateOverlayLoadingState(true);
1007
+ async set(key, value) {
1008
+ if (this.settingsCache.has(key)) {
1009
+ this.settingsCache.set(key, value);
1010
+ await this.settingsProvider.set(key, value);
1011
+ this.changed.next({ key, value });
836
1012
  }
837
1013
  else {
838
- if (this.overlayLoadingTaskCount > 0) {
839
- this.overlayLoadingTaskCount--;
840
- }
841
- if (this.overlayLoadingTaskCount === 0) {
842
- // Start timer to keep loading state for minimum display time
843
- timer(this.minimumDisplayTime).subscribe(() => {
844
- if (this.overlayLoadingTaskCount === 0) {
845
- this.updateOverlayLoadingState(false);
846
- }
847
- });
848
- }
849
- }
850
- }
851
- updateOverlayLoadingState(state) {
852
- if (state !== this.overlayLoadingStateActive) {
853
- this.overlayLoadingStateActive = state;
854
- this.overlayLoadingSubject.next(state);
1014
+ console.warn(`Setting with key "${key}" not found.`);
1015
+ this.settingsCache.set(key, value);
1016
+ this.set(key, value);
855
1017
  }
856
1018
  }
857
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
858
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutService, providedIn: 'root' }); }
1019
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1020
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, providedIn: 'root' }); }
859
1021
  }
860
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutService, decorators: [{
1022
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, decorators: [{
861
1023
  type: Injectable,
862
- args: [{ providedIn: 'root' }]
1024
+ args: [{
1025
+ providedIn: 'root',
1026
+ }]
863
1027
  }] });
864
1028
 
865
- class AXPStickyDirective {
866
- get isSticky() {
867
- return this._isSticky;
1029
+ const AXPNavigateAction = createAction('[Navigate] Action', props());
1030
+ const AXPSignOutAction = createAction('[SignOut] Action');
1031
+ const AXPSignInAction = createAction('[SignIn] Action');
1032
+
1033
+ class AXPCommonEffects {
1034
+ constructor(actions$, router, settingService) {
1035
+ this.actions$ = actions$;
1036
+ this.router = router;
1037
+ this.settingService = settingService;
1038
+ this.command$ = createEffect(() => this.actions$.pipe(ofType(AXPNavigateAction), switchMap((action) => {
1039
+ if (Array.isArray(action.payload.commands))
1040
+ this.router.navigate(action.payload.commands, action.payload.extras);
1041
+ else {
1042
+ if (action.payload.commands.toLowerCase().startsWith('http'))
1043
+ window.open(action.payload.commands, '_blank');
1044
+ else
1045
+ this.router.navigate([action.payload.commands], action.payload.extras);
1046
+ }
1047
+ return of();
1048
+ })), { dispatch: false });
868
1049
  }
869
- set isSticky(v) {
870
- this._isSticky = v;
871
- this.isStickyChange.emit(v);
872
- }
873
- constructor(element, renderer, zone, cdr) {
874
- this.element = element;
875
- this.renderer = renderer;
876
- this.zone = zone;
877
- this.cdr = cdr;
878
- this.stickyOffset = 100;
879
- this.isStickyChange = new EventEmitter();
880
- this._isSticky = false;
881
- this.onParentScroll = () => {
882
- this.zone.runOutsideAngular(() => {
883
- const scrollPosition = this.parentElement === window ?
884
- window.scrollY :
885
- this.parentElement.scrollTop + this.targetElement.offsetTop;
886
- if (scrollPosition - this.stickyOffset >= this.topOffset && !this.isSticky) {
887
- this.stickyClass.split(' ').forEach(c => {
888
- this.renderer.addClass(this.targetElement, c);
889
- });
890
- this.isSticky = true;
891
- this.cdr.markForCheck();
892
- }
893
- else if (scrollPosition <= this.topOffset && this.isSticky) {
894
- this.stickyClass.split(' ').forEach(c => {
895
- this.renderer.removeClass(this.targetElement, c);
896
- });
897
- this.isSticky = false;
898
- this.cdr.markForCheck();
899
- }
900
- });
901
- };
1050
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects, deps: [{ token: i1.Actions }, { token: i2.Router }, { token: AXPSettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1051
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects }); }
1052
+ }
1053
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects, decorators: [{
1054
+ type: Injectable
1055
+ }], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Router }, { type: AXPSettingsService }] });
1056
+
1057
+ //TODO Loading, Redirect, Drawer, Show toast
1058
+ const AXPRedirectEvent = createWorkFlowEvent('Redirect Event Fired');
1059
+ class AXPWorkflowNavigateAction extends AXPWorkflowAction {
1060
+ constructor() {
1061
+ super(...arguments);
1062
+ this.router = inject(Router);
902
1063
  }
903
- ngAfterViewInit() {
904
- if (this.stickyParent instanceof HTMLElement) {
905
- this.parentElement = this.stickyParent;
1064
+ async execute(context) {
1065
+ const payload = context.getVariable('payload');
1066
+ if (Array.isArray(payload.commands)) {
1067
+ this.router.navigate(payload.commands, payload.extras);
906
1068
  }
907
1069
  else {
908
- this.parentElement = document.querySelector(this.stickyParent) || window;
1070
+ if (payload.commands.toLowerCase().startsWith('http') || payload.target == "blank") {
1071
+ window.open(payload.commands, '_blank');
1072
+ }
1073
+ else
1074
+ this.router.navigate([payload.commands], payload.extras);
909
1075
  }
910
- this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;
911
- this.topOffset = this.targetElement.offsetTop;
912
- this.parentElement.addEventListener('scroll', this.onParentScroll.bind(this));
913
- }
914
- ngOnDestroy() {
915
- this.parentElement.removeEventListener('scroll', this.onParentScroll);
916
1076
  }
917
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
918
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: AXPStickyDirective, isStandalone: true, selector: "[axpSticky]", inputs: { stickyClass: ["axpSticky", "stickyClass"], stickyOffset: "stickyOffset", stickyParent: "stickyParent", stickyTarget: "stickyTarget" }, outputs: { isStickyChange: "isStickyChange" }, exportAs: ["axpSticky"], ngImport: i0 }); }
1077
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWorkflowNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1078
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWorkflowNavigateAction }); }
919
1079
  }
920
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPStickyDirective, decorators: [{
921
- type: Directive,
922
- args: [{
923
- selector: '[axpSticky]',
924
- exportAs: 'axpSticky',
925
- standalone: true
926
- }]
927
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { stickyClass: [{
928
- type: Input,
929
- args: ['axpSticky']
930
- }], stickyOffset: [{
931
- type: Input,
932
- args: ['stickyOffset']
933
- }], isStickyChange: [{
934
- type: Output
935
- }], stickyParent: [{
936
- type: Input
937
- }], stickyTarget: [{
938
- type: Input
939
- }] } });
940
-
941
- class AXPComponentSlotRegistryService {
1080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{
1081
+ type: Injectable
1082
+ }] });
1083
+ class AXPDialogConfirmAction extends AXPWorkflowAction {
942
1084
  constructor() {
943
- this.registry = new Map();
944
- }
945
- register(slotName, config) {
946
- let configs = this.registry.get(slotName) || [];
947
- // Check if the component is already registered in this slot
948
- const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);
949
- if (!isDuplicate) {
950
- configs = [...configs, config]; // Add the new configuration
951
- this.registry.set(slotName, configs);
952
- }
1085
+ super(...arguments);
1086
+ this.dialogService = inject(AXDialogService);
1087
+ this.translationService = inject(AXTranslationService);
953
1088
  }
954
- get(slotName) {
955
- return this.registry.get(slotName) || [];
1089
+ async execute(context) {
1090
+ context.setOutput('result', false);
1091
+ const dialogResult = await this.dialogService.confirm(await this.translationService.translateAsync(this.title), await this.translationService.translateAsync(this.message), (await this.translationService.translateAsync(this.type)));
1092
+ context.setOutput('result', dialogResult.result);
956
1093
  }
957
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
958
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotRegistryService, providedIn: 'root' }); }
1094
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1095
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDialogConfirmAction }); }
959
1096
  }
960
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotRegistryService, decorators: [{
961
- type: Injectable,
962
- args: [{
963
- providedIn: 'root'
964
- }]
1097
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{
1098
+ type: Injectable
965
1099
  }] });
966
-
967
- class AXPComponentSlotLoaderService {
968
- constructor(registryService, injector) {
969
- this.registryService = registryService;
970
- this.injector = injector;
1100
+ class AXPToastAction extends AXPWorkflowAction {
1101
+ constructor() {
1102
+ super(...arguments);
1103
+ this.toastService = inject(AXToastService);
1104
+ this.translationService = inject(AXTranslationService);
971
1105
  }
972
- loadComponent(slotName, viewContainerRef) {
973
- const configs = sortBy(this.registryService.get(slotName), (c) => c.priority ?? 0);
974
- if (configs) {
975
- viewContainerRef.clear();
976
- configs.forEach(async (config) => {
977
- let component;
978
- let options = {};
979
- if (typeof config.loadComponent === 'function') {
980
- // If component is a function
981
- runInInjectionContext(this.injector, () => {
982
- component = config.loadComponent?.();
983
- });
984
- }
985
- else if (config.component) {
986
- // If component is a Type
987
- component = config.component;
988
- }
989
- //
990
- if (typeof config.options === 'function') {
991
- // If options is a function
992
- runInInjectionContext(this.injector, () => {
993
- const fun = config.options;
994
- options = fun();
995
- });
996
- }
997
- else if (config.options) {
998
- // If options is a object
999
- options = config.options;
1000
- }
1001
- //
1002
- if (component != null) {
1003
- const componentRef = viewContainerRef.createComponent(component);
1004
- Object.assign(componentRef.instance, options);
1005
- }
1006
- });
1007
- }
1106
+ async execute(context) {
1107
+ this.toastService.show({
1108
+ color: this.color,
1109
+ title: await this.translationService.translateAsync(this.title),
1110
+ content: await this.translationService.translateAsync(this.content),
1111
+ closeButton: true,
1112
+ timeOut: 3000,
1113
+ timeOutProgress: true,
1114
+ });
1008
1115
  }
1009
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotLoaderService, deps: [{ token: AXPComponentSlotRegistryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1010
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotLoaderService, providedIn: 'root' }); }
1116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1117
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPToastAction }); }
1011
1118
  }
1012
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotLoaderService, decorators: [{
1013
- type: Injectable,
1014
- args: [{
1015
- providedIn: 'root',
1016
- }]
1017
- }], ctorParameters: () => [{ type: AXPComponentSlotRegistryService }, { type: i0.Injector }] });
1119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPToastAction, decorators: [{
1120
+ type: Injectable
1121
+ }] });
1018
1122
 
1019
- class AXPComponentSlotDirective {
1020
- constructor(dynamicLoaderService, viewContainerRef) {
1021
- this.dynamicLoaderService = dynamicLoaderService;
1022
- this.viewContainerRef = viewContainerRef;
1123
+ class AXMWorkflowErrorHandler {
1124
+ constructor() {
1125
+ this.dialog = inject(AXDialogService);
1023
1126
  }
1024
- ngOnInit() {
1025
- this.dynamicLoaderService.loadComponent(this.name, this.viewContainerRef);
1127
+ handleError(error, next) {
1128
+ if (error instanceof AXPWorkflowError) {
1129
+ this.dialog.alert("Somthing is wrong!", error.inner ? error.inner.message : error.message, 'danger');
1130
+ next(error);
1131
+ }
1132
+ else {
1133
+ next(error);
1134
+ }
1026
1135
  }
1027
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotDirective, deps: [{ token: AXPComponentSlotLoaderService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1028
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: AXPComponentSlotDirective, selector: "axp-component-slot", inputs: { name: "name" }, ngImport: i0 }); }
1136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1137
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMWorkflowErrorHandler }); }
1029
1138
  }
1030
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotDirective, decorators: [{
1031
- type: Directive,
1032
- args: [{
1033
- selector: 'axp-component-slot',
1034
- }]
1035
- }], ctorParameters: () => [{ type: AXPComponentSlotLoaderService }, { type: i0.ViewContainerRef }], propDecorators: { name: [{
1036
- type: Input
1037
- }] } });
1139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{
1140
+ type: Injectable
1141
+ }] });
1038
1142
 
1039
- class AXPComponentSlotModule {
1143
+ class AXPCommonModule {
1040
1144
  static forRoot(configs) {
1041
1145
  return {
1042
- ngModule: AXPComponentSlotModule,
1146
+ ngModule: AXPCommonModule,
1043
1147
  providers: [
1148
+ ...(configs?.errorHandlers || []),
1044
1149
  {
1045
- provide: 'AXPComponentSlotModuleFactory',
1150
+ provide: 'AXPCommonModuleFactory',
1046
1151
  useFactory: (registry) => () => {
1047
- if (configs) {
1048
- for (const [key, value] of Object.entries(configs)) {
1049
- value.forEach(v => {
1050
- registry.register(key, v);
1051
- });
1052
- }
1053
- }
1152
+ registry.register(...(configs?.errorHandlers || []));
1054
1153
  },
1055
- deps: [AXPComponentSlotRegistryService],
1056
- multi: true
1057
- }
1058
- ]
1154
+ deps: [AXPErrorHandlerRegistryService],
1155
+ multi: true,
1156
+ },
1157
+ ],
1059
1158
  };
1060
1159
  }
1061
1160
  static forChild(configs) {
1062
1161
  return {
1063
- ngModule: AXPComponentSlotModule,
1162
+ ngModule: AXPCommonModule,
1064
1163
  providers: [
1164
+ ...(configs?.errorHandlers || []),
1065
1165
  {
1066
- provide: 'AXPComponentSlotModuleFactory',
1166
+ provide: 'AXPCommonModuleFactory',
1067
1167
  useFactory: (registry) => () => {
1068
- if (configs) {
1069
- for (const [key, value] of Object.entries(configs)) {
1070
- value.forEach(v => {
1071
- registry.register(key, v);
1072
- });
1073
- }
1074
- }
1168
+ registry.register(...(configs?.errorHandlers || []));
1075
1169
  },
1076
- deps: [AXPComponentSlotRegistryService],
1077
- multi: true
1078
- }
1079
- ]
1170
+ deps: [AXPErrorHandlerRegistryService],
1171
+ multi: true,
1172
+ },
1173
+ ],
1080
1174
  };
1081
1175
  }
1082
1176
  /**
1083
1177
  * @ignore
1084
1178
  */
1085
- constructor(instances) {
1086
- instances?.forEach(f => {
1179
+ constructor(instances, appInitService, settingsService, seederService) {
1180
+ instances.forEach((f) => {
1087
1181
  f();
1088
1182
  });
1183
+ // appInitService.registerTask({
1184
+ // name: 'Modules',
1185
+ // statusText: 'Initializing Modules ...',
1186
+ // run: () =>
1187
+ // new Promise<void>((resolve) => {
1188
+ // setTimeout(() => {
1189
+ // resolve();
1190
+ // }, 250);
1191
+ // }),
1192
+ // });
1193
+ //
1194
+ appInitService.registerTask({
1195
+ name: 'Settings',
1196
+ statusText: 'Loading Settings ...',
1197
+ run: async () => {
1198
+ await settingsService.load();
1199
+ },
1200
+ });
1201
+ //
1202
+ //
1203
+ appInitService.registerTask({
1204
+ name: 'Seeder',
1205
+ statusText: 'Seed Data ...',
1206
+ run: async () => {
1207
+ await seederService.seed();
1208
+ },
1209
+ });
1089
1210
  }
1090
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule, deps: [{ token: 'AXPComponentSlotModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1091
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule, declarations: [AXPComponentSlotDirective], exports: [AXPComponentSlotDirective] }); }
1092
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule }); }
1211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: AXPAppStartUpService }, { token: AXPSettingsService }, { token: AXPDataSeederService }], target: i0.ɵɵFactoryTarget.NgModule }); }
1212
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, imports: [i1.EffectsFeatureModule, i5.AXPWorkflowModule, AXPopupModule,
1213
+ AXDateTimeModule,
1214
+ AXToastModule], exports: [RouterModule] }); }
1215
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, providers: [
1216
+ AXPAppStartUpProvider,
1217
+ {
1218
+ provide: ErrorHandler,
1219
+ useClass: AXPGlobalErrorHandler,
1220
+ },
1221
+ {
1222
+ provide: AXPCustomOperatorService,
1223
+ useClass: AXPCustomOperatorServiceImpl,
1224
+ },
1225
+ {
1226
+ provide: AXPFilterOperatorMiddlewareService,
1227
+ useClass: AXPFilterOperatorMiddlewareServiceImpl,
1228
+ },
1229
+ ], imports: [EffectsModule.forFeature([AXPCommonEffects]),
1230
+ AXPWorkflowModule.forChild({
1231
+ actions: {
1232
+ navigate: AXPDialogConfirmAction,
1233
+ 'show-prompt-dialog': AXPDialogConfirmAction,
1234
+ 'show-toast': AXPToastAction,
1235
+ },
1236
+ }),
1237
+ AXPopupModule,
1238
+ AXDateTimeModule,
1239
+ AXToastModule, RouterModule] }); }
1093
1240
  }
1094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule, decorators: [{
1241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, decorators: [{
1095
1242
  type: NgModule,
1096
1243
  args: [{
1097
- declarations: [AXPComponentSlotDirective],
1098
- exports: [AXPComponentSlotDirective]
1244
+ imports: [
1245
+ EffectsModule.forFeature([AXPCommonEffects]),
1246
+ AXPWorkflowModule.forChild({
1247
+ actions: {
1248
+ navigate: AXPDialogConfirmAction,
1249
+ 'show-prompt-dialog': AXPDialogConfirmAction,
1250
+ 'show-toast': AXPToastAction,
1251
+ },
1252
+ }),
1253
+ AXPopupModule,
1254
+ AXDateTimeModule,
1255
+ AXToastModule,
1256
+ ],
1257
+ exports: [RouterModule],
1258
+ providers: [
1259
+ AXPAppStartUpProvider,
1260
+ {
1261
+ provide: ErrorHandler,
1262
+ useClass: AXPGlobalErrorHandler,
1263
+ },
1264
+ {
1265
+ provide: AXPCustomOperatorService,
1266
+ useClass: AXPCustomOperatorServiceImpl,
1267
+ },
1268
+ {
1269
+ provide: AXPFilterOperatorMiddlewareService,
1270
+ useClass: AXPFilterOperatorMiddlewareServiceImpl,
1271
+ },
1272
+ ],
1099
1273
  }]
1100
1274
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1101
- type: Optional
1102
- }, {
1103
1275
  type: Inject,
1104
- args: ['AXPComponentSlotModuleFactory']
1105
- }] }] });
1276
+ args: ['AXPCommonModuleFactory']
1277
+ }] }, { type: AXPAppStartUpService }, { type: AXPSettingsService }, { type: AXPDataSeederService }] });
1106
1278
 
1107
1279
  class AXPTextLogoConfig {
1108
1280
  constructor(text) {
@@ -1125,682 +1297,644 @@ class AXPComponentLogoConfig {
1125
1297
  }
1126
1298
  }
1127
1299
 
1128
- class AXPLogoComponent {
1129
- ngOnInit() {
1130
- switch (true) {
1131
- case this.source instanceof AXPTextLogoConfig:
1132
- this.logoType = 'text';
1133
- break;
1134
- case this.source instanceof AXPImageUrlLogoConfig:
1135
- this.logoType = 'url';
1136
- break;
1137
- case this.source instanceof AXPFontIconLogoConfig:
1138
- this.logoType = 'iconClass';
1139
- break;
1140
- case this.source instanceof AXPComponentLogoConfig:
1141
- this.logoType = 'component';
1142
- break;
1143
- default:
1144
- break;
1145
- }
1146
- }
1147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLogoComponent, isStandalone: true, selector: "axp-logo", inputs: { source: "source" }, host: { classAttribute: "ax-flex ax-justify-center" }, ngImport: i0, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
1149
- }
1150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLogoComponent, decorators: [{
1151
- type: Component,
1152
- args: [{ selector: 'axp-logo', standalone: true, imports: [CommonModule, AXImageModule, AXDecoratorModule], host: { 'class': 'ax-flex ax-justify-center' }, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}" }]
1153
- }], propDecorators: { source: [{
1154
- type: Input
1155
- }] } });
1156
-
1157
- const AXP_MENU_LOADER = new InjectionToken('AXP_MENU_LOADER', {
1300
+ const ENVIRONMENT = new InjectionToken('ENVIRONMENT');
1301
+ const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN', {
1158
1302
  providedIn: 'root',
1159
1303
  factory: () => {
1160
- return new AXMenuLoaderDefault();
1304
+ return AXPPlatformDefaultConfigs;
1161
1305
  },
1162
1306
  });
1163
- class AXMenuLoaderDefault {
1164
- /**
1165
- * @ignore
1166
- */
1167
- constructor(items = []) {
1168
- this._items = [
1169
- {
1170
- text: 'Menu Item 1',
1171
- icon: 'fa-solid fa-grid-2',
1172
- children: [
1173
- {
1174
- text: 'Sub Menu Item 1',
1175
- },
1176
- {
1177
- text: 'Sub Menu Item 2',
1178
- },
1179
- ],
1180
- },
1181
- ];
1182
- if (items && items.length) {
1183
- this._items = items;
1184
- }
1185
- }
1186
- currentMenuItem() {
1187
- throw new Error("Method not implemented.");
1188
- }
1189
- getItems(depth) {
1190
- return of(this._items);
1307
+ const AXPPlatformDefaultConfigs = {
1308
+ copyright: 'ACoreX @ 2023',
1309
+ title: 'ACoreX Platform',
1310
+ logo: {
1311
+ dark: new AXPTextLogoConfig('ACoreX'),
1312
+ light: new AXPTextLogoConfig('ACoreX'),
1313
+ colored: new AXPTextLogoConfig('ACoreX'),
1314
+ },
1315
+ useLocalData: false,
1316
+ network: {
1317
+ timeOut: 5000,
1191
1318
  }
1319
+ };
1320
+ function configPlatform(config = AXPPlatformDefaultConfigs) {
1321
+ return merge(AXPPlatformDefaultConfigs, config);
1192
1322
  }
1193
1323
 
1194
- const AXP_MENU_PROVIDER = new InjectionToken('AXP_MENU_PROVIDER');
1195
- class AXPMenuProviderService {
1196
- constructor() {
1197
- this.providers = inject(AXP_MENU_PROVIDER, { optional: true });
1324
+ const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');
1325
+
1326
+ // src/app/directives/grid-layout.directive.ts
1327
+ class AXPGridLayoutDirective {
1328
+ constructor(el, renderer) {
1329
+ this.el = el;
1330
+ this.renderer = renderer;
1198
1331
  }
1199
- async items() {
1200
- const items = [];
1201
- if (Array.isArray(this.providers)) {
1202
- for (const provider of this.providers) {
1203
- const injections = await provider.items();
1204
- this.applyInjections(items, injections);
1205
- }
1332
+ ngOnChanges(changes) {
1333
+ if (changes['options']) {
1334
+ this.applyTailwindClasses();
1206
1335
  }
1207
- return items;
1208
1336
  }
1209
- applyInjections(items, injections) {
1210
- for (const injection of injections) {
1211
- if (injection.insertAt) {
1212
- const inserted = this.findAndInsert(items, injection.items, injection.insertAt.target, injection.insertAt?.position ?? 'after');
1213
- if (!inserted) {
1214
- // If target is not found, append items to the end
1215
- items.push(...injection.items);
1216
- }
1217
- }
1218
- else {
1219
- // If insertAt is not defined, add items to the end
1220
- items.push(...injection.items);
1221
- }
1222
- }
1337
+ applyTailwindClasses() {
1338
+ // Clear existing grid classes
1339
+ this.clearClasses();
1340
+ // Apply new grid classes based on the input options
1341
+ this.setClasses(this.options.positions?.default, '');
1342
+ this.setClasses(this.options.positions?.md, 'md:');
1343
+ this.setClasses(this.options.positions?.lg, 'lg:');
1344
+ this.setClasses(this.options.positions?.xl, 'xl:');
1345
+ this.setClasses(this.options.positions?.xxl, '2xl:');
1223
1346
  }
1224
- findAndInsert(items, newItems, target, position) {
1225
- for (let i = 0; i < items.length; i++) {
1226
- const item = items[i];
1227
- // Check if the current item matches the target
1228
- if (item.name === target) {
1229
- const insertPosition = position === 'before' ? i : i + 1;
1230
- items.splice(insertPosition, 0, ...newItems);
1231
- return true;
1347
+ setClasses(positions, prefix) {
1348
+ if (positions == null)
1349
+ return;
1350
+ const colStart = positions.colStart ? `${prefix}ax-col-start-${positions.colStart}` : '';
1351
+ const colEnd = positions.colEnd ? `${prefix}ax-col-end-${positions.colEnd}` : '';
1352
+ const colSpan = positions.colSpan ? `${prefix}ax-col-span-${positions.colSpan}` : '';
1353
+ const rowStart = positions.rowStart ? `${prefix}ax-row-start-${positions.rowStart}` : '';
1354
+ const rowEnd = positions.rowEnd ? `${prefix}ax-row-end-${positions.rowEnd}` : '';
1355
+ const rowSpan = positions.rowSpan ? `${prefix}ax-row-span-${positions.rowSpan}` : '';
1356
+ const order = positions.order ? `${prefix}ax-order-${positions.order}` : ''; // Handling order
1357
+ [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {
1358
+ if (cls) {
1359
+ this.renderer.addClass(this.el.nativeElement, cls);
1232
1360
  }
1233
- // If the item has children, perform a recursive search
1234
- if (item.children && this.findAndInsert(item.children, newItems, target, position)) {
1235
- return true;
1361
+ });
1362
+ }
1363
+ clearClasses() {
1364
+ const currentClasses = this.el.nativeElement.className.split(' ');
1365
+ currentClasses.forEach((className) => {
1366
+ if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {
1367
+ this.renderer.removeClass(this.el.nativeElement, className);
1236
1368
  }
1237
- }
1238
- return false; // Target not found in this branch
1369
+ });
1239
1370
  }
1240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMenuProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1241
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMenuProviderService, providedIn: 'root' }); }
1371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1372
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: AXPGridLayoutDirective, isStandalone: true, selector: "[gridLayout]", inputs: { options: ["gridLayout", "options"] }, usesOnChanges: true, ngImport: i0 }); }
1242
1373
  }
1243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMenuProviderService, decorators: [{
1244
- type: Injectable,
1245
- args: [{ providedIn: 'root' }]
1246
- }] });
1247
-
1248
- const AXPNavigateAction = createAction('[Navigate] Action', props());
1249
- const AXPSignOutAction = createAction('[SignOut] Action');
1250
- const AXPSignInAction = createAction('[SignIn] Action');
1374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{
1375
+ type: Directive,
1376
+ args: [{
1377
+ selector: '[gridLayout]',
1378
+ standalone: true,
1379
+ }]
1380
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { options: [{
1381
+ type: Input,
1382
+ args: ['gridLayout']
1383
+ }] } });
1251
1384
 
1252
- const AXP_SETTINGS_PROVIDER = new InjectionToken('AXP_SETTINGS_PROVIDER', {
1253
- providedIn: 'root',
1254
- factory: () => {
1255
- return new AXPSettingsProviderDefault();
1385
+ class AXPStickyDirective {
1386
+ get isSticky() {
1387
+ return this._isSticky;
1256
1388
  }
1257
- });
1258
- class AXPSettingsProviderDefault {
1259
- constructor() {
1260
- this.cache = new Map();
1261
- this.localStorageKey = 'AXP_SETTINGS';
1389
+ set isSticky(v) {
1390
+ this._isSticky = v;
1391
+ this.isStickyChange.emit(v);
1262
1392
  }
1263
- async load() {
1264
- // Load settings from localStorage as a single key
1265
- const storedSettings = localStorage.getItem(this.localStorageKey);
1266
- if (storedSettings) {
1267
- const parsedSettings = JSON.parse(storedSettings);
1268
- Object.entries(parsedSettings).forEach(([key, value]) => {
1269
- this.cache.set(key, value);
1270
- });
1271
- return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));
1272
- }
1273
- return Promise.resolve([]);
1274
- }
1275
- async set(key, value) {
1276
- this.cache.set(key, value);
1277
- // Save to localStorage as a single key
1278
- const settingsObject = {};
1279
- this.cache.forEach((val, k) => {
1280
- settingsObject[k] = val;
1281
- });
1282
- localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));
1283
- }
1284
- }
1285
-
1286
- class AXPSettingsService {
1287
- constructor() {
1288
- this.settingsProvider = inject(AXP_SETTINGS_PROVIDER);
1289
- this.settingsCache = new Map();
1290
- this.changed = new Subject();
1291
- }
1292
- async load() {
1293
- try {
1294
- const settingsList = await this.settingsProvider.load();
1295
- this.settingsCache.clear();
1296
- settingsList.forEach((setting) => {
1297
- this.settingsCache.set(setting.key, setting.value);
1393
+ constructor(element, renderer, zone, cdr) {
1394
+ this.element = element;
1395
+ this.renderer = renderer;
1396
+ this.zone = zone;
1397
+ this.cdr = cdr;
1398
+ this.stickyOffset = 100;
1399
+ this.isStickyChange = new EventEmitter();
1400
+ this._isSticky = false;
1401
+ this.onParentScroll = () => {
1402
+ this.zone.runOutsideAngular(() => {
1403
+ const scrollPosition = this.parentElement === window ?
1404
+ window.scrollY :
1405
+ this.parentElement.scrollTop + this.targetElement.offsetTop;
1406
+ if (scrollPosition - this.stickyOffset >= this.topOffset && !this.isSticky) {
1407
+ this.stickyClass.split(' ').forEach(c => {
1408
+ this.renderer.addClass(this.targetElement, c);
1409
+ });
1410
+ this.isSticky = true;
1411
+ this.cdr.markForCheck();
1412
+ }
1413
+ else if (scrollPosition <= this.topOffset && this.isSticky) {
1414
+ this.stickyClass.split(' ').forEach(c => {
1415
+ this.renderer.removeClass(this.targetElement, c);
1416
+ });
1417
+ this.isSticky = false;
1418
+ this.cdr.markForCheck();
1419
+ }
1298
1420
  });
1299
- return settingsList;
1300
- }
1301
- catch (error) {
1302
- console.error('Error loading settings', error);
1303
- throw error; // Re-throw or handle it appropriately
1304
- }
1305
- }
1306
- async get(key) {
1307
- if (this.settingsCache.size == 0) {
1308
- await this.load();
1309
- }
1310
- return cloneDeep(this.settingsCache.get(key));
1421
+ };
1311
1422
  }
1312
- async set(key, value) {
1313
- if (this.settingsCache.has(key)) {
1314
- this.settingsCache.set(key, value);
1315
- await this.settingsProvider.set(key, value);
1316
- this.changed.next({ key, value });
1423
+ ngAfterViewInit() {
1424
+ if (this.stickyParent instanceof HTMLElement) {
1425
+ this.parentElement = this.stickyParent;
1317
1426
  }
1318
1427
  else {
1319
- console.warn(`Setting with key "${key}" not found.`);
1320
- this.settingsCache.set(key, value);
1321
- this.set(key, value);
1428
+ this.parentElement = document.querySelector(this.stickyParent) || window;
1322
1429
  }
1430
+ this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;
1431
+ this.topOffset = this.targetElement.offsetTop;
1432
+ this.parentElement.addEventListener('scroll', this.onParentScroll.bind(this));
1323
1433
  }
1324
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1325
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, providedIn: 'root' }); }
1326
- }
1327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, decorators: [{
1328
- type: Injectable,
1329
- args: [{
1330
- providedIn: 'root',
1331
- }]
1332
- }] });
1333
-
1334
- class AXPCommonEffects {
1335
- constructor(actions$, router, settingService) {
1336
- this.actions$ = actions$;
1337
- this.router = router;
1338
- this.settingService = settingService;
1339
- this.command$ = createEffect(() => this.actions$.pipe(ofType(AXPNavigateAction), switchMap((action) => {
1340
- if (Array.isArray(action.payload.commands))
1341
- this.router.navigate(action.payload.commands, action.payload.extras);
1342
- else {
1343
- if (action.payload.commands.toLowerCase().startsWith('http'))
1344
- window.open(action.payload.commands, '_blank');
1345
- else
1346
- this.router.navigate([action.payload.commands], action.payload.extras);
1347
- }
1348
- return of();
1349
- })), { dispatch: false });
1434
+ ngOnDestroy() {
1435
+ this.parentElement.removeEventListener('scroll', this.onParentScroll);
1350
1436
  }
1351
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects, deps: [{ token: i1$2.Actions }, { token: i1.Router }, { token: AXPSettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1352
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects }); }
1353
- }
1354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects, decorators: [{
1355
- type: Injectable
1356
- }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i1.Router }, { type: AXPSettingsService }] });
1357
-
1358
- const AXPMenuService = signalStore({ providedIn: 'root' },
1359
- // Initial State
1360
- withState((router = inject(Router)) => {
1361
- return {
1362
- items: [],
1363
- selectedMenuItem: null,
1364
- };
1365
- }),
1366
- // Methods for State Management
1367
- withMethods((store, router = inject(Router), globalStore = inject((Store))) => {
1368
- return {
1369
- setMenuItems(items) {
1370
- patchState(store, { items: items });
1371
- },
1372
- selectMenuItemByRoute(path) {
1373
- const findItem = (items) => {
1374
- for (const item of items) {
1375
- if (item.children) {
1376
- const foundChild = findItem(item.children);
1377
- if (foundChild) {
1378
- return foundChild;
1379
- }
1380
- }
1381
- else if (item.path === path) {
1382
- return item;
1383
- }
1384
- }
1385
- return null;
1386
- };
1387
- const items = store.items();
1388
- const selectedItem = findItem(items);
1389
- patchState(store, { selectedMenuItem: selectedItem });
1390
- },
1391
- executeCommand(item) {
1392
- if (item.command) {
1393
- globalStore.dispatch(item.command);
1394
- }
1395
- else if (item.path) {
1396
- globalStore.dispatch(AXPNavigateAction({ payload: { commands: item.path } }));
1397
- }
1398
- patchState(store, { selectedMenuItem: item });
1399
- },
1400
- isItemOpen(item) {
1401
- const selectedItem = store.selectedMenuItem();
1402
- if (!selectedItem) {
1403
- return false;
1404
- }
1405
- const findParent = (currentItem, targetItem) => {
1406
- if (currentItem.children?.includes(targetItem)) {
1407
- return true;
1408
- }
1409
- return currentItem.children?.some(child => findParent(child, targetItem)) ?? false;
1410
- };
1411
- return item === selectedItem || findParent(item, selectedItem);
1412
- }
1413
- };
1414
- }), withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => ({
1415
- onInit() {
1416
- (async () => {
1417
- const items = await menuProviderService.items();
1418
- patchState(store, { items: items });
1419
- })();
1420
- },
1421
- onDestroy() {
1422
- },
1423
- })));
1424
-
1425
- class AXPFooterTextSlotComponent {
1426
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1427
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPFooterTextSlotComponent, isStandalone: true, selector: "ng-component", inputs: { text: "text" }, ngImport: i0, template: `
1428
- <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
1429
- `, isInline: true }); }
1437
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1438
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: AXPStickyDirective, isStandalone: true, selector: "[axpSticky]", inputs: { stickyClass: ["axpSticky", "stickyClass"], stickyOffset: "stickyOffset", stickyParent: "stickyParent", stickyTarget: "stickyTarget" }, outputs: { isStickyChange: "isStickyChange" }, exportAs: ["axpSticky"], ngImport: i0 }); }
1430
1439
  }
1431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
1432
- type: Component,
1440
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPStickyDirective, decorators: [{
1441
+ type: Directive,
1433
1442
  args: [{
1434
- template: `
1435
- <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
1436
- `,
1443
+ selector: '[axpSticky]',
1444
+ exportAs: 'axpSticky',
1437
1445
  standalone: true
1438
1446
  }]
1439
- }], propDecorators: { text: [{
1440
- type: Input
1441
- }] } });
1442
-
1443
- class AXPNavBarSlotComponent {
1444
- constructor() {
1445
- this.store = inject(Store);
1446
- }
1447
- handleCommand(action) {
1448
- if (action)
1449
- this.store.dispatch(action);
1450
- }
1451
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1452
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPNavBarSlotComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, ngImport: i0, template: `
1453
- <div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
1454
- <a *ngFor="let link of items" (click)="handleCommand(link.command)" >{{ link.text }}</a>
1455
- </div>
1456
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None }); }
1457
- }
1458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
1459
- type: Component,
1460
- args: [{
1461
- template: `
1462
- <div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
1463
- <a *ngFor="let link of items" (click)="handleCommand(link.command)" >{{ link.text }}</a>
1464
- </div>
1465
- `,
1466
- standalone: true,
1467
- imports: [CommonModule],
1468
- encapsulation: ViewEncapsulation.None
1469
- }]
1470
- }], propDecorators: { items: [{
1471
- type: Input
1472
- }] } });
1473
-
1474
- const AXPWindowResizeAction = createAction('[Layout] Resize');
1475
- //
1476
- const AXPLayoutRootDrawerClose = createAction('[Root Drawer] Close');
1477
- const AXPLayoutRootDrawerToggle = createAction('[Root Drawer] Toggle');
1478
- const AXPLayoutChildDrawerClose = createAction('[Child Drawer] Close');
1479
- const AXPLayoutChildDrawerToggle = createAction('[Child Drawer] Toggle');
1480
- //
1481
- const AXPLoadingShowAction = createAction('[Theme] Loading Show');
1482
- const AXPLoadingHideAction = createAction('[Theme] Loading Hide');
1483
-
1484
- class AXPLayoutEffects {
1485
- constructor() {
1486
- this.settingService = inject(AXPSettingsService);
1487
- this.actions$ = inject(Actions);
1488
- this.store$ = inject(Store);
1489
- this.resize$ = createEffect(() => fromEvent(window, 'resize').pipe(debounceTime(300), map(() => AXPWindowResizeAction())));
1490
- }
1491
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1492
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutEffects }); }
1493
- }
1494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutEffects, decorators: [{
1495
- type: Injectable
1496
- }] });
1497
-
1498
- const platform$1 = new AXPlatform();
1499
- const initialState = {
1500
- screen: {
1501
- small: platform$1.is('SM') || platform$1.is('MD'),
1502
- },
1503
- drawer: {
1504
- root: !(platform$1.is('SM') || platform$1.is('MD')),
1505
- child: !(platform$1.is('SM') || platform$1.is('MD'))
1506
- },
1507
- loading: false
1508
- };
1509
-
1510
- const platform = new AXPlatform();
1511
- const AXPLayoutFeature = createFeature({
1512
- name: 'layout',
1513
- reducer: createReducer(initialState,
1514
- // close drawers on navigatin
1515
- on(AXPNavigateAction, (state, action) => ({
1516
- ...state,
1517
- drawer: {
1518
- ...state.drawer,
1519
- root: platform.is('SM') ? false : state.drawer.root,
1520
- child: platform.is('SM') ? false : state.drawer.child,
1521
- },
1522
- })),
1523
- // toggle root drawers
1524
- on(AXPLayoutRootDrawerToggle, (state, action) => ({
1525
- ...state,
1526
- drawer: {
1527
- ...state.drawer,
1528
- root: !state.drawer.root,
1529
- child: !state.drawer.root && platform.is('SM') ? false : state.drawer.child,
1530
- },
1531
- })),
1532
- // close root drawers
1533
- on(AXPLayoutRootDrawerClose, (state) => ({
1534
- ...state,
1535
- drawer: { ...state.drawer, root: false },
1536
- })),
1537
- // toggle second level child drawers
1538
- on(AXPLayoutChildDrawerToggle, (state) => ({
1539
- ...state,
1540
- drawer: { ...state.drawer, child: !state.drawer.child },
1541
- })),
1542
- // close second level child drawers
1543
- on(AXPLayoutChildDrawerClose, (state) => ({
1544
- ...state,
1545
- drawer: { ...state.drawer, child: false },
1546
- })),
1547
- // close drawers on window resize event
1548
- on(AXPWindowResizeAction, (state) => ({
1549
- ...state,
1550
- screen: { small: platform.is('SM') || platform.is('MD') },
1551
- drawer: {
1552
- ...state.drawer,
1553
- root: platform.is('SM') || platform.is('MD') ? false : state.drawer.root,
1554
- child: platform.is('SM') || platform.is('MD') ? false : state.drawer.child,
1555
- },
1556
- })),
1557
- // Admin Root layout loading
1558
- on(AXPLoadingShowAction, (state) => ({
1559
- ...state,
1560
- loading: true,
1561
- })), on(AXPLoadingHideAction, (state) => ({
1562
- ...state,
1563
- loading: false,
1564
- }))),
1565
- });
1566
- const { name, reducer, selectLayoutState } = AXPLayoutFeature;
1567
-
1568
- const getRootDrawer = () => createSelector(selectLayoutState, (value) => value.drawer.root);
1569
- const getChildDrawer = () => createSelector(selectLayoutState, (value) => value.drawer.child);
1570
- const isSmallScreen = () => createSelector(selectLayoutState, (value) => value.screen.small);
1571
- const isLoading = () => createSelector(selectLayoutState, (value) => value.loading);
1572
-
1573
- //TODO Loading, Redirect, Drawer, Show toast
1574
- const AXPRedirectEvent = createWorkFlowEvent('Redirect Event Fired');
1575
- class AXPWorkflowNavigateAction extends AXPWorkflowAction {
1576
- constructor() {
1577
- super(...arguments);
1578
- this.router = inject(Router);
1579
- }
1580
- async execute(context) {
1581
- const payload = context.getVariable('payload');
1582
- if (Array.isArray(payload.commands))
1583
- this.router.navigate(payload.commands, payload.extras);
1584
- else {
1585
- if (payload.commands.toLowerCase().startsWith('http'))
1586
- window.open(payload.commands, '_blank');
1587
- else
1588
- this.router.navigate([payload.commands], payload.extras);
1589
- }
1590
- }
1591
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWorkflowNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1592
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWorkflowNavigateAction }); }
1593
- }
1594
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{
1595
- type: Injectable
1596
- }] });
1597
- class AXPDialogConfirmAction extends AXPWorkflowAction {
1447
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { stickyClass: [{
1448
+ type: Input,
1449
+ args: ['axpSticky']
1450
+ }], stickyOffset: [{
1451
+ type: Input,
1452
+ args: ['stickyOffset']
1453
+ }], isStickyChange: [{
1454
+ type: Output
1455
+ }], stickyParent: [{
1456
+ type: Input
1457
+ }], stickyTarget: [{
1458
+ type: Input
1459
+ }] } });
1460
+
1461
+ class AXPComponentSlotRegistryService {
1598
1462
  constructor() {
1599
- super(...arguments);
1600
- this.dialogService = inject(AXDialogService);
1601
- this.translationService = inject(AXTranslationService);
1463
+ this.registry = new Map();
1602
1464
  }
1603
- async execute(context) {
1604
- context.setOutput('result', false);
1605
- const dialogResult = await this.dialogService.confirm(await this.translationService.translateAsync(this.title), await this.translationService.translateAsync(this.message), (await this.translationService.translateAsync(this.type)));
1606
- context.setOutput('result', dialogResult.result);
1465
+ register(slotName, config) {
1466
+ let configs = this.registry.get(slotName) || [];
1467
+ // Check if the component is already registered in this slot
1468
+ const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);
1469
+ if (!isDuplicate) {
1470
+ configs = [...configs, config]; // Add the new configuration
1471
+ this.registry.set(slotName, configs);
1472
+ }
1607
1473
  }
1608
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1609
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDialogConfirmAction }); }
1474
+ get(slotName) {
1475
+ return this.registry.get(slotName) || [];
1476
+ }
1477
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1478
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotRegistryService, providedIn: 'root' }); }
1610
1479
  }
1611
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{
1612
- type: Injectable
1480
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotRegistryService, decorators: [{
1481
+ type: Injectable,
1482
+ args: [{
1483
+ providedIn: 'root'
1484
+ }]
1613
1485
  }] });
1614
- class AXPToastAction extends AXPWorkflowAction {
1615
- constructor() {
1616
- super(...arguments);
1617
- this.toastService = inject(AXToastService);
1618
- this.translationService = inject(AXTranslationService);
1486
+
1487
+ class AXPComponentSlotLoaderService {
1488
+ constructor(registryService, injector) {
1489
+ this.registryService = registryService;
1490
+ this.injector = injector;
1619
1491
  }
1620
- async execute(context) {
1621
- this.toastService.show({
1622
- color: this.color,
1623
- title: await this.translationService.translateAsync(this.title),
1624
- content: await this.translationService.translateAsync(this.content),
1625
- closeButton: true,
1626
- timeOut: 3000,
1627
- timeOutProgress: true,
1628
- });
1492
+ loadComponent(slotName, viewContainerRef) {
1493
+ const configs = sortBy(this.registryService.get(slotName), (c) => c.priority ?? 0);
1494
+ if (configs) {
1495
+ viewContainerRef.clear();
1496
+ configs.forEach(async (config) => {
1497
+ let component;
1498
+ let options = {};
1499
+ if (typeof config.loadComponent === 'function') {
1500
+ // If component is a function
1501
+ runInInjectionContext(this.injector, () => {
1502
+ component = config.loadComponent?.();
1503
+ });
1504
+ }
1505
+ else if (config.component) {
1506
+ // If component is a Type
1507
+ component = config.component;
1508
+ }
1509
+ //
1510
+ if (typeof config.options === 'function') {
1511
+ // If options is a function
1512
+ runInInjectionContext(this.injector, () => {
1513
+ const fun = config.options;
1514
+ options = fun();
1515
+ });
1516
+ }
1517
+ else if (config.options) {
1518
+ // If options is a object
1519
+ options = config.options;
1520
+ }
1521
+ //
1522
+ if (component != null) {
1523
+ const componentRef = viewContainerRef.createComponent(component);
1524
+ Object.assign(componentRef.instance, options);
1525
+ }
1526
+ });
1527
+ }
1629
1528
  }
1630
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1631
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPToastAction }); }
1529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotLoaderService, deps: [{ token: AXPComponentSlotRegistryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1530
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotLoaderService, providedIn: 'root' }); }
1632
1531
  }
1633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPToastAction, decorators: [{
1634
- type: Injectable
1635
- }] });
1532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotLoaderService, decorators: [{
1533
+ type: Injectable,
1534
+ args: [{
1535
+ providedIn: 'root',
1536
+ }]
1537
+ }], ctorParameters: () => [{ type: AXPComponentSlotRegistryService }, { type: i0.Injector }] });
1636
1538
 
1637
- class AXMWorkflowErrorHandler {
1638
- constructor() {
1639
- this.dialog = inject(AXDialogService);
1539
+ class AXPComponentSlotDirective {
1540
+ constructor(dynamicLoaderService, viewContainerRef) {
1541
+ this.dynamicLoaderService = dynamicLoaderService;
1542
+ this.viewContainerRef = viewContainerRef;
1640
1543
  }
1641
- handleError(error, next) {
1642
- if (error instanceof AXPWorkflowError) {
1643
- this.dialog.alert("Somthing is wrong!", error.inner ? error.inner.message : error.message, 'danger');
1644
- next(error);
1645
- }
1646
- else {
1647
- next(error);
1648
- }
1544
+ ngOnInit() {
1545
+ this.dynamicLoaderService.loadComponent(this.name, this.viewContainerRef);
1649
1546
  }
1650
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1651
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMWorkflowErrorHandler }); }
1547
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotDirective, deps: [{ token: AXPComponentSlotLoaderService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1548
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: AXPComponentSlotDirective, selector: "axp-component-slot", inputs: { name: "name" }, ngImport: i0 }); }
1652
1549
  }
1653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{
1654
- type: Injectable
1655
- }] });
1550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotDirective, decorators: [{
1551
+ type: Directive,
1552
+ args: [{
1553
+ selector: 'axp-component-slot',
1554
+ }]
1555
+ }], ctorParameters: () => [{ type: AXPComponentSlotLoaderService }, { type: i0.ViewContainerRef }], propDecorators: { name: [{
1556
+ type: Input
1557
+ }] } });
1656
1558
 
1657
- class AXPCommonModule {
1559
+ class AXPComponentSlotModule {
1658
1560
  static forRoot(configs) {
1659
1561
  return {
1660
- ngModule: AXPCommonModule,
1562
+ ngModule: AXPComponentSlotModule,
1661
1563
  providers: [
1662
- ...(configs?.errorHandlers || []),
1663
1564
  {
1664
- provide: 'AXPCommonModuleFactory',
1565
+ provide: 'AXPComponentSlotModuleFactory',
1665
1566
  useFactory: (registry) => () => {
1666
- registry.register(...(configs?.errorHandlers || []));
1567
+ if (configs) {
1568
+ for (const [key, value] of Object.entries(configs)) {
1569
+ value.forEach(v => {
1570
+ registry.register(key, v);
1571
+ });
1572
+ }
1573
+ }
1667
1574
  },
1668
- deps: [AXPErrorHandlerRegistryService],
1669
- multi: true,
1670
- },
1671
- ],
1575
+ deps: [AXPComponentSlotRegistryService],
1576
+ multi: true
1577
+ }
1578
+ ]
1672
1579
  };
1673
1580
  }
1674
1581
  static forChild(configs) {
1675
1582
  return {
1676
- ngModule: AXPCommonModule,
1583
+ ngModule: AXPComponentSlotModule,
1677
1584
  providers: [
1678
- ...(configs?.errorHandlers || []),
1679
1585
  {
1680
- provide: 'AXPCommonModuleFactory',
1586
+ provide: 'AXPComponentSlotModuleFactory',
1681
1587
  useFactory: (registry) => () => {
1682
- registry.register(...(configs?.errorHandlers || []));
1588
+ if (configs) {
1589
+ for (const [key, value] of Object.entries(configs)) {
1590
+ value.forEach(v => {
1591
+ registry.register(key, v);
1592
+ });
1593
+ }
1594
+ }
1683
1595
  },
1684
- deps: [AXPErrorHandlerRegistryService],
1685
- multi: true,
1686
- },
1687
- ],
1596
+ deps: [AXPComponentSlotRegistryService],
1597
+ multi: true
1598
+ }
1599
+ ]
1688
1600
  };
1689
1601
  }
1690
1602
  /**
1691
1603
  * @ignore
1692
1604
  */
1693
- constructor(instances, appInitService, settingsService, seederService) {
1694
- instances.forEach((f) => {
1605
+ constructor(instances) {
1606
+ instances?.forEach(f => {
1695
1607
  f();
1696
1608
  });
1697
- // appInitService.registerTask({
1698
- // name: 'Modules',
1699
- // statusText: 'Initializing Modules ...',
1700
- // run: () =>
1701
- // new Promise<void>((resolve) => {
1702
- // setTimeout(() => {
1703
- // resolve();
1704
- // }, 250);
1705
- // }),
1706
- // });
1707
- //
1708
- appInitService.registerTask({
1709
- name: 'Settings',
1710
- statusText: 'Loading Settings ...',
1711
- run: async () => {
1712
- await settingsService.load();
1609
+ }
1610
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule, deps: [{ token: 'AXPComponentSlotModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1611
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule, declarations: [AXPComponentSlotDirective], exports: [AXPComponentSlotDirective] }); }
1612
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule }); }
1613
+ }
1614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPComponentSlotModule, decorators: [{
1615
+ type: NgModule,
1616
+ args: [{
1617
+ declarations: [AXPComponentSlotDirective],
1618
+ exports: [AXPComponentSlotDirective]
1619
+ }]
1620
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1621
+ type: Optional
1622
+ }, {
1623
+ type: Inject,
1624
+ args: ['AXPComponentSlotModuleFactory']
1625
+ }] }] });
1626
+
1627
+ class AXPLogoComponent {
1628
+ ngOnInit() {
1629
+ switch (true) {
1630
+ case this.source instanceof AXPTextLogoConfig:
1631
+ this.logoType = 'text';
1632
+ break;
1633
+ case this.source instanceof AXPImageUrlLogoConfig:
1634
+ this.logoType = 'url';
1635
+ break;
1636
+ case this.source instanceof AXPFontIconLogoConfig:
1637
+ this.logoType = 'iconClass';
1638
+ break;
1639
+ case this.source instanceof AXPComponentLogoConfig:
1640
+ this.logoType = 'component';
1641
+ break;
1642
+ default:
1643
+ break;
1644
+ }
1645
+ }
1646
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1647
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLogoComponent, isStandalone: true, selector: "axp-logo", inputs: { source: "source" }, host: { classAttribute: "ax-flex ax-justify-center" }, ngImport: i0, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2$1.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
1648
+ }
1649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLogoComponent, decorators: [{
1650
+ type: Component,
1651
+ args: [{ selector: 'axp-logo', standalone: true, imports: [CommonModule, AXImageModule, AXDecoratorModule], host: { 'class': 'ax-flex ax-justify-center' }, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}" }]
1652
+ }], propDecorators: { source: [{
1653
+ type: Input
1654
+ }] } });
1655
+
1656
+ const AXP_MENU_PROVIDER = new InjectionToken('AXP_MENU_PROVIDER');
1657
+ class AXPMenuProviderService {
1658
+ constructor() {
1659
+ this.providers = inject(AXP_MENU_PROVIDER, { optional: true });
1660
+ this.cache = null;
1661
+ this.pendingInserts = [];
1662
+ this.pendingRemovals = [];
1663
+ this.pendingUpdates = [];
1664
+ this.pendingAdditions = [];
1665
+ }
1666
+ async items() {
1667
+ // Return cached items if available
1668
+ if (this.cache) {
1669
+ return this.cache;
1670
+ }
1671
+ const items = [];
1672
+ const context = this.createMenuProviderContext(items);
1673
+ if (Array.isArray(this.providers)) {
1674
+ for (const provider of this.providers) {
1675
+ await provider.provide(context);
1713
1676
  }
1714
- });
1715
- //
1716
- //
1717
- appInitService.registerTask({
1718
- name: 'Seeder',
1719
- statusText: 'Seed Data ...',
1720
- run: async () => {
1721
- await seederService.seed();
1722
- },
1723
- });
1677
+ }
1678
+ // Apply pending operations
1679
+ this.applyPendingOperations(items);
1680
+ // Cache the computed items
1681
+ this.cache = items;
1682
+ return items;
1724
1683
  }
1725
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: AXPAppStartUpService }, { token: AXPSettingsService }, { token: AXPDataSeederService }], target: i0.ɵɵFactoryTarget.NgModule }); }
1726
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, imports: [i1$2.EffectsFeatureModule, i5$1.StoreFeatureModule, i6.AXPWorkflowModule, AXPopupModule,
1727
- AXDateTimeModule,
1728
- AXToastModule], exports: [RouterModule] }); }
1729
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, providers: [
1730
- AXPAppStartUpProvider,
1731
- {
1732
- provide: ErrorHandler,
1733
- useClass: AXPGlobalErrorHandler,
1684
+ createMenuProviderContext(items) {
1685
+ return {
1686
+ addItems: (newItems) => {
1687
+ items.push(...newItems);
1734
1688
  },
1735
- ], imports: [EffectsModule.forFeature([AXPCommonEffects, AXPLayoutEffects]),
1736
- StoreModule.forFeature(AXPLayoutFeature),
1737
- AXPWorkflowModule.forChild({
1738
- actions: {
1739
- navigate: AXPDialogConfirmAction,
1740
- 'show-prompt-dialog': AXPDialogConfirmAction,
1741
- 'show-toast': AXPToastAction,
1742
- },
1743
- }),
1744
- AXPopupModule,
1745
- AXDateTimeModule,
1746
- AXToastModule, RouterModule] }); }
1689
+ find: (target) => {
1690
+ return {
1691
+ insert: (newItems, position) => {
1692
+ this.pendingInserts.push({ target, newItems, position });
1693
+ },
1694
+ remove: () => {
1695
+ this.pendingRemovals.push(target);
1696
+ },
1697
+ update: (updatedItem) => {
1698
+ this.pendingUpdates.push({ target, updatedItem });
1699
+ },
1700
+ addItems: (newItems) => {
1701
+ this.pendingAdditions.push({ target, newItems });
1702
+ }
1703
+ };
1704
+ }
1705
+ };
1706
+ }
1707
+ applyPendingOperations(items) {
1708
+ for (const { target, newItems, position } of this.pendingInserts) {
1709
+ const foundItemInfo = this.findItemWithParent(items, target);
1710
+ const { foundItem, parentItems } = foundItemInfo;
1711
+ if (!foundItem) {
1712
+ console.warn(`Target "${target}" not found, appending items.`);
1713
+ items.push(...newItems);
1714
+ }
1715
+ else {
1716
+ const index = parentItems.indexOf(foundItem);
1717
+ const insertPosition = position === 'before' ? index : index + 1;
1718
+ parentItems.splice(insertPosition, 0, ...newItems);
1719
+ }
1720
+ }
1721
+ for (const target of this.pendingRemovals) {
1722
+ const foundItemInfo = this.findItemWithParent(items, target);
1723
+ const { foundItem, parentItems } = foundItemInfo;
1724
+ if (!foundItem) {
1725
+ console.warn(`Target "${target}" not found, nothing to remove.`);
1726
+ }
1727
+ else {
1728
+ const index = parentItems.indexOf(foundItem);
1729
+ parentItems.splice(index, 1);
1730
+ }
1731
+ }
1732
+ for (const { target, updatedItem } of this.pendingUpdates) {
1733
+ const foundItemInfo = this.findItemWithParent(items, target);
1734
+ const { foundItem } = foundItemInfo;
1735
+ if (!foundItem) {
1736
+ console.warn(`Target "${target}" not found, nothing to update.`);
1737
+ }
1738
+ else {
1739
+ Object.assign(foundItem, updatedItem);
1740
+ }
1741
+ }
1742
+ for (const { target, newItems } of this.pendingAdditions) {
1743
+ const foundItemInfo = this.findItemWithParent(items, target);
1744
+ const { foundItem } = foundItemInfo;
1745
+ if (!foundItem) {
1746
+ console.warn(`Target "${target}" not found, nothing to add items to.`);
1747
+ }
1748
+ else {
1749
+ if (!foundItem.children) {
1750
+ foundItem.children = [];
1751
+ }
1752
+ foundItem.children.push(...newItems);
1753
+ }
1754
+ }
1755
+ // Clear pending operations after applying them
1756
+ this.pendingInserts = [];
1757
+ this.pendingRemovals = [];
1758
+ this.pendingUpdates = [];
1759
+ this.pendingAdditions = [];
1760
+ }
1761
+ findItemWithParent(items, target, parentItems = items) {
1762
+ for (const item of items) {
1763
+ if (item.name === target) {
1764
+ return { foundItem: item, parentItems };
1765
+ }
1766
+ if (item.children) {
1767
+ const result = this.findItemWithParent(item.children, target, item.children);
1768
+ if (result.foundItem) {
1769
+ return result;
1770
+ }
1771
+ }
1772
+ }
1773
+ return { foundItem: null, parentItems: items };
1774
+ }
1775
+ // Method to clear the cache, if needed (e.g., when providers change)
1776
+ clearCache() {
1777
+ this.cache = null;
1778
+ this.pendingInserts = [];
1779
+ this.pendingRemovals = [];
1780
+ this.pendingUpdates = [];
1781
+ this.pendingAdditions = [];
1782
+ }
1783
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMenuProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1784
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMenuProviderService, providedIn: 'root' }); }
1747
1785
  }
1748
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonModule, decorators: [{
1749
- type: NgModule,
1750
- args: [{
1751
- imports: [
1752
- EffectsModule.forFeature([AXPCommonEffects, AXPLayoutEffects]),
1753
- StoreModule.forFeature(AXPLayoutFeature),
1754
- AXPWorkflowModule.forChild({
1755
- actions: {
1756
- navigate: AXPDialogConfirmAction,
1757
- 'show-prompt-dialog': AXPDialogConfirmAction,
1758
- 'show-toast': AXPToastAction,
1759
- },
1760
- }),
1761
- AXPopupModule,
1762
- AXDateTimeModule,
1763
- AXToastModule,
1764
- ],
1765
- exports: [RouterModule],
1766
- providers: [
1767
- AXPAppStartUpProvider,
1768
- {
1769
- provide: ErrorHandler,
1770
- useClass: AXPGlobalErrorHandler,
1771
- },
1772
- ],
1773
- }]
1774
- }], ctorParameters: () => [{ type: undefined, decorators: [{
1775
- type: Inject,
1776
- args: ['AXPCommonModuleFactory']
1777
- }] }, { type: AXPAppStartUpService }, { type: AXPSettingsService }, { type: AXPDataSeederService }] });
1786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMenuProviderService, decorators: [{
1787
+ type: Injectable,
1788
+ args: [{ providedIn: 'root' }]
1789
+ }] });
1778
1790
 
1779
- const ENVIRONMENT = new InjectionToken('ENVIRONMENT');
1780
- const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN', {
1781
- providedIn: 'root',
1782
- factory: () => {
1783
- return AXPPlatformDefaultConfigs;
1791
+ const AXPMenuService = signalStore({ providedIn: 'root' },
1792
+ // Initial State
1793
+ withState((router = inject(Router)) => {
1794
+ return {
1795
+ items: [],
1796
+ selectedMenuItem: {
1797
+ item: null,
1798
+ isFullMatch: false
1799
+ },
1800
+ };
1801
+ }),
1802
+ // Methods for State Management
1803
+ withMethods((store, router = inject(Router), globalStore = inject(Store)) => {
1804
+ return {
1805
+ setMenuItems(items) {
1806
+ patchState(store, { items: items });
1807
+ },
1808
+ selectMenuItemByRoute(path) {
1809
+ const findItem = (items) => {
1810
+ for (const item of items) {
1811
+ // Recursively search children first
1812
+ if (item.children) {
1813
+ const foundChild = findItem(item.children);
1814
+ if (foundChild.item) {
1815
+ return foundChild;
1816
+ }
1817
+ }
1818
+ if (item.path) {
1819
+ // Check if the item path matches the current path
1820
+ const matchResult = pathsMatch(item.path, path);
1821
+ if (matchResult.isMatch) {
1822
+ return { item, isPartialMatch: matchResult.isPartial };
1823
+ }
1824
+ }
1825
+ }
1826
+ return { item: null, isPartialMatch: false };
1827
+ };
1828
+ const pathsMatch = (itemPath, currentPath) => {
1829
+ // Split both paths into segments
1830
+ const itemSegments = itemPath.split('/').filter(segment => segment.length > 0);
1831
+ const pathSegments = currentPath.split('/').filter(segment => segment.length > 0);
1832
+ // Determine the minimum number of segments to compare
1833
+ const minLength = Math.min(itemSegments.length, pathSegments.length);
1834
+ // Compare segments until we find a mismatch
1835
+ let commonBaseLength = 0;
1836
+ for (let i = 0; i < minLength; i++) {
1837
+ if (itemSegments[i] === pathSegments[i]) {
1838
+ commonBaseLength++;
1839
+ }
1840
+ else {
1841
+ break; // Stop at the first mismatch
1842
+ }
1843
+ }
1844
+ // Determine if we have a common base of at least 5 segments
1845
+ const isPartialMatch = commonBaseLength >= 5 && commonBaseLength < itemSegments.length;
1846
+ const isExactMatch = commonBaseLength === itemSegments.length && itemSegments.length === pathSegments.length;
1847
+ return {
1848
+ isMatch: isPartialMatch || isExactMatch,
1849
+ isPartial: isPartialMatch && !isExactMatch,
1850
+ };
1851
+ };
1852
+ const items = store.items();
1853
+ const { item, isPartialMatch } = findItem(items);
1854
+ patchState(store, { selectedMenuItem: { item, isFullMatch: !isPartialMatch } });
1855
+ },
1856
+ executeCommand(item) {
1857
+ if (item.command) {
1858
+ globalStore.dispatch(item.command);
1859
+ }
1860
+ else if (item.path) {
1861
+ globalStore.dispatch(AXPNavigateAction({ payload: { commands: item.path } }));
1862
+ }
1863
+ patchState(store, { selectedMenuItem: { item, isFullMatch: true } });
1864
+ },
1865
+ isItemOpen(item) {
1866
+ const selectedItem = store.selectedMenuItem();
1867
+ if (!selectedItem) {
1868
+ return false;
1869
+ }
1870
+ const findParent = (currentItem, targetItem) => {
1871
+ if (currentItem.children?.includes(targetItem)) {
1872
+ return true;
1873
+ }
1874
+ return currentItem.children?.some(child => findParent(child, targetItem)) ?? false;
1875
+ };
1876
+ return item === selectedItem?.item || findParent(item, selectedItem.item);
1877
+ }
1878
+ };
1879
+ }), withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => ({
1880
+ onInit() {
1881
+ (async () => {
1882
+ const items = await menuProviderService.items();
1883
+ patchState(store, { items: items });
1884
+ })();
1784
1885
  },
1785
- });
1786
- const AXPPlatformDefaultConfigs = {
1787
- copyright: 'ACoreX @ 2023',
1788
- title: 'ACoreX Platform',
1789
- logo: {
1790
- dark: new AXPTextLogoConfig('ACoreX'),
1791
- light: new AXPTextLogoConfig('ACoreX'),
1792
- colored: new AXPTextLogoConfig('ACoreX'),
1886
+ onDestroy() {
1793
1887
  },
1794
- useLocalData: false,
1795
- network: {
1796
- timeOut: 5000,
1797
- }
1798
- };
1799
- function configPlatform(config = AXPPlatformDefaultConfigs) {
1800
- return merge(AXPPlatformDefaultConfigs, config);
1888
+ })));
1889
+
1890
+ class AXPFooterTextSlotComponent {
1891
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1892
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPFooterTextSlotComponent, isStandalone: true, selector: "ng-component", inputs: { text: "text" }, ngImport: i0, template: `
1893
+ <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
1894
+ `, isInline: true }); }
1801
1895
  }
1896
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
1897
+ type: Component,
1898
+ args: [{
1899
+ template: `
1900
+ <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
1901
+ `,
1902
+ standalone: true
1903
+ }]
1904
+ }], propDecorators: { text: [{
1905
+ type: Input
1906
+ }] } });
1802
1907
 
1803
- const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');
1908
+ class AXPNavBarSlotComponent {
1909
+ constructor() {
1910
+ this.store = inject(Store);
1911
+ }
1912
+ handleCommand(action) {
1913
+ if (action)
1914
+ this.store.dispatch(action);
1915
+ }
1916
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1917
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPNavBarSlotComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, ngImport: i0, template: `
1918
+ <div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
1919
+ <a *ngFor="let link of items" (click)="handleCommand(link.command)" >{{ link.text }}</a>
1920
+ </div>
1921
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None }); }
1922
+ }
1923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
1924
+ type: Component,
1925
+ args: [{
1926
+ template: `
1927
+ <div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
1928
+ <a *ngFor="let link of items" (click)="handleCommand(link.command)" >{{ link.text }}</a>
1929
+ </div>
1930
+ `,
1931
+ standalone: true,
1932
+ imports: [CommonModule],
1933
+ encapsulation: ViewEncapsulation.None
1934
+ }]
1935
+ }], propDecorators: { items: [{
1936
+ type: Input
1937
+ }] } });
1804
1938
 
1805
1939
  class AXPSchemaRegistryService {
1806
1940
  constructor() {
@@ -2039,7 +2173,7 @@ class AXPWidgetFilterRendererComponent {
2039
2173
  } @else {
2040
2174
  <ng-template [cdkPortalOutlet]="portal" (attached)="handleAttached($event)"></ng-template>
2041
2175
  }
2042
- `, isInline: true, dependencies: [{ kind: "directive", type: i1$3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i2$1.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2176
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1$2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i2$2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2043
2177
  }
2044
2178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetFilterRendererComponent, decorators: [{
2045
2179
  type: Component,
@@ -2284,7 +2418,7 @@ class AXPWidgetRendererComponent {
2284
2418
  } @else {
2285
2419
  <ng-template [cdkPortalOutlet]="portal" (attached)="handleAttached($event)"></ng-template>
2286
2420
  }
2287
- `, isInline: true, dependencies: [{ kind: "directive", type: i1$3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i2$1.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2421
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1$2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i2$2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2288
2422
  }
2289
2423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetRendererComponent, decorators: [{
2290
2424
  type: Component,
@@ -2471,22 +2605,22 @@ class AXPCommonWidgetModule {
2471
2605
  service.register({
2472
2606
  component: {
2473
2607
  view: {
2474
- component: () => import('./acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs').then((c) => c.AXPTextWidgetViewComponent),
2608
+ component: () => import('./acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs').then((c) => c.AXPTextWidgetViewComponent),
2475
2609
  },
2476
2610
  filter: {
2477
- component: () => import('./acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2611
+ component: () => import('./acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2478
2612
  },
2479
2613
  edit: {
2480
- component: () => import('./acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs').then((c) => c.AXPTextWidgetEditComponent),
2614
+ component: () => import('./acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs').then((c) => c.AXPTextWidgetEditComponent),
2481
2615
  },
2482
2616
  column: {
2483
- component: () => import('./acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs').then((c) => c.AXPTextWidgetColumnComponent),
2617
+ component: () => import('./acorex-platform-common-text-widget-column.component-DVczwvKA.mjs').then((c) => c.AXPTextWidgetColumnComponent),
2484
2618
  options: { allowResizing: true },
2485
2619
  },
2486
2620
  },
2487
2621
  filterOptions: {
2488
2622
  operators: [...STRING_OPERATORS],
2489
- default: CONTAINS_OPER,
2623
+ default: EQ_OPER,
2490
2624
  },
2491
2625
  name: widgetSchemas.text,
2492
2626
  dataType: 'string',
@@ -2495,7 +2629,7 @@ class AXPCommonWidgetModule {
2495
2629
  name: widgetSchemas.largetext,
2496
2630
  component: {
2497
2631
  edit: {
2498
- component: () => import('./acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs').then((c) => c.AXPLargeTextWidgetEditComponent),
2632
+ component: () => import('./acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs').then((c) => c.AXPLargeTextWidgetEditComponent),
2499
2633
  },
2500
2634
  column: {
2501
2635
  options: {
@@ -2508,16 +2642,16 @@ class AXPCommonWidgetModule {
2508
2642
  service.register({
2509
2643
  component: {
2510
2644
  view: {
2511
- component: () => import('./acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs').then((c) => c.AXPNumberWidgetViewComponent),
2645
+ component: () => import('./acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs').then((c) => c.AXPNumberWidgetViewComponent),
2512
2646
  },
2513
2647
  filter: {
2514
- component: () => import('./acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs').then((c) => c.AXPNumberWidgetFilterComponent),
2648
+ component: () => import('./acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs').then((c) => c.AXPNumberWidgetFilterComponent),
2515
2649
  },
2516
2650
  edit: {
2517
- component: () => import('./acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs').then((c) => c.AXPNumberWidgetEditComponent),
2651
+ component: () => import('./acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs').then((c) => c.AXPNumberWidgetEditComponent),
2518
2652
  },
2519
2653
  column: {
2520
- component: () => import('./acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs').then((c) => c.AXPNumberWidgetViewComponent),
2654
+ component: () => import('./acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs').then((c) => c.AXPNumberWidgetViewComponent),
2521
2655
  options: { allowResizing: true },
2522
2656
  },
2523
2657
  },
@@ -2545,23 +2679,23 @@ class AXPCommonWidgetModule {
2545
2679
  service.register({
2546
2680
  component: {
2547
2681
  view: {
2548
- component: () => import('./acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs').then((c) => c.AXPPhoneWidgetViewComponent),
2682
+ component: () => import('./acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs').then((c) => c.AXPPhoneWidgetViewComponent),
2549
2683
  },
2550
2684
  column: {
2551
- component: () => import('./acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs').then((c) => c.AXPPhoneWidgetColumnComponent),
2685
+ component: () => import('./acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs').then((c) => c.AXPPhoneWidgetColumnComponent),
2552
2686
  options: { allowResizing: true },
2553
2687
  },
2554
2688
  edit: {
2555
- component: () => import('./acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs').then((c) => c.AXPPhoneWidgetEditComponent),
2689
+ component: () => import('./acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs').then((c) => c.AXPPhoneWidgetEditComponent),
2556
2690
  },
2557
2691
  filter: {
2558
- component: () => import('./acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2692
+ component: () => import('./acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2559
2693
  },
2560
2694
  },
2561
2695
  name: widgetSchemas.phone,
2562
2696
  filterOptions: {
2563
2697
  operators: [...STRING_OPERATORS],
2564
- default: CONTAINS_OPER,
2698
+ default: EQ_OPER,
2565
2699
  },
2566
2700
  dataType: 'object',
2567
2701
  });
@@ -2569,23 +2703,23 @@ class AXPCommonWidgetModule {
2569
2703
  service.register({
2570
2704
  component: {
2571
2705
  view: {
2572
- component: () => import('./acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs').then((c) => c.AXPEmailWidgetViewComponent),
2706
+ component: () => import('./acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs').then((c) => c.AXPEmailWidgetViewComponent),
2573
2707
  },
2574
2708
  edit: {
2575
- component: () => import('./acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs').then((c) => c.AXPEmailWidgetEditComponent),
2709
+ component: () => import('./acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs').then((c) => c.AXPEmailWidgetEditComponent),
2576
2710
  },
2577
2711
  filter: {
2578
- component: () => import('./acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2712
+ component: () => import('./acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2579
2713
  },
2580
2714
  column: {
2581
- component: () => import('./acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs').then((c) => c.AXPEmailWidgetColumnComponent),
2715
+ component: () => import('./acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs').then((c) => c.AXPEmailWidgetColumnComponent),
2582
2716
  options: { allowResizing: true },
2583
2717
  },
2584
2718
  },
2585
2719
  name: widgetSchemas.email,
2586
2720
  filterOptions: {
2587
2721
  operators: [...STRING_OPERATORS],
2588
- default: CONTAINS_OPER,
2722
+ default: EQ_OPER,
2589
2723
  },
2590
2724
  dataType: 'object',
2591
2725
  });
@@ -2593,16 +2727,16 @@ class AXPCommonWidgetModule {
2593
2727
  service.register({
2594
2728
  component: {
2595
2729
  view: {
2596
- component: () => import('./acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs').then((c) => c.AXPDateTimeWidgetViewComponent),
2730
+ component: () => import('./acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs').then((c) => c.AXPDateTimeWidgetViewComponent),
2597
2731
  },
2598
2732
  edit: {
2599
- component: () => import('./acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs').then((c) => c.AXPDateTimeWidgetEditComponent),
2733
+ component: () => import('./acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs').then((c) => c.AXPDateTimeWidgetEditComponent),
2600
2734
  },
2601
2735
  filter: {
2602
- component: () => import('./acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs').then((c) => c.AXPDateTimeWidgetFilterComponent),
2736
+ component: () => import('./acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs').then((c) => c.AXPDateTimeWidgetFilterComponent),
2603
2737
  },
2604
2738
  column: {
2605
- component: () => import('./acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs').then((c) => c.AXPDateTimeWidgetColumnComponent),
2739
+ component: () => import('./acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs').then((c) => c.AXPDateTimeWidgetColumnComponent),
2606
2740
  options: {
2607
2741
  width: '200px',
2608
2742
  allowResizing: true,
@@ -2649,19 +2783,19 @@ class AXPCommonWidgetModule {
2649
2783
  service.register({
2650
2784
  component: {
2651
2785
  view: {
2652
- component: () => import('./acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs').then((c) => c.AXPToggleWidgetViewComponent),
2786
+ component: () => import('./acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs').then((c) => c.AXPToggleWidgetViewComponent),
2653
2787
  },
2654
2788
  edit: {
2655
- component: () => import('./acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs').then((c) => c.AXPToggleWidgetEditComponent),
2789
+ component: () => import('./acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs').then((c) => c.AXPToggleWidgetEditComponent),
2656
2790
  },
2657
2791
  filter: {
2658
- component: () => import('./acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs').then((c) => c.AXPBooleanWidgetFilterComponent),
2792
+ component: () => import('./acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs').then((c) => c.AXPBooleanWidgetFilterComponent),
2659
2793
  },
2660
2794
  column: {
2661
- component: () => import('./acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs').then((c) => c.AXPToggleWidgetColumnComponent),
2795
+ component: () => import('./acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs').then((c) => c.AXPToggleWidgetColumnComponent),
2662
2796
  options: {
2663
2797
  width: '100px',
2664
- allowResizing: true
2798
+ allowResizing: true,
2665
2799
  },
2666
2800
  },
2667
2801
  },
@@ -2676,19 +2810,19 @@ class AXPCommonWidgetModule {
2676
2810
  service.register({
2677
2811
  component: {
2678
2812
  view: {
2679
- component: () => import('./acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs').then((c) => c.AXPCheckboxWidgetViewComponent),
2813
+ component: () => import('./acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs').then((c) => c.AXPCheckboxWidgetViewComponent),
2680
2814
  },
2681
2815
  edit: {
2682
- component: () => import('./acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs').then((c) => c.AXPCheckboxWidgetEditComponent),
2816
+ component: () => import('./acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs').then((c) => c.AXPCheckboxWidgetEditComponent),
2683
2817
  },
2684
2818
  filter: {
2685
- component: () => import('./acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs').then((c) => c.AXPBooleanWidgetFilterComponent),
2819
+ component: () => import('./acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs').then((c) => c.AXPBooleanWidgetFilterComponent),
2686
2820
  },
2687
2821
  column: {
2688
- component: () => import('./acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs').then((c) => c.AXPCheckboxWidgetColumnComponent),
2822
+ component: () => import('./acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs').then((c) => c.AXPCheckboxWidgetColumnComponent),
2689
2823
  options: {
2690
2824
  width: '100px',
2691
- allowResizing: true
2825
+ allowResizing: true,
2692
2826
  },
2693
2827
  },
2694
2828
  },
@@ -2703,16 +2837,16 @@ class AXPCommonWidgetModule {
2703
2837
  service.register({
2704
2838
  component: {
2705
2839
  view: {
2706
- component: () => import('./acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs').then((c) => c.AXPPasswordWidgetViewComponent),
2840
+ component: () => import('./acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs').then((c) => c.AXPPasswordWidgetViewComponent),
2707
2841
  },
2708
2842
  column: {
2709
- component: () => import('./acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs').then((c) => c.AXPPasswordWidgetColumnComponent),
2843
+ component: () => import('./acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs').then((c) => c.AXPPasswordWidgetColumnComponent),
2710
2844
  options: {
2711
- allowResizing: true
2712
- }
2845
+ allowResizing: true,
2846
+ },
2713
2847
  },
2714
2848
  edit: {
2715
- component: () => import('./acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs').then((c) => c.AXPPasswordWidgetEditComponent),
2849
+ component: () => import('./acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs').then((c) => c.AXPPasswordWidgetEditComponent),
2716
2850
  },
2717
2851
  },
2718
2852
  filterOptions: {
@@ -2726,19 +2860,19 @@ class AXPCommonWidgetModule {
2726
2860
  service.register({
2727
2861
  component: {
2728
2862
  view: {
2729
- component: () => import('./acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs').then((c) => c.AXPFileWidgetViewComponent),
2863
+ component: () => import('./acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs').then((c) => c.AXPFileWidgetViewComponent),
2730
2864
  },
2731
2865
  column: {
2732
- component: () => import('./acorex-platform-common-file-widget-column.component-GtbElxmS.mjs').then((c) => c.AXPFileWidgetColumnComponent),
2866
+ component: () => import('./acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs').then((c) => c.AXPFileWidgetColumnComponent),
2733
2867
  options: {
2734
- allowResizing: true
2735
- }
2868
+ allowResizing: true,
2869
+ },
2736
2870
  },
2737
2871
  edit: {
2738
- component: () => import('./acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs').then((c) => c.AXPFileWidgetEditComponent),
2872
+ component: () => import('./acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs').then((c) => c.AXPFileWidgetEditComponent),
2739
2873
  },
2740
2874
  filter: {
2741
- component: () => import('./acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs').then((c) => c.AXPFileWidgetFilterComponent),
2875
+ component: () => import('./acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs').then((c) => c.AXPFileWidgetFilterComponent),
2742
2876
  },
2743
2877
  },
2744
2878
  filterOptions: {
@@ -2752,24 +2886,24 @@ class AXPCommonWidgetModule {
2752
2886
  service.register({
2753
2887
  component: {
2754
2888
  view: {
2755
- component: () => import('./acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs').then((c) => c.AXPLookupWidgetViewComponent),
2889
+ component: () => import('./acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs').then((c) => c.AXPLookupWidgetViewComponent),
2756
2890
  },
2757
2891
  edit: {
2758
- component: () => import('./acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs').then((c) => c.AXPLookupWidgetEditComponent),
2892
+ component: () => import('./acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs').then((c) => c.AXPLookupWidgetEditComponent),
2759
2893
  },
2760
2894
  filter: {
2761
- component: () => import('./acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs').then((c) => c.AXPLookupWidgetFilterComponent),
2895
+ component: () => import('./acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs').then((c) => c.AXPLookupWidgetFilterComponent),
2762
2896
  },
2763
2897
  column: {
2764
- component: () => import('./acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs').then((c) => c.AXPLookupWidgetColumnComponent),
2898
+ component: () => import('./acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs').then((c) => c.AXPLookupWidgetColumnComponent),
2765
2899
  options: {
2766
- allowResizing: true
2767
- }
2900
+ allowResizing: true,
2901
+ },
2768
2902
  },
2769
2903
  },
2770
2904
  filterOptions: {
2771
2905
  operators: [],
2772
- default: CONTAINS_OPER,
2906
+ default: EQ_OPER,
2773
2907
  },
2774
2908
  name: widgetSchemas.lookup,
2775
2909
  dataType: 'object',
@@ -2778,24 +2912,24 @@ class AXPCommonWidgetModule {
2778
2912
  service.register({
2779
2913
  component: {
2780
2914
  view: {
2781
- component: () => import('./acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs').then((c) => c.AXPSelectionListWidgetViewComponent),
2915
+ component: () => import('./acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs').then((c) => c.AXPSelectionListWidgetViewComponent),
2782
2916
  },
2783
2917
  edit: {
2784
- component: () => import('./acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs').then((c) => c.AXPSelectionListWidgetEditComponent),
2918
+ component: () => import('./acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs').then((c) => c.AXPSelectionListWidgetEditComponent),
2785
2919
  },
2786
2920
  column: {
2787
- component: () => import('./acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs').then((c) => c.AXPSelectionListWidgetColumnComponent),
2921
+ component: () => import('./acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs').then((c) => c.AXPSelectionListWidgetColumnComponent),
2788
2922
  options: {
2789
- allowResizing: true
2790
- }
2923
+ allowResizing: true,
2924
+ },
2791
2925
  },
2792
2926
  filter: {
2793
- component: () => import('./acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs').then((c) => c.AXPSelectionListWidgetFilterComponent),
2927
+ component: () => import('./acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs').then((c) => c.AXPSelectionListWidgetFilterComponent),
2794
2928
  },
2795
2929
  },
2796
2930
  filterOptions: {
2797
2931
  operators: [],
2798
- default: CONTAINS_OPER,
2932
+ default: EQ_OPER,
2799
2933
  },
2800
2934
  name: widgetSchemas.selectionList,
2801
2935
  dataType: 'object',
@@ -2804,27 +2938,27 @@ class AXPCommonWidgetModule {
2804
2938
  service.register({
2805
2939
  component: {
2806
2940
  view: {
2807
- component: () => import('./acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs').then((c) => c.AXPRichTextWidgetViewComponent),
2941
+ component: () => import('./acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs').then((c) => c.AXPRichTextWidgetViewComponent),
2808
2942
  },
2809
2943
  edit: {
2810
- component: () => import('./acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs').then((c) => c.AXPRichTextWidgetEditComponent),
2944
+ component: () => import('./acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs').then((c) => c.AXPRichTextWidgetEditComponent),
2811
2945
  options: {
2812
- allowResizing: true
2813
- }
2946
+ allowResizing: true,
2947
+ },
2814
2948
  },
2815
2949
  column: {
2816
- component: () => import('./acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs').then((c) => c.AXPRichTextWidgetColumnComponent),
2950
+ component: () => import('./acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs').then((c) => c.AXPRichTextWidgetColumnComponent),
2817
2951
  options: {
2818
2952
  width: '400px',
2819
2953
  },
2820
2954
  },
2821
2955
  filter: {
2822
- component: () => import('./acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2956
+ component: () => import('./acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2823
2957
  },
2824
2958
  },
2825
2959
  filterOptions: {
2826
2960
  operators: [...STRING_OPERATORS],
2827
- default: CONTAINS_OPER,
2961
+ default: EQ_OPER,
2828
2962
  },
2829
2963
  name: widgetSchemas.richText,
2830
2964
  dataType: 'object',
@@ -2833,10 +2967,10 @@ class AXPCommonWidgetModule {
2833
2967
  service.register({
2834
2968
  component: {
2835
2969
  view: {
2836
- component: () => import('./acorex-platform-common-map-widget-view.component-Deos8gVy.mjs').then((c) => c.AXPMapWidgetViewComponent),
2970
+ component: () => import('./acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs').then((c) => c.AXPMapWidgetViewComponent),
2837
2971
  },
2838
2972
  edit: {
2839
- component: () => import('./acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs').then((c) => c.AXPMapWidgetEditComponent),
2973
+ component: () => import('./acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs').then((c) => c.AXPMapWidgetEditComponent),
2840
2974
  },
2841
2975
  },
2842
2976
  filterOptions: {
@@ -2850,10 +2984,10 @@ class AXPCommonWidgetModule {
2850
2984
  service.register({
2851
2985
  component: {
2852
2986
  view: {
2853
- component: () => import('./acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs').then((c) => c.AXPAvatarWidgetViewComponent),
2987
+ component: () => import('./acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs').then((c) => c.AXPAvatarWidgetViewComponent),
2854
2988
  },
2855
2989
  edit: {
2856
- component: () => import('./acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs').then((c) => c.AXPAvatarWidgetEditComponent),
2990
+ component: () => import('./acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs').then((c) => c.AXPAvatarWidgetEditComponent),
2857
2991
  },
2858
2992
  },
2859
2993
  filterOptions: {
@@ -2867,16 +3001,16 @@ class AXPCommonWidgetModule {
2867
3001
  service.register({
2868
3002
  component: {
2869
3003
  view: {
2870
- component: () => import('./acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs').then((c) => c.AXPMessengerWidgetViewComponent),
3004
+ component: () => import('./acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs').then((c) => c.AXPMessengerWidgetViewComponent),
2871
3005
  },
2872
3006
  edit: {
2873
- component: () => import('./acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs').then((c) => c.AXPMessengerWidgetEditComponent),
3007
+ component: () => import('./acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs').then((c) => c.AXPMessengerWidgetEditComponent),
2874
3008
  },
2875
3009
  column: {
2876
- component: () => import('./acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs').then((c) => c.AXPMessengerWidgetColumnComponent),
3010
+ component: () => import('./acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs').then((c) => c.AXPMessengerWidgetColumnComponent),
2877
3011
  options: {
2878
- allowResizing: true
2879
- }
3012
+ allowResizing: true,
3013
+ },
2880
3014
  },
2881
3015
  },
2882
3016
  filterOptions: {
@@ -2891,13 +3025,13 @@ class AXPCommonWidgetModule {
2891
3025
  service.register({
2892
3026
  component: {
2893
3027
  view: {
2894
- component: () => import('./acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs').then((c) => c.AXPGalleryWidgetViewComponent),
3028
+ component: () => import('./acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs').then((c) => c.AXPGalleryWidgetViewComponent),
2895
3029
  },
2896
3030
  edit: {
2897
- component: () => import('./acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs').then((c) => c.AXPGalleryWidgetEditComponent),
3031
+ component: () => import('./acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs').then((c) => c.AXPGalleryWidgetEditComponent),
2898
3032
  },
2899
3033
  filter: {
2900
- component: () => import('./acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs').then((c) => c.AXPGalleryWidgetFilterComponent),
3034
+ component: () => import('./acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs').then((c) => c.AXPGalleryWidgetFilterComponent),
2901
3035
  },
2902
3036
  },
2903
3037
  filterOptions: {
@@ -2911,10 +3045,10 @@ class AXPCommonWidgetModule {
2911
3045
  service.register({
2912
3046
  component: {
2913
3047
  view: {
2914
- component: () => import('./acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs').then((c) => c.AXPSignaturePadWidgetViewComponent),
3048
+ component: () => import('./acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs').then((c) => c.AXPSignaturePadWidgetViewComponent),
2915
3049
  },
2916
3050
  edit: {
2917
- component: () => import('./acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs').then((c) => c.AXPSignaturePadWidgetEditComponent),
3051
+ component: () => import('./acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs').then((c) => c.AXPSignaturePadWidgetEditComponent),
2918
3052
  },
2919
3053
  },
2920
3054
  filterOptions: {
@@ -2944,5 +3078,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
2944
3078
  * Generated bundle index. Do not edit.
2945
3079
  */
2946
3080
 
2947
- export { AXEntityLoaderDefault, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXMWorkflowErrorHandler, AXMenuLoaderDefault, AXPAppStartUpProvider, AXPAppStartUpService, AXPClipBoardService, AXPCommonEffects, AXPCommonModule, AXPCommonWidgetModule, AXPComponentLogoConfig, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPDataGenerator, AXPDataProvider, AXPDataSeederService, AXPDexieEntityStorageService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityListViewConfigEmpty, AXPEntityQueryType, AXPEntityRegistryService, AXPEntityStorageService, AXPErrorHandlerRegistryService, AXPFontIconLogoConfig, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPGridLayoutDirective, AXPImageUrlLogoConfig, AXPLayoutChildDrawerClose, AXPLayoutChildDrawerToggle, AXPLayoutEffects, AXPLayoutFeature, AXPLayoutRootDrawerClose, AXPLayoutRootDrawerToggle, AXPLayoutService, AXPLoadingHideAction, AXPLoadingShowAction, AXPLogoComponent, AXPMenuProviderService, AXPMenuService, AXPNavBarSlotComponent, AXPNavigateAction, AXPPdfPageSize, AXPPdfService, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRelationshipCardinality, AXPRelationshipKind, AXPRouteUtilityService, AXPSchemaModule, AXPSchemaRegistryService, AXPSettingsService, AXPSignInAction, AXPSignOutAction, AXPStickyDirective, AXPTextLogoConfig, AXPToastAction, AXPWidgetBase, AXPWidgetColumnRendererComponent, AXPWidgetEditBase, AXPWidgetFilterBase, AXPWidgetFilterRendererComponent, AXPWidgetRendererComponent, AXPWindowResizeAction, AXPWorkflowNavigateAction, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_LOADER, AXP_MENU_LOADER, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SETTINGS_PROVIDER, AXP_WIDGET_TOKEN, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, configPlatform, convertPropertiesToColumns, convertPropertyToColumn, getChildDrawer, getEntityInfo, getRootDrawer, initialState, isLoading, isSmallScreen, name, reducer, resolveActionLook, selectLayoutState, widgetSchemas };
3081
+ export { ALL_DEFAULT_OPERATORS, AXEntityLoaderDefault, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXMWorkflowErrorHandler, AXPAppStartUpProvider, AXPAppStartUpService, AXPClipBoardService, AXPCommonEffects, AXPCommonModule, AXPCommonWidgetModule, AXPComponentLogoConfig, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataGenerator, AXPDataProvider, AXPDataSeederService, AXPDexieEntityStorageService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityListViewConfigEmpty, AXPEntityQueryType, AXPEntityRegistryService, AXPEntityStorageService, AXPErrorHandlerRegistryService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFontIconLogoConfig, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPGridLayoutDirective, AXPImageUrlLogoConfig, AXPLogoComponent, AXPMenuProviderService, AXPMenuService, AXPNavBarSlotComponent, AXPNavigateAction, AXPPdfPageSize, AXPPdfService, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRelationshipCardinality, AXPRelationshipKind, AXPSchemaModule, AXPSchemaRegistryService, AXPSettingDefinitionProviderService, AXPSettingsService, AXPSignInAction, AXPSignOutAction, AXPStickyDirective, AXPTextLogoConfig, AXPToastAction, AXPWidgetBase, AXPWidgetColumnRendererComponent, AXPWidgetEditBase, AXPWidgetFilterBase, AXPWidgetFilterRendererComponent, AXPWidgetRendererComponent, AXPWorkflowNavigateAction, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_LOADER, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SETTINGS_PROVIDER, AXP_SETTING_PROVIDER, AXP_WIDGET_TOKEN, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, configPlatform, convertPropertiesToColumns, convertPropertyToColumn, getEntityInfo, resolveActionLook, widgetSchemas };
2948
3082
  //# sourceMappingURL=acorex-platform-common.mjs.map