@acorex/platform 18.2.2 → 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 (311) hide show
  1. package/common/lib/app/operators.d.ts +1 -0
  2. package/common/lib/common.module.d.ts +6 -7
  3. package/common/lib/data/filter-middleware.service.d.ts +28 -0
  4. package/common/lib/data/index.d.ts +3 -1
  5. package/common/lib/data/operators.service.d.ts +14 -0
  6. package/common/lib/layout/index.d.ts +0 -2
  7. package/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.d.ts +0 -2
  8. package/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.d.ts +1 -0
  9. package/common/lib/schema/widgets/email/email-widget-edit.component.d.ts +0 -2
  10. package/common/lib/schema/widgets/phone/phone-widget-edit.component.d.ts +0 -2
  11. package/common/lib/schema/widgets/text/text-widget-edit.component.d.ts +0 -2
  12. package/common/lib/settings/setting-definition.provider.d.ts +6 -6
  13. package/common/lib/settings/settings.types.d.ts +18 -9
  14. package/esm2022/common/lib/app/operators.mjs +16 -1
  15. package/esm2022/common/lib/common.module.mjs +23 -12
  16. package/esm2022/common/lib/data/filter-middleware.service.mjs +53 -0
  17. package/esm2022/common/lib/data/index.mjs +4 -2
  18. package/esm2022/common/lib/data/operators.service.mjs +15 -0
  19. package/esm2022/common/lib/layout/index.mjs +1 -3
  20. package/esm2022/common/lib/layout/menu/menu.service.mjs +2 -2
  21. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +7 -8
  22. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +47 -25
  23. package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +6 -7
  24. package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +6 -7
  25. package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +6 -7
  26. package/esm2022/common/lib/settings/setting-definition.provider.mjs +141 -187
  27. package/esm2022/common/lib/settings/settings.types.mjs +2 -7
  28. package/esm2022/common/lib/utils/data-generator.mjs +1 -1
  29. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
  30. package/esm2022/layout/builder/lib/builder/widget.types.mjs +11 -6
  31. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +2 -7
  32. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +8 -6
  33. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +4 -3
  34. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +9 -7
  35. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +4 -3
  36. package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +3 -3
  37. package/esm2022/layout/entity/lib/entity.module.mjs +12 -1
  38. package/esm2022/layout/setting/acorex-platform-layout-setting.mjs +5 -0
  39. package/esm2022/layout/setting/index.mjs +2 -0
  40. package/esm2022/layout/setting/lib/setting.viewmodel.mjs +50 -0
  41. package/esm2022/layouts/lib/admin/admin.module.mjs +17 -5
  42. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +3 -3
  43. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +4 -3
  44. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +8 -23
  45. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
  46. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +4 -5
  47. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +4 -8
  48. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +12 -10
  49. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +3 -3
  50. package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +1 -3
  51. package/esm2022/themes/default/index.mjs +2 -1
  52. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +18 -24
  53. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +6 -9
  54. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
  55. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +6 -8
  56. package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +6 -8
  57. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +11 -38
  58. package/esm2022/themes/default/lib/layouts/setting-layout/convert-setting-data.mjs +49 -0
  59. package/esm2022/themes/default/lib/layouts/setting-layout/index.mjs +3 -0
  60. package/esm2022/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.mjs +104 -0
  61. package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.mjs +44 -0
  62. package/esm2022/themes/shared/lib/services/theme.service.mjs +183 -19
  63. package/esm2022/widgets/lib/properties/layout.props.mjs +13 -13
  64. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.mjs +20 -0
  65. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.mjs +18 -0
  66. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.mjs +24 -0
  67. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.mjs +20 -0
  68. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.mjs +19 -0
  69. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.mjs +22 -0
  70. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.mjs +31 -0
  71. package/esm2022/widgets/lib/widgets/advance/cron-job/index.mjs +8 -0
  72. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +4 -9
  73. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +2 -9
  74. package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +6 -7
  75. package/esm2022/widgets/lib/widgets.module.mjs +5 -2
  76. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs} +3 -4
  77. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs.map → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs.map} +1 -1
  78. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs → acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs} +4 -5
  79. package/fesm2022/acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs.map +1 -0
  80. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs → acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs} +3 -4
  81. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs.map +1 -0
  82. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs} +4 -5
  83. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs.map → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs.map} +1 -1
  84. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs → acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs} +4 -5
  85. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs.map +1 -0
  86. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs} +4 -5
  87. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs.map → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs.map} +1 -1
  88. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs → acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs} +4 -5
  89. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs.map +1 -0
  90. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs → acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs} +10 -13
  91. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs.map +1 -0
  92. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs → acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs} +49 -28
  93. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs.map +1 -0
  94. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs} +4 -5
  95. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs.map → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs.map} +1 -1
  96. package/fesm2022/{acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs → acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs} +4 -5
  97. package/fesm2022/acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs.map +1 -0
  98. package/fesm2022/{acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs → acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs} +9 -11
  99. package/fesm2022/acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs.map +1 -0
  100. package/fesm2022/{acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs} +4 -5
  101. package/fesm2022/{acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs.map → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs.map} +1 -1
  102. package/fesm2022/{acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs → acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs} +4 -5
  103. package/fesm2022/acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs.map +1 -0
  104. package/fesm2022/{acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs} +4 -5
  105. package/fesm2022/{acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs.map → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs.map} +1 -1
  106. package/fesm2022/{acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs → acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs} +4 -5
  107. package/fesm2022/acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs.map +1 -0
  108. package/fesm2022/{acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs} +4 -5
  109. package/fesm2022/{acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs.map → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs.map} +1 -1
  110. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs} +3 -4
  111. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs.map → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs.map} +1 -1
  112. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs → acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs} +4 -5
  113. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs.map +1 -0
  114. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs} +3 -4
  115. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs.map → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs.map} +1 -1
  116. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs → acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs} +4 -5
  117. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs.map +1 -0
  118. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs → acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs} +4 -5
  119. package/fesm2022/acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs.map +1 -0
  120. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs} +4 -5
  121. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs.map → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs.map} +1 -1
  122. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs → acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs} +3 -4
  123. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs.map +1 -0
  124. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs → acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs} +4 -5
  125. package/fesm2022/acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs.map +1 -0
  126. package/fesm2022/{acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs → acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs} +4 -5
  127. package/fesm2022/acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs.map +1 -0
  128. package/fesm2022/{acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs → acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs} +4 -5
  129. package/fesm2022/acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs.map +1 -0
  130. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs → acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs} +4 -5
  131. package/fesm2022/acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs.map +1 -0
  132. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs → acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs} +4 -5
  133. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs.map +1 -0
  134. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs} +4 -5
  135. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs.map → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs.map} +1 -1
  136. package/fesm2022/{acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs → acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs} +4 -5
  137. package/fesm2022/acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs.map +1 -0
  138. package/fesm2022/{acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs → acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs} +4 -5
  139. package/fesm2022/acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs.map +1 -0
  140. package/fesm2022/{acorex-platform-common-number-widget-view.component-ROrdklif.mjs → acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs} +4 -5
  141. package/fesm2022/acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs.map +1 -0
  142. package/fesm2022/{acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs} +4 -5
  143. package/fesm2022/{acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs.map → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs.map} +1 -1
  144. package/fesm2022/{acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs → acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs} +4 -5
  145. package/fesm2022/acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs.map +1 -0
  146. package/fesm2022/{acorex-platform-common-password-widget-view.component-rpjAeimk.mjs → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs} +4 -4
  147. package/fesm2022/{acorex-platform-common-password-widget-view.component-rpjAeimk.mjs.map → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs.map} +1 -1
  148. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs} +4 -5
  149. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs.map → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs.map} +1 -1
  150. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs → acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs} +8 -10
  151. package/fesm2022/acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs.map +1 -0
  152. package/fesm2022/{acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs} +4 -5
  153. package/fesm2022/{acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs.map → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs.map} +1 -1
  154. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs} +4 -5
  155. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs.map → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs.map} +1 -1
  156. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs → acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs} +4 -5
  157. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs.map +1 -0
  158. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs → acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs} +4 -5
  159. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs.map +1 -0
  160. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs} +4 -5
  161. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs.map → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs.map} +1 -1
  162. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs → acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs} +4 -5
  163. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs.map +1 -0
  164. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs → acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs} +3 -4
  165. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs.map +1 -0
  166. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs → acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs} +4 -5
  167. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs.map +1 -0
  168. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs} +3 -4
  169. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs.map} +1 -1
  170. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs → acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs} +4 -5
  171. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs.map +1 -0
  172. package/fesm2022/{acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs → acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs} +4 -5
  173. package/fesm2022/acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs.map +1 -0
  174. package/fesm2022/{acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs} +4 -5
  175. package/fesm2022/{acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs.map → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs.map} +1 -1
  176. package/fesm2022/{acorex-platform-common-text-widget-edit.component-feJTTnye.mjs → acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs} +9 -12
  177. package/fesm2022/acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs.map +1 -0
  178. package/fesm2022/{acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs} +4 -5
  179. package/fesm2022/{acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs.map → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs.map} +1 -1
  180. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs} +4 -5
  181. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs.map → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs.map} +1 -1
  182. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs → acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs} +4 -5
  183. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs.map +1 -0
  184. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs} +4 -5
  185. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs.map → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs.map} +1 -1
  186. package/fesm2022/acorex-platform-common.mjs +835 -974
  187. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  188. package/fesm2022/acorex-platform-layout-builder.mjs +10 -4
  189. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  190. package/fesm2022/acorex-platform-layout-designer.mjs +1 -6
  191. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  192. package/fesm2022/acorex-platform-layout-entity.mjs +28 -13
  193. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  194. package/fesm2022/acorex-platform-layout-setting.mjs +57 -0
  195. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -0
  196. package/fesm2022/acorex-platform-layouts.mjs +37 -46
  197. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  198. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs} +6 -6
  199. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs.map} +1 -1
  200. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs +301 -0
  201. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs.map +1 -0
  202. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs} +6 -6
  203. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs.map} +1 -1
  204. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs +148 -0
  205. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs.map +1 -0
  206. package/fesm2022/acorex-platform-themes-default.mjs +219 -77
  207. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  208. package/fesm2022/acorex-platform-themes-shared.mjs +184 -20
  209. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  210. package/fesm2022/{acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs → acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs} +2 -1
  211. package/fesm2022/{acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs.map → acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs.map} +1 -1
  212. package/fesm2022/acorex-platform-widgets.mjs +180 -34
  213. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  214. package/layout/builder/lib/builder/widget.types.d.ts +1 -2
  215. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +1 -0
  216. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +2 -2
  217. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -0
  218. package/layout/setting/README.md +4 -0
  219. package/layout/setting/index.d.ts +1 -0
  220. package/layout/setting/lib/setting.viewmodel.d.ts +13 -0
  221. package/layouts/lib/admin/admin.module.d.ts +6 -3
  222. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +42 -9
  223. package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
  224. package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +0 -2
  225. package/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.d.ts +4 -2
  226. package/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.d.ts +0 -1
  227. package/package.json +18 -18
  228. package/themes/default/index.d.ts +1 -0
  229. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +43 -8
  230. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +42 -4
  231. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
  232. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +42 -3
  233. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +42 -2
  234. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +42 -11
  235. package/themes/default/lib/layouts/setting-layout/convert-setting-data.d.ts +21 -0
  236. package/themes/default/lib/layouts/setting-layout/index.d.ts +2 -0
  237. package/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.d.ts +24 -0
  238. package/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.d.ts +20 -0
  239. package/themes/shared/lib/components/theme-slot.component.d.ts +31 -5
  240. package/themes/shared/lib/services/theme.service.d.ts +45 -5
  241. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +6 -0
  242. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +6 -0
  243. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +8 -0
  244. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +6 -0
  245. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +6 -0
  246. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +7 -0
  247. package/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.d.ts +7 -0
  248. package/widgets/lib/widgets/advance/cron-job/index.d.ts +7 -0
  249. package/common/lib/layout/layout.service.d.ts +0 -19
  250. package/common/lib/layout/theme/store/admin-layout.actions.d.ts +0 -7
  251. package/common/lib/layout/theme/store/admin-layout.effects.d.ts +0 -9
  252. package/common/lib/layout/theme/store/admin-layout.reducers.d.ts +0 -19
  253. package/common/lib/layout/theme/store/admin-layout.selectors.d.ts +0 -4
  254. package/common/lib/layout/theme/store/admin-layout.state.d.ts +0 -11
  255. package/common/lib/layout/theme/store/index.d.ts +0 -5
  256. package/esm2022/common/lib/layout/layout.service.mjs +0 -79
  257. package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +0 -11
  258. package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +0 -21
  259. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +0 -64
  260. package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +0 -7
  261. package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +0 -13
  262. package/esm2022/common/lib/layout/theme/store/index.mjs +0 -6
  263. package/esm2022/mocks/acorex-platform-mocks.mjs +0 -5
  264. package/esm2022/mocks/index.mjs +0 -7
  265. package/esm2022/mocks/lib/mocks.module.mjs +0 -15
  266. package/esm2022/mocks/lib/services/mocker.service.mjs +0 -114
  267. package/esm2022/mocks/lib/storage/storage.mock.service.mjs +0 -183
  268. package/fesm2022/acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs.map +0 -1
  269. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs.map +0 -1
  270. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs.map +0 -1
  271. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs.map +0 -1
  272. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs.map +0 -1
  273. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs.map +0 -1
  274. package/fesm2022/acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs.map +0 -1
  275. package/fesm2022/acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs.map +0 -1
  276. package/fesm2022/acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs.map +0 -1
  277. package/fesm2022/acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs.map +0 -1
  278. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs.map +0 -1
  279. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs.map +0 -1
  280. package/fesm2022/acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs.map +0 -1
  281. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs.map +0 -1
  282. package/fesm2022/acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs.map +0 -1
  283. package/fesm2022/acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs.map +0 -1
  284. package/fesm2022/acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs.map +0 -1
  285. package/fesm2022/acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs.map +0 -1
  286. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs.map +0 -1
  287. package/fesm2022/acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs.map +0 -1
  288. package/fesm2022/acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs.map +0 -1
  289. package/fesm2022/acorex-platform-common-number-widget-view.component-ROrdklif.mjs.map +0 -1
  290. package/fesm2022/acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs.map +0 -1
  291. package/fesm2022/acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs.map +0 -1
  292. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs.map +0 -1
  293. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs.map +0 -1
  294. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs.map +0 -1
  295. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs.map +0 -1
  296. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs.map +0 -1
  297. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs.map +0 -1
  298. package/fesm2022/acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs.map +0 -1
  299. package/fesm2022/acorex-platform-common-text-widget-edit.component-feJTTnye.mjs.map +0 -1
  300. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs.map +0 -1
  301. package/fesm2022/acorex-platform-mocks.mjs +0 -319
  302. package/fesm2022/acorex-platform-mocks.mjs.map +0 -1
  303. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs +0 -306
  304. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs.map +0 -1
  305. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs +0 -150
  306. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs.map +0 -1
  307. package/mocks/README.md +0 -3
  308. package/mocks/index.d.ts +0 -3
  309. package/mocks/lib/mocks.module.d.ts +0 -7
  310. package/mocks/lib/services/mocker.service.d.ts +0 -29
  311. package/mocks/lib/storage/storage.mock.service.d.ts +0 -25
@@ -1,57 +1,58 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ViewEncapsulation, Component, inject, signal, ViewChild, NgModule, computed, effect, Input, ChangeDetectionStrategy } from '@angular/core';
2
+ import { ViewEncapsulation, Component, inject, ViewChild, NgModule, computed, effect, Input, ChangeDetectionStrategy, viewChild, signal, afterNextRender } from '@angular/core';
3
3
  import * as i1$2 from '@angular/router';
4
- import { Router, NavigationEnd, RouterModule, RouteReuseStrategy } from '@angular/router';
4
+ import { Router, NavigationEnd, RouterModule, RouteReuseStrategy, ActivatedRoute, RouterOutlet, RouterLink } from '@angular/router';
5
5
  import * as i1 from '@acorex/platform/common';
6
- import { getRootDrawer, AXPLayoutRootDrawerToggle, AXPMenuService, AXP_PLATFORM_CONFIG_TOKEN, AXPLayoutService, isSmallScreen, AXPLayoutRootDrawerClose, AXPLogoComponent, AXPComponentSlotModule, AXPCommonModule, AXPStickyDirective, AXPGridLayoutDirective } from '@acorex/platform/common';
7
- import * as i4$1 from '@ngrx/store';
8
- import { Store } from '@ngrx/store';
6
+ import { AXPMenuService, AXP_PLATFORM_CONFIG_TOKEN, AXPLogoComponent, AXPComponentSlotModule, AXPCommonModule, AXPStickyDirective, AXPGridLayoutDirective, AXPSettingDefinitionProviderService } from '@acorex/platform/common';
7
+ import { AXPLayoutThemeService, AXPThemesSharedModule } from '@acorex/platform/themes/shared';
9
8
  import * as i1$1 from '@angular/common';
10
- import { CommonModule } from '@angular/common';
9
+ import { CommonModule, AsyncPipe } from '@angular/common';
11
10
  import { filter, Subject, takeUntil } from 'rxjs';
12
11
  import { sortBy } from 'lodash-es';
13
- import * as i3 from '@acorex/components/decorators';
12
+ import * as i2 from '@acorex/components/decorators';
14
13
  import { AXDecoratorModule } from '@acorex/components/decorators';
15
- import * as i3$1 from '@acorex/components/side-menu';
14
+ import * as i3 from '@acorex/components/side-menu';
16
15
  import { AXSideMenuModule } from '@acorex/components/side-menu';
17
16
  import * as i4 from '@acorex/platform/auth';
18
17
  import { AXPAuthModule } from '@acorex/platform/auth';
19
- import * as i5 from '@acorex/core/translation';
18
+ import * as i10 from '@acorex/core/translation';
20
19
  import { AXTranslationModule } from '@acorex/core/translation';
21
- import * as i3$2 from '@acorex/components/drawer';
20
+ import * as i3$1 from '@acorex/components/drawer';
22
21
  import { AXDrawerModule } from '@acorex/components/drawer';
23
- import * as i2 from '@acorex/core/utils';
24
- import { AXUnsubscriber } from '@acorex/core/utils';
25
- import * as i5$1 from '@acorex/components/loading';
22
+ import * as i5 from '@acorex/components/loading';
26
23
  import { AXLoadingModule } from '@acorex/components/loading';
27
24
  import { AXAvatarModule } from '@acorex/components/avatar';
28
25
  import { AXBadgeModule } from '@acorex/components/badge';
29
- import * as i4$2 from '@acorex/components/button';
26
+ import * as i4$1 from '@acorex/components/button';
30
27
  import { AXButtonModule } from '@acorex/components/button';
31
- import * as i8 from '@acorex/components/dropdown';
28
+ import * as i6 from '@acorex/components/dropdown';
32
29
  import { AXDropdownModule } from '@acorex/components/dropdown';
33
30
  import { AXImageModule } from '@acorex/components/image';
34
31
  import { AXPopoverModule } from '@acorex/components/popover';
35
32
  import { AXTabsModule } from '@acorex/components/tabs';
36
33
  import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
37
- import { AXPThemesSharedModule } from '@acorex/platform/themes/shared';
38
34
  import * as i1$3 from '@acorex/components/action-sheet';
39
35
  import { AXActionSheetModule } from '@acorex/components/action-sheet';
36
+ import * as i2$2 from '@acorex/components/breadcrumbs';
40
37
  import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
41
- import * as i10 from '@acorex/components/data-table';
38
+ import * as i8 from '@acorex/components/data-table';
42
39
  import { AXDataTableModule } from '@acorex/components/data-table';
43
40
  import { AXDialogModule } from '@acorex/components/dialog';
44
41
  import { AXFormModule } from '@acorex/components/form';
45
- import * as i9 from '@acorex/components/search-box';
42
+ import * as i7 from '@acorex/components/search-box';
46
43
  import { AXSearchBoxModule } from '@acorex/components/search-box';
47
44
  import { AXTooltipModule } from '@acorex/components/tooltip';
48
- import * as i3$3 from '@acorex/core/platform';
49
- import * as i6 from '@acorex/platform/layout/builder';
45
+ import * as i2$1 from '@acorex/core/utils';
46
+ import { AXUnsubscriber } from '@acorex/core/utils';
47
+ import * as i9 from '@acorex/platform/layout/builder';
50
48
  import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
51
49
  import { AXPEntityDeletedEvent, AXPEntityCreateEvent } from '@acorex/platform/layouts';
52
50
  import { AXPWidgetsModule } from '@acorex/platform/widgets';
53
51
  import { AXPWorkflowService, ofType } from '@acorex/platform/workflow';
54
52
  import { FormsModule } from '@angular/forms';
53
+ import * as i3$2 from '@acorex/components/tree-view';
54
+ import { AXTreeViewModule } from '@acorex/components/tree-view';
55
+ import { AXToastService } from '@acorex/components/toast';
55
56
 
56
57
  const routes = [
57
58
  {
@@ -86,24 +87,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
86
87
 
87
88
  class AXPRootLayoutHeaderComponent {
88
89
  constructor() {
89
- this.store = inject((Store));
90
+ this.store = inject(AXPLayoutThemeService);
90
91
  this.router = inject(Router);
91
- this.isOpen = this.store.select(getRootDrawer());
92
92
  }
93
93
  menuClick() {
94
- this.store.dispatch(AXPLayoutRootDrawerToggle());
94
+ this.store.toggleSideMenu();
95
95
  }
96
96
  logoClick() {
97
97
  this.router.navigate(['/']);
98
98
  }
99
99
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header", host: { classAttribute: "ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b" }, ngImport: i0, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !(isOpen | async) }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header", host: { classAttribute: "ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b" }, ngImport: i0, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !store.isSideMenuOpen() }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
101
101
  }
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutHeaderComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'axp-dashboard-admin-header', encapsulation: ViewEncapsulation.None, host: {
105
105
  class: 'ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b',
106
- }, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !(isOpen | async) }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"] }]
106
+ }, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !store.isSideMenuOpen() }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"] }]
107
107
  }] });
108
108
 
109
109
  class AXPRootLayoutMenuComponent {
@@ -128,7 +128,7 @@ class AXPRootLayoutMenuComponent {
128
128
  return sortBy(items, [c => c.priority ?? 0, c => c.text]);
129
129
  }
130
130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu>\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\n<ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [active]=\"item ===menuStore.selectedMenuItem().item\" [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXSideMenuComponent, selector: "ax-side-menu" }, { kind: "component", type: i3$1.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active"], outputs: ["isLoadingChange", "textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i4.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }] }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu>\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\n<ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [active]=\"item ===menuStore.selectedMenuItem().item\" [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXSideMenuComponent, selector: "ax-side-menu" }, { kind: "component", type: i3.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active"], outputs: ["isLoadingChange", "textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i4.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }] }); }
132
132
  }
133
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutMenuComponent, decorators: [{
134
134
  type: Component,
@@ -136,48 +136,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
136
136
  }] });
137
137
 
138
138
  class AXPRootLayoutComponent {
139
- get layoutService() {
140
- return this._layoutService;
141
- }
142
- set layoutService(value) {
143
- this._layoutService = value;
144
- }
145
139
  constructor() {
146
140
  this.config = inject(AXP_PLATFORM_CONFIG_TOKEN);
147
- this._layoutService = inject(AXPLayoutService);
148
- this.subscriber = inject(AXUnsubscriber);
149
- this.store = inject((Store));
141
+ this.store = inject(AXPLayoutThemeService);
150
142
  this.logo = this.config.logo;
151
- this.isOpen = this.store.select(getRootDrawer());
152
- this.isSM = this.store.select(isSmallScreen());
153
- this.isLoading = signal(false);
154
- this.showNavigationProgress = signal(false);
155
- this.layoutService.navigationLoading$.pipe(this.subscriber.takeUntilDestroy).subscribe((value) => {
156
- this.showNavigationProgress.set(value);
157
- });
158
- //
159
- this.layoutService.overlayLoading$.pipe(this.subscriber.takeUntilDestroy).subscribe((value) => {
160
- this.isLoading.set(value);
161
- });
162
143
  }
163
144
  handleCollapsedChange(value) {
164
- if (value)
165
- this.store.dispatch(AXPLayoutRootDrawerClose());
145
+ if (value) {
146
+ this.store.closeSideMenu();
147
+ }
148
+ ;
166
149
  }
167
150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutComponent, selector: "ng-component", providers: [
169
- {
170
- provide: AXUnsubscriber,
171
- },
172
- ], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\"(isSM | async) ? 'overlay' : 'push'\"\n (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(showNavigationProgress()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"isLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "directive", type: i5$1.AXLoadingDirective, selector: "[axIsLoading]", inputs: ["axIsLoading"] }, { kind: "component", type: i1.AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
151
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutComponent, selector: "ng-component", viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!store.isSideMenuOpen()\"\n [mode]=\"store.isSmall() ? 'overlay' : 'push'\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"store.isOverlayLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "directive", type: i5.AXLoadingDirective, selector: "[axIsLoading]", inputs: ["axIsLoading"] }, { kind: "component", type: i1.AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu" }], encapsulation: i0.ViewEncapsulation.None }); }
173
152
  }
174
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutComponent, decorators: [{
175
154
  type: Component,
176
- args: [{ encapsulation: ViewEncapsulation.None, providers: [
177
- {
178
- provide: AXUnsubscriber,
179
- },
180
- ], template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\"(isSM | async) ? 'overlay' : 'push'\"\n (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(showNavigationProgress()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"isLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>" }]
155
+ args: [{ encapsulation: ViewEncapsulation.None, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!store.isSideMenuOpen()\"\n [mode]=\"store.isSmall() ? 'overlay' : 'push'\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"store.isOverlayLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>" }]
181
156
  }], ctorParameters: () => [], propDecorators: { drawer: [{
182
157
  type: ViewChild,
183
158
  args: ['drawer']
@@ -290,16 +265,16 @@ class AXPDefaultThemeModule {
290
265
  viewers: {
291
266
  root: () => AXPRootLayoutComponent,
292
267
  master: {
293
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs')
268
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs')
294
269
  .then(c => c.AXPEntityMasterSingleViewComponent),
295
270
  ///
296
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs')
271
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs')
297
272
  .then(c => c.AXPEntityMasterCreateViewComponent),
298
273
  ///
299
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs')
274
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs')
300
275
  .then(c => c.AXPEntityMasterModifyViewComponent),
301
276
  //
302
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs')
277
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs')
303
278
  .then(c => c.AXPEntityMasterListViewComponent)
304
279
  }
305
280
  }
@@ -327,16 +302,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
327
302
  viewers: {
328
303
  root: () => AXPRootLayoutComponent,
329
304
  master: {
330
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs')
305
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs')
331
306
  .then(c => c.AXPEntityMasterSingleViewComponent),
332
307
  ///
333
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs')
308
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs')
334
309
  .then(c => c.AXPEntityMasterCreateViewComponent),
335
310
  ///
336
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs')
311
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs')
337
312
  .then(c => c.AXPEntityMasterModifyViewComponent),
338
313
  //
339
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs')
314
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs')
340
315
  .then(c => c.AXPEntityMasterListViewComponent)
341
316
  }
342
317
  }
@@ -348,14 +323,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
348
323
  }] });
349
324
 
350
325
  class AXPEntityDetailListViewComponent {
351
- constructor(actionSheetService, unsubscriber, platform, store) {
326
+ constructor(actionSheetService, unsubscriber) {
352
327
  this.actionSheetService = actionSheetService;
353
328
  this.unsubscriber = unsubscriber;
354
- this.platform = platform;
355
- this.store = store;
356
- this.layout = inject(AXPLayoutService);
357
329
  this.workflow = inject(AXPWorkflowService);
358
- this.isSM = this.store.select(isSmallScreen());
330
+ this.store = inject(AXPLayoutThemeService);
359
331
  this.destroyed = new Subject();
360
332
  this.dropdownRowItems = computed(() => {
361
333
  return this.vm.secondaryRowActions().map((c) => ({
@@ -427,10 +399,10 @@ class AXPEntityDetailListViewComponent {
427
399
  ngOnDestroy() {
428
400
  this.destroy();
429
401
  }
430
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityDetailListViewComponent, deps: [{ token: i1$3.AXActionSheetService }, { token: i2.AXUnsubscriber }, { token: i3$3.AXPlatform }, { token: i4$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
431
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPEntityDetailListViewComponent, isStandalone: true, selector: "axp-entity-detail-list-view", inputs: { vm: ["viewModel", "vm"] }, providers: [AXUnsubscriber], viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], ngImport: i0, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 60 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4$2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i8.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i9.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i10.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i10.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i10.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i10.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
402
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityDetailListViewComponent, deps: [{ token: i1$3.AXActionSheetService }, { token: i2$1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
403
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPEntityDetailListViewComponent, isStandalone: true, selector: "axp-entity-detail-list-view", inputs: { vm: ["viewModel", "vm"] }, providers: [AXUnsubscriber], viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], ngImport: i0, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">{{\n 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span>\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"><ax-clear-button></ax-clear-button></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item [text]=\"(tr.title | translate | async)!\" class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column fixed=\"end\" [width]=\"getCommandRowItems().length * 60 + 'px'\" [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i8.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i8.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i8.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
432
404
  //
433
- AXPLayoutBuilderModule }, { kind: "component", type: i6.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
405
+ AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
434
406
  }
435
407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityDetailListViewComponent, decorators: [{
436
408
  type: Component,
@@ -460,8 +432,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
460
432
  AXPGridLayoutDirective,
461
433
  AXPAuthModule,
462
434
  AXTranslationModule,
463
- ], standalone: true, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 60 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n" }]
464
- }], ctorParameters: () => [{ type: i1$3.AXActionSheetService }, { type: i2.AXUnsubscriber }, { type: i3$3.AXPlatform }, { type: i4$1.Store }], propDecorators: { vm: [{
435
+ ], standalone: true, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">{{\n 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span>\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"><ax-clear-button></ax-clear-button></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item [text]=\"(tr.title | translate | async)!\" class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column fixed=\"end\" [width]=\"getCommandRowItems().length * 60 + 'px'\" [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>" }]
436
+ }], ctorParameters: () => [{ type: i1$3.AXActionSheetService }, { type: i2$1.AXUnsubscriber }], propDecorators: { vm: [{
465
437
  type: Input,
466
438
  args: ['viewModel']
467
439
  }], grid: [{
@@ -469,9 +441,179 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
469
441
  args: ['grid']
470
442
  }] } });
471
443
 
444
+ /**
445
+ * Converts a list of AXPSettingDefinitionGroup into a tree structure of AXTreeViewSchema.
446
+ * This function processes groups and their nested sub-groups, recursively creating a tree.
447
+ *
448
+ * @param groups - Array of top-level setting groups to be converted into tree view schema.
449
+ * @param parentId - The parent ID for nested groups, passed down recursively. (Optional, default is undefined)
450
+ *
451
+ * @returns An array of AXTreeViewSchema representing the hierarchical structure of groups.
452
+ */
453
+ function convertToTreeViewSchema(groups, parentId) {
454
+ // Helper function to traverse and convert a single group (and its sub-groups)
455
+ const traverseGroups = (group, parent) => {
456
+ const currentId = group.name;
457
+ // Schema for the current group
458
+ const schema = {
459
+ id: currentId, // Unique identifier for the group (using group name)
460
+ parentId: parent, // Parent group ID, passed down recursively
461
+ text: group.title, // Display title of the group
462
+ tooltip: group.description, // Optional description as tooltip
463
+ hasChild: group.groups.length > 0, // Whether the group has child groups
464
+ isExpanded: false, // Default state for expansion (optional)
465
+ childrens: group.groups.length > 0 ? [] : undefined, // Child groups array (undefined if no children)
466
+ };
467
+ // Recursively process nested groups (sub-groups inside the current group)
468
+ group.groups.forEach((subGroup) => {
469
+ const childSchema = traverseGroups(subGroup, currentId); // Create schema for sub-group
470
+ schema.childrens?.push(childSchema); // Add the child schema to the parent group's children
471
+ });
472
+ return schema; // Return the group schema with its children (if any)
473
+ };
474
+ // Initialize an array to hold the top-level groups' schemas
475
+ const treeViewSchemas = [];
476
+ // Process each top-level group and convert it into tree view schema
477
+ groups.forEach((group) => {
478
+ treeViewSchemas.push(traverseGroups(group, parentId)); // Add the schema for each group
479
+ });
480
+ // Return the resulting hierarchical structure
481
+ return treeViewSchemas;
482
+ }
483
+ /**
484
+ * Converts nested groups into breadcrumb-like paths.
485
+ * Each path represents the hierarchy of group names leading to a specific group.
486
+ *
487
+ * @param groups - The input array of AXPSettingDefinitionGroup.
488
+ * @param basePath - The current path prefix (optional, default is an empty array).
489
+ *
490
+ * @returns An array of paths where each path is an array of strings representing the breadcrumb.
491
+ */
492
+
493
+ class AXPSettingsMenuComponent {
494
+ constructor() {
495
+ this.drawerComp = viewChild('drawer');
496
+ this.settingService = inject(AXPSettingDefinitionProviderService);
497
+ this.activatedRoute = inject(ActivatedRoute);
498
+ this.router = inject(Router);
499
+ this.data = signal([]);
500
+ this.formattedData = computed(() => convertToTreeViewSchema(this.data()));
501
+ this.activatedRoute.params.subscribe((i) => {
502
+ i?.['group'];
503
+ });
504
+ afterNextRender(() => {
505
+ this.drawerComp()?.open();
506
+ });
507
+ }
508
+ async ngOnInit() {
509
+ await this.getData();
510
+ }
511
+ async getData() {
512
+ this.data.set(await this.settingService.items());
513
+ }
514
+ onClick(item) {
515
+ this.router.navigate([item.data?.['id']], { relativeTo: this.activatedRoute });
516
+ }
517
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
518
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPSettingsMenuComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "drawerComp", first: true, predicate: ["drawer"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container class=\"ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer #drawer location=\"start\" mode=\"push\" [collapsed]=\"true\">\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n @if(data()){\n <ax-tree-view\n (onNodeClick)=\"onClick($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"formattedData()\"\n ></ax-tree-view>\n }\n </ax-content>\n </ax-drawer>\n\n <ax-content class=\"ax-bg-light-100 dark:ax-bg-dark-500 ax-flex ax-h-full ax-w-full ax-p-3 dark:ax-border-white/30\">\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n", dependencies: [{ kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i3$2.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
519
+ }
520
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsMenuComponent, decorators: [{
521
+ type: Component,
522
+ args: [{ standalone: true, imports: [AXDrawerModule, CommonModule, RouterOutlet, AXDecoratorModule, AXTreeViewModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container class=\"ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer #drawer location=\"start\" mode=\"push\" [collapsed]=\"true\">\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n @if(data()){\n <ax-tree-view\n (onNodeClick)=\"onClick($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"formattedData()\"\n ></ax-tree-view>\n }\n </ax-content>\n </ax-drawer>\n\n <ax-content class=\"ax-bg-light-100 dark:ax-bg-dark-500 ax-flex ax-h-full ax-w-full ax-p-3 dark:ax-border-white/30\">\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n" }]
523
+ }], ctorParameters: () => [] });
524
+
525
+ class AXPSettingsPreviewComponent {
526
+ setContext(value) {
527
+ this.context.set(value);
528
+ }
529
+ constructor() {
530
+ this.activatedRoute = inject(ActivatedRoute);
531
+ this.router = inject(Router);
532
+ this.toastService = inject(AXToastService);
533
+ this.settingService = inject(AXPSettingDefinitionProviderService);
534
+ this.data = signal(null);
535
+ this.context = signal({});
536
+ this.isSaving = signal(false);
537
+ this.previousContext = signal({});
538
+ this.canCancel = computed(() => this.isObjectEmpty(this.context()));
539
+ this.canSave = computed(() => !this.isSaving() &&
540
+ !this.isObjectEmpty(this.context()) &&
541
+ !this.areObjectsEqual(this.context(), this.previousContext()));
542
+ this.fullRoute = this.router.url.split('/settings')[0] + '/settings/';
543
+ this.eff = effect(() => console.log(this.context()));
544
+ debugger;
545
+ this.activatedRoute.params.subscribe((i) => {
546
+ const apiData = this.settingService.findGroupDetails(i?.['group']);
547
+ // console.log(apiData);
548
+ this.data.set(apiData);
549
+ });
550
+ }
551
+ isObjectEmpty(obj) {
552
+ // Check if the object has any own properties
553
+ return Object.keys(obj).length === 0;
554
+ }
555
+ areObjectsEqual(obj1, obj2) {
556
+ // Check if both are not objects or are null, compare directly
557
+ if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 === null || obj2 === null) {
558
+ return obj1 === obj2;
559
+ }
560
+ // Check if the keys' lengths match
561
+ const keys1 = Object.keys(obj1);
562
+ const keys2 = Object.keys(obj2);
563
+ if (keys1.length !== keys2.length) {
564
+ return false;
565
+ }
566
+ // Recursively compare each key and value
567
+ for (const key of keys1) {
568
+ const keyTyped = key;
569
+ if (!obj2.hasOwnProperty(key) || !this.areObjectsEqual(obj1[keyTyped], obj2[keyTyped])) {
570
+ return false;
571
+ }
572
+ }
573
+ return true;
574
+ }
575
+ onCancel() {
576
+ this.context.set({});
577
+ }
578
+ onSave() {
579
+ this.previousContext.set(this.context());
580
+ //call api
581
+ this.isSaving.set(true);
582
+ this.toastService.show({
583
+ color: 'success',
584
+ title: `saved successfully`,
585
+ location: 'bottom-center',
586
+ closeButton: true,
587
+ timeOut: 3000,
588
+ timeOutProgress: false,
589
+ });
590
+ //simulate wait until api call is responded
591
+ setTimeout(() => {
592
+ this.isSaving.set(false);
593
+ }, 500);
594
+ }
595
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
596
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPSettingsPreviewComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "ax-w-full" }, ngImport: i0, template: "<div #content>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n [stickyParent]=\"content\"\n >\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ data()?.breadcrumb?.[0]?.title }}</div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"fullRoute\"> Home </ax-breadcrumbs-item>\n @for(b of data()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [class.!dark:ax-text-neutral-200]=\"last\"\n [routerLink]=\"fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n </div>\n </div>\n <axp-widgets-container\n class=\"ax-flex ax-flex-col ax-gap-2 ax-p-4 ax-h-full ax-w-full\"\n [context]=\"context()\"\n (contextChange)=\"setContext($event)\"\n >\n <div class=\"ax-bg-surface ax-my-5 ax-border ax-rounded-xl\">\n @if(data()?.sections){ @for(i of data()?.sections; track i.name){\n <div class=\"ax-p-2 ax-w-full\">\n <div class=\"ax-py-4 ax-px-2\">\n <span class=\"ax-font-bold ax-text-xl\">{{ i.title }}</span>\n </div>\n @for(j of i.settings; track j.name){\n <div class=\"ax-p-2\">\n <p class=\"ax-text-sm ax-pb-1 ax-pl-1\">{{ j.title }}:</p>\n <div class=\"ax-max-w-[50%]\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"ax-w-full ax-gap-3 ax-p-4 ax-pt-6 ax-border-t ax-flex ax-justify-end ax-items-center\">\n <ax-button [disabled]=\"canCancel()\" (onClick)=\"onCancel()\" [text]=\"'cancel' | translate | async\"></ax-button>\n <ax-button\n [disabled]=\"!canSave()\"\n (onClick)=\"onSave()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }@else {\n <div class=\"ax-p-3\">\n @for(group of data()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a [routerLink]=\"fullRoute + group.name\" class=\"ax-text-primary-600 ax-underline ax-font-bold ax-text-xl\">{{\n group.title\n }}</a>\n </div>\n }\n </div>\n }\n </div></axp-widgets-container\n >\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "directive", type: i9.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i2$2.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i2$2.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
597
+ }
598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsPreviewComponent, decorators: [{
599
+ type: Component,
600
+ args: [{ standalone: true, imports: [
601
+ AXPLayoutBuilderModule,
602
+ AXDecoratorModule,
603
+ AXBreadcrumbsModule,
604
+ RouterLink,
605
+ AXButtonModule,
606
+ AXTranslationModule,
607
+ AsyncPipe,
608
+ AXPStickyDirective,
609
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
610
+ class: 'ax-w-full',
611
+ }, template: "<div #content>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n [stickyParent]=\"content\"\n >\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ data()?.breadcrumb?.[0]?.title }}</div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"fullRoute\"> Home </ax-breadcrumbs-item>\n @for(b of data()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [class.!dark:ax-text-neutral-200]=\"last\"\n [routerLink]=\"fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n </div>\n </div>\n <axp-widgets-container\n class=\"ax-flex ax-flex-col ax-gap-2 ax-p-4 ax-h-full ax-w-full\"\n [context]=\"context()\"\n (contextChange)=\"setContext($event)\"\n >\n <div class=\"ax-bg-surface ax-my-5 ax-border ax-rounded-xl\">\n @if(data()?.sections){ @for(i of data()?.sections; track i.name){\n <div class=\"ax-p-2 ax-w-full\">\n <div class=\"ax-py-4 ax-px-2\">\n <span class=\"ax-font-bold ax-text-xl\">{{ i.title }}</span>\n </div>\n @for(j of i.settings; track j.name){\n <div class=\"ax-p-2\">\n <p class=\"ax-text-sm ax-pb-1 ax-pl-1\">{{ j.title }}:</p>\n <div class=\"ax-max-w-[50%]\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"ax-w-full ax-gap-3 ax-p-4 ax-pt-6 ax-border-t ax-flex ax-justify-end ax-items-center\">\n <ax-button [disabled]=\"canCancel()\" (onClick)=\"onCancel()\" [text]=\"'cancel' | translate | async\"></ax-button>\n <ax-button\n [disabled]=\"!canSave()\"\n (onClick)=\"onSave()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }@else {\n <div class=\"ax-p-3\">\n @for(group of data()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a [routerLink]=\"fullRoute + group.name\" class=\"ax-text-primary-600 ax-underline ax-font-bold ax-text-xl\">{{\n group.title\n }}</a>\n </div>\n }\n </div>\n }\n </div></axp-widgets-container\n >\n</div>\n" }]
612
+ }], ctorParameters: () => [] });
613
+
472
614
  /**
473
615
  * Generated bundle index. Do not edit.
474
616
  */
475
617
 
476
- export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent };
618
+ export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsMenuComponent, AXPSettingsPreviewComponent };
477
619
  //# sourceMappingURL=acorex-platform-themes-default.mjs.map