@acorex/platform 18.0.4 → 18.0.6

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 (614) hide show
  1. package/README.md +7 -7
  2. package/auth/README.md +3 -3
  3. package/common/README.md +3 -3
  4. package/common/lib/app/application.types.d.ts +10 -6
  5. package/common/lib/data/dexie-storage.service.d.ts +0 -1
  6. package/common/lib/layout/grid-layout/grid-layout.types.d.ts +1 -2
  7. package/common/lib/schema/widgets/lookup/lookup-widget-filter.component.d.ts +1 -1
  8. package/common/lib/schema/widgets/lookup/lookup-widget-view.component.d.ts +2 -1
  9. package/common/lib/utils/data-generator.d.ts +13 -1
  10. package/common/lib/utils/index.d.ts +1 -0
  11. package/common/lib/utils/pdf.service.d.ts +25 -0
  12. package/esm2022/auth/index.mjs +1 -1
  13. package/esm2022/auth/lib/application/application.loader.mjs +1 -1
  14. package/esm2022/auth/lib/application/application.types.mjs +1 -1
  15. package/esm2022/auth/lib/auth-registry.service.mjs +1 -1
  16. package/esm2022/auth/lib/auth.guard.mjs +1 -1
  17. package/esm2022/auth/lib/auth.module.mjs +1 -1
  18. package/esm2022/auth/lib/auth.strategy.mjs +1 -1
  19. package/esm2022/auth/lib/errors.types.mjs +1 -1
  20. package/esm2022/auth/lib/feature/feature.directive.mjs +1 -1
  21. package/esm2022/auth/lib/feature/feature.guard.mjs +1 -1
  22. package/esm2022/auth/lib/feature/feature.loader.mjs +1 -1
  23. package/esm2022/auth/lib/feature/feature.types.mjs +1 -1
  24. package/esm2022/auth/lib/feature/index.mjs +1 -1
  25. package/esm2022/auth/lib/permission/index.mjs +1 -1
  26. package/esm2022/auth/lib/permission/permission.directive.mjs +1 -1
  27. package/esm2022/auth/lib/permission/permission.guard.mjs +1 -1
  28. package/esm2022/auth/lib/permission/permission.loader.mjs +1 -1
  29. package/esm2022/auth/lib/permission/permission.types.mjs +1 -1
  30. package/esm2022/auth/lib/session.service.mjs +1 -1
  31. package/esm2022/auth/lib/session.types.mjs +1 -1
  32. package/esm2022/auth/lib/tenant/tenant.loader.mjs +1 -1
  33. package/esm2022/auth/lib/tenant/tenant.types.mjs +1 -1
  34. package/esm2022/auth/lib/user/user.types.mjs +1 -1
  35. package/esm2022/common/index.mjs +1 -1
  36. package/esm2022/common/lib/app/application.types.mjs +5 -1
  37. package/esm2022/common/lib/app/index.mjs +1 -1
  38. package/esm2022/common/lib/app/operators.mjs +1 -1
  39. package/esm2022/common/lib/common.module.mjs +1 -1
  40. package/esm2022/common/lib/configs/app.config.mjs +1 -1
  41. package/esm2022/common/lib/configs/config.types.mjs +1 -1
  42. package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
  43. package/esm2022/common/lib/data/dexie-storage.service.mjs +2 -4
  44. package/esm2022/common/lib/data/entity-data-provider.mjs +1 -1
  45. package/esm2022/common/lib/data/index.mjs +1 -1
  46. package/esm2022/common/lib/data/storage-service.mjs +1 -1
  47. package/esm2022/common/lib/errors/error-handler-registry.service.mjs +1 -1
  48. package/esm2022/common/lib/errors/error-handler.types.mjs +1 -1
  49. package/esm2022/common/lib/errors/global-error-handler.mjs +1 -1
  50. package/esm2022/common/lib/errors/index.mjs +1 -1
  51. package/esm2022/common/lib/layout/beardcrumb.type.mjs +1 -1
  52. package/esm2022/common/lib/layout/component-slot/component-slot-loader.service.mjs +1 -1
  53. package/esm2022/common/lib/layout/component-slot/component-slot-registery.service.mjs +1 -1
  54. package/esm2022/common/lib/layout/component-slot/component-slot.directive.mjs +1 -1
  55. package/esm2022/common/lib/layout/component-slot/component-slot.module.mjs +1 -1
  56. package/esm2022/common/lib/layout/component-slot/component-slot.types.mjs +1 -1
  57. package/esm2022/common/lib/layout/component-slot/index.mjs +1 -1
  58. package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +5 -5
  59. package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +1 -1
  60. package/esm2022/common/lib/layout/grid-layout/index.mjs +1 -1
  61. package/esm2022/common/lib/layout/index.mjs +1 -1
  62. package/esm2022/common/lib/layout/layout.service.mjs +1 -1
  63. package/esm2022/common/lib/layout/logo/index.mjs +1 -1
  64. package/esm2022/common/lib/layout/logo/logo.component.mjs +3 -3
  65. package/esm2022/common/lib/layout/logo/logo.types.mjs +1 -1
  66. package/esm2022/common/lib/layout/menu/index.mjs +1 -1
  67. package/esm2022/common/lib/layout/menu/menu.loader.mjs +1 -1
  68. package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
  69. package/esm2022/common/lib/layout/sticky.directive.mjs +1 -1
  70. package/esm2022/common/lib/layout/theme/components/slots/footer-text-slot.component.mjs +5 -5
  71. package/esm2022/common/lib/layout/theme/components/slots/index.mjs +1 -1
  72. package/esm2022/common/lib/layout/theme/components/slots/navbar-slot.component.mjs +9 -9
  73. package/esm2022/common/lib/layout/theme/components/slots/theme-slot.component.mjs +16 -16
  74. package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +1 -1
  75. package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +1 -1
  76. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +1 -1
  77. package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +1 -1
  78. package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +1 -1
  79. package/esm2022/common/lib/layout/theme/store/index.mjs +1 -1
  80. package/esm2022/common/lib/schema/component-loader.mjs +1 -1
  81. package/esm2022/common/lib/schema/entity/entity-registery.service.mjs +1 -1
  82. package/esm2022/common/lib/schema/entity/entity.class.mjs +1 -1
  83. package/esm2022/common/lib/schema/entity/entity.loader.mjs +1 -1
  84. package/esm2022/common/lib/schema/entity/index.mjs +1 -1
  85. package/esm2022/common/lib/schema/formats.mjs +1 -1
  86. package/esm2022/common/lib/schema/index.mjs +1 -1
  87. package/esm2022/common/lib/schema/schema-registery.service.mjs +1 -1
  88. package/esm2022/common/lib/schema/schema.module.mjs +1 -1
  89. package/esm2022/common/lib/schema/schema.types.mjs +1 -1
  90. package/esm2022/common/lib/schema/widget/index.mjs +1 -1
  91. package/esm2022/common/lib/schema/widget/widget-base.mjs +1 -1
  92. package/esm2022/common/lib/schema/widget/widget-column-renderer.mjs +17 -17
  93. package/esm2022/common/lib/schema/widget/widget-filter-renderer.mjs +13 -13
  94. package/esm2022/common/lib/schema/widget/widget-renderer.mjs +13 -13
  95. package/esm2022/common/lib/schema/widget/widget-token.mjs +1 -1
  96. package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +67 -67
  97. package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-view.component.mjs +15 -15
  98. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-column.component.mjs +31 -31
  99. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +1 -1
  100. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-view.component.mjs +25 -25
  101. package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +76 -76
  102. package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +86 -86
  103. package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +68 -68
  104. package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +1 -1
  105. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-column.component.mjs +1 -1
  106. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +100 -100
  107. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +59 -59
  108. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-view.component.mjs +21 -21
  109. package/esm2022/common/lib/schema/widgets/email/email-widget-column.component.mjs +23 -23
  110. package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +134 -134
  111. package/esm2022/common/lib/schema/widgets/email/email-widget-view.component.mjs +65 -65
  112. package/esm2022/common/lib/schema/widgets/file/file-widget-column.component.mjs +1 -1
  113. package/esm2022/common/lib/schema/widgets/file/file-widget-edit.component.mjs +116 -116
  114. package/esm2022/common/lib/schema/widgets/file/file-widget-filter.component.mjs +5 -5
  115. package/esm2022/common/lib/schema/widgets/file/file-widget-view.component.mjs +70 -70
  116. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-edit.component.mjs +125 -125
  117. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-filter.component.mjs +5 -5
  118. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-types.mjs +1 -1
  119. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-view.component.mjs +109 -109
  120. package/esm2022/common/lib/schema/widgets/index.mjs +1 -1
  121. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-column.component.mjs +1 -1
  122. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +46 -29
  123. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +85 -68
  124. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +5 -5
  125. package/esm2022/common/lib/schema/widgets/map/map-widget-edit.component.mjs +5 -5
  126. package/esm2022/common/lib/schema/widgets/map/map-widget-view.component.mjs +5 -5
  127. package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-column.component.mjs +23 -23
  128. package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-edit.component.mjs +88 -88
  129. package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-view.component.mjs +67 -67
  130. package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +15 -15
  131. package/esm2022/common/lib/schema/widgets/number/number-widget-view.component.mjs +1 -1
  132. package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +100 -100
  133. package/esm2022/common/lib/schema/widgets/password/password-widget-column.component.mjs +37 -37
  134. package/esm2022/common/lib/schema/widgets/password/password-widget-edit.component.mjs +15 -15
  135. package/esm2022/common/lib/schema/widgets/password/password-widget-view.component.mjs +58 -58
  136. package/esm2022/common/lib/schema/widgets/phone/phone-widget-column.component.mjs +41 -41
  137. package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +140 -140
  138. package/esm2022/common/lib/schema/widgets/phone/phone-widget-view.component.mjs +69 -69
  139. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-column.component.mjs +23 -23
  140. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.mjs +9 -9
  141. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-view.component.mjs +9 -9
  142. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-column.component.mjs +17 -17
  143. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +29 -29
  144. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +19 -19
  145. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-view.component.mjs +9 -9
  146. package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-edit.component.mjs +56 -56
  147. package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-view.component.mjs +17 -17
  148. package/esm2022/common/lib/schema/widgets/text/largetext-widget-edit.component.mjs +13 -13
  149. package/esm2022/common/lib/schema/widgets/text/text-widget-column.component.mjs +1 -1
  150. package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +88 -88
  151. package/esm2022/common/lib/schema/widgets/text/text-widget-view.component.mjs +21 -21
  152. package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-column.component.mjs +33 -33
  153. package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-edit.component.mjs +1 -1
  154. package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-view.component.mjs +25 -25
  155. package/esm2022/common/lib/settings/index.mjs +1 -1
  156. package/esm2022/common/lib/settings/settings.loader.mjs +1 -1
  157. package/esm2022/common/lib/settings/settings.service.mjs +1 -1
  158. package/esm2022/common/lib/settings/settings.types.mjs +1 -1
  159. package/esm2022/common/lib/store/common.actions.mjs +1 -1
  160. package/esm2022/common/lib/store/common.effects.mjs +1 -1
  161. package/esm2022/common/lib/store/index.mjs +1 -1
  162. package/esm2022/common/lib/utils/clipboard-service.mjs +1 -1
  163. package/esm2022/common/lib/utils/data-generator.mjs +67 -2
  164. package/esm2022/common/lib/utils/index.mjs +2 -1
  165. package/esm2022/common/lib/utils/pdf.service.mjs +85 -0
  166. package/esm2022/common/lib/utils/router-util.service.mjs +1 -1
  167. package/esm2022/common/lib/workflows/common.workflow.mjs +1 -1
  168. package/esm2022/common/lib/workflows/error-handler.mjs +1 -1
  169. package/esm2022/common/lib/workflows/index.mjs +1 -1
  170. package/esm2022/index.mjs +1 -1
  171. package/esm2022/layout/builder/index.mjs +1 -1
  172. package/esm2022/layout/builder/lib/builder/builder.module.mjs +1 -1
  173. package/esm2022/layout/builder/lib/builder/builder.service.mjs +1 -1
  174. package/esm2022/layout/builder/lib/builder/index.mjs +1 -1
  175. package/esm2022/layout/builder/lib/builder/layout.types.mjs +1 -1
  176. package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +17 -17
  177. package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +1 -1
  178. package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +1 -1
  179. package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +19 -19
  180. package/esm2022/layout/builder/lib/builder/widget.types.mjs +1 -1
  181. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +28 -13
  182. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +23 -19
  183. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +45 -14
  184. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +33 -34
  185. package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +1 -1
  186. package/esm2022/layout/entity/lib/entity-registery.service.mjs +1 -1
  187. package/esm2022/layout/entity/lib/entity.config.mjs +1 -1
  188. package/esm2022/layout/entity/lib/entity.module.mjs +1 -1
  189. package/esm2022/layout/entity/lib/entity.viewmodel.mjs +1 -1
  190. package/esm2022/layout/entity/lib/index.mjs +1 -1
  191. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +60 -43
  192. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +72 -73
  193. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +15 -3
  194. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +5 -5
  195. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +3 -6
  196. package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +1 -1
  197. package/esm2022/layout/entity/lib/workflows/show-details.workflow.mjs +1 -2
  198. package/esm2022/layout/entity/lib/workflows/show-list.workflow.mjs +1 -1
  199. package/esm2022/layouts/index.mjs +1 -1
  200. package/esm2022/layouts/lib/admin/admin.module.mjs +1 -1
  201. package/esm2022/layouts/lib/admin/admin.routes.mjs +1 -1
  202. package/esm2022/layouts/lib/admin/custom-reuse.strategy.mjs +1 -1
  203. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +3 -3
  204. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +1 -1
  205. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +1 -1
  206. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +3 -3
  207. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/index.mjs +1 -1
  208. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +3 -3
  209. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/index.mjs +1 -1
  210. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +3 -3
  211. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +3 -3
  212. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +19 -19
  213. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +3 -3
  214. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
  215. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/index.mjs +1 -1
  216. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +1 -1
  217. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +1 -1
  218. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +3 -3
  219. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +1 -1
  220. package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +3 -3
  221. package/esm2022/layouts/lib/admin/entity-layout/index.mjs +1 -1
  222. package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +1 -1
  223. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +1 -1
  224. package/esm2022/layouts/lib/admin/entity-layout/workflows/index.mjs +1 -1
  225. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +1 -1
  226. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-section.workflow.mjs +1 -1
  227. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-details.workflow.mjs +1 -1
  228. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-list.workflow.mjs +1 -1
  229. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.mjs +1 -1
  230. package/esm2022/layouts/lib/admin/entity.resolver.mjs +1 -1
  231. package/esm2022/layouts/lib/admin/index.mjs +1 -1
  232. package/esm2022/layouts/lib/layout.module.mjs +1 -1
  233. package/esm2022/mocks/index.mjs +1 -1
  234. package/esm2022/mocks/lib/mocks.module.mjs +1 -1
  235. package/esm2022/mocks/lib/services/mocker.service.mjs +1 -1
  236. package/esm2022/mocks/lib/storage/storage.mock.service.mjs +1 -1
  237. package/esm2022/native/index.mjs +1 -1
  238. package/esm2022/native/lib/native.service.mjs +1 -1
  239. package/esm2022/themes/default/index.mjs +1 -1
  240. package/esm2022/themes/default/lib/default.module.mjs +1 -1
  241. package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +1 -1
  242. package/esm2022/themes/default/lib/layout.routes.mjs +1 -1
  243. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +14 -21
  244. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +3 -3
  245. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +17 -21
  246. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +3 -3
  247. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +3 -3
  248. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +3 -3
  249. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +8 -5
  250. package/esm2022/themes/default/lib/layouts/root-layout/components/footer/footer.component.mjs +3 -3
  251. package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +3 -3
  252. package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +1 -1
  253. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +3 -3
  254. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +1 -1
  255. package/esm2022/themes/default/lib/pages/errors/error-401/error-401.component.mjs +3 -3
  256. package/esm2022/themes/default/lib/pages/errors/error-404/error-404.component.mjs +3 -3
  257. package/esm2022/themes/default/lib/pages/errors/error-offline/error-offline.component.mjs +3 -3
  258. package/esm2022/widgets/index.mjs +1 -1
  259. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-column.component.mjs +25 -25
  260. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-edit.component.mjs +9 -9
  261. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-view.component.mjs +29 -29
  262. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget.config.mjs +1 -1
  263. package/esm2022/widgets/lib/editors/checkbox/index.mjs +1 -1
  264. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +1 -1
  265. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-designer.component.mjs +1 -1
  266. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +54 -54
  267. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-filter.component.mjs +1 -1
  268. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-print.component.mjs +1 -1
  269. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +17 -18
  270. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget.config.mjs +1 -1
  271. package/esm2022/widgets/lib/editors/date-time-box-widget/index.mjs +1 -1
  272. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-column.component.mjs +21 -21
  273. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-designer.component.mjs +1 -1
  274. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.mjs +142 -142
  275. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-filter.component.mjs +1 -1
  276. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-print.component.mjs +1 -1
  277. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-view.component.mjs +69 -69
  278. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget.config.mjs +1 -1
  279. package/esm2022/widgets/lib/editors/email-box-widget/index.mjs +1 -1
  280. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-column.component.mjs +1 -1
  281. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-designer.component.mjs +1 -1
  282. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-edit.component.mjs +112 -112
  283. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-filter.component.mjs +1 -1
  284. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-print.component.mjs +1 -1
  285. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-view.component.mjs +64 -64
  286. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget.config.mjs +1 -1
  287. package/esm2022/widgets/lib/editors/file-box-widget/index.mjs +1 -1
  288. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-column.component.mjs +1 -1
  289. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-designer.component.mjs +1 -1
  290. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-edit.component.mjs +107 -107
  291. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-filter.component.mjs +1 -1
  292. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-print.component.mjs +1 -1
  293. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-types.mjs +1 -1
  294. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-view.component.mjs +97 -97
  295. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget.config.mjs +1 -1
  296. package/esm2022/widgets/lib/editors/gallery-widget/index.mjs +1 -1
  297. package/esm2022/widgets/lib/editors/map-box-widget/index.mjs +1 -1
  298. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-column.component.mjs +1 -1
  299. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-designer.component.mjs +1 -1
  300. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-edit.component.mjs +5 -5
  301. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-filter.component.mjs +1 -1
  302. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-print.component.mjs +1 -1
  303. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-view.component.mjs +5 -5
  304. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget.config.mjs +1 -1
  305. package/esm2022/widgets/lib/editors/number-box-widget/index.mjs +1 -1
  306. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-column.component.mjs +1 -1
  307. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-designer.component.mjs +1 -1
  308. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.mjs +68 -68
  309. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-filter.component.mjs +1 -1
  310. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-print.component.mjs +1 -1
  311. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-view.component.mjs +17 -17
  312. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget.config.mjs +1 -1
  313. package/esm2022/widgets/lib/editors/password-box-widget/index.mjs +1 -1
  314. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-column.component.mjs +1 -1
  315. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-designer.component.mjs +1 -1
  316. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-edit.component.mjs +9 -9
  317. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-filter.component.mjs +1 -1
  318. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-print.component.mjs +1 -1
  319. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-view.component.mjs +45 -45
  320. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget.config.mjs +1 -1
  321. package/esm2022/widgets/lib/editors/phone-box-widget/index.mjs +1 -1
  322. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-column.component.mjs +21 -21
  323. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-designer.component.mjs +1 -1
  324. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.mjs +138 -138
  325. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-filter.component.mjs +1 -1
  326. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-print.component.mjs +1 -1
  327. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-view.component.mjs +69 -69
  328. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget.config.mjs +1 -1
  329. package/esm2022/widgets/lib/editors/rich-text-widget/index.mjs +1 -1
  330. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-column.component.mjs +1 -1
  331. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-designer.component.mjs +1 -1
  332. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +9 -9
  333. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-filter.component.mjs +1 -1
  334. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-print.component.mjs +1 -1
  335. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +17 -11
  336. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget.config.mjs +1 -1
  337. package/esm2022/widgets/lib/editors/select-box-widget/index.mjs +1 -1
  338. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-column.component.mjs +1 -1
  339. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-designer.component.mjs +1 -1
  340. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.mjs +25 -25
  341. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-filter.component.mjs +1 -1
  342. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-print.component.mjs +1 -1
  343. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-view.component.mjs +23 -23
  344. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget.config.mjs +1 -1
  345. package/esm2022/widgets/lib/editors/selection-list-widget/index.mjs +1 -1
  346. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-column.component.mjs +13 -13
  347. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-designer.component.mjs +1 -1
  348. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-edit.component.mjs +31 -31
  349. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-filter.component.mjs +1 -1
  350. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-print.component.mjs +1 -1
  351. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +11 -10
  352. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget.config.mjs +1 -1
  353. package/esm2022/widgets/lib/editors/signature-pad-widget/index.mjs +1 -1
  354. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +1 -1
  355. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-designer.component.mjs +1 -1
  356. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +57 -56
  357. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-filter.component.mjs +1 -1
  358. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-print.component.mjs +1 -1
  359. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +18 -17
  360. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget.config.mjs +1 -1
  361. package/esm2022/widgets/lib/editors/text-box-widget/index.mjs +1 -1
  362. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-column.component.mjs +1 -1
  363. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-designer.component.mjs +1 -1
  364. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +63 -62
  365. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-filter.component.mjs +1 -1
  366. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-print.component.mjs +1 -1
  367. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +18 -17
  368. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget.config.mjs +1 -1
  369. package/esm2022/widgets/lib/editors/toggle-widget/index.mjs +1 -1
  370. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-column.component.mjs +25 -25
  371. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-designer.component.mjs +1 -1
  372. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-edit.component.mjs +1 -1
  373. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-filter.component.mjs +1 -1
  374. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-print.component.mjs +1 -1
  375. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-view.component.mjs +25 -25
  376. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget.config.mjs +1 -1
  377. package/esm2022/widgets/lib/layout/block-widget/block-widget.component.mjs +11 -11
  378. package/esm2022/widgets/lib/layout/block-widget/block-widget.config.mjs +1 -1
  379. package/esm2022/widgets/lib/layout/block-widget/index.mjs +1 -1
  380. package/esm2022/widgets/lib/widgets.module.mjs +1 -1
  381. package/esm2022/workflow/index.mjs +1 -1
  382. package/esm2022/workflow/lib/actions/start-workflow.action.mjs +7 -3
  383. package/esm2022/workflow/lib/errors.types.mjs +1 -1
  384. package/esm2022/workflow/lib/workflow-event-dispatcher.service.mjs +1 -1
  385. package/esm2022/workflow/lib/workflow-registery.service.mjs +1 -1
  386. package/esm2022/workflow/lib/workflow.module.mjs +1 -1
  387. package/esm2022/workflow/lib/workflow.service.mjs +3 -3
  388. package/esm2022/workflow/lib/workflow.types.mjs +11 -10
  389. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  390. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs → acorex-platform-common-avatar-widget-edit.component-B8txzrTw.mjs} +67 -67
  391. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-B8txzrTw.mjs.map +1 -0
  392. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs → acorex-platform-common-avatar-widget-view.component-B3Ubyw3X.mjs} +15 -15
  393. package/fesm2022/acorex-platform-common-avatar-widget-view.component-B3Ubyw3X.mjs.map +1 -0
  394. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs → acorex-platform-common-boolean-widget-filter.component-CcJ5Vj4q.mjs} +76 -76
  395. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-CcJ5Vj4q.mjs.map +1 -0
  396. package/fesm2022/{acorex-platform-common-change-password.component-NvrMMq9e.mjs → acorex-platform-common-change-password.component-CULJjn0l.mjs} +100 -100
  397. package/fesm2022/acorex-platform-common-change-password.component-CULJjn0l.mjs.map +1 -0
  398. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs → acorex-platform-common-checkbox-widget-column.component-C91gG8nm.mjs} +31 -31
  399. package/fesm2022/acorex-platform-common-checkbox-widget-column.component-C91gG8nm.mjs.map +1 -0
  400. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs.map +1 -1
  401. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs → acorex-platform-common-checkbox-widget-view.component-BDAtJB1B.mjs} +25 -25
  402. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs.map → acorex-platform-common-checkbox-widget-view.component-BDAtJB1B.mjs.map} +1 -1
  403. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs.map +1 -1
  404. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs → acorex-platform-common-dateTime-widget-edit.component-DRsoJMVG.mjs} +100 -100
  405. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-DRsoJMVG.mjs.map +1 -0
  406. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs → acorex-platform-common-dateTime-widget-filter.component-uB7iwji0.mjs} +59 -59
  407. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-uB7iwji0.mjs.map +1 -0
  408. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs → acorex-platform-common-dateTime-widget-view.component-Dxmnor_-.mjs} +21 -21
  409. package/fesm2022/acorex-platform-common-dateTime-widget-view.component-Dxmnor_-.mjs.map +1 -0
  410. package/fesm2022/{acorex-platform-common-email-widget-column.component-BgNdL62k.mjs → acorex-platform-common-email-widget-column.component-DlPoexcx.mjs} +23 -23
  411. package/fesm2022/acorex-platform-common-email-widget-column.component-DlPoexcx.mjs.map +1 -0
  412. package/fesm2022/{acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs → acorex-platform-common-email-widget-edit.component-CY-Nu0xD.mjs} +134 -134
  413. package/fesm2022/acorex-platform-common-email-widget-edit.component-CY-Nu0xD.mjs.map +1 -0
  414. package/fesm2022/{acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs → acorex-platform-common-email-widget-view.component-C4M7KGUS.mjs} +65 -65
  415. package/fesm2022/acorex-platform-common-email-widget-view.component-C4M7KGUS.mjs.map +1 -0
  416. package/fesm2022/acorex-platform-common-file-widget-column.component-CwFzLLHt.mjs.map +1 -1
  417. package/fesm2022/{acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs → acorex-platform-common-file-widget-edit.component-ZXhaXwWN.mjs} +116 -116
  418. package/fesm2022/acorex-platform-common-file-widget-edit.component-ZXhaXwWN.mjs.map +1 -0
  419. package/fesm2022/{acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs → acorex-platform-common-file-widget-filter.component-qL-PznYm.mjs} +5 -5
  420. package/fesm2022/acorex-platform-common-file-widget-filter.component-qL-PznYm.mjs.map +1 -0
  421. package/fesm2022/{acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs → acorex-platform-common-file-widget-view.component-B0C9oJLT.mjs} +70 -70
  422. package/fesm2022/acorex-platform-common-file-widget-view.component-B0C9oJLT.mjs.map +1 -0
  423. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs → acorex-platform-common-gallery-widget-edit.component-DB0-6pik.mjs} +125 -125
  424. package/fesm2022/acorex-platform-common-gallery-widget-edit.component-DB0-6pik.mjs.map +1 -0
  425. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs → acorex-platform-common-gallery-widget-filter.component-Bvy3nmy6.mjs} +5 -5
  426. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Bvy3nmy6.mjs.map +1 -0
  427. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs → acorex-platform-common-gallery-widget-view.component-Bp5cEEiY.mjs} +109 -109
  428. package/fesm2022/acorex-platform-common-gallery-widget-view.component-Bp5cEEiY.mjs.map +1 -0
  429. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs → acorex-platform-common-largetext-widget-edit.component-DJhPlQ0G.mjs} +13 -13
  430. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DJhPlQ0G.mjs.map +1 -0
  431. package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs.map +1 -1
  432. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs → acorex-platform-common-lookup-widget-edit.component-CpzTuRyJ.mjs} +45 -28
  433. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CpzTuRyJ.mjs.map +1 -0
  434. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs → acorex-platform-common-lookup-widget-filter.component-i8oRoMWh.mjs} +84 -67
  435. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-i8oRoMWh.mjs.map +1 -0
  436. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs → acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs} +5 -5
  437. package/fesm2022/acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs.map +1 -0
  438. package/fesm2022/{acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs → acorex-platform-common-map-widget-edit.component-BjrRrklq.mjs} +5 -5
  439. package/fesm2022/acorex-platform-common-map-widget-edit.component-BjrRrklq.mjs.map +1 -0
  440. package/fesm2022/{acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs → acorex-platform-common-map-widget-view.component-C5gL9-oB.mjs} +5 -5
  441. package/fesm2022/acorex-platform-common-map-widget-view.component-C5gL9-oB.mjs.map +1 -0
  442. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs → acorex-platform-common-messenger-widget-column.component-BQSYcyso.mjs} +23 -23
  443. package/fesm2022/acorex-platform-common-messenger-widget-column.component-BQSYcyso.mjs.map +1 -0
  444. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs → acorex-platform-common-messenger-widget-edit.component-WHM8ANuQ.mjs} +88 -88
  445. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-WHM8ANuQ.mjs.map +1 -0
  446. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs → acorex-platform-common-messenger-widget-view.component-B4Yt68Vn.mjs} +67 -67
  447. package/fesm2022/acorex-platform-common-messenger-widget-view.component-B4Yt68Vn.mjs.map +1 -0
  448. package/fesm2022/{acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs → acorex-platform-common-number-widget-edit.component-D9dC514F.mjs} +15 -15
  449. package/fesm2022/acorex-platform-common-number-widget-edit.component-D9dC514F.mjs.map +1 -0
  450. package/fesm2022/{acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs → acorex-platform-common-number-widget-filter.component-BkKeBL6p.mjs} +86 -86
  451. package/fesm2022/acorex-platform-common-number-widget-filter.component-BkKeBL6p.mjs.map +1 -0
  452. package/fesm2022/acorex-platform-common-number-widget-view.component-DD0tkoc4.mjs.map +1 -1
  453. package/fesm2022/{acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs → acorex-platform-common-password-widget-column.component-C0-x1_Np.mjs} +37 -37
  454. package/fesm2022/acorex-platform-common-password-widget-column.component-C0-x1_Np.mjs.map +1 -0
  455. package/fesm2022/{acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs → acorex-platform-common-password-widget-edit.component-BbYqIGEP.mjs} +15 -15
  456. package/fesm2022/acorex-platform-common-password-widget-edit.component-BbYqIGEP.mjs.map +1 -0
  457. package/fesm2022/{acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs → acorex-platform-common-password-widget-view.component-B6vGWi9I.mjs} +59 -59
  458. package/fesm2022/acorex-platform-common-password-widget-view.component-B6vGWi9I.mjs.map +1 -0
  459. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs → acorex-platform-common-phone-widget-column.component-uAeAPCog.mjs} +41 -41
  460. package/fesm2022/acorex-platform-common-phone-widget-column.component-uAeAPCog.mjs.map +1 -0
  461. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs → acorex-platform-common-phone-widget-edit.component-BdxXFoxc.mjs} +140 -140
  462. package/fesm2022/acorex-platform-common-phone-widget-edit.component-BdxXFoxc.mjs.map +1 -0
  463. package/fesm2022/{acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs → acorex-platform-common-phone-widget-view.component-D_A5NXzA.mjs} +69 -69
  464. package/fesm2022/acorex-platform-common-phone-widget-view.component-D_A5NXzA.mjs.map +1 -0
  465. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs → acorex-platform-common-rich-text-widget-column.component-DDJn1WqG.mjs} +23 -23
  466. package/fesm2022/acorex-platform-common-rich-text-widget-column.component-DDJn1WqG.mjs.map +1 -0
  467. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs → acorex-platform-common-rich-text-widget-edit.component-f30-VPMJ.mjs} +9 -9
  468. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-f30-VPMJ.mjs.map +1 -0
  469. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs → acorex-platform-common-rich-text-widget-view.component-Y214kMe4.mjs} +9 -9
  470. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-Y214kMe4.mjs.map +1 -0
  471. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs → acorex-platform-common-selection-list-widget-column.component-4uQzk7WQ.mjs} +17 -17
  472. package/fesm2022/acorex-platform-common-selection-list-widget-column.component-4uQzk7WQ.mjs.map +1 -0
  473. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs → acorex-platform-common-selection-list-widget-edit.component-BY7A969M.mjs} +29 -29
  474. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BY7A969M.mjs.map +1 -0
  475. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs → acorex-platform-common-selection-list-widget-filter.component-NDAFZhfE.mjs} +19 -19
  476. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-NDAFZhfE.mjs.map +1 -0
  477. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs → acorex-platform-common-selection-list-widget-view.component-HzxEiWgp.mjs} +9 -9
  478. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-HzxEiWgp.mjs.map +1 -0
  479. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs → acorex-platform-common-signature-pad-widget-edit.component-C6VI3F_S.mjs} +56 -56
  480. package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-C6VI3F_S.mjs.map +1 -0
  481. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs → acorex-platform-common-signature-pad-widget-view.component-CEiBtv9t.mjs} +17 -17
  482. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CEiBtv9t.mjs.map +1 -0
  483. package/fesm2022/{acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs → acorex-platform-common-string-widget-filter.component-BZiyRHfg.mjs} +68 -68
  484. package/fesm2022/acorex-platform-common-string-widget-filter.component-BZiyRHfg.mjs.map +1 -0
  485. package/fesm2022/acorex-platform-common-text-widget-column.component-qXusAevm.mjs.map +1 -1
  486. package/fesm2022/{acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs → acorex-platform-common-text-widget-edit.component-DSwPteMX.mjs} +88 -88
  487. package/fesm2022/acorex-platform-common-text-widget-edit.component-DSwPteMX.mjs.map +1 -0
  488. package/fesm2022/{acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs → acorex-platform-common-text-widget-view.component-CKg9nvbY.mjs} +21 -21
  489. package/fesm2022/acorex-platform-common-text-widget-view.component-CKg9nvbY.mjs.map +1 -0
  490. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs → acorex-platform-common-toggle-widget-column.component-_IrciAj-.mjs} +33 -33
  491. package/fesm2022/acorex-platform-common-toggle-widget-column.component-_IrciAj-.mjs.map +1 -0
  492. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CDG62BJN.mjs.map +1 -1
  493. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs → acorex-platform-common-toggle-widget-view.component-B5JwQ8X-.mjs} +25 -25
  494. package/fesm2022/acorex-platform-common-toggle-widget-view.component-B5JwQ8X-.mjs.map +1 -0
  495. package/fesm2022/acorex-platform-common.mjs +281 -131
  496. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  497. package/fesm2022/acorex-platform-layout-builder.mjs +34 -34
  498. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  499. package/fesm2022/acorex-platform-layout-entity.mjs +272 -200
  500. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  501. package/fesm2022/acorex-platform-layouts-entity-create-view.component-Bxkv579D.mjs +107 -0
  502. package/fesm2022/acorex-platform-layouts-entity-create-view.component-Bxkv579D.mjs.map +1 -0
  503. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C-dS2HFl.mjs +88 -0
  504. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C-dS2HFl.mjs.map +1 -0
  505. package/fesm2022/acorex-platform-layouts.mjs +35 -35
  506. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  507. package/fesm2022/acorex-platform-mocks.mjs.map +1 -1
  508. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  509. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CTlj-QBs.mjs +96 -0
  510. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CTlj-QBs.mjs.map +1 -0
  511. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DHmUvWx8.mjs +85 -0
  512. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DHmUvWx8.mjs.map +1 -0
  513. package/fesm2022/acorex-platform-themes-default-error-401.component-BeQ4_BgW.mjs +31 -0
  514. package/fesm2022/acorex-platform-themes-default-error-401.component-BeQ4_BgW.mjs.map +1 -0
  515. package/fesm2022/acorex-platform-themes-default-error-404.component-BYDiT6Ns.mjs +25 -0
  516. package/fesm2022/acorex-platform-themes-default-error-404.component-BYDiT6Ns.mjs.map +1 -0
  517. package/fesm2022/acorex-platform-themes-default-error-offline.component-DUtW3w_g.mjs +19 -0
  518. package/fesm2022/acorex-platform-themes-default-error-offline.component-DUtW3w_g.mjs.map +1 -0
  519. package/fesm2022/acorex-platform-themes-default.mjs +52 -60
  520. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  521. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs → acorex-platform-widgets-checkbox-widget-column.component-CFCwedxX.mjs} +25 -25
  522. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-CFCwedxX.mjs.map +1 -0
  523. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs → acorex-platform-widgets-checkbox-widget-view.component-CCTIjDb0.mjs} +29 -29
  524. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CCTIjDb0.mjs.map +1 -0
  525. package/fesm2022/acorex-platform-widgets.mjs +1383 -1374
  526. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  527. package/fesm2022/acorex-platform-workflow.mjs +18 -13
  528. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  529. package/fesm2022/acorex-platform.mjs.map +1 -1
  530. package/layout/builder/README.md +3 -3
  531. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +2 -1
  532. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +9 -6
  533. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +7 -5
  534. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -0
  535. package/layouts/README.md +3 -3
  536. package/mocks/README.md +3 -3
  537. package/package.json +1 -1
  538. package/themes/default/README.md +3 -3
  539. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +1 -0
  540. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +2 -1
  541. package/widgets/README.md +3 -3
  542. package/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +1 -1
  543. package/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.d.ts +3 -2
  544. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +1 -1
  545. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +1 -1
  546. package/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.d.ts +1 -1
  547. package/widgets/lib/editors/text-box-widget/text-box-widget-view.component.d.ts +1 -1
  548. package/workflow/README.md +3 -3
  549. package/workflow/lib/workflow.service.d.ts +1 -1
  550. package/workflow/lib/workflow.types.d.ts +4 -3
  551. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs.map +0 -1
  552. package/fesm2022/acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs.map +0 -1
  553. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs.map +0 -1
  554. package/fesm2022/acorex-platform-common-change-password.component-NvrMMq9e.mjs.map +0 -1
  555. package/fesm2022/acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs.map +0 -1
  556. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs.map +0 -1
  557. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs.map +0 -1
  558. package/fesm2022/acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs.map +0 -1
  559. package/fesm2022/acorex-platform-common-email-widget-column.component-BgNdL62k.mjs.map +0 -1
  560. package/fesm2022/acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs.map +0 -1
  561. package/fesm2022/acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs.map +0 -1
  562. package/fesm2022/acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs.map +0 -1
  563. package/fesm2022/acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs.map +0 -1
  564. package/fesm2022/acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs.map +0 -1
  565. package/fesm2022/acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs.map +0 -1
  566. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs.map +0 -1
  567. package/fesm2022/acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs.map +0 -1
  568. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs.map +0 -1
  569. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs.map +0 -1
  570. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs.map +0 -1
  571. package/fesm2022/acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs.map +0 -1
  572. package/fesm2022/acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs.map +0 -1
  573. package/fesm2022/acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs.map +0 -1
  574. package/fesm2022/acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs.map +0 -1
  575. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs.map +0 -1
  576. package/fesm2022/acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs.map +0 -1
  577. package/fesm2022/acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs.map +0 -1
  578. package/fesm2022/acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs.map +0 -1
  579. package/fesm2022/acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs.map +0 -1
  580. package/fesm2022/acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs.map +0 -1
  581. package/fesm2022/acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs.map +0 -1
  582. package/fesm2022/acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs.map +0 -1
  583. package/fesm2022/acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs.map +0 -1
  584. package/fesm2022/acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs.map +0 -1
  585. package/fesm2022/acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs.map +0 -1
  586. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs.map +0 -1
  587. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs.map +0 -1
  588. package/fesm2022/acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs.map +0 -1
  589. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs.map +0 -1
  590. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs.map +0 -1
  591. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs.map +0 -1
  592. package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs.map +0 -1
  593. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs.map +0 -1
  594. package/fesm2022/acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs.map +0 -1
  595. package/fesm2022/acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs.map +0 -1
  596. package/fesm2022/acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs.map +0 -1
  597. package/fesm2022/acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs.map +0 -1
  598. package/fesm2022/acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs.map +0 -1
  599. package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs +0 -107
  600. package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs.map +0 -1
  601. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs +0 -88
  602. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs.map +0 -1
  603. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs +0 -96
  604. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs.map +0 -1
  605. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs +0 -85
  606. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs.map +0 -1
  607. package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs +0 -31
  608. package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs.map +0 -1
  609. package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs +0 -25
  610. package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs.map +0 -1
  611. package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs +0 -19
  612. package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs.map +0 -1
  613. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs.map +0 -1
  614. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layouts.mjs","sources":["../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-create-view/entity-create-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/create-entity.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/delete-entity.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/entity-list-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/entity-list-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/list-view.module.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/list-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/modify-entity.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/show-quick-view.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/show-details.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/show-list.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-details-view/entity-details-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-details-view/entity-details-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-details-view/detail-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/custom-reuse.strategy.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/modify-section.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/admin.module.ts","../../../../libs/platform/layouts/src/lib/admin/entity.resolver.ts","../../../../libs/platform/layouts/src/lib/admin/admin.routes.ts","../../../../libs/platform/layouts/src/lib/layout.module.ts","../../../../libs/platform/layouts/src/acorex-platform-layouts.ts"],"sourcesContent":["import { AXLocation, AXStyleColorType, AXValueChangedEvent } from '@acorex/components/common';\r\nimport { AXDialogService } from '@acorex/components/dialog';\r\nimport { AXBasePageComponent } from '@acorex/components/page';\r\nimport { AXToastService } from '@acorex/components/toast';\r\nimport { AXUnsubscriber } from '@acorex/core/utils';\r\nimport { AXPEntityListConditionConfig, AXPEntityListDisplayColumnConfig, AXPEntityListSortConfig, AXPEntityPropertyConfig, AXPFilterOperator, AXPSchemaRegistryService, EQ_OPER } from '@acorex/platform/common';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n Signal,\r\n WritableSignal,\r\n computed,\r\n inject,\r\n signal,\r\n} from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\n\r\nimport { AXPListViewLoader } from '../../list-view.config';\r\n\r\n@Component({\r\n templateUrl: './entity-custom-view.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: AXUnsubscriber,\r\n },\r\n ],\r\n})\r\nexport class AXPEntityCreateCustomViewComponent extends AXBasePageComponent {\r\n private schemaRegistry = inject(AXPSchemaRegistryService);\r\n private toastService = inject(AXToastService);\r\n private dialogService = inject(AXDialogService);\r\n private subscriber = inject(AXUnsubscriber);\r\n\r\n @Input() loader!: AXPListViewLoader;\r\n @Input() mode: 'edit' | 'create' = 'create';\r\n @Input() selectedView: any = {};\r\n\r\n protected showNameInput: WritableSignal<boolean> = signal(false);\r\n protected props: WritableSignal<AXPEntityPropertyConfig[]> = signal([]);\r\n\r\n protected columns: WritableSignal<AXPEntityListDisplayColumnConfig[]> = signal([]);\r\n protected visibleColumns: Signal<AXPEntityListDisplayColumnConfig[]> = computed(() =>\r\n this.columns().filter((c) => c.visible)\r\n );\r\n protected conditions: WritableSignal<AXPEntityListConditionConfig[]> = signal([]);\r\n protected sorts: WritableSignal<AXPEntityListSortConfig[]> = signal([]);\r\n\r\n protected selectedConditionNames: string[] = [];\r\n protected viewNames: string[] = [];\r\n\r\n protected override ngOnInit(): void {\r\n this.props.set(cloneDeep(this.loader.entity.properties));\r\n this.columns.set(cloneDeep(this.selectedView.columns));\r\n this.conditions.set(cloneDeep(this.selectedView.conditions));\r\n this.sorts.set(cloneDeep(this.selectedView.sorts));\r\n this.loader.views$.pipe(this.subscriber.takeUntilDestroy).subscribe((views) => {\r\n this.viewNames = views.map((v) => v.name);\r\n });\r\n }\r\n\r\n //****************** Columns ******************//\r\n updateColumnItem(event: AXValueChangedEvent, colName: string) {\r\n if (event.isUserInteraction) {\r\n this.columns.update((prevCols) =>\r\n prevCols.map((col) => (col.name === colName ? { ...col, visible: event.value } : col))\r\n );\r\n }\r\n }\r\n\r\n //****************** Sorts ******************//\r\n updateSortItem(item: AXPEntityListSortConfig) {\r\n this.sorts.update((prevSorts) =>\r\n prevSorts.map((sort) => (sort.name === item.name ? { ...sort, dir: sort.dir == 'asc' ? 'desc' : 'asc' } : sort))\r\n );\r\n }\r\n addSortItem() {\r\n const sortNames = this.sorts().map((p) => p.name);\r\n console.log(this.props(), sortNames);\r\n const name = this.props().find((c) => !sortNames.includes(c.name))?.name || this.props()[0].name;\r\n this.sorts.update((prevSorts) => [...prevSorts, { name, dir: 'asc' } as AXPEntityListSortConfig]);\r\n }\r\n\r\n removeSortItem(item: AXPEntityListSortConfig) {\r\n this.sorts.update((prevSorts) => prevSorts.filter((sort) => item.name != sort.name));\r\n }\r\n\r\n //****************** Conditions ******************//\r\n protected getSchema(name: string) {\r\n return this.props().find((c) => c.name == name)?.schema ?? '';\r\n }\r\n\r\n protected getOperators(name: string): AXPFilterOperator[] {\r\n const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';\r\n return this.schemaRegistry.resolve(schemaName)?.filterOptions?.operators ?? [];\r\n }\r\n\r\n protected getDefaultOperator(name: string): AXPFilterOperator {\r\n const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';\r\n return this.schemaRegistry.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;\r\n }\r\n\r\n protected getOperatorTitle(schemaName: string, oprName: string): string {\r\n return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';\r\n }\r\n protected resetSelectedFieldNames() {\r\n this.selectedConditionNames = this.conditions().map((c) => c.name);\r\n }\r\n protected addCondition() {\r\n const conditions = this.selectedConditionNames.map((c) => {\r\n const opr = this.getDefaultOperator(c);\r\n return {\r\n name: c,\r\n operator: opr.name,\r\n };\r\n });\r\n this.conditions.set(conditions as any);\r\n }\r\n\r\n removeCondition(item: AXPEntityListConditionConfig) {\r\n this.conditions.update((prevConditions) => prevConditions.filter((con) => con.name != item.name));\r\n }\r\n\r\n //****************** Common ******************//\r\n protected drop(type: 'columns' | 'conditions' | 'sorts', event: CdkDragDrop<unknown[]>) {\r\n switch (type) {\r\n case 'columns':\r\n this.columns.update((prevCols) => {\r\n const columns = prevCols;\r\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\r\n return columns;\r\n });\r\n break;\r\n case 'sorts':\r\n this.sorts.update((prevSorts) => {\r\n const sorts = prevSorts;\r\n moveItemInArray(sorts, event.previousIndex, event.currentIndex);\r\n return sorts;\r\n });\r\n break;\r\n case 'conditions':\r\n this.conditions.update((prevConditions) => {\r\n const conditions = prevConditions;\r\n moveItemInArray(conditions, event.previousIndex, event.currentIndex);\r\n return conditions;\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n changeViewNameToggle() {\r\n this.showNameInput.update((prev) => !prev);\r\n }\r\n\r\n generateViewName(title: string) {\r\n return title.replace(/\\s+/g, '-').toLowerCase();\r\n }\r\n\r\n handleApplyClick() {\r\n const updatedView = {\r\n ...this.selectedView,\r\n name: this.generateViewName(this.selectedView.title),\r\n conditions: this.conditions(),\r\n columns: this.columns(),\r\n sorts: this.sorts(),\r\n };\r\n if (this.viewNames.includes(updatedView.name) && this.mode == 'create') {\r\n this.toastService.show({\r\n title: 'Invalid Title',\r\n content: 'The title you have chosen already exists. Please choose a different title for your custom view.',\r\n color: 'danger' as AXStyleColorType,\r\n location: 'bottom-center' as AXLocation,\r\n closeButton: true,\r\n timeOut: 3000,\r\n });\r\n } else {\r\n this.close({ save: true, updatedView });\r\n }\r\n }\r\n\r\n handleResetClick() {\r\n this.conditions.set(cloneDeep(this.selectedView.conditions));\r\n this.columns.set(cloneDeep(this.selectedView.columns));\r\n this.sorts.set(cloneDeep(this.selectedView.sorts));\r\n }\r\n handleDiscardClick() {\r\n this.close({ save: false });\r\n }\r\n handleCancelClick() {\r\n this.close({ save: false });\r\n }\r\n handleDeleteClick() {\r\n this.dialogService\r\n .confirm('Warning', 'Are you sure want to delete this view?', 'danger', 'horizontal')\r\n .then((data) => {\r\n if (data.result) {\r\n this.close({ delete: true, viewName: this.selectedView.name });\r\n }\r\n });\r\n }\r\n}\r\n","<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\r\n <div class=\"ax-flex ax-items-center\">\r\n @if (showNameInput() && mode==='create') {\r\n <div class=\"ax-w-60\">\r\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\r\n @if(showNameInput()){\r\n <ax-suffix>\r\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\r\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n }\r\n </ax-text-box>\r\n </div>\r\n }@else {\r\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\r\n } @if (mode===\"create\") {\r\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\r\n @if(!showNameInput() ){\r\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\r\n }\r\n </ax-button>\r\n }\r\n </div>\r\n <ax-close-button></ax-close-button>\r\n</ax-header>\r\n<div class=\"ax-p-4\">\r\n <ax-tabs [content]=\"contents\" look=\"with-line\">\r\n <ax-tab-item text=\"Columns\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop('columns', $event)\"\r\n >\r\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\r\n <ng-container *ngFor=\"let item of columns()\">\r\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\r\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\r\n </div>\r\n <ax-switch\r\n class=\"ax-sm\"\r\n [(ngModel)]=\"item.visible\"\r\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\r\n ></ax-switch>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Conditions\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\r\n [class.ax-justify-center]=\"!conditions().length\"\r\n >\r\n @if(!conditions().length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\r\n >Please select field(s) that you want to filter</span\r\n >\r\n </div>\r\n } @else {\r\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\r\n @for(item of conditions(); track item.name ){\r\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\r\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\r\n @if(getOperatorTitle(item.name,item.operator)){\r\n <ax-badge\r\n class=\"ax-text-xs\"\r\n color=\"primary\"\r\n [look]=\"'twotone'\"\r\n [text]=\"getOperatorTitle(item.name, item.operator)\"\r\n ></ax-badge>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <div class=\"ax-w-full\">\r\n <axp-widget-filter-renderer\r\n [schema]=\"getSchema(item.name)\"\r\n [prop]=\"loader.getProp(item.name)\"\r\n [(value)]=\"item.value\"\r\n [(operator)]=\"item.operator\"\r\n >\r\n </axp-widget-filter-renderer>\r\n </div>\r\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if(conditions().length){\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\r\n </div>\r\n }\r\n <ax-popover\r\n #conditionsPopover\r\n [target]=\"addField\"\r\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\r\n [offsetY]=\"8\"\r\n [openOn]=\"'toggle'\"\r\n [closeOn]=\"'clickOut'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"resetSelectedFieldNames()\"\r\n >\r\n <div\r\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\r\n >\r\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\r\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\r\n </div>\r\n <div class=\"ax-max-h-48 ax-overflow-auto\">\r\n <ax-selection-list\r\n [valueField]=\"'name'\"\r\n [textField]=\"'title'\"\r\n [(ngModel)]=\"selectedConditionNames\"\r\n [direction]=\"'vertical'\"\r\n [items]=\"props()\"\r\n [multiple]=\"true\"\r\n ></ax-selection-list>\r\n </div>\r\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\r\n <ax-button\r\n (onClick)=\"addCondition(); conditionsPopover.close()\"\r\n class=\"ax-sm\"\r\n text=\"Confirm\"\r\n color=\"primary\"\r\n >\r\n </ax-button>\r\n </div>\r\n </div>\r\n </ax-popover>\r\n </div>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Sorting\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\r\n [class.ax-justify-center]=\"!sorts().length\"\r\n >\r\n @if(!sorts().length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\r\n >Please select field(s) that you want to sort</span\r\n >\r\n </div>\r\n }@else {\r\n <div\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop('sorts', $event)\"\r\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\r\n >\r\n <ng-container *ngFor=\"let item of sorts()\">\r\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\r\n </ax-select-box>\r\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'asc'\"\r\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'desc'\"\r\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n </ax-button>\r\n\r\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if(sorts().length){\r\n <ax-button\r\n (onClick)=\"addSortItem()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"blank\"\r\n class=\"ax-sm\"\r\n ></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button\r\n (onClick)=\"addSortItem()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"outline\"\r\n class=\"ax-md ax-w-56\"\r\n ></ax-button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n </ax-tabs>\r\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\r\n</div>\r\n<ax-footer class=\"!ax-justify-end\">\r\n @if (mode===\"edit\") {\r\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\r\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\r\n ></ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n } @else {\r\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\r\n }\r\n <ax-button\r\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\r\n color=\"primary\"\r\n (onClick)=\"handleApplyClick()\"\r\n ></ax-button>\r\n</ax-footer>\r\n","import { AXValueChangedEvent } from '@acorex/components/common';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Component, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, first, of } from 'rxjs';\r\nimport { AXPListViewLoader } from '../../list-view.config';\r\nimport { AXPAdminLayoutState, AXPEntityListDisplayColumnConfig, isSmallScreen } from '@acorex/platform/common';\r\n\r\n@Component({\r\n selector: 'axp-list-view-option-columns',\r\n templateUrl: './list-view-option-columns.component.html',\r\n})\r\nexport class AXPListViewOptionsColumnsComponent implements OnInit {\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n\r\n @Input()\r\n public loader!: AXPListViewLoader;\r\n protected isSM = this.store.select(isSmallScreen());\r\n protected columns$: Observable<AXPEntityListDisplayColumnConfig[]> = of([]);\r\n\r\n @Output()\r\n public onClosed = new EventEmitter<void>();\r\n\r\n ngOnInit(): void {\r\n this.columns$ = this.loader.displayColumns$;\r\n }\r\n\r\n handleVisibilityChange(e: AXValueChangedEvent<boolean>, name: string) {\r\n if (e.isUserInteraction) {\r\n this.loader.setColumnVisibility(name, e.value!);\r\n }\r\n }\r\n\r\n protected drop(event: CdkDragDrop<unknown[]>) {\r\n this.columns$.pipe(first()).subscribe((columns) => {\r\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\r\n });\r\n }\r\n\r\n protected handleClose() {\r\n this.onClosed.emit();\r\n }\r\n protected handleResetClick() {\r\n this.loader.resetColumns();\r\n }\r\n\r\n protected handleApplyClick() {\r\n this.columns$.pipe(first()).subscribe((data) => {\r\n this.loader.updateColumns(data);\r\n });\r\n this.onClosed.emit();\r\n }\r\n}\r\n","<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Columns</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\r\n <ng-container *ngFor=\"let item of columns$ | async\">\r\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\r\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\r\n </div>\r\n <ax-switch\r\n class=\"ax-sm\"\r\n [ngModel]=\"item.visible\"\r\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\r\n ></ax-switch>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n","import { AXPopupService } from '@acorex/components/popup';\r\nimport { AXPEntityListConditionConfig, AXPEntityPropertyConfig, AXPFilterOperator, AXPSchemaRegistryService, EQ_OPER } from '@acorex/platform/common';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport { Observable, first, map, of } from 'rxjs';\r\nimport { AXPListViewLoader } from '../../list-view.config';\r\n\r\n@Component({\r\n selector: 'axp-list-view-option-conditions',\r\n templateUrl: './list-view-option-conditions.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXPListViewOptionConditionsComponent {\r\n constructor() { }\r\n\r\n @Output()\r\n public onClosed = new EventEmitter<void>();\r\n\r\n private schemaRegistery = inject(AXPSchemaRegistryService);\r\n private popopService: AXPopupService = inject(AXPopupService);\r\n\r\n protected isSM = false;\r\n\r\n @Input()\r\n public loader!: AXPListViewLoader;\r\n\r\n protected props$: Observable<AXPEntityPropertyConfig[]> = of([]);\r\n protected props: AXPEntityPropertyConfig[] = [];\r\n protected conditions$: Observable<AXPEntityListConditionConfig[]> = of([]);\r\n\r\n protected selectedFieldNames: string[] = [];\r\n\r\n onNameChange(item: any) {\r\n console.log('onName changed!', item);\r\n }\r\n ngOnInit() {\r\n this.props$ = this.loader.properties$.pipe(\r\n map((sorts) => sorts.filter((s) => s.canFilter != false))\r\n );\r\n this.conditions$ = this.loader.conditions$;\r\n this.conditions$.pipe(first()).subscribe((initialConditions) => {\r\n this.selectedFieldNames = initialConditions.map((i) => i.name);\r\n });\r\n\r\n this.props$.pipe(first()).subscribe((data) => {\r\n this.props = data;\r\n });\r\n }\r\n\r\n protected getOperators(name: string): AXPFilterOperator[] {\r\n const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';\r\n return this.schemaRegistery.resolve(schemaName)?.filterOptions?.operators ?? [];\r\n }\r\n\r\n protected getDefaultOperator(name: string): AXPFilterOperator {\r\n const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';\r\n return this.schemaRegistery.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;\r\n }\r\n\r\n protected getOperatorTitle(schemaName: string, oprName: string): string {\r\n return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';\r\n }\r\n\r\n protected getSchema(name: string) {\r\n return this.props.find((c) => c.name == name)?.schema ?? '';\r\n }\r\n\r\n protected drop(event: CdkDragDrop<unknown[]>) {\r\n this.conditions$.pipe(first()).subscribe((conditions) => {\r\n console.log('conditions: ', conditions);\r\n moveItemInArray(conditions, event.previousIndex, event.currentIndex);\r\n });\r\n }\r\n\r\n protected handleClose() {\r\n this.onClosed.emit();\r\n }\r\n\r\n protected handleRemoveCondition(item: AXPEntityListConditionConfig) {\r\n this.selectedFieldNames = this.selectedFieldNames.filter((i) => i !== item.name);\r\n this.loader.removeCondition(item);\r\n }\r\n\r\n protected resetSelectedFieldNames() {\r\n this.conditions$.pipe(first()).subscribe((initialConditions) => {\r\n this.selectedFieldNames = initialConditions.map((i) => i.name);\r\n });\r\n }\r\n\r\n protected handleResetClick() {\r\n this.loader.resetConditions();\r\n }\r\n\r\n protected onConfirmFields() {\r\n const fileds = this.selectedFieldNames.map((c) => {\r\n const opr = this.getDefaultOperator(c);\r\n return {\r\n name: c,\r\n opr: opr.name,\r\n };\r\n });\r\n this.loader.addCondition(fileds);\r\n }\r\n\r\n protected handleApplyClick() {\r\n this.conditions$.pipe(first()).subscribe((data) => {\r\n console.log(data);\r\n this.loader.updateConditions(data);\r\n });\r\n this.onClosed.emit();\r\n }\r\n}\r\n","<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Filters</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div\r\n class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-py-4 ax-select-none\"\r\n [class.ax-h-[calc(100vh-310px)]]=\"!(conditions$ | async)?.length\"\r\n>\r\n @if(!(conditions$ | async)?.length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\r\n </div>\r\n } @else {\r\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-px-4 ax-py-1 ax-overflow-auto\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\r\n @for(item of conditions$ | async; track item.name ){\r\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\r\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\r\n @if(getOperatorTitle(item.name,item.operator)){\r\n <ax-badge\r\n class=\"ax-text-xs\"\r\n color=\"primary\"\r\n [look]=\"'twotone'\"\r\n [text]=\"getOperatorTitle(item.name, item.operator)\"\r\n ></ax-badge>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <div class=\"ax-w-full\">\r\n <!-- <ax-text-box [(ngModel)]=\"item.value\"></ax-text-box> -->\r\n <axp-widget-filter-renderer\r\n [schema]=\"getSchema(item.name)\"\r\n [prop]=\"loader.getProp(item.name)\"\r\n [(value)]=\"item.value\"\r\n [(operator)]=\"item.operator\"\r\n >\r\n </axp-widget-filter-renderer>\r\n </div>\r\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"handleRemoveCondition(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if((conditions$ | async)?.length){\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\r\n </div>\r\n }\r\n </div>\r\n <ax-popover\r\n #fieldsPopover\r\n [target]=\"addField\"\r\n [openOn]=\"'toggle'\"\r\n [closeOn]=\"'clickOut'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"resetSelectedFieldNames()\"\r\n [offsetX]=\"15\"\r\n >\r\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\r\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\r\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\r\n </div>\r\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\r\n <ax-selection-list\r\n [valueField]=\"'name'\"\r\n [textField]=\"'title'\"\r\n [(ngModel)]=\"selectedFieldNames\"\r\n [direction]=\"'vertical'\"\r\n [items]=\"props\"\r\n [multiple]=\"true\"\r\n ></ax-selection-list>\r\n </div>\r\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\r\n <ax-button (onClick)=\"onConfirmFields(); fieldsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\">\r\n </ax-button>\r\n </div>\r\n </div>\r\n </ax-popover>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n inject,\r\n} from '@angular/core';\r\n\r\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\r\nimport { AXPFilterOperator } from '@acorex/platform/common';\r\n\r\n@Component({\r\n selector: 'axp-list-view-option-filter-operator',\r\n template: `\r\n <ax-select-box\r\n valueField=\"name\"\r\n [dataSource]=\"items\"\r\n textField=\"title\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"visible\"\r\n >\r\n </ax-select-box>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n})\r\nexport class AXPListViewOptionFilterOperatorComponent {\r\n @ViewChild(AXSelectBoxComponent)\r\n selectBox!: AXSelectBoxComponent;\r\n protected visible = false;\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n private _items: AXPFilterOperator[] = [];\r\n @Input()\r\n public get items(): AXPFilterOperator[] {\r\n return this._items;\r\n }\r\n public set items(v: AXPFilterOperator[]) {\r\n this.visible = false;\r\n this._items = v;\r\n setTimeout(() => {\r\n this.visible = true;\r\n this.cdr.markForCheck();\r\n setTimeout(() => {\r\n if (this.selectBox) {\r\n //this.selectBox.defaultValue = this.items[0]?.name;\r\n }\r\n });\r\n });\r\n }\r\n\r\n @Output()\r\n valueChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n private _value!: string;\r\n @Input()\r\n public get value(): string {\r\n return this._value;\r\n }\r\n public set value(v: string) {\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n }\r\n}\r\n","import { AXPEntityListSortConfig, AXPEntityPropertyConfig } from '@acorex/platform/common';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Observable, first, map, of } from 'rxjs';\r\nimport { AXPListViewLoader } from '../../list-view.config';\r\n\r\n@Component({\r\n selector: 'axp-list-view-option-sorting',\r\n templateUrl: './list-view-option-sorting.component.html',\r\n})\r\nexport class AXPListViewOptionSortingComponent {\r\n protected isSM = false;\r\n\r\n @Output()\r\n public onClosed = new EventEmitter<void>();\r\n\r\n @Input()\r\n public loader!: AXPListViewLoader;\r\n\r\n protected props$: Observable<AXPEntityPropertyConfig[]> = of([]);\r\n protected sorts$: Observable<AXPEntityListSortConfig[]> = of([]);\r\n\r\n ngOnInit(): void {\r\n this.props$ = this.loader.properties$.pipe(map((sorts) => sorts.filter((s) => s.canSort != false)));\r\n this.loader.sorts$.subscribe((data) => {});\r\n this.sorts$ = this.loader.sorts$;\r\n }\r\n\r\n protected drop(event: CdkDragDrop<unknown[]>) {\r\n this.sorts$.pipe(first()).subscribe((sorts) => {\r\n moveItemInArray(sorts, event.previousIndex, event.currentIndex);\r\n });\r\n }\r\n\r\n protected changeItemSort(item: AXPEntityListSortConfig) {\r\n item.dir = item.dir == 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n protected handleClose() {\r\n this.onClosed.emit();\r\n }\r\n protected handleResetClick() {\r\n this.loader.resetSort();\r\n }\r\n\r\n protected handleApplyClick() {\r\n this.sorts$.pipe(first()).subscribe((data) => {\r\n this.loader.updateSort(data);\r\n });\r\n this.onClosed.emit();\r\n }\r\n}\r\n","<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Sorts</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div\r\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\r\n [class.ax-h-[calc(100vh-310px)]]=\"!(sorts$ | async)?.length\"\r\n>\r\n @if(!(sorts$ | async)?.length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to sort</span>\r\n </div>\r\n }\r\n <div\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-max-h-[calc(100vh-310px)] ax-overflow-auto\"\r\n >\r\n <ng-container *ngFor=\"let item of sorts$ | async\">\r\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <ax-select-box\r\n [dataSource]=\"(props$ | async) ?? []\"\r\n valueField=\"name\"\r\n textField=\"title\"\r\n [(ngModel)]=\"item.name\"\r\n >\r\n </ax-select-box>\r\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'asc'\"\r\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'desc'\"\r\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n </ax-button>\r\n\r\n <ax-button look=\"blank\" (onClick)=\"loader.removeSort(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if((sorts$ | async)?.length){\r\n <ax-button (onClick)=\"loader.addSort()\" color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button\r\n (onClick)=\"loader.addSort()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"outline\"\r\n class=\"ax-md ax-w-56\"\r\n ></ax-button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n","import { AXFormatService } from '@acorex/core/format';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { BehaviorSubject, Observable, defaultIfEmpty, map, of, switchMap } from 'rxjs';\r\n\r\nimport { AXPLayoutService } from '@acorex/platform/common';\r\nimport { AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPEntityViewChildSectionConfig, AXPEntityViewConfig } from '@acorex/platform/common';\r\n\r\nexport interface AXPEntityCreateViewLoader {\r\n get entity(): AXPEntityConfig;\r\n get data(): any;\r\n\r\n get sections$(): Observable<AXPEntityViewChildSectionConfig[]>;\r\n get hasSections$(): Observable<boolean>;\r\n get isLast$(): Observable<boolean>;\r\n get isFirst$(): Observable<boolean>;\r\n get currentIndex$(): Observable<number>;\r\n get section$(): Observable<AXPEntityViewChildSectionConfig>;\r\n setSection(name: string): void;\r\n next(): Promise<void>;\r\n back(): Promise<void>;\r\n\r\n getProp(name: string): AXPEntityPropertyConfig | undefined;\r\n isRequired(name: string): boolean;\r\n}\r\n\r\nexport class AXPEntityCreateLoaderDefault implements AXPEntityCreateViewLoader {\r\n private _config!: AXPEntityConfig;\r\n private _data: any = {};\r\n private _currentSection = 'default';\r\n\r\n constructor(private config: AXPEntityConfig, private store: Store, private formatService: AXFormatService) {\r\n this._currentSection = this.sections[0]?.name || 'default';\r\n }\r\n\r\n get entity(): AXPEntityConfig {\r\n if (!this._config) {\r\n this._config = cloneDeep(this.config);\r\n }\r\n return this._config;\r\n }\r\n\r\n get data(): any {\r\n return this._data;\r\n }\r\n\r\n private get view(): AXPEntityViewConfig {\r\n return this.entity.views.createView as AXPEntityViewConfig;\r\n }\r\n\r\n //****************** Sections ******************//\r\n\r\n private get sections(): AXPEntityViewChildSectionConfig[] {\r\n return this.view.root.sections?.length\r\n ? this.view.root.sections\r\n : [\r\n {\r\n name: 'default',\r\n title: 'Default',\r\n properties: this.view.root.properties,\r\n },\r\n ];\r\n }\r\n\r\n private _sections$ = new BehaviorSubject<AXPEntityViewChildSectionConfig[]>(this.sections);\r\n\r\n public get sections$(): Observable<AXPEntityViewChildSectionConfig[]> {\r\n return this._sections$.pipe(defaultIfEmpty([]));\r\n }\r\n\r\n public get section$(): Observable<AXPEntityViewChildSectionConfig> {\r\n return this.sections$.pipe(\r\n switchMap((sections) => {\r\n const section = sections.find((c) => c.name === this._currentSection) ?? this.sections[0];\r\n if (!section.sections?.length) {\r\n section.sections = [\r\n {\r\n name: 'default',\r\n title: 'Details',\r\n properties: section.properties,\r\n },\r\n ];\r\n }\r\n return of(section);\r\n })\r\n );\r\n }\r\n\r\n public get hasSections$(): Observable<boolean> {\r\n return this.sections$.pipe(map((c) => c.length > 1));\r\n }\r\n\r\n public get isLast$(): Observable<boolean> {\r\n return this.sections$.pipe(\r\n map((c) => this.sections.length - this.sections.findIndex((c) => c.name == this._currentSection) == 1)\r\n );\r\n }\r\n\r\n public get isFirst$(): Observable<boolean> {\r\n return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection) == 0));\r\n }\r\n\r\n public get currentIndex$(): Observable<number> {\r\n return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection)));\r\n }\r\n\r\n public setSection(name: string) {\r\n this._currentSection = name ?? 'default';\r\n const updatedSection = this.sections.find((c) => c.name === this._currentSection) || {\r\n name: 'default',\r\n title: 'Default',\r\n properties: this.view.root.properties,\r\n };\r\n const currentSections = this._sections$.value;\r\n const updatedSections = currentSections.map((section) => {\r\n if (section.name === updatedSection.name) {\r\n return updatedSection;\r\n } else {\r\n return section;\r\n }\r\n });\r\n this._sections$.next(updatedSections);\r\n }\r\n\r\n public next() {\r\n const nextIndex = this.sections.findIndex((c) => c.name == this._currentSection) + 1;\r\n if (nextIndex >= this.sections.length) {\r\n return Promise.resolve();\r\n } else {\r\n this.setSection(this.sections[nextIndex].name);\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n public back() {\r\n const prevIndex = this.sections.findIndex((c) => c.name == this._currentSection) - 1;\r\n if (prevIndex < 0) {\r\n return Promise.resolve();\r\n } else {\r\n this.setSection(this.sections[prevIndex].name);\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n //****************** Properties ******************//\r\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\r\n public isRequired = (name: string): boolean => this.getProp(name)?.validationRules?.some(c => c.rule == 'required') || false;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityCreateViewLoaderFactory {\r\n private entityService = inject(AXPEntityRegistryService);\r\n private formatService = inject(AXFormatService);\r\n private layout = inject(AXPLayoutService);\r\n private store = inject(Store);\r\n\r\n public async create(moduleName: string, entityName: string): Promise<AXPEntityCreateViewLoader> {\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(true);\r\n if (config.dataSource.byKey) {\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityCreateLoaderDefault(config, this.store, this.formatService);\r\n }\r\n return Promise.reject('cannot fetch ');\r\n }\r\n}\r\n","import { AXPopupService } from '@acorex/components/popup';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { AXPEntityCreateViewLoaderFactory } from '../entity-create-view/entity-create-view.config';\r\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\r\n\r\nexport const AXPEntityCreateEvent = createWorkFlowEvent<{ module: string; entity: string }>('[Entity] Created!');\r\n\r\n@Injectable()\r\nexport class AXPEntityCreatePopupAction extends AXPWorkflowAction {\r\n private entityRegistery = inject(AXPEntityRegistryService);\r\n private popupService = inject(AXPopupService);\r\n private platform = inject(AXPlatform);\r\n private entityCreateFactory = inject(AXPEntityCreateViewLoaderFactory);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const { module, entity: entityName } = context.getVariable('payload');\r\n const entity = await this.entityRegistery.resolve(module, entityName);\r\n\r\n const com = await import('../entity-create-view/entity-create-view.component');\r\n const result = await this.popupService.open(com.AXPEntityCreateViewComponent, {\r\n title: `Create New ${entity.title}`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n loader: await this.entityCreateFactory.create(module, entityName),\r\n entity,\r\n },\r\n });\r\n if (result.data?.save) {\r\n context.setOutput('popupResult', true);\r\n context.setVariable('redirect', result.data.redirect);\r\n context.setVariable('id', result.data.recordId);\r\n }\r\n }\r\n}\r\n\r\nexport class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const { module, entity: entity } = context.getVariable('payload');\r\n this.dispatch(AXPEntityCreateEvent({ entity, module }));\r\n }\r\n}\r\n\r\nexport const AXPCreateEntityWorkflow: AXPWorkflow = {\r\n startStepId: 'createPopup',\r\n steps: {\r\n createPopup: {\r\n id: 'createPopup',\r\n action: 'AXPEntityCreatePopupAction',\r\n nextSteps: [\r\n {\r\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"popupResult\") == true' }],\r\n nextStepId: 'successToast',\r\n },\r\n ],\r\n },\r\n successToast: {\r\n id: 'successToast',\r\n action: 'AXPToastAction',\r\n input: {\r\n color: 'success',\r\n title: 'Entity Created',\r\n content: 'New Record has been successfully created.',\r\n },\r\n nextSteps: [\r\n {\r\n conditions: [],\r\n nextStepId: 'createSubmitted',\r\n },\r\n ],\r\n },\r\n createSubmitted: {\r\n id: 'createSubmitted',\r\n action: 'AXPEntityCreateSubmittedAction',\r\n nextSteps: [\r\n {\r\n conditions: [{ type: 'SINGLE', expression: 'context.getVariable(\"redirect\") == true' }],\r\n nextStepId: 'showDetailView',\r\n },\r\n ],\r\n },\r\n showDetailView: {\r\n id: 'showDetailView',\r\n action: 'AXPShowDetailViewAction',\r\n },\r\n },\r\n};\r\n","import { AXDialogService } from '@acorex/components/dialog';\r\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\r\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\r\nimport {\r\n AXPWorkflow,\r\n AXPWorkflowAction,\r\n AXPWorkflowContext,\r\n AXPWorkflowFunction,\r\n createWorkFlowEvent,\r\n} from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\nexport const AXPEntityDeletedEvent = createWorkFlowEvent<{ module: string; entity: string; id: string }>(\r\n '[Entity] Deleted'\r\n);\r\n\r\n@Injectable()\r\nexport class AXPEntityPerformDeleteAction extends AXPWorkflowAction {\r\n private entityRegistery = inject(AXPEntityRegistryService);\r\n private dialogService = inject(AXDialogService);\r\n private loadingDialog = inject(AXLoadingDialogService);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const moduleName = context.getVariable('module');\r\n const entityName = context.getVariable('entity');\r\n const ids = context.getVariable('ids');\r\n const entity = await this.entityRegistery.resolve(moduleName, entityName);\r\n let deletedCount = 0;\r\n context.setVariable('deleteSuccessful', false);\r\n const dialog = this.loadingDialog.show({\r\n title: 'Deleting Record...',\r\n mode: 'determinate',\r\n status: 'Deleting...',\r\n progressValue: 0,\r\n text: `0/${ids.length}`,\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n color: 'danger',\r\n onClick: () => {\r\n dialog.close();\r\n },\r\n },\r\n ],\r\n });\r\n\r\n if (entity.commands?.delete != null) {\r\n const wrappedPromises = (ids as any[])\r\n .map((id, i) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(entity.commands?.delete?.(id));\r\n }, i * 200);\r\n });\r\n })\r\n .map((p) =>\r\n p?.then(\r\n (value) => {\r\n deletedCount++;\r\n dialog.setProgressText(`${deletedCount}/${ids.length}`);\r\n dialog.setProgressValue((deletedCount / ids.length) * 100);\r\n return { status: 'fulfilled', value };\r\n },\r\n (reason) => ({ status: 'rejected', reason })\r\n )\r\n );\r\n\r\n const results = await Promise.all(wrappedPromises);\r\n const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;\r\n const failedPromises = results.filter((result) => result?.status === 'rejected').length;\r\n setTimeout(() => {\r\n dialog.close();\r\n }, 300);\r\n\r\n // Handle different scenarios for alerts\r\n if (successfulPromises > 0 && failedPromises === 0) {\r\n // All items deleted successfully\r\n await this.dialogService.alert(\r\n 'Deletion Successful',\r\n `${successfulPromises} item(s) has been deleted.`,\r\n 'success'\r\n );\r\n // Dispatch actions\r\n this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));\r\n } else if (successfulPromises > 0 && failedPromises > 0) {\r\n // Some items deleted successfully, some failed\r\n await this.dialogService.alert(\r\n 'Partial Deletion Completed',\r\n `${successfulPromises} item(s) deleted successfully. However, ${failedPromises} item(s) could not be deleted.`,\r\n 'warning'\r\n );\r\n // Dispatch actions\r\n this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));\r\n } else if (successfulPromises === 0 && failedPromises > 0) {\r\n // No items deleted, all failed\r\n await this.dialogService.alert(\r\n 'Deletion Failed',\r\n `No items were deleted. ${failedPromises} item(s) failed to delete.`,\r\n 'danger'\r\n );\r\n } else {\r\n // No items to delete (no successful or failed promises)\r\n await this.dialogService.alert('No Deletion Needed', 'No items were available to delete.', 'info');\r\n }\r\n } else {\r\n throw new Error(\r\n `The delete operation cannot be performed on ${entity.title}. This action might be restricted or not applicable for the selected item.`\r\n );\r\n }\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class AXPMyCustomFunc extends AXPWorkflowFunction {\r\n private entityRegistery = inject(AXPEntityRegistryService);\r\n private dialogService = inject(AXDialogService);\r\n\r\n async execute(val: string): Promise<boolean> {\r\n return val == 'abc';\r\n }\r\n}\r\n\r\nexport const AXPDeleteEntityWorkflow: AXPWorkflow = {\r\n startStepId: 'confirmDelete',\r\n steps: {\r\n confirmDelete: {\r\n id: 'confirmDelete',\r\n action: 'AXPDialogConfirmAction',\r\n input: {\r\n title: 'Warning',\r\n message: `Are you sure want to delete selected item(s)?`,\r\n type: 'danger',\r\n },\r\n nextSteps: [\r\n {\r\n conditions: [\r\n {\r\n type: 'AND',\r\n conditions: [\r\n { type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' },\r\n { type: 'SINGLE', expression: 'await test(\"abc\")' },\r\n ],\r\n },\r\n ],\r\n nextStepId: 'performDelete',\r\n },\r\n ],\r\n },\r\n performDelete: {\r\n id: 'performDelete',\r\n action: 'AXPEntityPerformDeleteAction',\r\n },\r\n },\r\n};\r\n","import { AXActionSheetService } from '@acorex/components/action-sheet';\r\nimport { AXDataTableComponent, AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';\r\nimport { AXDrawerComponent } from '@acorex/components/drawer';\r\nimport { AXPopupService } from '@acorex/components/popup';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { AXClickEvent, AXValueChangedEvent } from '@acorex/components/common';\r\nimport { AXDataTableRowDbClick } from '@acorex/components/data-table/lib/base-data-table.class';\r\nimport { AXUnsubscriber } from '@acorex/core/utils';\r\nimport { AXPAdminLayoutState, AXPLayoutChildDrawerToggle, AXPLayoutService, AXP_MENU_LOADER } from '@acorex/platform/common';\r\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\r\nimport { AXPEntityCreateEvent } from '../../entity-layout/workflows/create-entity.workflow';\r\nimport { AXPEntityDeletedEvent } from '../../entity-layout/workflows/delete-entity.workflow';\r\nimport { AXPEntityCreateCustomViewComponent } from './components/entity-custom-view/entity-custom-view.component';\r\nimport { AXPListViewLoader } from './list-view.config';\r\nimport { convertPropertiesToColumns } from '@acorex/platform/common';\r\n\r\n@Component({\r\n templateUrl: 'entity-list-view.component.html',\r\n styleUrls: ['entity-list-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [AXUnsubscriber],\r\n})\r\nexport class AXPEntityListViewComponent {\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n private workflow = inject(AXPWorkflowService);\r\n private layout = inject(AXPLayoutService);\r\n private route = inject(ActivatedRoute);\r\n private manuLoader = inject(AXP_MENU_LOADER);\r\n\r\n protected loader = this.route.snapshot.data['loader'] as AXPListViewLoader;\r\n protected title: string = '';\r\n protected searchValue: string = '';\r\n protected searchBoxPlaceholder: string = '';\r\n protected searchBoxTitle: string = '';\r\n protected searchBoxCollapsed: boolean = true;\r\n\r\n protected publicViews$ = this.loader.publicViews$;\r\n protected customViews$ = this.loader.customViews$;\r\n protected hasCustomViews$ = this.loader.hasCustomViews$;\r\n protected view$ = this.loader.view$;\r\n //\r\n protected conditions$ = this.loader.conditions$;\r\n protected conditionsCount$ = this.loader.conditionsCount$;\r\n //\r\n protected columns$ = this.loader.displayColumns$;\r\n protected columnsCount$ = this.loader.displayColumnsCount$;\r\n //\r\n protected sort$ = this.loader.sorts$;\r\n protected sortCount$ = this.loader.sortsCount$;\r\n //\r\n protected dataSource = this.loader.dataSource;\r\n //\r\n protected canDelete = this.loader.entity.editOptions?.delete ?? true;\r\n protected canCreate = this.loader.entity.editOptions?.create ?? true;\r\n protected canUpdate = this.loader.entity.editOptions?.update ?? true;\r\n //\r\n protected focusedRow: any;\r\n //\r\n @ViewChild('viewsTemplate') viewsTemplate!: TemplateRef<unknown>;\r\n // @ViewChild('grid') grid!: AXDataTableComponent;\r\n @ViewChild('grid') grid!: AXDataTableComponent;\r\n @ViewChild('entityViewDrawer') entityViewDrawer!: AXDrawerComponent;\r\n\r\n private popupService = inject(AXPopupService);\r\n\r\n constructor(\r\n private actionSheetService: AXActionSheetService,\r\n private unsubscriber: AXUnsubscriber,\r\n protected platform: AXPlatform,\r\n protected cdr: ChangeDetectorRef\r\n ) {\r\n //TODO: namespace, module name issues\r\n this.title = this.manuLoader.currentMenuItem()?.text ?? this.loader.entity.formats?.list ?? this.loader.entity.formats?.default ?? 'Title';\r\n //\r\n\r\n this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {\r\n if (event.payload.entity == this.loader.entity.name && event.payload.module == this.loader.entity.module) {\r\n this.grid.selectedRows = [];\r\n this.grid?.refresh();\r\n }\r\n });\r\n //\r\n this.dataSource.onLoadingChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe((value) => {\r\n this.layout.setNavigationLoading(value);\r\n });\r\n this._getInlineConditionTitles();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.loader.setDefaultView();\r\n }\r\n\r\n _getInlineConditionTitles() {\r\n const titles = this.loader.getInlineFilterTitles();\r\n this.searchBoxTitle = titles.join(', ');\r\n if (titles.length > 2) this.searchBoxPlaceholder = titles.slice(0, 2).join(', ') + ' ...';\r\n else this.searchBoxPlaceholder = titles.join(', ');\r\n }\r\n\r\n _handleViewsPopover() {\r\n this.actionSheetService.open({ content: this.viewsTemplate });\r\n }\r\n\r\n handleDrawerClick() {\r\n this.store.dispatch(AXPLayoutChildDrawerToggle());\r\n }\r\n\r\n toggleSearchBox() {\r\n this.searchBoxCollapsed = !this.searchBoxCollapsed;\r\n }\r\n\r\n private dropdownRowItems: AXRowCommandItem[] = [\r\n {\r\n text: 'Details',\r\n icon: 'fa-solid fa-eye',\r\n name: 'edit',\r\n divided: true,\r\n },\r\n {\r\n text: 'Delete',\r\n icon: 'fa-solid fa-trash-can',\r\n name: 'delete',\r\n color: 'danger',\r\n disabled: !this.canDelete,\r\n },\r\n ];\r\n\r\n private inlineRowItems: AXRowCommandItem[] = [\r\n {\r\n text: 'View',\r\n icon: 'fa-solid fa-eye',\r\n name: 'view',\r\n divided: true,\r\n },\r\n ];\r\n\r\n protected getDropdownRowItems = (rowData: unknown): Promise<AXRowCommandItem[]> => {\r\n return Promise.resolve(this.dropdownRowItems);\r\n };\r\n\r\n protected getInlineRowItems = (rowData: unknown): AXRowCommandItem[] => {\r\n return this.inlineRowItems;\r\n };\r\n\r\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\r\n const d: AXRowCommandItemClickEvent = {\r\n component: e.component,\r\n name: this.dropdownRowItems[0].name,\r\n data: e.data,\r\n };\r\n this.handleRowCommandClick(d);\r\n }\r\n\r\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\r\n switch (e.name) {\r\n case 'view': {\r\n await this.workflow.execute('show-quick-view', {\r\n payload: {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n data: e.data,\r\n },\r\n });\r\n break;\r\n }\r\n case 'edit': {\r\n await this.workflow.execute('show-details', {\r\n payload: {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n },\r\n id: e.data.id,\r\n });\r\n break;\r\n }\r\n case 'delete': {\r\n await this.workflow.execute('delete-entity', {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n ids: [e.data.id],\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n protected handleCreateClick() {\r\n this.workflow.execute('create-entity', {\r\n payload: {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n },\r\n });\r\n }\r\n\r\n protected handleCommandClick(command: string) {\r\n switch (command) {\r\n case 'delete':\r\n this.workflow.execute('delete-entity', {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n ids: this.grid.selectedRows.map((c) => (c as any)['id']),\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n protected clearSelectedItems() {\r\n this.grid.selectedRows = [];\r\n }\r\n\r\n protected closeDrawer(name: string, collapsed: boolean) {\r\n if (collapsed != false) {\r\n switch (name) {\r\n case 'conditions':\r\n this.loader.resetConditions();\r\n break;\r\n case 'columns':\r\n this.loader.resetColumns();\r\n break;\r\n case 'sorts':\r\n this.loader.resetSort();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n handleChangeSearchValue(e: AXValueChangedEvent) {\r\n if (e.isUserInteraction) {\r\n this.loader.handleInlineSearch(e.value);\r\n }\r\n }\r\n\r\n protected async addCustomViewPopup() {\r\n const newView = {\r\n name: 'custom-view',\r\n title: 'Custom View',\r\n fixed: false,\r\n sorts: [],\r\n columns: convertPropertiesToColumns(...this.loader.entity.properties),\r\n conditions: [],\r\n };\r\n\r\n const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {\r\n title: 'Create Custom View',\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n closeOnBackdropClick: true,\r\n draggable: false,\r\n data: {\r\n loader: this.loader,\r\n selectedView: newView,\r\n mode: 'create',\r\n },\r\n });\r\n if (popup.data?.save == true) {\r\n console.log('updatedView: ', popup.data.updatedView);\r\n this.loader.createView(popup.data.updatedView);\r\n }\r\n }\r\n protected async updateViewPopup(e: AXClickEvent, selectedView: any) {\r\n // (e.nativeEvent as UIEvent).stopPropagation();\r\n const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {\r\n title: 'Modify Custom View',\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n closeOnBackdropClick: true,\r\n draggable: false,\r\n data: {\r\n loader: this.loader,\r\n selectedView,\r\n mode: 'edit',\r\n },\r\n });\r\n if (popup.data?.delete == true) {\r\n this.loader.deleteView(popup.data.viewName);\r\n }\r\n if (popup.data?.save == true) {\r\n console.log('updatedView: ', popup.data.updatedView);\r\n this.loader.updateView(popup.data.updatedView);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.dataSource.reset();\r\n }\r\n}\r\n","<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\r\n <ax-content class=\"ax-w-64 ax-border-e\">\r\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\r\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\r\n <ax-side-menu>\r\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\r\n </ng-container>\r\n </ax-side-menu>\r\n <ng-template #sideMenu let-item>\r\n <ax-side-menu-item [text]=\"item.text\">\r\n <ax-prefix>\r\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\r\n </ax-prefix>\r\n <ng-container *ngIf=\"item.children\">\r\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\r\n </ng-container>\r\n </ng-container>\r\n </ax-side-menu-item>\r\n </ng-template>\r\n </div>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n @if(platform.is('MD')){\r\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canCreate)\r\n {\r\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\r\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canDelete)\r\n {\r\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item *ngFor=\"let v of customViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n <div class=\"ax-flex ax-gap-2\">\r\n @if(searchBoxTitle){\r\n <ax-button *feature=\"'axp-entity-list-quick-search'\" (onClick)=\"toggleSearchBox()\"\r\n [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\"\r\n (onClick)=\"conditionsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\r\n @if ((conditionsCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\r\n @if ((sortCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n </div>\r\n </div>\r\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\"\r\n class=\"ax-transition-all ax-mt-4\">\r\n <ax-search-box [title]=\"searchBoxTitle\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n } @else {\r\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canCreate)\r\n {\r\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-add\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canDelete)\r\n {\r\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-trash\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <!----------------------- View Mode --------------------->\r\n @if(this.grid?.selectedRows?.length==0) {\r\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-eye\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\r\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\r\n <ax-suffix>\r\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\r\n <ax-icon class=\"far fa-edit\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n @if(searchBoxTitle){\r\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-quick-search'\">\r\n <ax-search-box [title]=\"searchBoxTitle\" [(ngModel)]=\"searchValue\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-sliders\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars-sort\"></i>\r\n </ax-prefix>\r\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\r\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <!----------------------- Selection Mode --------------------->\r\n <div>\r\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [dataSource]=\"dataSource\" [paging]=\"true\"\r\n [fetchDataMode]=\"'manual'\" (onRowDbClick)=\"handleRowDbClick($event)\"\r\n [loading]=\"{ enabled: true, animation: true }\">\r\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of (columns$ | async);track col.name) {\r\n <axp-widget-column-renderer *ngIf=\"col.visible\" [schema]=\"col.schema\" [dataField]=\"col.name\"\r\n [caption]=\"col.title\" [options]=\"col.options\" [displayFormat]=\"col.displayFormat\" width=\"180px\"\r\n [allowSorting]=\"false\">\r\n </axp-widget-column-renderer>\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\r\n </ax-data-table>\r\n </div>\r\n </ax-content>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\r\n <axp-list-view-option-conditions [loader]=\"loader\"\r\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\r\n </ax-content>\r\n </ax-drawer>\r\n</ax-drawer-container>","import { AXActionSheetModule } from '@acorex/components/action-sheet';\r\nimport { AXBadgeModule } from '@acorex/components/badge';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXCollapseModule } from '@acorex/components/collapse';\r\nimport { AXCommonModule } from '@acorex/components/common';\r\nimport { AXDataTableModule } from '@acorex/components/data-table';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDialogModule } from '@acorex/components/dialog';\r\nimport { AXDrawerModule } from '@acorex/components/drawer';\r\nimport { AXDropdownModule } from '@acorex/components/dropdown';\r\nimport { AXFormModule } from '@acorex/components/form';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXListModule } from '@acorex/components/list';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\r\nimport { AXSwitchModule } from '@acorex/components/switch';\r\nimport { AXTabsModule } from '@acorex/components/tabs';\r\nimport { AXTextBoxModule } from '@acorex/components/text-box';\r\nimport { CdkDrag, CdkDragHandle, CdkDragPlaceholder, CdkDropList } from '@angular/cdk/drag-drop';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n AXPListViewOptionConditionsComponent,\r\n AXPListViewOptionFilterOperatorComponent,\r\n AXPListViewOptionSortingComponent,\r\n AXPListViewOptionsColumnsComponent,\r\n} from './components';\r\nimport { AXPEntityListViewComponent } from './entity-list-view.component';\r\n\r\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\r\nimport { AXLabelModule } from '@acorex/components/label';\r\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\r\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\r\nimport { AXPCommonWidgetModule, AXPSchemaModule } from '@acorex/platform/common';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { AXPEntityCreateCustomViewComponent } from './components/entity-custom-view/entity-custom-view.component';\r\nimport { AXPAuthModule } from '@acorex/platform/auth';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXCommonModule,\r\n AXDataTableModule,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXBadgeModule,\r\n AXDropdownModule,\r\n AXPopoverModule,\r\n AXImageModule,\r\n AXSwitchModule,\r\n AXDrawerModule,\r\n AXLoadingModule,\r\n AXTabsModule,\r\n AXSelectBoxModule,\r\n AXFormModule,\r\n AXListModule,\r\n AXTextBoxModule,\r\n AXSearchBoxModule,\r\n AXLabelModule,\r\n AXCollapseModule,\r\n AXActionSheetModule,\r\n AXSelectionListModule,\r\n AXImageModule,\r\n AXDialogModule,\r\n AXDropdownButtonModule,\r\n //\r\n CdkDropList,\r\n CdkDrag,\r\n CdkDragPlaceholder,\r\n CdkDragHandle,\r\n PortalModule,\r\n AXPSchemaModule,\r\n AXPCommonWidgetModule,\r\n AXPAuthModule\r\n ],\r\n declarations: [\r\n AXPEntityListViewComponent,\r\n AXPEntityCreateCustomViewComponent,\r\n AXPListViewOptionsColumnsComponent,\r\n AXPListViewOptionConditionsComponent,\r\n AXPListViewOptionFilterOperatorComponent,\r\n AXPListViewOptionSortingComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class AXPListViewModule { }\r\n","import { AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption } from '@acorex/components/common';\r\nimport { AXPEntityConfig, AXPEntityListColumnConfig, AXPEntityListConditionConfig, AXPEntityListDisplayColumnConfig, AXPEntityListSortConfig, AXPEntityListViewConfig, AXPEntityListViewConfigEmpty, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPSchemaRegistryService } from '@acorex/platform/common';\r\nimport { Injectable, InjectionToken, inject } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { BehaviorSubject, Observable, defaultIfEmpty, first, map, of, switchMap } from 'rxjs';\r\n\r\nimport { AXPLayoutService } from '@acorex/platform/common';\r\n\r\nexport interface AXPListViewLoader {\r\n get properties$(): Observable<AXPEntityPropertyConfig[]>;\r\n getProp(name: string): AXPEntityPropertyConfig | undefined;\r\n\r\n get views$(): Observable<AXPEntityListViewConfig[]>;\r\n get publicViews$(): Observable<AXPEntityListViewConfig[]>;\r\n get customViews$(): Observable<AXPEntityListViewConfig[]>;\r\n get hasCustomViews$(): Observable<boolean>;\r\n get view$(): Observable<AXPEntityListViewConfig>;\r\n setDefaultView(): void;\r\n setView(name: string): void;\r\n createView(view: AXPEntityListViewConfig): void;\r\n updateView(view: AXPEntityListViewConfig): void;\r\n deleteView(viewName: string): void;\r\n\r\n get columns$(): Observable<AXPEntityListColumnConfig[]>;\r\n get displayColumns$(): Observable<AXPEntityListDisplayColumnConfig[]>;\r\n get displayColumnsCount$(): Observable<number>;\r\n setColumnVisibility(name: string, visible: boolean): void;\r\n updateColumns(items: AXPEntityListDisplayColumnConfig[]): void;\r\n resetColumns(): void;\r\n\r\n get sorts$(): Observable<AXPEntityListSortConfig[]>;\r\n get sortsCount$(): Observable<number>;\r\n addSort(): void;\r\n resetSort(): void;\r\n removeSort(item: AXPEntityListSortConfig): void;\r\n updateSort(items: AXPEntityListSortConfig[]): void;\r\n\r\n get conditions$(): Observable<AXPEntityListConditionConfig[]>;\r\n get conditionsCount$(): Observable<number>;\r\n getInlineFilterTitles(): string[];\r\n\r\n addCondition(selectedFields: { name: string; opr: string }[]): void;\r\n resetConditions(): void;\r\n removeCondition(item: AXPEntityListConditionConfig): void;\r\n handleInlineSearch(value: string): void;\r\n updateConditions(items: AXPEntityListConditionConfig[]): void;\r\n\r\n get dataSource(): AXDataSource;\r\n get entity(): AXPEntityConfig;\r\n}\r\n\r\nexport class AXPListViewLoaderDefault implements AXPListViewLoader {\r\n private _config!: AXPEntityConfig;\r\n private _dataSource: AXDataSource = new AXDataSource(this.entity.dataSource);\r\n private _inlineFilterItems: { name: string; dataType: string | undefined; title: string }[] = [];\r\n\r\n constructor(private config: AXPEntityConfig, private schemaService: AXPSchemaRegistryService) {\r\n this._inlineFilterItems = this.entity.properties\r\n .filter((property) => property.canInlineFilter)\r\n .map((item) => {\r\n const schema = this.schemaService.resolve(item.schema);\r\n return { name: item.name, dataType: schema?.dataType, title: item.title };\r\n });\r\n }\r\n\r\n get entity(): AXPEntityConfig {\r\n if (!this._config) {\r\n this._config = cloneDeep(this.config);\r\n }\r\n return this._config;\r\n }\r\n\r\n get dataSource(): AXDataSource {\r\n return this._dataSource;\r\n }\r\n\r\n //****************** Properties ******************//\r\n private get props(): AXPEntityPropertyConfig[] {\r\n return this.entity.properties;\r\n }\r\n private _props$ = new BehaviorSubject<AXPEntityPropertyConfig[]>(this.props);\r\n\r\n public get properties$(): Observable<AXPEntityPropertyConfig[]> {\r\n return this._props$;\r\n }\r\n\r\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\r\n\r\n //****************** Views ******************//\r\n\r\n private _currentView = 'default';\r\n\r\n private get views() {\r\n return this.entity.views.list?.views!;\r\n }\r\n\r\n private _views$ = new BehaviorSubject<AXPEntityListViewConfig[]>(this.views);\r\n public get views$(): Observable<AXPEntityListViewConfig[]> {\r\n return this._views$;\r\n }\r\n public get view$(): Observable<AXPEntityListViewConfig> {\r\n return this.views$.pipe(\r\n switchMap((views) => {\r\n const view = views.find((c) => c.name === this._currentView);\r\n if (view) {\r\n return of(view);\r\n } else if (this.views.length > 0) {\r\n return of(this.views[0]);\r\n } else {\r\n return of(AXPEntityListViewConfigEmpty);\r\n }\r\n })\r\n );\r\n }\r\n\r\n public get publicViews$(): Observable<AXPEntityListViewConfig[]> {\r\n return this.views$.pipe(map((c) => c.filter((v) => v.fixed)));\r\n }\r\n\r\n public get customViews$(): Observable<AXPEntityListViewConfig[]> {\r\n return this.views$.pipe(map((c) => c.filter((v) => !v.fixed)));\r\n }\r\n\r\n public get hasCustomViews$(): Observable<boolean> {\r\n return this.customViews$.pipe(map((c) => c.length > 0));\r\n }\r\n\r\n public setDefaultView() {\r\n this.setView(this.views[0].name);\r\n }\r\n\r\n public setView(name: string): void {\r\n let propNames: string[] = [];\r\n this.properties$.pipe(first()).subscribe((properties) => {\r\n propNames = properties.map((p) => p.name);\r\n });\r\n this._currentView = name;\r\n const updatedView = this._views$.value.find((c) => c.name === this._currentView) || AXPEntityListViewConfigEmpty;\r\n const currentViews = this._views$.value;\r\n const updatedViews = currentViews.map((view) => {\r\n if (view.name === updatedView.name) {\r\n return updatedView;\r\n } else {\r\n return view;\r\n }\r\n });\r\n\r\n this._currentConditions$.next(cloneDeep(updatedView.conditions.filter((c) => propNames.includes(c.name))));\r\n this._currentSorts$.next(cloneDeep(updatedView.sorts.filter((s) => propNames.includes(s.name))));\r\n // this._columns$.next(updatedView.columns);\r\n this._currentDisplayColumns$.next(cloneDeep(updatedView.columns.filter((c) => propNames.includes(c.name))));\r\n this._views$.next(updatedViews);\r\n\r\n //apply conditions and sorts:\r\n this.dataSource.filter({\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: updatedView.conditions.map((c) => ({\r\n field: c.name,\r\n value: c.value,\r\n operator: { type: c.operator },\r\n })) as any,\r\n });\r\n const convertedSortItems: AXDataSourceSortOption[] = updatedView.sorts.map((s) => ({\r\n field: s.name,\r\n dir: s.dir,\r\n }));\r\n this.dataSource.sort(...convertedSortItems);\r\n\r\n this.dataSource.refresh();\r\n }\r\n\r\n createView(newView: AXPEntityListViewConfig): void {\r\n const currentViews = this._views$.getValue();\r\n currentViews.push(newView);\r\n this._views$.next(currentViews);\r\n this.setView(newView.name);\r\n }\r\n updateView(updatedView: AXPEntityListViewConfig): void {\r\n const currentViews = this._views$.getValue().map((view) => (view.name === updatedView.name ? updatedView : view));\r\n this._views$.next(currentViews);\r\n this.setView(updatedView.name);\r\n }\r\n deleteView(viewName: string): void {\r\n const currentViews = this._views$.getValue().filter((view) => view.name !== viewName);\r\n this._views$.next(currentViews);\r\n this.setView(this.views[0].name);\r\n }\r\n\r\n //****************** Columns ******************//\r\n\r\n private _currentDisplayColumns$ = new BehaviorSubject<AXPEntityListDisplayColumnConfig[]>([]);\r\n\r\n private get columns(): AXPEntityListColumnConfig[] {\r\n return this.entity.properties.map((p) => ({\r\n name: p.name,\r\n title: p.title,\r\n schema: p.schema,\r\n }));\r\n }\r\n\r\n private _columns$ = new BehaviorSubject<AXPEntityListColumnConfig[]>(this.columns);\r\n\r\n public get columns$(): Observable<AXPEntityListColumnConfig[]> {\r\n return this._columns$.pipe(defaultIfEmpty([]));\r\n }\r\n\r\n public get displayColumns$(): Observable<AXPEntityListDisplayColumnConfig[]> {\r\n return this._currentDisplayColumns$.pipe(defaultIfEmpty([]));\r\n }\r\n\r\n public get displayColumnsCount$(): Observable<number> {\r\n return this.view$.pipe(\r\n map((view) => {\r\n return view.columns.filter((column) => column.visible).length;\r\n })\r\n );\r\n }\r\n\r\n updateColumns(items: AXPEntityListDisplayColumnConfig[]): void {\r\n this.view$.pipe(first()).subscribe((view) => {\r\n view.columns = cloneDeep(items);\r\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\r\n });\r\n }\r\n\r\n resetColumns(): void {\r\n this.view$.pipe(first()).subscribe((view) => {\r\n this._currentDisplayColumns$.next(cloneDeep(view.columns));\r\n });\r\n }\r\n\r\n setColumnVisibility(name: string, visible: boolean) {\r\n const updatedColumns = this._currentDisplayColumns$.getValue().map((column) => {\r\n if (column.name === name) {\r\n return { ...column, visible };\r\n } else {\r\n return column;\r\n }\r\n });\r\n this._currentDisplayColumns$.next(updatedColumns);\r\n }\r\n\r\n //****************** Sort ******************//\r\n private _currentSorts$ = new BehaviorSubject<AXPEntityListSortConfig[]>([]);\r\n\r\n public get sorts$(): Observable<AXPEntityListSortConfig[]> {\r\n return this._currentSorts$.pipe(defaultIfEmpty([]));\r\n }\r\n\r\n public get sortsCount$(): Observable<number> {\r\n return this.view$.pipe(map((c) => c.sorts.length));\r\n }\r\n\r\n addSort(): void {\r\n this.view$.pipe(first()).subscribe((view) => {\r\n const currentSorts = this._currentSorts$.getValue();\r\n const name = view.columns.find((c) => !currentSorts.some((s) => s.name == c.name))?.name ?? '';\r\n if (name) {\r\n const sorts = [...currentSorts, { name, dir: 'asc' } as AXPEntityListSortConfig];\r\n this._currentSorts$.next(sorts);\r\n }\r\n });\r\n }\r\n\r\n removeSort(item: AXPEntityListSortConfig): void {\r\n const currentSorts = this._currentSorts$.getValue();\r\n const sorts = currentSorts.filter((c) => c != item);\r\n this._currentSorts$.next(sorts);\r\n }\r\n\r\n resetSort(): void {\r\n this.view$.pipe(first()).subscribe((view) => {\r\n this._currentSorts$.next(cloneDeep(view.sorts));\r\n });\r\n }\r\n\r\n updateSort(items: AXPEntityListSortConfig[]): void {\r\n this.view$.pipe(first()).subscribe((view) => {\r\n view.sorts = cloneDeep(items);\r\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\r\n const convertedSortItems: AXDataSourceSortOption[] = items.map((s) => ({\r\n field: s.name,\r\n dir: s.dir,\r\n }));\r\n this.dataSource.sort(...convertedSortItems);\r\n this.dataSource.refresh();\r\n });\r\n }\r\n\r\n //****************** Conditions ******************//\r\n\r\n private _currentConditions$ = new BehaviorSubject<AXPEntityListConditionConfig[]>([]);\r\n\r\n public get conditions$(): Observable<AXPEntityListConditionConfig[]> {\r\n return this._currentConditions$.pipe(defaultIfEmpty([]));\r\n }\r\n public get conditionsCount$(): Observable<number> {\r\n return this.view$.pipe(map((c) => c.conditions.length));\r\n }\r\n\r\n public getInlineFilterTitles(): string[] {\r\n return this._inlineFilterItems.map((item) => item.title);\r\n }\r\n\r\n addCondition(selectedFields: { name: string; opr: any; value?: any }[]): void {\r\n const prevConditions = this._currentConditions$.getValue();\r\n const conditionsMap = new Map(prevConditions.map((item) => [item.name, item]));\r\n\r\n const newFields = selectedFields.map(\r\n (field) => conditionsMap.get(field.name) || { name: field.name, operator: field.opr }\r\n );\r\n this._currentConditions$.next(newFields as AXPEntityListConditionConfig[]);\r\n }\r\n\r\n removeCondition(item: AXPEntityListConditionConfig): void {\r\n const currentConditions = this._currentConditions$.getValue();\r\n const conditions = currentConditions.filter((c) => c != item);\r\n this._currentConditions$.next(conditions);\r\n }\r\n updateConditions(items: AXPEntityListConditionConfig[]): void {\r\n this.view$.pipe(first()).subscribe((view) => {\r\n view.conditions = cloneDeep(items);\r\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\r\n });\r\n this.applyAllConditions();\r\n }\r\n\r\n handleInlineSearch(value: string) {\r\n const inlineConditions: AXPEntityListConditionConfig[] = [];\r\n\r\n this._inlineFilterItems?.forEach((property) => {\r\n if (property?.dataType == 'string' || property?.dataType == 'number') {\r\n inlineConditions.push({\r\n name: property.name,\r\n value: property.dataType == 'number' ? parseFloat(value) : value,\r\n operator: property.dataType == 'string' ? 'contains' : 'equal',\r\n });\r\n }\r\n });\r\n this.view$.pipe(first()).subscribe((view) => {\r\n view.inlineConditions = cloneDeep(inlineConditions);\r\n });\r\n this.applyAllConditions();\r\n }\r\n\r\n applyAllConditions() {\r\n const inlineConditions: AXDataSourceFilterOption = {\r\n field: null as any,\r\n operator: null as any,\r\n logic: 'or',\r\n filters: [],\r\n };\r\n\r\n const mainConditions: AXDataSourceFilterOption = {\r\n field: null as any,\r\n operator: null as any,\r\n logic: 'and',\r\n filters: [],\r\n };\r\n\r\n this.view$.pipe(first()).subscribe((view) => {\r\n if (view.inlineConditions && view.inlineConditions.length) {\r\n view.inlineConditions?.forEach((c) => {\r\n if (c.value) {\r\n inlineConditions.filters?.push({\r\n field: c.name,\r\n operator: { type: c.operator } as any,\r\n value: c.value,\r\n });\r\n }\r\n });\r\n }\r\n if (view.conditions.length) {\r\n view.conditions.forEach((c) => {\r\n mainConditions.filters?.push({\r\n field: c.name,\r\n operator: { type: c.operator } as any,\r\n value: c.value,\r\n });\r\n });\r\n }\r\n this.dataSource.filter({\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: [mainConditions, inlineConditions],\r\n });\r\n this.dataSource.refresh();\r\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\r\n });\r\n }\r\n\r\n resetConditions(): void {\r\n this.view$.pipe(first()).subscribe((view) => {\r\n this._currentConditions$.next(cloneDeep(view.conditions));\r\n });\r\n }\r\n}\r\n\r\nexport const AXP_LISTVIEW_LOADER = new InjectionToken<AXPListViewLoader>('AXP_LISTVIEW_LOADER');\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPListViewLoaderFactory {\r\n private cache: Map<string, AXPListViewLoader> = new Map();\r\n private entityService = inject(AXPEntityRegistryService);\r\n private schemaService = inject(AXPSchemaRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n\r\n public async create(moduleName: string, entityName: string): Promise<AXPListViewLoader> {\r\n this.layout.setNavigationLoading(true);\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n let result = this.cache.get(config.name);\r\n if (result) {\r\n this.layout.setNavigationLoading(false);\r\n return result;\r\n }\r\n result = new AXPListViewLoaderDefault(config, this.schemaService);\r\n this.cache.set(config.name, result);\r\n this.layout.setNavigationLoading(false);\r\n return result;\r\n }\r\n}\r\n","import { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDropdownModule } from '@acorex/components/dropdown';\r\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\r\nimport { AXBasePageComponent } from '@acorex/components/page';\r\nimport { AXPAdminLayoutState, AXPCommonWidgetModule, AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityViewRootSectionConfig, AXPSchemaModule } from '@acorex/platform/common';\r\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { Actions } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\n\r\n@Component({\r\n templateUrl: 'entity-quick-view.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule, AXPSchemaModule, AXPCommonWidgetModule, AXDecoratorModule, AXButtonModule, AXDropdownModule, AXDropdownButtonModule],\r\n})\r\nexport class AXPEntityQuickViewComponent extends AXBasePageComponent {\r\n private entity!: AXPEntityConfig;\r\n protected root!: AXPEntityViewRootSectionConfig;\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n private workflow = inject(AXPWorkflowService);\r\n\r\n protected canDelete = false;\r\n protected canCreate = false;\r\n protected canUpdate = false;\r\n\r\n protected data: any;\r\n\r\n /**\r\n *\r\n */\r\n constructor(private actions$: Actions) {\r\n super();\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n //\r\n if (this.entity.views.quickView) {\r\n this.root = this.entity.views.quickView?.root;\r\n this.canDelete = this.entity.editOptions?.delete ?? true;\r\n this.canCreate = this.entity.editOptions?.create ?? true;\r\n this.canUpdate = this.entity.editOptions?.update ?? true;\r\n }\r\n }\r\n\r\n protected getProperties(names: string[]): AXPEntityPropertyConfig[] {\r\n return this.entity.properties.filter((c) => names.includes(c.name));\r\n }\r\n\r\n handleCloseClick() {\r\n this.close();\r\n }\r\n\r\n protected handleCommandClick(command: string) {\r\n switch (command) {\r\n case 'delete':\r\n this.workflow.execute('delete-entity', {\r\n module: this.entity.module,\r\n entity: this.entity.name,\r\n ids: [this.data.id],\r\n });\r\n this.close();\r\n break;\r\n case 'details':\r\n this.workflow.execute('show-details', {\r\n payload: {\r\n module: this.entity.module,\r\n entity: this.entity.name,\r\n },\r\n id: this.data.id,\r\n });\r\n this.close();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<div class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2\" *ngIf=\"root.properties?.length\">\r\n <div *ngFor=\"let p of getProperties(root.properties)\"\r\n class=\"ax-flex ax-p-4 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\r\n <div class=\"ax-min-w-[10rem] ax-text-gray-500\">\r\n <span>{{ p.title }}</span>\r\n </div>\r\n <div class=\"ax-min-w-[30rem]\">\r\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let s of root.sections\"\r\n class=\"ax-flex ax-flex-col ax-pb-3 last-of-type:ax-border-none last-of-type:ax-pb-3\">\r\n <div class=\"ax-pb-4\">\r\n <span class=\"ax-font-bold\">{{ s.title }}</span>\r\n </div>\r\n <div class=\"ax-flex ax-flex-col\">\r\n <div *ngFor=\"let p of getProperties(s.properties)\"\r\n class=\"ax-flex ax-flex-col md:ax-flex-row ax-p-3 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\r\n @if (s.options?.showPropTitle!=false) {\r\n <div class=\"ax-min-w-[10rem] ax-text-neutral-500 dark:ax-text-neutral-300 ax-mb-2 md:ax-mb-0\">\r\n <span>{{ p.title }}</span>\r\n </div>\r\n }\r\n <div class=\"md:ax-min-w-[30rem]\">\r\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\" [mode]=\"'view'\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ax-footer>\r\n <ax-prefix> </ax-prefix>\r\n <ax-suffix>\r\n <ax-dropdown-button text=\"Close\" (onClick)=\"handleCloseClick()\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"View Details\" (onClick)=\"handleCommandClick('details')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-info-circle\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n @if(canDelete)\r\n {\r\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix></ax-button-item>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n </ax-suffix>\r\n</ax-footer>","import { Injectable, inject } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\n\r\nimport { AXPLayoutService } from '@acorex/platform/common';\r\nimport { AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPEntityViewConfig } from '@acorex/platform/common';\r\n\r\nexport interface AXPEntityModifyViewLoader {\r\n get entity(): AXPEntityConfig;\r\n get data(): any;\r\n get section(): any;\r\n\r\n getProp(name: string): AXPEntityPropertyConfig | undefined;\r\n update(values: any): Promise<any>;\r\n}\r\n\r\nexport class AXPEntityModifyLoaderDefault implements AXPEntityModifyViewLoader {\r\n private _config!: AXPEntityConfig;\r\n private _data: any = {};\r\n private _currentSection: any;\r\n\r\n constructor(private config: AXPEntityConfig, private selectedData: any, private selectedSection: any) {\r\n this._data = this.selectedData;\r\n this._currentSection = this.selectedSection;\r\n }\r\n\r\n get entity(): AXPEntityConfig {\r\n if (!this._config) {\r\n this._config = cloneDeep(this.config);\r\n }\r\n return this._config;\r\n }\r\n\r\n get data(): any {\r\n return this._data;\r\n }\r\n get section(): any {\r\n return this._currentSection;\r\n }\r\n\r\n private get view(): AXPEntityViewConfig {\r\n return this.entity.views.detailView as AXPEntityViewConfig;\r\n }\r\n\r\n //****************** Properties ******************//\r\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\r\n\r\n //****************** update ******************//\r\n public async update(values: any): Promise<any> {\r\n if (this._config.commands?.update) {\r\n const updated = await this._config.commands?.update(this._data.id, values);\r\n Object.assign(this._data, updated);\r\n return Promise.resolve();\r\n } else {\r\n return Promise.reject(`There is not any update commands for '${this.config.name}'`);\r\n }\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityModifyViewLoaderFactory {\r\n private entityService = inject(AXPEntityRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n\r\n public async create(\r\n moduleName: string,\r\n entityName: string,\r\n id: string,\r\n section: any\r\n ): Promise<AXPEntityModifyViewLoader> {\r\n this.layout.setNavigationLoading(true);\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n if (config.dataSource.byKey) {\r\n const data = await config.dataSource.byKey(id);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityModifyLoaderDefault(config, data, section);\r\n }\r\n this.layout.setNavigationLoading(false);\r\n return Promise.reject('cannot fetch ');\r\n }\r\n}\r\n","import { AXPopupService } from '@acorex/components/popup';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { AXPEntityModifyViewLoaderFactory } from '../entity-modify-view/entity-modify-view.config';\r\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\r\n\r\nexport const AXPEntityModifyEvent = createWorkFlowEvent<{ module: string; entity: string; updateValues: any }>(\r\n '[Entity] Modified'\r\n);\r\n@Injectable()\r\nexport class AXPEntityModifyPopupAction extends AXPWorkflowAction {\r\n private popupService = inject(AXPopupService);\r\n private platform = inject(AXPlatform);\r\n private entityRegistery = inject(AXPEntityRegistryService);\r\n private entityCreateFactory = inject(AXPEntityModifyViewLoaderFactory);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const payload = context.getVariable('payload');\r\n const { module, entity: entityName, section, id } = payload;\r\n const entity = await this.entityRegistery.resolve(module, entityName);\r\n const loader = await this.entityCreateFactory.create(module, entityName, id, section);\r\n\r\n const com = await import('../entity-modify-view/entity-modify-view.component');\r\n const popup = await this.popupService.open(com.AXPEntityModifyViewComponent, {\r\n title: `Modify ${payload.section.title}`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n context: loader.data,\r\n loader: loader,\r\n properties: payload.section.properties,\r\n entity,\r\n },\r\n });\r\n context.setOutput('popupResult', false);\r\n if (popup.data?.result == true) {\r\n context.setOutput('popupResult', true);\r\n context.setVariable('updatedData', cloneDeep(popup.data.context));\r\n }\r\n }\r\n}\r\n\r\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\r\n private entityRegistery = inject(AXPEntityRegistryService);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const payload = context.getVariable('payload');\r\n const updatedData = context.getVariable('updatedData');\r\n const entity = await this.entityRegistery.resolve(payload.module, payload.entity);\r\n this.dispatch(AXPEntityModifyEvent({ module: entity.module, entity: entity.name, updateValues: updatedData }));\r\n }\r\n}\r\n\r\nexport const AXPModifyEntityWorkflow: AXPWorkflow = {\r\n startStepId: 'modifyPopup',\r\n steps: {\r\n modifyPopup: {\r\n id: 'modifyPopup',\r\n action: 'AXPEntityModifyPopupAction',\r\n nextSteps: [\r\n {\r\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"popupResult\") == true' }],\r\n nextStepId: 'successToast',\r\n },\r\n ],\r\n },\r\n successToast: {\r\n id: 'successToast',\r\n action: 'AXPToastAction',\r\n input: {\r\n color: 'success',\r\n title: 'Entity Modified',\r\n content: 'Record has been successfully updated.',\r\n },\r\n nextSteps: [\r\n {\r\n conditions: [],\r\n nextStepId: 'modifyConfirmed',\r\n },\r\n ],\r\n },\r\n modifyConfirmed: {\r\n id: 'modifyConfirmed',\r\n action: 'AXPEntityModifyConfirmedAction',\r\n nextSteps: [\r\n {\r\n conditions: [],\r\n nextStepId: '',\r\n },\r\n ],\r\n },\r\n },\r\n};\r\n","import { AXPopupService } from '@acorex/components/popup';\r\nimport { AXFormatService } from '@acorex/core/format';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\r\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AXPShowQuickViewAction extends AXPWorkflowAction {\r\n private entityRegistery = inject(AXPEntityRegistryService);\r\n private formatService = inject(AXFormatService);\r\n private popupService = inject(AXPopupService);\r\n private platform = inject(AXPlatform);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const payload = context.getVariable('payload');\r\n\r\n const entity = await this.entityRegistery.resolve(payload.module, payload.entity);\r\n const suggestedProps = entity.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\r\n let suggestedFormat = 'Item #{{id}}';\r\n if (suggestedProps) suggestedFormat = `{{${suggestedProps.name}}}`;\r\n const title = this.formatService.format(entity.formats?.header ?? entity.formats?.default ?? suggestedFormat, 'string', payload.data);\r\n //\r\n const com = await import('../entity-quick-view/entity-quick-view.component');\r\n this.popupService.open(com.AXPEntityQuickViewComponent, {\r\n title: `${title} - Quick View`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n entity: entity,\r\n data: payload.data,\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport const AXPShowQuickViewWorkflow: AXPWorkflow = {\r\n startStepId: 'showQuickView',\r\n steps: {\r\n showQuickView: {\r\n id: 'showQuickView',\r\n action: 'AXPShowQuickViewAction',\r\n },\r\n },\r\n};\r\n","import { AXPSessionService } from '@acorex/platform/auth';\r\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\r\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AXPShowDetailViewAction extends AXPWorkflowAction {\r\n private navigation = inject(AXPWorkflowNavigateAction);\r\n private sessionService = inject(AXPSessionService);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const payload = context.getVariable('payload');\r\n const id = context.getVariable('id');\r\n const newPayload = {\r\n commands: `/${this.sessionService.application?.name}/${payload.module}/e/${payload.entity}/${id}/view`,\r\n };\r\n context.setVariable('payload', newPayload);\r\n this.navigation.execute(context);\r\n }\r\n}\r\n\r\n\r\nexport const AXPShowDetailsViewWorkflow: AXPWorkflow = {\r\n startStepId: 'showDetailView',\r\n steps: {\r\n showDetailView: {\r\n id: 'showDetailView',\r\n action: 'AXPShowDetailViewAction',\r\n },\r\n },\r\n};\r\n","import { AXPSessionService } from '@acorex/platform/auth';\r\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\r\nimport { AXPWorkflow, AXPWorkflowAction } from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class AXPShowListViewAction extends AXPWorkflowAction {\r\n private navigation = inject(AXPWorkflowNavigateAction);\r\n private sessionService = inject(AXPSessionService);\r\n async execute(context?: any): Promise<void> {\r\n const payload = context.getVariable('payload');\r\n const newPayload = {\r\n commands: `/${this.sessionService.application?.name}/${payload.entity.module}/e/${payload.entity}/list`,\r\n };\r\n context.setVariable('payload', newPayload);\r\n this.navigation.execute(context);\r\n }\r\n}\r\n\r\nexport const AXPShowListViewWorkflow: AXPWorkflow = {\r\n startStepId: 'showListView',\r\n steps: {\r\n showListView: {\r\n id: 'showListView',\r\n action: 'AXPShowListViewAction',\r\n },\r\n },\r\n};\r\n","import { AXActionSheetModule } from '@acorex/components/action-sheet';\r\nimport { AXBadgeModule } from '@acorex/components/badge';\r\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXHtmlEvent } from '@acorex/components/common';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDialogModule } from '@acorex/components/dialog';\r\nimport { AXDrawerComponent, AXDrawerModule } from '@acorex/components/drawer';\r\nimport { AXDropdownModule } from '@acorex/components/dropdown';\r\nimport { AXFormModule } from '@acorex/components/form';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXPopupService } from '@acorex/components/popup';\r\nimport { AXSwitchModule } from '@acorex/components/switch';\r\nimport { AXTabsModule } from '@acorex/components/tabs';\r\nimport { AXTooltipModule } from '@acorex/components/tooltip';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { AXUnsubscriber } from '@acorex/core/utils';\r\nimport { AXPSessionService } from '@acorex/platform/auth';\r\nimport { AXPAdminLayoutState, AXPLayoutChildDrawerClose, AXPLayoutChildDrawerToggle, AXPStickyDirective, getChildDrawer, isSmallScreen } from '@acorex/platform/common';\r\nimport { AXPCommonWidgetModule, AXPEntityViewChildSectionConfig, AXPSchemaModule } from '@acorex/platform/common';\r\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\r\nimport { CommonModule, Location } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild, WritableSignal, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\r\nimport { Actions, ofType } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { first } from 'rxjs';\r\nimport { AXPEntityDetailViewLoader } from './detail-view.config';\r\nimport { AXPEntityDeletedEvent, AXPEntityModifyEvent } from '../workflows';\r\n@Component({\r\n templateUrl: './entity-details-view.component.html',\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXBadgeModule,\r\n AXDropdownModule,\r\n AXPopoverModule,\r\n AXFormModule,\r\n AXImageModule,\r\n AXActionSheetModule,\r\n AXSwitchModule,\r\n AXDrawerModule,\r\n AXDialogModule,\r\n AXLoadingModule,\r\n AXTabsModule,\r\n AXBadgeModule,\r\n AXButtonModule,\r\n AXSwitchModule,\r\n AXPSchemaModule,\r\n AXTooltipModule,\r\n AXBreadcrumbsModule,\r\n //\r\n AXPCommonWidgetModule,\r\n AXPStickyDirective,\r\n ],\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [AXUnsubscriber],\r\n})\r\nexport class AXPEntityDetailsViewComponent {\r\n private popupService = inject(AXPopupService);\r\n private sessionService = inject(AXPSessionService);\r\n private activeRoute = inject(ActivatedRoute);\r\n private router = inject(Router);\r\n private location = inject(Location);\r\n private cdr = inject(ChangeDetectorRef);\r\n private platform = inject(AXPlatform);\r\n private workflow = inject(AXPWorkflowService);\r\n\r\n protected loader = this.activeRoute.snapshot.data['loader'] as AXPEntityDetailViewLoader;\r\n\r\n @ViewChild('drawer') drawer!: AXDrawerComponent;\r\n\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n protected isSM = this.store.select(isSmallScreen());\r\n protected isOpen = this.store.select(getChildDrawer());\r\n //\r\n protected canDelete = this.loader.entity.editOptions?.delete ?? true;\r\n protected canCreate = this.loader.entity.editOptions?.create ?? true;\r\n protected canUpdate = this.loader.entity.editOptions?.update ?? true;\r\n //\r\n\r\n\r\n protected context: WritableSignal<any> = signal(cloneDeep(this.loader.data));\r\n\r\n constructor(private actions$: Actions, private unsubscriber: AXUnsubscriber) {\r\n this.activeRoute.paramMap.pipe(first()).subscribe((c) => {\r\n this.setSection(c.get('section') as string);\r\n });\r\n //\r\n this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {\r\n if (\r\n event.payload.entity == this.loader.entity.name &&\r\n event.payload.module == this.loader.entity.module &&\r\n event.payload.id.includes(this.loader.data.id)\r\n ) {\r\n this.workflow.execute('show-list-view', {\r\n payload: {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n },\r\n });\r\n }\r\n });\r\n this.workflow.events$.pipe(ofType(AXPEntityModifyEvent), this.unsubscriber.takeUntilDestroy).subscribe(async (event) => {\r\n if (\r\n event.payload.entity == this.loader.entity.name &&\r\n event.payload.module == this.loader.entity.module &&\r\n event.payload.updateValues.id === this.loader.data.id\r\n ) {\r\n await this.loader.update(event.payload.updateValues);\r\n this.context.set(cloneDeep(this.loader.data));\r\n }\r\n });\r\n }\r\n\r\n protected handleMenuClick(e: AXHtmlEvent, item: AXPEntityViewChildSectionConfig) {\r\n const entity = this.loader.entity;\r\n const path = `/${this.sessionService.application?.name}/${entity.module}/e/${entity.name}/${this.loader.data?.id}/view/${item.name}`;\r\n this.location.go(path);\r\n this.setSection(item.name);\r\n }\r\n\r\n protected handleCollapsedChange(value: boolean) {\r\n if (value) this.store.dispatch(AXPLayoutChildDrawerClose());\r\n }\r\n\r\n protected handleDrawerClick() {\r\n this.store.dispatch(AXPLayoutChildDrawerToggle());\r\n }\r\n\r\n private setSection(name: string) {\r\n this.loader.setSection(name);\r\n }\r\n\r\n protected async handleSectionEdit(section: AXPEntityViewChildSectionConfig) {\r\n this.workflow.execute('modify-entity', {\r\n payload: {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n id: this.loader.data.id,\r\n section: section,\r\n },\r\n });\r\n }\r\n\r\n protected isActive(item: AXPEntityViewChildSectionConfig) {\r\n return item.name == window.location.pathname.split('/').pop();\r\n }\r\n\r\n protected handleCommandClick(command: string) {\r\n switch (command) {\r\n case 'delete':\r\n this.workflow.execute('delete-entity', {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n ids: [this.loader.data.id],\r\n });\r\n break;\r\n case 'create': {\r\n this.workflow.execute('create-entity', {\r\n payload: {\r\n module: this.loader.entity.module,\r\n entity: this.loader.entity.name,\r\n },\r\n });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <!-- <ax-button class=\"lg:ax-hidden\">\r\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\r\n </ax-button> -->\r\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\r\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n <ax-breadcrumbs-item>\r\n <a>Home</a>\r\n </ax-breadcrumbs-item>\r\n <ax-breadcrumbs-item>\r\n <a>{{ loader.entity.title }}</a>\r\n </ax-breadcrumbs-item>\r\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\r\n {{ loader.title }}\r\n </ax-breadcrumbs-item>\r\n </ax-breadcrumbs> -->\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @if(canCreate || canUpdate) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item> \r\n <ax-divider></ax-divider>-->\r\n @if(canCreate) {\r\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\r\n (onClick)=\"handleCommandClick('create')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n } @if(canDelete) {\r\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\r\n (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Section Tab Items -->\r\n @if((loader.hasSections$| async)) {\r\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\r\n @for(tab of (loader.sections$ | async); track tab.name) {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\r\n class=\"first:!ax-ms-0\"> </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n }\r\n <!-- Finish Section Tab Items -->\r\n </div>\r\n @for(section of (loader.section$ | async)?.sections; track section.name) {\r\n <ax-form #form>\r\n <div class=\"ax-card ax-shadow-md\">\r\n <div class=\"ax-card-header\">\r\n <p>{{ section.title }}</p>\r\n @if(canUpdate) {\r\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\r\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\r\n <ng-container *ngFor=\"let name of section.properties\">\r\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\r\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\r\n @if(section.options?.showPropTitle!=false){\r\n <div\r\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\r\n <div class=\"ax-flex ax-flex-col ax-items-start\">\r\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\r\n <!-- @if(prop.description) {\r\n <i\r\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\r\n [axTooltip]=\"prop.description\"\r\n [axTooltipPlacement]=\"'end'\"\r\n ></i>\r\n } -->\r\n @if(prop.description) {\r\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div\r\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\r\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\r\n [mode]=\"'view'\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ax-form>\r\n }\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>","import { AXFormatService } from '@acorex/core/format';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { assign, cloneDeep } from 'lodash-es';\r\nimport { BehaviorSubject, Observable, defaultIfEmpty, map, of, switchMap } from 'rxjs';\r\n\r\nimport { AXPLayoutService } from '@acorex/platform/common';\r\nimport { AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPEntityViewChildSectionConfig, AXPEntityViewConfig } from '@acorex/platform/common';\r\n\r\nexport interface AXPEntityDetailViewLoader {\r\n get entity(): AXPEntityConfig;\r\n get data(): any;\r\n get title(): string;\r\n\r\n get sectionTitle(): string;\r\n get sections$(): Observable<AXPEntityViewChildSectionConfig[]>;\r\n get hasSections$(): Observable<boolean>;\r\n get section$(): Observable<AXPEntityViewChildSectionConfig>;\r\n setSection(name: string): void;\r\n\r\n getProp(name: string): AXPEntityPropertyConfig | undefined;\r\n update(values: any): Promise<any>;\r\n}\r\n\r\nexport class AXPEntityDetailLoaderDefault implements AXPEntityDetailViewLoader {\r\n private _config!: AXPEntityConfig;\r\n private _currentSection = 'default';\r\n\r\n constructor(\r\n private config: AXPEntityConfig,\r\n private store: Store,\r\n private entityData: any,\r\n private formatService: AXFormatService\r\n ) { }\r\n\r\n get entity(): AXPEntityConfig {\r\n if (!this._config) {\r\n this._config = cloneDeep(this.config);\r\n }\r\n return this._config;\r\n }\r\n\r\n get data(): any {\r\n return this.entityData;\r\n }\r\n\r\n private get view(): AXPEntityViewConfig {\r\n return (this.entity.views.detailView ?? this.entity.views.quickView) as AXPEntityViewConfig;\r\n }\r\n\r\n //****************** Titles ******************//\r\n get title(): string {\r\n const suggestedProps = this.entity.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\r\n let suggestedFormat = 'Item #{{id}}';\r\n if (suggestedProps) suggestedFormat = `{{${suggestedProps.name}}}`;\r\n const title = this.formatService.format(\r\n this.entity.formats?.header ?? this.entity.formats?.default ?? suggestedFormat,\r\n 'string',\r\n this.data\r\n );\r\n return title;\r\n }\r\n\r\n get sectionTitle(): string {\r\n return `${this.entity.title}`;\r\n }\r\n\r\n //****************** Sections ******************//\r\n\r\n private get sections(): AXPEntityViewChildSectionConfig[] {\r\n return this.view.root.sections?.length\r\n ? this.view.root.sections\r\n : [\r\n {\r\n name: 'default',\r\n title: 'Default',\r\n properties: this.view.root.properties,\r\n },\r\n ];\r\n }\r\n\r\n private _sections$ = new BehaviorSubject<AXPEntityViewChildSectionConfig[]>(this.sections);\r\n\r\n public get sections$(): Observable<AXPEntityViewChildSectionConfig[]> {\r\n return this._sections$.pipe(defaultIfEmpty([]));\r\n }\r\n\r\n public get section$(): Observable<AXPEntityViewChildSectionConfig> {\r\n return this.sections$.pipe(\r\n switchMap((sections) => {\r\n const section = sections.find((c) => c.name === this._currentSection) ?? this.sections[0];\r\n if (!section.sections?.length) {\r\n section.sections = [\r\n {\r\n name: 'default',\r\n title: 'Details',\r\n properties: section.properties,\r\n },\r\n ];\r\n }\r\n return of(section);\r\n })\r\n );\r\n }\r\n\r\n public get hasSections$(): Observable<boolean> {\r\n return this.sections$.pipe(map((c) => c.length > 1));\r\n }\r\n\r\n public setSection(name: string) {\r\n this._currentSection = name ?? 'default';\r\n const updatedSection = this.sections.find((c) => c.name === this._currentSection) || {\r\n name: 'default',\r\n title: 'Default',\r\n properties: this.view.root.properties,\r\n };\r\n const currentSections = this._sections$.value;\r\n const updatedSections = currentSections.map((section) => {\r\n if (section.name === updatedSection.name) {\r\n return updatedSection;\r\n } else {\r\n return section;\r\n }\r\n });\r\n this._sections$.next(updatedSections);\r\n }\r\n\r\n //****************** Properties ******************//\r\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\r\n\r\n //****************** Update ******************//\r\n public async update(values: any): Promise<any> {\r\n assign(this.data, values);\r\n this.setSection(this._currentSection);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityDetailViewLoaderFactory {\r\n private entityService = inject(AXPEntityRegistryService);\r\n private formatService = inject(AXFormatService);\r\n private layout = inject(AXPLayoutService);\r\n private store = inject(Store);\r\n\r\n public async create(moduleName: string, entityName: string, id: string): Promise<AXPEntityDetailViewLoader> {\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(true);\r\n if (config.dataSource.byKey) {\r\n const data = await config.dataSource.byKey(id);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityDetailLoaderDefault(config, this.store, data, this.formatService);\r\n }\r\n this.layout.setNavigationLoading(false);\r\n return Promise.reject('cannot fetch ');\r\n }\r\n}\r\n","import { ActivatedRouteSnapshot, RouteReuseStrategy, DetachedRouteHandle } from '@angular/router';\r\nimport { AXPEntityDetailsViewComponent, AXPEntityListViewComponent } from './entity-layout';\r\n\r\n\r\nexport class AXPCustomReuseStrategy implements RouteReuseStrategy {\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void { }\r\n\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n return null;\r\n }\r\n\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n if (future.component === AXPEntityListViewComponent || future.component === AXPEntityDetailsViewComponent) {\r\n return false;\r\n }\r\n\r\n return future.routeConfig === curr.routeConfig;\r\n }\r\n}\r\n","import { AXPopupService } from '@acorex/components/popup';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { AXPEntityModifyViewLoaderFactory } from '../entity-modify-view/entity-modify-view.config';\r\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\r\n\r\n\r\n@Injectable()\r\nexport class AXPEntityModifySectionPopupAction extends AXPWorkflowAction {\r\n private popupService = inject(AXPopupService);\r\n private platform = inject(AXPlatform);\r\n private entityRegistery = inject(AXPEntityRegistryService);\r\n private entityCreateFactory = inject(AXPEntityModifyViewLoaderFactory);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const payload = context.getVariable('payload');\r\n const { module, entity: entityName, section, id } = payload;\r\n const entity = await this.entityRegistery.resolve(module, entityName);\r\n const loader = await this.entityCreateFactory.create(module, entityName, id, section);\r\n\r\n const com = await import('../entity-modify-view/entity-modify-view.component');\r\n const popup = await this.popupService.open(com.AXPEntityModifyViewComponent, {\r\n title: `Modify ${payload.section.title}`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n context: loader.data,\r\n loader: loader,\r\n properties: payload.section.properties,\r\n entity,\r\n },\r\n });\r\n context.setOutput('popupResult', false);\r\n if (popup.data?.result == true) {\r\n context.setOutput('popupResult', true);\r\n context.setVariable('updatedData', cloneDeep(popup.data.context));\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const AXPModifyEntitySectionWorkflow: AXPWorkflow = {\r\n startStepId: 'modifyPopup',\r\n steps: {\r\n modifyPopup: {\r\n id: 'modifyPopup',\r\n action: 'AXPEntityModifySectionPopupAction',\r\n nextSteps: [\r\n {\r\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"popupResult\") == true' }],\r\n nextStepId: 'successToast',\r\n },\r\n ],\r\n },\r\n successToast: {\r\n id: 'successToast',\r\n action: 'AXPToastAction',\r\n input: {\r\n color: 'success',\r\n title: 'Entity Modified',\r\n content: 'Record has been successfully updated.',\r\n },\r\n nextSteps: [\r\n {\r\n conditions: [],\r\n nextStepId: 'modifyConfirmed',\r\n },\r\n ],\r\n },\r\n modifyConfirmed: {\r\n id: 'modifyConfirmed',\r\n action: 'AXPEntityModifyConfirmedAction',\r\n nextSteps: [\r\n {\r\n conditions: [],\r\n nextStepId: '',\r\n },\r\n ],\r\n },\r\n },\r\n};\r\n","import { AXPWorkflowModule } from '@acorex/platform/workflow';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { AXPCustomReuseStrategy } from './custom-reuse.strategy';\r\nimport { AXPListViewModule } from './entity-layout';\r\nimport {\r\n AXPCreateEntityWorkflow,\r\n AXPEntityCreatePopupAction,\r\n AXPEntityCreateSubmittedAction,\r\n} from './entity-layout/workflows/create-entity.workflow';\r\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction, AXPMyCustomFunc } from './entity-layout/workflows/delete-entity.workflow';\r\nimport {\r\n AXPEntityModifyConfirmedAction,\r\n AXPEntityModifyPopupAction,\r\n AXPModifyEntityWorkflow,\r\n} from './entity-layout/workflows/modify-entity.workflow';\r\nimport { AXPShowDetailsViewWorkflow } from './entity-layout/workflows/show-details.workflow';\r\nimport { AXPShowListViewWorkflow } from './entity-layout/workflows/show-list.workflow';\r\nimport { AXPShowQuickViewWorkflow } from './entity-layout/workflows/show-quick-view.workflow';\r\nimport { AXPEntityModifySectionPopupAction, AXPModifyEntitySectionWorkflow } from './entity-layout/workflows/modify-section.workflow';\r\n\r\n@NgModule({\r\n imports: [\r\n\r\n AXPListViewModule,\r\n AXPWorkflowModule.forChild({\r\n actions: {\r\n AXPEntityPerformDeleteAction,\r\n AXPEntityModifyPopupAction,\r\n AXPEntityModifySectionPopupAction,\r\n AXPEntityModifyConfirmedAction,\r\n AXPEntityCreatePopupAction,\r\n AXPEntityCreateSubmittedAction,\r\n },\r\n workflows: {\r\n 'delete-entity': AXPDeleteEntityWorkflow,\r\n 'modify-entity': AXPModifyEntityWorkflow,\r\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\r\n 'create-entity': AXPCreateEntityWorkflow,\r\n 'show-details': AXPShowDetailsViewWorkflow,\r\n 'show-quick-view': AXPShowQuickViewWorkflow,\r\n 'show-list-view': AXPShowListViewWorkflow,\r\n },\r\n functions: {\r\n test: AXPMyCustomFunc,\r\n },\r\n }),\r\n ],\r\n exports: [],\r\n declarations: [],\r\n providers: [{ provide: RouteReuseStrategy, useClass: AXPCustomReuseStrategy }],\r\n})\r\nexport class AXPAdminLayoutModule { }\r\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\r\n//\r\nimport {\r\n AXPEntityDetailViewLoader,\r\n AXPEntityDetailViewLoaderFactory,\r\n AXPListViewLoader,\r\n AXPListViewLoaderFactory,\r\n} from './entity-layout';\r\n\r\nexport const AXPListViewLoaderResolver: ResolveFn<Promise<AXPListViewLoader>> = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n service: AXPListViewLoaderFactory = inject(AXPListViewLoaderFactory)\r\n): Promise<AXPListViewLoader> => {\r\n const appName = route.parent?.paramMap.get('app') as string;\r\n const moduleName = route.parent?.paramMap.get('module') as string;\r\n const entityName = route.paramMap.get('entity') as string;\r\n return service.create(moduleName, entityName);\r\n};\r\n\r\nexport const AXPEntityDetailViewLoaderResolver: ResolveFn<Promise<AXPEntityDetailViewLoader>> = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n service: AXPEntityDetailViewLoaderFactory = inject(AXPEntityDetailViewLoaderFactory)\r\n): Promise<AXPEntityDetailViewLoader> => {\r\n const appName = route.parent?.paramMap.get('app') as string;\r\n const moduleName = route.parent?.paramMap.get('module') as string;\r\n const entityName = route.paramMap.get('entity') as string;\r\n const id = route.paramMap.get('id') as string;\r\n return service.create(moduleName, entityName, id);\r\n};\r\n","import { AXPAuthGuard } from '@acorex/platform/auth';\r\nimport { Route } from '@angular/router';\r\nimport { AXPEntityDetailsViewComponent, AXPEntityListViewComponent } from './entity-layout';\r\nimport { AXPEntityDetailViewLoaderResolver, AXPListViewLoaderResolver } from './entity.resolver';\r\n\r\nexport const AX_ADMIN_ROUTES: Route[] = [\r\n {\r\n path: ':app',\r\n canActivate: [AXPAuthGuard],\r\n children: [\r\n {\r\n path: ':module',\r\n children: [\r\n {\r\n path: 'e/:entity/:id/view/:section',\r\n resolve: { loader: AXPEntityDetailViewLoaderResolver },\r\n component: AXPEntityDetailsViewComponent,\r\n },\r\n {\r\n path: 'e/:entity/:id/view',\r\n resolve: { loader: AXPEntityDetailViewLoaderResolver },\r\n component: AXPEntityDetailsViewComponent,\r\n },\r\n {\r\n path: 'e/:entity',\r\n redirectTo: ':entity/list',\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: 'e/:entity/list',\r\n component: AXPEntityListViewComponent,\r\n resolve: {\r\n loader: AXPListViewLoaderResolver,\r\n },\r\n // canActivate: [AXPPermissionGuard],\r\n // data: {\r\n // requiredPermission: \"dynamic\"\r\n // }\r\n },\r\n // {\r\n // path: 'ee/:entity/:id/view',\r\n // resolve: { vm: AXPEntityDetailViewModelResolver },\r\n // component: AXPDefaultThemeEntityDetailsViewComponent,\r\n // },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\n","import { AXMWorkflowErrorHandler, AXPCommonModule, AXPDialogConfirmAction, AXPToastAction, AXPWorkflowNavigateAction } from '@acorex/platform/common';\r\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { AXPShowDetailViewAction, AXPShowListViewAction, AXPShowQuickViewAction } from './admin/entity-layout/workflows';\r\n\r\n@NgModule({\r\n imports: [\r\n AXPCommonModule.forChild({ errorHandlers: [AXMWorkflowErrorHandler] }),\r\n AXPWorkflowModule.forChild({\r\n actions: {\r\n AXPWorkflowNavigateAction,\r\n AXPDialogConfirmAction,\r\n AXPToastAction,\r\n AXPShowDetailViewAction,\r\n AXPShowListViewAction,\r\n AXPShowQuickViewAction,\r\n },\r\n }),\r\n ],\r\n exports: [RouterModule],\r\n})\r\nexport class AXPLayoutModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i4","i12","i16","i5","i6","i1","i2","i7","i8","i9","i10","i11","i13","i14","i15.AXPListViewOptionsColumnsComponent","i16.AXPListViewOptionConditionsComponent","i17.AXPListViewOptionSortingComponent","ofType"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-layouts.mjs","sources":["../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-create-view/entity-create-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/create-entity.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/delete-entity.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/entity-list-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/entity-list-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/list-view.module.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-list-view/list-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/modify-entity.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/show-quick-view.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/show-details.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/show-list.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-details-view/entity-details-view.component.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-details-view/entity-details-view.component.html","../../../../libs/platform/layouts/src/lib/admin/entity-layout/entity-details-view/detail-view.config.ts","../../../../libs/platform/layouts/src/lib/admin/custom-reuse.strategy.ts","../../../../libs/platform/layouts/src/lib/admin/entity-layout/workflows/modify-section.workflow.ts","../../../../libs/platform/layouts/src/lib/admin/admin.module.ts","../../../../libs/platform/layouts/src/lib/admin/entity.resolver.ts","../../../../libs/platform/layouts/src/lib/admin/admin.routes.ts","../../../../libs/platform/layouts/src/lib/layout.module.ts","../../../../libs/platform/layouts/src/acorex-platform-layouts.ts"],"sourcesContent":["import { AXLocation, AXStyleColorType, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPEntityListConditionConfig, AXPEntityListDisplayColumnConfig, AXPEntityListSortConfig, AXPEntityPropertyConfig, AXPFilterOperator, AXPSchemaRegistryService, EQ_OPER } from '@acorex/platform/common';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n Signal,\n WritableSignal,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\n\nimport { AXPListViewLoader } from '../../list-view.config';\n\n@Component({\n templateUrl: './entity-custom-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPEntityCreateCustomViewComponent extends AXBasePageComponent {\n private schemaRegistry = inject(AXPSchemaRegistryService);\n private toastService = inject(AXToastService);\n private dialogService = inject(AXDialogService);\n private subscriber = inject(AXUnsubscriber);\n\n @Input() loader!: AXPListViewLoader;\n @Input() mode: 'edit' | 'create' = 'create';\n @Input() selectedView: any = {};\n\n protected showNameInput: WritableSignal<boolean> = signal(false);\n protected props: WritableSignal<AXPEntityPropertyConfig[]> = signal([]);\n\n protected columns: WritableSignal<AXPEntityListDisplayColumnConfig[]> = signal([]);\n protected visibleColumns: Signal<AXPEntityListDisplayColumnConfig[]> = computed(() =>\n this.columns().filter((c) => c.visible)\n );\n protected conditions: WritableSignal<AXPEntityListConditionConfig[]> = signal([]);\n protected sorts: WritableSignal<AXPEntityListSortConfig[]> = signal([]);\n\n protected selectedConditionNames: string[] = [];\n protected viewNames: string[] = [];\n\n protected override ngOnInit(): void {\n this.props.set(cloneDeep(this.loader.entity.properties));\n this.columns.set(cloneDeep(this.selectedView.columns));\n this.conditions.set(cloneDeep(this.selectedView.conditions));\n this.sorts.set(cloneDeep(this.selectedView.sorts));\n this.loader.views$.pipe(this.subscriber.takeUntilDestroy).subscribe((views) => {\n this.viewNames = views.map((v) => v.name);\n });\n }\n\n //****************** Columns ******************//\n updateColumnItem(event: AXValueChangedEvent, colName: string) {\n if (event.isUserInteraction) {\n this.columns.update((prevCols) =>\n prevCols.map((col) => (col.name === colName ? { ...col, visible: event.value } : col))\n );\n }\n }\n\n //****************** Sorts ******************//\n updateSortItem(item: AXPEntityListSortConfig) {\n this.sorts.update((prevSorts) =>\n prevSorts.map((sort) => (sort.name === item.name ? { ...sort, dir: sort.dir == 'asc' ? 'desc' : 'asc' } : sort))\n );\n }\n addSortItem() {\n const sortNames = this.sorts().map((p) => p.name);\n console.log(this.props(), sortNames);\n const name = this.props().find((c) => !sortNames.includes(c.name))?.name || this.props()[0].name;\n this.sorts.update((prevSorts) => [...prevSorts, { name, dir: 'asc' } as AXPEntityListSortConfig]);\n }\n\n removeSortItem(item: AXPEntityListSortConfig) {\n this.sorts.update((prevSorts) => prevSorts.filter((sort) => item.name != sort.name));\n }\n\n //****************** Conditions ******************//\n protected getSchema(name: string) {\n return this.props().find((c) => c.name == name)?.schema ?? '';\n }\n\n protected getOperators(name: string): AXPFilterOperator[] {\n const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';\n return this.schemaRegistry.resolve(schemaName)?.filterOptions?.operators ?? [];\n }\n\n protected getDefaultOperator(name: string): AXPFilterOperator {\n const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';\n return this.schemaRegistry.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;\n }\n\n protected getOperatorTitle(schemaName: string, oprName: string): string {\n return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';\n }\n protected resetSelectedFieldNames() {\n this.selectedConditionNames = this.conditions().map((c) => c.name);\n }\n protected addCondition() {\n const conditions = this.selectedConditionNames.map((c) => {\n const opr = this.getDefaultOperator(c);\n return {\n name: c,\n operator: opr.name,\n };\n });\n this.conditions.set(conditions as any);\n }\n\n removeCondition(item: AXPEntityListConditionConfig) {\n this.conditions.update((prevConditions) => prevConditions.filter((con) => con.name != item.name));\n }\n\n //****************** Common ******************//\n protected drop(type: 'columns' | 'conditions' | 'sorts', event: CdkDragDrop<unknown[]>) {\n switch (type) {\n case 'columns':\n this.columns.update((prevCols) => {\n const columns = prevCols;\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\n return columns;\n });\n break;\n case 'sorts':\n this.sorts.update((prevSorts) => {\n const sorts = prevSorts;\n moveItemInArray(sorts, event.previousIndex, event.currentIndex);\n return sorts;\n });\n break;\n case 'conditions':\n this.conditions.update((prevConditions) => {\n const conditions = prevConditions;\n moveItemInArray(conditions, event.previousIndex, event.currentIndex);\n return conditions;\n });\n break;\n default:\n break;\n }\n }\n\n changeViewNameToggle() {\n this.showNameInput.update((prev) => !prev);\n }\n\n generateViewName(title: string) {\n return title.replace(/\\s+/g, '-').toLowerCase();\n }\n\n handleApplyClick() {\n const updatedView = {\n ...this.selectedView,\n name: this.generateViewName(this.selectedView.title),\n conditions: this.conditions(),\n columns: this.columns(),\n sorts: this.sorts(),\n };\n if (this.viewNames.includes(updatedView.name) && this.mode == 'create') {\n this.toastService.show({\n title: 'Invalid Title',\n content: 'The title you have chosen already exists. Please choose a different title for your custom view.',\n color: 'danger' as AXStyleColorType,\n location: 'bottom-center' as AXLocation,\n closeButton: true,\n timeOut: 3000,\n });\n } else {\n this.close({ save: true, updatedView });\n }\n }\n\n handleResetClick() {\n this.conditions.set(cloneDeep(this.selectedView.conditions));\n this.columns.set(cloneDeep(this.selectedView.columns));\n this.sorts.set(cloneDeep(this.selectedView.sorts));\n }\n handleDiscardClick() {\n this.close({ save: false });\n }\n handleCancelClick() {\n this.close({ save: false });\n }\n handleDeleteClick() {\n this.dialogService\n .confirm('Warning', 'Are you sure want to delete this view?', 'danger', 'horizontal')\n .then((data) => {\n if (data.result) {\n this.close({ delete: true, viewName: this.selectedView.name });\n }\n });\n }\n}\n","<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\n <div class=\"ax-flex ax-items-center\">\n @if (showNameInput() && mode==='create') {\n <div class=\"ax-w-60\">\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\n @if(showNameInput()){\n <ax-suffix>\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n }\n </ax-text-box>\n </div>\n }@else {\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\n } @if (mode===\"create\") {\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\n @if(!showNameInput() ){\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\n }\n </ax-button>\n }\n </div>\n <ax-close-button></ax-close-button>\n</ax-header>\n<div class=\"ax-p-4\">\n <ax-tabs [content]=\"contents\" look=\"with-line\">\n <ax-tab-item text=\"Columns\">\n <ax-suffix>\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\n cdkDropList\n (cdkDropListDropped)=\"drop('columns', $event)\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\n <ng-container *ngFor=\"let item of columns()\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [(ngModel)]=\"item.visible\"\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Conditions\">\n <ax-suffix>\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\n [class.ax-justify-center]=\"!conditions().length\"\n >\n @if(!conditions().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to filter</span\n >\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions(); track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(conditions().length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n <ax-popover\n #conditionsPopover\n [target]=\"addField\"\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\n [offsetY]=\"8\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n >\n <div\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\n >\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-48 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedConditionNames\"\n [direction]=\"'vertical'\"\n [items]=\"props()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button\n (onClick)=\"addCondition(); conditionsPopover.close()\"\n class=\"ax-sm\"\n text=\"Confirm\"\n color=\"primary\"\n >\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Sorting\">\n <ax-suffix>\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\n [class.ax-justify-center]=\"!sorts().length\"\n >\n @if(!sorts().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to sort</span\n >\n </div>\n }@else {\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop('sorts', $event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts()\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n }\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(sorts().length){\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"blank\"\n class=\"ax-sm\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n </ax-tabs>\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\n</div>\n<ax-footer class=\"!ax-justify-end\">\n @if (mode===\"edit\") {\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\n }\n <ax-button\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\n color=\"primary\"\n (onClick)=\"handleApplyClick()\"\n ></ax-button>\n</ax-footer>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable, first, of } from 'rxjs';\nimport { AXPListViewLoader } from '../../list-view.config';\nimport { AXPAdminLayoutState, AXPEntityListDisplayColumnConfig, isSmallScreen } from '@acorex/platform/common';\n\n@Component({\n selector: 'axp-list-view-option-columns',\n templateUrl: './list-view-option-columns.component.html',\n})\nexport class AXPListViewOptionsColumnsComponent implements OnInit {\n private store = inject(Store<AXPAdminLayoutState>);\n\n @Input()\n public loader!: AXPListViewLoader;\n protected isSM = this.store.select(isSmallScreen());\n protected columns$: Observable<AXPEntityListDisplayColumnConfig[]> = of([]);\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n ngOnInit(): void {\n this.columns$ = this.loader.displayColumns$;\n }\n\n handleVisibilityChange(e: AXValueChangedEvent<boolean>, name: string) {\n if (e.isUserInteraction) {\n this.loader.setColumnVisibility(name, e.value!);\n }\n }\n\n protected drop(event: CdkDragDrop<unknown[]>) {\n this.columns$.pipe(first()).subscribe((columns) => {\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\n });\n }\n\n protected handleClose() {\n this.onClosed.emit();\n }\n protected handleResetClick() {\n this.loader.resetColumns();\n }\n\n protected handleApplyClick() {\n this.columns$.pipe(first()).subscribe((data) => {\n this.loader.updateColumns(data);\n });\n this.onClosed.emit();\n }\n}\n","<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Columns</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n <ng-container *ngFor=\"let item of columns$ | async\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [ngModel]=\"item.visible\"\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPEntityListConditionConfig, AXPEntityPropertyConfig, AXPFilterOperator, AXPSchemaRegistryService, EQ_OPER } from '@acorex/platform/common';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { Observable, first, map, of } from 'rxjs';\nimport { AXPListViewLoader } from '../../list-view.config';\n\n@Component({\n selector: 'axp-list-view-option-conditions',\n templateUrl: './list-view-option-conditions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPListViewOptionConditionsComponent {\n constructor() { }\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n private schemaRegistery = inject(AXPSchemaRegistryService);\n private popopService: AXPopupService = inject(AXPopupService);\n\n protected isSM = false;\n\n @Input()\n public loader!: AXPListViewLoader;\n\n protected props$: Observable<AXPEntityPropertyConfig[]> = of([]);\n protected props: AXPEntityPropertyConfig[] = [];\n protected conditions$: Observable<AXPEntityListConditionConfig[]> = of([]);\n\n protected selectedFieldNames: string[] = [];\n\n onNameChange(item: any) {\n console.log('onName changed!', item);\n }\n ngOnInit() {\n this.props$ = this.loader.properties$.pipe(\n map((sorts) => sorts.filter((s) => s.canFilter != false))\n );\n this.conditions$ = this.loader.conditions$;\n this.conditions$.pipe(first()).subscribe((initialConditions) => {\n this.selectedFieldNames = initialConditions.map((i) => i.name);\n });\n\n this.props$.pipe(first()).subscribe((data) => {\n this.props = data;\n });\n }\n\n protected getOperators(name: string): AXPFilterOperator[] {\n const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';\n return this.schemaRegistery.resolve(schemaName)?.filterOptions?.operators ?? [];\n }\n\n protected getDefaultOperator(name: string): AXPFilterOperator {\n const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';\n return this.schemaRegistery.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;\n }\n\n protected getOperatorTitle(schemaName: string, oprName: string): string {\n return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';\n }\n\n protected getSchema(name: string) {\n return this.props.find((c) => c.name == name)?.schema ?? '';\n }\n\n protected drop(event: CdkDragDrop<unknown[]>) {\n this.conditions$.pipe(first()).subscribe((conditions) => {\n console.log('conditions: ', conditions);\n moveItemInArray(conditions, event.previousIndex, event.currentIndex);\n });\n }\n\n protected handleClose() {\n this.onClosed.emit();\n }\n\n protected handleRemoveCondition(item: AXPEntityListConditionConfig) {\n this.selectedFieldNames = this.selectedFieldNames.filter((i) => i !== item.name);\n this.loader.removeCondition(item);\n }\n\n protected resetSelectedFieldNames() {\n this.conditions$.pipe(first()).subscribe((initialConditions) => {\n this.selectedFieldNames = initialConditions.map((i) => i.name);\n });\n }\n\n protected handleResetClick() {\n this.loader.resetConditions();\n }\n\n protected onConfirmFields() {\n const fileds = this.selectedFieldNames.map((c) => {\n const opr = this.getDefaultOperator(c);\n return {\n name: c,\n opr: opr.name,\n };\n });\n this.loader.addCondition(fileds);\n }\n\n protected handleApplyClick() {\n this.conditions$.pipe(first()).subscribe((data) => {\n console.log(data);\n this.loader.updateConditions(data);\n });\n this.onClosed.emit();\n }\n}\n","<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Filters</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div\n class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-py-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!(conditions$ | async)?.length\"\n>\n @if(!(conditions$ | async)?.length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions$ | async; track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <!-- <ax-text-box [(ngModel)]=\"item.value\"></ax-text-box> -->\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"handleRemoveCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if((conditions$ | async)?.length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover\n #fieldsPopover\n [target]=\"addField\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n [offsetX]=\"15\"\n >\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedFieldNames\"\n [direction]=\"'vertical'\"\n [items]=\"props\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"onConfirmFields(); fieldsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n inject,\n} from '@angular/core';\n\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXPFilterOperator } from '@acorex/platform/common';\n\n@Component({\n selector: 'axp-list-view-option-filter-operator',\n template: `\n <ax-select-box\n valueField=\"name\"\n [dataSource]=\"items\"\n textField=\"title\"\n [(ngModel)]=\"value\"\n *ngIf=\"visible\"\n >\n </ax-select-box>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n})\nexport class AXPListViewOptionFilterOperatorComponent {\n @ViewChild(AXSelectBoxComponent)\n selectBox!: AXSelectBoxComponent;\n protected visible = false;\n\n private cdr = inject(ChangeDetectorRef);\n\n private _items: AXPFilterOperator[] = [];\n @Input()\n public get items(): AXPFilterOperator[] {\n return this._items;\n }\n public set items(v: AXPFilterOperator[]) {\n this.visible = false;\n this._items = v;\n setTimeout(() => {\n this.visible = true;\n this.cdr.markForCheck();\n setTimeout(() => {\n if (this.selectBox) {\n //this.selectBox.defaultValue = this.items[0]?.name;\n }\n });\n });\n }\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n private _value!: string;\n @Input()\n public get value(): string {\n return this._value;\n }\n public set value(v: string) {\n this._value = v;\n this.valueChange.emit(v);\n }\n}\n","import { AXPEntityListSortConfig, AXPEntityPropertyConfig } from '@acorex/platform/common';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Observable, first, map, of } from 'rxjs';\nimport { AXPListViewLoader } from '../../list-view.config';\n\n@Component({\n selector: 'axp-list-view-option-sorting',\n templateUrl: './list-view-option-sorting.component.html',\n})\nexport class AXPListViewOptionSortingComponent {\n protected isSM = false;\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n @Input()\n public loader!: AXPListViewLoader;\n\n protected props$: Observable<AXPEntityPropertyConfig[]> = of([]);\n protected sorts$: Observable<AXPEntityListSortConfig[]> = of([]);\n\n ngOnInit(): void {\n this.props$ = this.loader.properties$.pipe(map((sorts) => sorts.filter((s) => s.canSort != false)));\n this.loader.sorts$.subscribe((data) => {});\n this.sorts$ = this.loader.sorts$;\n }\n\n protected drop(event: CdkDragDrop<unknown[]>) {\n this.sorts$.pipe(first()).subscribe((sorts) => {\n moveItemInArray(sorts, event.previousIndex, event.currentIndex);\n });\n }\n\n protected changeItemSort(item: AXPEntityListSortConfig) {\n item.dir = item.dir == 'asc' ? 'desc' : 'asc';\n }\n\n protected handleClose() {\n this.onClosed.emit();\n }\n protected handleResetClick() {\n this.loader.resetSort();\n }\n\n protected handleApplyClick() {\n this.sorts$.pipe(first()).subscribe((data) => {\n this.loader.updateSort(data);\n });\n this.onClosed.emit();\n }\n}\n","<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Sorts</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!(sorts$ | async)?.length\"\n>\n @if(!(sorts$ | async)?.length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to sort</span>\n </div>\n }\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-max-h-[calc(100vh-310px)] ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts$ | async\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box\n [dataSource]=\"(props$ | async) ?? []\"\n valueField=\"name\"\n textField=\"title\"\n [(ngModel)]=\"item.name\"\n >\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"loader.removeSort(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if((sorts$ | async)?.length){\n <ax-button (onClick)=\"loader.addSort()\" color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"loader.addSort()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n","import { AXFormatService } from '@acorex/core/format';\nimport { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable, defaultIfEmpty, map, of, switchMap } from 'rxjs';\n\nimport { AXPLayoutService } from '@acorex/platform/common';\nimport { AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPEntityViewChildSectionConfig, AXPEntityViewConfig } from '@acorex/platform/common';\n\nexport interface AXPEntityCreateViewLoader {\n get entity(): AXPEntityConfig;\n get data(): any;\n\n get sections$(): Observable<AXPEntityViewChildSectionConfig[]>;\n get hasSections$(): Observable<boolean>;\n get isLast$(): Observable<boolean>;\n get isFirst$(): Observable<boolean>;\n get currentIndex$(): Observable<number>;\n get section$(): Observable<AXPEntityViewChildSectionConfig>;\n setSection(name: string): void;\n next(): Promise<void>;\n back(): Promise<void>;\n\n getProp(name: string): AXPEntityPropertyConfig | undefined;\n isRequired(name: string): boolean;\n}\n\nexport class AXPEntityCreateLoaderDefault implements AXPEntityCreateViewLoader {\n private _config!: AXPEntityConfig;\n private _data: any = {};\n private _currentSection = 'default';\n\n constructor(private config: AXPEntityConfig, private store: Store, private formatService: AXFormatService) {\n this._currentSection = this.sections[0]?.name || 'default';\n }\n\n get entity(): AXPEntityConfig {\n if (!this._config) {\n this._config = cloneDeep(this.config);\n }\n return this._config;\n }\n\n get data(): any {\n return this._data;\n }\n\n private get view(): AXPEntityViewConfig {\n return this.entity.views.createView as AXPEntityViewConfig;\n }\n\n //****************** Sections ******************//\n\n private get sections(): AXPEntityViewChildSectionConfig[] {\n return this.view.root.sections?.length\n ? this.view.root.sections\n : [\n {\n name: 'default',\n title: 'Default',\n properties: this.view.root.properties,\n },\n ];\n }\n\n private _sections$ = new BehaviorSubject<AXPEntityViewChildSectionConfig[]>(this.sections);\n\n public get sections$(): Observable<AXPEntityViewChildSectionConfig[]> {\n return this._sections$.pipe(defaultIfEmpty([]));\n }\n\n public get section$(): Observable<AXPEntityViewChildSectionConfig> {\n return this.sections$.pipe(\n switchMap((sections) => {\n const section = sections.find((c) => c.name === this._currentSection) ?? this.sections[0];\n if (!section.sections?.length) {\n section.sections = [\n {\n name: 'default',\n title: 'Details',\n properties: section.properties,\n },\n ];\n }\n return of(section);\n })\n );\n }\n\n public get hasSections$(): Observable<boolean> {\n return this.sections$.pipe(map((c) => c.length > 1));\n }\n\n public get isLast$(): Observable<boolean> {\n return this.sections$.pipe(\n map((c) => this.sections.length - this.sections.findIndex((c) => c.name == this._currentSection) == 1)\n );\n }\n\n public get isFirst$(): Observable<boolean> {\n return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection) == 0));\n }\n\n public get currentIndex$(): Observable<number> {\n return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection)));\n }\n\n public setSection(name: string) {\n this._currentSection = name ?? 'default';\n const updatedSection = this.sections.find((c) => c.name === this._currentSection) || {\n name: 'default',\n title: 'Default',\n properties: this.view.root.properties,\n };\n const currentSections = this._sections$.value;\n const updatedSections = currentSections.map((section) => {\n if (section.name === updatedSection.name) {\n return updatedSection;\n } else {\n return section;\n }\n });\n this._sections$.next(updatedSections);\n }\n\n public next() {\n const nextIndex = this.sections.findIndex((c) => c.name == this._currentSection) + 1;\n if (nextIndex >= this.sections.length) {\n return Promise.resolve();\n } else {\n this.setSection(this.sections[nextIndex].name);\n return Promise.resolve();\n }\n }\n\n public back() {\n const prevIndex = this.sections.findIndex((c) => c.name == this._currentSection) - 1;\n if (prevIndex < 0) {\n return Promise.resolve();\n } else {\n this.setSection(this.sections[prevIndex].name);\n return Promise.resolve();\n }\n }\n\n //****************** Properties ******************//\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\n public isRequired = (name: string): boolean => this.getProp(name)?.validationRules?.some(c => c.rule == 'required') || false;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityCreateViewLoaderFactory {\n private entityService = inject(AXPEntityRegistryService);\n private formatService = inject(AXFormatService);\n private layout = inject(AXPLayoutService);\n private store = inject(Store);\n\n public async create(moduleName: string, entityName: string): Promise<AXPEntityCreateViewLoader> {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.dataSource.byKey) {\n this.layout.setNavigationLoading(false);\n return new AXPEntityCreateLoaderDefault(config, this.store, this.formatService);\n }\n return Promise.reject('cannot fetch ');\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityCreateViewLoaderFactory } from '../entity-create-view/entity-create-view.config';\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\n\nexport const AXPEntityCreateEvent = createWorkFlowEvent<{ module: string; entity: string }>('[Entity] Created!');\n\n@Injectable()\nexport class AXPEntityCreatePopupAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityRegistryService);\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private entityCreateFactory = inject(AXPEntityCreateViewLoaderFactory);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const { module, entity: entityName } = context.getVariable('payload');\n const entity = await this.entityRegistery.resolve(module, entityName);\n\n const com = await import('../entity-create-view/entity-create-view.component');\n const result = await this.popupService.open(com.AXPEntityCreateViewComponent, {\n title: `Create New ${entity.title}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n loader: await this.entityCreateFactory.create(module, entityName),\n entity,\n },\n });\n if (result.data?.save) {\n context.setOutput('popupResult', true);\n context.setVariable('redirect', result.data.redirect);\n context.setVariable('id', result.data.recordId);\n }\n }\n}\n\nexport class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const { module, entity: entity } = context.getVariable('payload');\n this.dispatch(AXPEntityCreateEvent({ entity, module }));\n }\n}\n\nexport const AXPCreateEntityWorkflow: AXPWorkflow = {\n startStepId: 'createPopup',\n steps: {\n createPopup: {\n id: 'createPopup',\n action: 'AXPEntityCreatePopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"popupResult\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'Entity Created',\n content: 'New Record has been successfully created.',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'createSubmitted',\n },\n ],\n },\n createSubmitted: {\n id: 'createSubmitted',\n action: 'AXPEntityCreateSubmittedAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getVariable(\"redirect\") == true' }],\n nextStepId: 'showDetailView',\n },\n ],\n },\n showDetailView: {\n id: 'showDetailView',\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\nimport {\n AXPWorkflow,\n AXPWorkflowAction,\n AXPWorkflowContext,\n AXPWorkflowFunction,\n createWorkFlowEvent,\n} from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\nexport const AXPEntityDeletedEvent = createWorkFlowEvent<{ module: string; entity: string; id: string }>(\n '[Entity] Deleted'\n);\n\n@Injectable()\nexport class AXPEntityPerformDeleteAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const moduleName = context.getVariable('module');\n const entityName = context.getVariable('entity');\n const ids = context.getVariable('ids');\n const entity = await this.entityRegistery.resolve(moduleName, entityName);\n let deletedCount = 0;\n context.setVariable('deleteSuccessful', false);\n const dialog = this.loadingDialog.show({\n title: 'Deleting Record...',\n mode: 'determinate',\n status: 'Deleting...',\n progressValue: 0,\n text: `0/${ids.length}`,\n buttons: [\n {\n text: 'Cancel',\n color: 'danger',\n onClick: () => {\n dialog.close();\n },\n },\n ],\n });\n\n if (entity.commands?.delete != null) {\n const wrappedPromises = (ids as any[])\n .map((id, i) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(entity.commands?.delete?.(id));\n }, i * 200);\n });\n })\n .map((p) =>\n p?.then(\n (value) => {\n deletedCount++;\n dialog.setProgressText(`${deletedCount}/${ids.length}`);\n dialog.setProgressValue((deletedCount / ids.length) * 100);\n return { status: 'fulfilled', value };\n },\n (reason) => ({ status: 'rejected', reason })\n )\n );\n\n const results = await Promise.all(wrappedPromises);\n const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;\n const failedPromises = results.filter((result) => result?.status === 'rejected').length;\n setTimeout(() => {\n dialog.close();\n }, 300);\n\n // Handle different scenarios for alerts\n if (successfulPromises > 0 && failedPromises === 0) {\n // All items deleted successfully\n await this.dialogService.alert(\n 'Deletion Successful',\n `${successfulPromises} item(s) has been deleted.`,\n 'success'\n );\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));\n } else if (successfulPromises > 0 && failedPromises > 0) {\n // Some items deleted successfully, some failed\n await this.dialogService.alert(\n 'Partial Deletion Completed',\n `${successfulPromises} item(s) deleted successfully. However, ${failedPromises} item(s) could not be deleted.`,\n 'warning'\n );\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));\n } else if (successfulPromises === 0 && failedPromises > 0) {\n // No items deleted, all failed\n await this.dialogService.alert(\n 'Deletion Failed',\n `No items were deleted. ${failedPromises} item(s) failed to delete.`,\n 'danger'\n );\n } else {\n // No items to delete (no successful or failed promises)\n await this.dialogService.alert('No Deletion Needed', 'No items were available to delete.', 'info');\n }\n } else {\n throw new Error(\n `The delete operation cannot be performed on ${entity.title}. This action might be restricted or not applicable for the selected item.`\n );\n }\n }\n}\n\n@Injectable()\nexport class AXPMyCustomFunc extends AXPWorkflowFunction {\n private entityRegistery = inject(AXPEntityRegistryService);\n private dialogService = inject(AXDialogService);\n\n async execute(val: string): Promise<boolean> {\n return val == 'abc';\n }\n}\n\nexport const AXPDeleteEntityWorkflow: AXPWorkflow = {\n startStepId: 'confirmDelete',\n steps: {\n confirmDelete: {\n id: 'confirmDelete',\n action: 'AXPDialogConfirmAction',\n input: {\n title: 'Warning',\n message: `Are you sure want to delete selected item(s)?`,\n type: 'danger',\n },\n nextSteps: [\n {\n conditions: [\n {\n type: 'AND',\n conditions: [\n { type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' },\n { type: 'SINGLE', expression: 'await test(\"abc\")' },\n ],\n },\n ],\n nextStepId: 'performDelete',\n },\n ],\n },\n performDelete: {\n id: 'performDelete',\n action: 'AXPEntityPerformDeleteAction',\n },\n },\n};\n","import { AXActionSheetService } from '@acorex/components/action-sheet';\nimport { AXDataTableComponent, AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';\nimport { AXDrawerComponent } from '@acorex/components/drawer';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngrx/store';\n\nimport { AXClickEvent, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDataTableRowDbClick } from '@acorex/components/data-table/lib/base-data-table.class';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPAdminLayoutState, AXPLayoutChildDrawerToggle, AXPLayoutService, AXP_MENU_LOADER } from '@acorex/platform/common';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { AXPEntityCreateEvent } from '../../entity-layout/workflows/create-entity.workflow';\nimport { AXPEntityDeletedEvent } from '../../entity-layout/workflows/delete-entity.workflow';\nimport { AXPEntityCreateCustomViewComponent } from './components/entity-custom-view/entity-custom-view.component';\nimport { AXPListViewLoader } from './list-view.config';\nimport { convertPropertiesToColumns } from '@acorex/platform/common';\n\n@Component({\n templateUrl: 'entity-list-view.component.html',\n styleUrls: ['entity-list-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n})\nexport class AXPEntityListViewComponent {\n private store = inject(Store<AXPAdminLayoutState>);\n private workflow = inject(AXPWorkflowService);\n private layout = inject(AXPLayoutService);\n private route = inject(ActivatedRoute);\n private manuLoader = inject(AXP_MENU_LOADER);\n\n protected loader = this.route.snapshot.data['loader'] as AXPListViewLoader;\n protected title: string = '';\n protected searchValue: string = '';\n protected searchBoxPlaceholder: string = '';\n protected searchBoxTitle: string = '';\n protected searchBoxCollapsed: boolean = true;\n\n protected publicViews$ = this.loader.publicViews$;\n protected customViews$ = this.loader.customViews$;\n protected hasCustomViews$ = this.loader.hasCustomViews$;\n protected view$ = this.loader.view$;\n //\n protected conditions$ = this.loader.conditions$;\n protected conditionsCount$ = this.loader.conditionsCount$;\n //\n protected columns$ = this.loader.displayColumns$;\n protected columnsCount$ = this.loader.displayColumnsCount$;\n //\n protected sort$ = this.loader.sorts$;\n protected sortCount$ = this.loader.sortsCount$;\n //\n protected dataSource = this.loader.dataSource;\n //\n protected canDelete = this.loader.entity.editOptions?.delete ?? true;\n protected canCreate = this.loader.entity.editOptions?.create ?? true;\n protected canUpdate = this.loader.entity.editOptions?.update ?? true;\n //\n protected focusedRow: any;\n //\n @ViewChild('viewsTemplate') viewsTemplate!: TemplateRef<unknown>;\n // @ViewChild('grid') grid!: AXDataTableComponent;\n @ViewChild('grid') grid!: AXDataTableComponent;\n @ViewChild('entityViewDrawer') entityViewDrawer!: AXDrawerComponent;\n\n private popupService = inject(AXPopupService);\n\n constructor(\n private actionSheetService: AXActionSheetService,\n private unsubscriber: AXUnsubscriber,\n protected platform: AXPlatform,\n protected cdr: ChangeDetectorRef\n ) {\n //TODO: namespace, module name issues\n this.title = this.manuLoader.currentMenuItem()?.text ?? this.loader.entity.formats?.list ?? this.loader.entity.formats?.default ?? 'Title';\n //\n\n this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {\n if (event.payload.entity == this.loader.entity.name && event.payload.module == this.loader.entity.module) {\n this.grid.selectedRows = [];\n this.grid?.refresh();\n }\n });\n //\n this.dataSource.onLoadingChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe((value) => {\n this.layout.setNavigationLoading(value);\n });\n this._getInlineConditionTitles();\n }\n\n ngAfterViewInit() {\n this.loader.setDefaultView();\n }\n\n _getInlineConditionTitles() {\n const titles = this.loader.getInlineFilterTitles();\n this.searchBoxTitle = titles.join(', ');\n if (titles.length > 2) this.searchBoxPlaceholder = titles.slice(0, 2).join(', ') + ' ...';\n else this.searchBoxPlaceholder = titles.join(', ');\n }\n\n _handleViewsPopover() {\n this.actionSheetService.open({ content: this.viewsTemplate });\n }\n\n handleDrawerClick() {\n this.store.dispatch(AXPLayoutChildDrawerToggle());\n }\n\n toggleSearchBox() {\n this.searchBoxCollapsed = !this.searchBoxCollapsed;\n }\n\n private dropdownRowItems: AXRowCommandItem[] = [\n {\n text: 'Details',\n icon: 'fa-solid fa-eye',\n name: 'edit',\n divided: true,\n },\n {\n text: 'Delete',\n icon: 'fa-solid fa-trash-can',\n name: 'delete',\n color: 'danger',\n disabled: !this.canDelete,\n },\n ];\n\n private inlineRowItems: AXRowCommandItem[] = [\n {\n text: 'View',\n icon: 'fa-solid fa-eye',\n name: 'view',\n divided: true,\n },\n ];\n\n protected getDropdownRowItems = (rowData: unknown): Promise<AXRowCommandItem[]> => {\n return Promise.resolve(this.dropdownRowItems);\n };\n\n protected getInlineRowItems = (rowData: unknown): AXRowCommandItem[] => {\n return this.inlineRowItems;\n };\n\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\n const d: AXRowCommandItemClickEvent = {\n component: e.component,\n name: this.dropdownRowItems[0].name,\n data: e.data,\n };\n this.handleRowCommandClick(d);\n }\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n switch (e.name) {\n case 'view': {\n await this.workflow.execute('show-quick-view', {\n payload: {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n data: e.data,\n },\n });\n break;\n }\n case 'edit': {\n await this.workflow.execute('show-details', {\n payload: {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n },\n id: e.data.id,\n });\n break;\n }\n case 'delete': {\n await this.workflow.execute('delete-entity', {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n ids: [e.data.id],\n });\n break;\n }\n }\n }\n\n protected handleCreateClick() {\n this.workflow.execute('create-entity', {\n payload: {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n },\n });\n }\n\n protected handleCommandClick(command: string) {\n switch (command) {\n case 'delete':\n this.workflow.execute('delete-entity', {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n ids: this.grid.selectedRows.map((c) => (c as any)['id']),\n });\n break;\n default:\n break;\n }\n }\n\n protected clearSelectedItems() {\n this.grid.selectedRows = [];\n }\n\n protected closeDrawer(name: string, collapsed: boolean) {\n if (collapsed != false) {\n switch (name) {\n case 'conditions':\n this.loader.resetConditions();\n break;\n case 'columns':\n this.loader.resetColumns();\n break;\n case 'sorts':\n this.loader.resetSort();\n break;\n default:\n break;\n }\n }\n }\n\n handleChangeSearchValue(e: AXValueChangedEvent) {\n if (e.isUserInteraction) {\n this.loader.handleInlineSearch(e.value);\n }\n }\n\n protected async addCustomViewPopup() {\n const newView = {\n name: 'custom-view',\n title: 'Custom View',\n fixed: false,\n sorts: [],\n columns: convertPropertiesToColumns(...this.loader.entity.properties),\n conditions: [],\n };\n\n const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {\n title: 'Create Custom View',\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n closeOnBackdropClick: true,\n draggable: false,\n data: {\n loader: this.loader,\n selectedView: newView,\n mode: 'create',\n },\n });\n if (popup.data?.save == true) {\n console.log('updatedView: ', popup.data.updatedView);\n this.loader.createView(popup.data.updatedView);\n }\n }\n protected async updateViewPopup(e: AXClickEvent, selectedView: any) {\n // (e.nativeEvent as UIEvent).stopPropagation();\n const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {\n title: 'Modify Custom View',\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n closeOnBackdropClick: true,\n draggable: false,\n data: {\n loader: this.loader,\n selectedView,\n mode: 'edit',\n },\n });\n if (popup.data?.delete == true) {\n this.loader.deleteView(popup.data.viewName);\n }\n if (popup.data?.save == true) {\n console.log('updatedView: ', popup.data.updatedView);\n this.loader.updateView(popup.data.updatedView);\n }\n }\n\n ngOnDestroy(): void {\n this.dataSource.reset();\n }\n}\n","<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\n <ax-content class=\"ax-w-64 ax-border-e\">\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\n <ax-side-menu>\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ax-side-menu>\n <ng-template #sideMenu let-item>\n <ax-side-menu-item [text]=\"item.text\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\n </ax-prefix>\n <ng-container *ngIf=\"item.children\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n </ng-template>\n </div>\n </ax-content>\n </ax-drawer> -->\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n @if(platform.is('MD')){\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canCreate) {\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\" class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >Clear Items</span\n >\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canDelete) {\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n </ax-button>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\n <ax-button-item\n *ngFor=\"let v of publicViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item\n *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\" class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <div class=\"ax-flex ax-gap-2\">\n @if(searchBoxTitle){\n <ax-button (onClick)=\"toggleSearchBox()\" [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n }\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\n @if ((conditionsCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\n @if ((sortCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n </div>\n </div>\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\" class=\"ax-transition-all ax-mt-4\">\n <ax-search-box [title]=\"searchBoxTitle\" [placeholder]=\"'Search on ' + searchBoxPlaceholder\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-flex ax-gap-3\">\n @if(canCreate) {\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\n <ax-prefix>\n <i class=\"fa-solid fa-add\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button text=\"Actions\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-gap-3\">\n @if(canDelete) {\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <i class=\"fa-solid fa-trash\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button text=\"Actions\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <!----------------------- View Mode --------------------->\n @if(this.grid?.selectedRows?.length==0) {\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\n <div class=\"ax-flex ax-gap-3\">\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\n <ax-button-item\n *ngFor=\"let v of publicViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item\n class=\"ax-pe-4 ax-flex ax-justify-between\"\n *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n >\n <ax-suffix>\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\n <ax-icon class=\"far fa-edit\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\" class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n @if(searchBoxTitle){\n <div class=\"ax-w-72\">\n <ax-search-box\n [title]=\"searchBoxTitle\"\n [(ngModel)]=\"searchValue\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-gap-3\">\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n\n } @else{\n <!----------------------- Selection Mode --------------------->\n <div>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\" class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >Clear Items</span\n >\n </div>\n </div>\n }\n </div>\n }\n </div>\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\"\n >\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of (columns$ | async);track col.name) {\n <axp-widget-column-renderer\n *ngIf=\"col.visible\"\n [schema]=\"col.schema\"\n [dataField]=\"col.name\"\n [caption]=\"col.title\"\n [options]=\"col.options\"\n [displayFormat]=\"col.displayFormat\"\n [width]=\"'180px'\"\n [allowSorting]=\"false\"\n >\n </axp-widget-column-renderer>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\" (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n </ax-data-table>\n </div>\n </ax-content>\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\n <axp-list-view-option-conditions [loader]=\"loader\" (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n","import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCollapseModule } from '@acorex/components/collapse';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDataTableModule } from '@acorex/components/data-table';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXListModule } from '@acorex/components/list';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CdkDrag, CdkDragHandle, CdkDragPlaceholder, CdkDropList } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n AXPListViewOptionConditionsComponent,\n AXPListViewOptionFilterOperatorComponent,\n AXPListViewOptionSortingComponent,\n AXPListViewOptionsColumnsComponent,\n} from './components';\nimport { AXPEntityListViewComponent } from './entity-list-view.component';\n\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXPCommonWidgetModule, AXPSchemaModule } from '@acorex/platform/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXPEntityCreateCustomViewComponent } from './components/entity-custom-view/entity-custom-view.component';\nimport { AXPAuthModule } from '@acorex/platform/auth';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n AXCommonModule,\n AXDataTableModule,\n AXButtonModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXDropdownModule,\n AXPopoverModule,\n AXImageModule,\n AXSwitchModule,\n AXDrawerModule,\n AXLoadingModule,\n AXTabsModule,\n AXSelectBoxModule,\n AXFormModule,\n AXListModule,\n AXTextBoxModule,\n AXSearchBoxModule,\n AXLabelModule,\n AXCollapseModule,\n AXActionSheetModule,\n AXSelectionListModule,\n AXImageModule,\n AXDialogModule,\n AXDropdownButtonModule,\n //\n CdkDropList,\n CdkDrag,\n CdkDragPlaceholder,\n CdkDragHandle,\n PortalModule,\n AXPSchemaModule,\n AXPCommonWidgetModule,\n AXPAuthModule\n ],\n declarations: [\n AXPEntityListViewComponent,\n AXPEntityCreateCustomViewComponent,\n AXPListViewOptionsColumnsComponent,\n AXPListViewOptionConditionsComponent,\n AXPListViewOptionFilterOperatorComponent,\n AXPListViewOptionSortingComponent,\n ],\n providers: [],\n})\nexport class AXPListViewModule { }\n","import { AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption } from '@acorex/components/common';\nimport { AXPEntityConfig, AXPEntityListColumnConfig, AXPEntityListConditionConfig, AXPEntityListDisplayColumnConfig, AXPEntityListSortConfig, AXPEntityListViewConfig, AXPEntityListViewConfigEmpty, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPSchemaRegistryService } from '@acorex/platform/common';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable, defaultIfEmpty, first, map, of, switchMap } from 'rxjs';\n\nimport { AXPLayoutService } from '@acorex/platform/common';\n\nexport interface AXPListViewLoader {\n get properties$(): Observable<AXPEntityPropertyConfig[]>;\n getProp(name: string): AXPEntityPropertyConfig | undefined;\n\n get views$(): Observable<AXPEntityListViewConfig[]>;\n get publicViews$(): Observable<AXPEntityListViewConfig[]>;\n get customViews$(): Observable<AXPEntityListViewConfig[]>;\n get hasCustomViews$(): Observable<boolean>;\n get view$(): Observable<AXPEntityListViewConfig>;\n setDefaultView(): void;\n setView(name: string): void;\n createView(view: AXPEntityListViewConfig): void;\n updateView(view: AXPEntityListViewConfig): void;\n deleteView(viewName: string): void;\n\n get columns$(): Observable<AXPEntityListColumnConfig[]>;\n get displayColumns$(): Observable<AXPEntityListDisplayColumnConfig[]>;\n get displayColumnsCount$(): Observable<number>;\n setColumnVisibility(name: string, visible: boolean): void;\n updateColumns(items: AXPEntityListDisplayColumnConfig[]): void;\n resetColumns(): void;\n\n get sorts$(): Observable<AXPEntityListSortConfig[]>;\n get sortsCount$(): Observable<number>;\n addSort(): void;\n resetSort(): void;\n removeSort(item: AXPEntityListSortConfig): void;\n updateSort(items: AXPEntityListSortConfig[]): void;\n\n get conditions$(): Observable<AXPEntityListConditionConfig[]>;\n get conditionsCount$(): Observable<number>;\n getInlineFilterTitles(): string[];\n\n addCondition(selectedFields: { name: string; opr: string }[]): void;\n resetConditions(): void;\n removeCondition(item: AXPEntityListConditionConfig): void;\n handleInlineSearch(value: string): void;\n updateConditions(items: AXPEntityListConditionConfig[]): void;\n\n get dataSource(): AXDataSource;\n get entity(): AXPEntityConfig;\n}\n\nexport class AXPListViewLoaderDefault implements AXPListViewLoader {\n private _config!: AXPEntityConfig;\n private _dataSource: AXDataSource = new AXDataSource(this.entity.dataSource);\n private _inlineFilterItems: { name: string; dataType: string | undefined; title: string }[] = [];\n\n constructor(private config: AXPEntityConfig, private schemaService: AXPSchemaRegistryService) {\n this._inlineFilterItems = this.entity.properties\n .filter((property) => property.canInlineFilter)\n .map((item) => {\n const schema = this.schemaService.resolve(item.schema);\n return { name: item.name, dataType: schema?.dataType, title: item.title };\n });\n }\n\n get entity(): AXPEntityConfig {\n if (!this._config) {\n this._config = cloneDeep(this.config);\n }\n return this._config;\n }\n\n get dataSource(): AXDataSource {\n return this._dataSource;\n }\n\n //****************** Properties ******************//\n private get props(): AXPEntityPropertyConfig[] {\n return this.entity.properties;\n }\n private _props$ = new BehaviorSubject<AXPEntityPropertyConfig[]>(this.props);\n\n public get properties$(): Observable<AXPEntityPropertyConfig[]> {\n return this._props$;\n }\n\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\n\n //****************** Views ******************//\n\n private _currentView = 'default';\n\n private get views() {\n return this.entity.views.list?.views!;\n }\n\n private _views$ = new BehaviorSubject<AXPEntityListViewConfig[]>(this.views);\n public get views$(): Observable<AXPEntityListViewConfig[]> {\n return this._views$;\n }\n public get view$(): Observable<AXPEntityListViewConfig> {\n return this.views$.pipe(\n switchMap((views) => {\n const view = views.find((c) => c.name === this._currentView);\n if (view) {\n return of(view);\n } else if (this.views.length > 0) {\n return of(this.views[0]);\n } else {\n return of(AXPEntityListViewConfigEmpty);\n }\n })\n );\n }\n\n public get publicViews$(): Observable<AXPEntityListViewConfig[]> {\n return this.views$.pipe(map((c) => c.filter((v) => v.fixed)));\n }\n\n public get customViews$(): Observable<AXPEntityListViewConfig[]> {\n return this.views$.pipe(map((c) => c.filter((v) => !v.fixed)));\n }\n\n public get hasCustomViews$(): Observable<boolean> {\n return this.customViews$.pipe(map((c) => c.length > 0));\n }\n\n public setDefaultView() {\n this.setView(this.views[0].name);\n }\n\n public setView(name: string): void {\n let propNames: string[] = [];\n this.properties$.pipe(first()).subscribe((properties) => {\n propNames = properties.map((p) => p.name);\n });\n this._currentView = name;\n const updatedView = this._views$.value.find((c) => c.name === this._currentView) || AXPEntityListViewConfigEmpty;\n const currentViews = this._views$.value;\n const updatedViews = currentViews.map((view) => {\n if (view.name === updatedView.name) {\n return updatedView;\n } else {\n return view;\n }\n });\n\n this._currentConditions$.next(cloneDeep(updatedView.conditions.filter((c) => propNames.includes(c.name))));\n this._currentSorts$.next(cloneDeep(updatedView.sorts.filter((s) => propNames.includes(s.name))));\n // this._columns$.next(updatedView.columns);\n this._currentDisplayColumns$.next(cloneDeep(updatedView.columns.filter((c) => propNames.includes(c.name))));\n this._views$.next(updatedViews);\n\n //apply conditions and sorts:\n this.dataSource.filter({\n field: null as any,\n logic: 'and',\n operator: null as any,\n filters: updatedView.conditions.map((c) => ({\n field: c.name,\n value: c.value,\n operator: { type: c.operator },\n })) as any,\n });\n const convertedSortItems: AXDataSourceSortOption[] = updatedView.sorts.map((s) => ({\n field: s.name,\n dir: s.dir,\n }));\n this.dataSource.sort(...convertedSortItems);\n\n this.dataSource.refresh();\n }\n\n createView(newView: AXPEntityListViewConfig): void {\n const currentViews = this._views$.getValue();\n currentViews.push(newView);\n this._views$.next(currentViews);\n this.setView(newView.name);\n }\n updateView(updatedView: AXPEntityListViewConfig): void {\n const currentViews = this._views$.getValue().map((view) => (view.name === updatedView.name ? updatedView : view));\n this._views$.next(currentViews);\n this.setView(updatedView.name);\n }\n deleteView(viewName: string): void {\n const currentViews = this._views$.getValue().filter((view) => view.name !== viewName);\n this._views$.next(currentViews);\n this.setView(this.views[0].name);\n }\n\n //****************** Columns ******************//\n\n private _currentDisplayColumns$ = new BehaviorSubject<AXPEntityListDisplayColumnConfig[]>([]);\n\n private get columns(): AXPEntityListColumnConfig[] {\n return this.entity.properties.map((p) => ({\n name: p.name,\n title: p.title,\n schema: p.schema,\n }));\n }\n\n private _columns$ = new BehaviorSubject<AXPEntityListColumnConfig[]>(this.columns);\n\n public get columns$(): Observable<AXPEntityListColumnConfig[]> {\n return this._columns$.pipe(defaultIfEmpty([]));\n }\n\n public get displayColumns$(): Observable<AXPEntityListDisplayColumnConfig[]> {\n return this._currentDisplayColumns$.pipe(defaultIfEmpty([]));\n }\n\n public get displayColumnsCount$(): Observable<number> {\n return this.view$.pipe(\n map((view) => {\n return view.columns.filter((column) => column.visible).length;\n })\n );\n }\n\n updateColumns(items: AXPEntityListDisplayColumnConfig[]): void {\n this.view$.pipe(first()).subscribe((view) => {\n view.columns = cloneDeep(items);\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\n });\n }\n\n resetColumns(): void {\n this.view$.pipe(first()).subscribe((view) => {\n this._currentDisplayColumns$.next(cloneDeep(view.columns));\n });\n }\n\n setColumnVisibility(name: string, visible: boolean) {\n const updatedColumns = this._currentDisplayColumns$.getValue().map((column) => {\n if (column.name === name) {\n return { ...column, visible };\n } else {\n return column;\n }\n });\n this._currentDisplayColumns$.next(updatedColumns);\n }\n\n //****************** Sort ******************//\n private _currentSorts$ = new BehaviorSubject<AXPEntityListSortConfig[]>([]);\n\n public get sorts$(): Observable<AXPEntityListSortConfig[]> {\n return this._currentSorts$.pipe(defaultIfEmpty([]));\n }\n\n public get sortsCount$(): Observable<number> {\n return this.view$.pipe(map((c) => c.sorts.length));\n }\n\n addSort(): void {\n this.view$.pipe(first()).subscribe((view) => {\n const currentSorts = this._currentSorts$.getValue();\n const name = view.columns.find((c) => !currentSorts.some((s) => s.name == c.name))?.name ?? '';\n if (name) {\n const sorts = [...currentSorts, { name, dir: 'asc' } as AXPEntityListSortConfig];\n this._currentSorts$.next(sorts);\n }\n });\n }\n\n removeSort(item: AXPEntityListSortConfig): void {\n const currentSorts = this._currentSorts$.getValue();\n const sorts = currentSorts.filter((c) => c != item);\n this._currentSorts$.next(sorts);\n }\n\n resetSort(): void {\n this.view$.pipe(first()).subscribe((view) => {\n this._currentSorts$.next(cloneDeep(view.sorts));\n });\n }\n\n updateSort(items: AXPEntityListSortConfig[]): void {\n this.view$.pipe(first()).subscribe((view) => {\n view.sorts = cloneDeep(items);\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\n const convertedSortItems: AXDataSourceSortOption[] = items.map((s) => ({\n field: s.name,\n dir: s.dir,\n }));\n this.dataSource.sort(...convertedSortItems);\n this.dataSource.refresh();\n });\n }\n\n //****************** Conditions ******************//\n\n private _currentConditions$ = new BehaviorSubject<AXPEntityListConditionConfig[]>([]);\n\n public get conditions$(): Observable<AXPEntityListConditionConfig[]> {\n return this._currentConditions$.pipe(defaultIfEmpty([]));\n }\n public get conditionsCount$(): Observable<number> {\n return this.view$.pipe(map((c) => c.conditions.length));\n }\n\n public getInlineFilterTitles(): string[] {\n return this._inlineFilterItems.map((item) => item.title);\n }\n\n addCondition(selectedFields: { name: string; opr: any; value?: any }[]): void {\n const prevConditions = this._currentConditions$.getValue();\n const conditionsMap = new Map(prevConditions.map((item) => [item.name, item]));\n\n const newFields = selectedFields.map(\n (field) => conditionsMap.get(field.name) || { name: field.name, operator: field.opr }\n );\n this._currentConditions$.next(newFields as AXPEntityListConditionConfig[]);\n }\n\n removeCondition(item: AXPEntityListConditionConfig): void {\n const currentConditions = this._currentConditions$.getValue();\n const conditions = currentConditions.filter((c) => c != item);\n this._currentConditions$.next(conditions);\n }\n updateConditions(items: AXPEntityListConditionConfig[]): void {\n this.view$.pipe(first()).subscribe((view) => {\n view.conditions = cloneDeep(items);\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\n });\n this.applyAllConditions();\n }\n\n handleInlineSearch(value: string) {\n const inlineConditions: AXPEntityListConditionConfig[] = [];\n\n this._inlineFilterItems?.forEach((property) => {\n if (property?.dataType == 'string' || property?.dataType == 'number') {\n inlineConditions.push({\n name: property.name,\n value: property.dataType == 'number' ? parseFloat(value) : value,\n operator: property.dataType == 'string' ? 'contains' : 'equal',\n });\n }\n });\n this.view$.pipe(first()).subscribe((view) => {\n view.inlineConditions = cloneDeep(inlineConditions);\n });\n this.applyAllConditions();\n }\n\n applyAllConditions() {\n const inlineConditions: AXDataSourceFilterOption = {\n field: null as any,\n operator: null as any,\n logic: 'or',\n filters: [],\n };\n\n const mainConditions: AXDataSourceFilterOption = {\n field: null as any,\n operator: null as any,\n logic: 'and',\n filters: [],\n };\n\n this.view$.pipe(first()).subscribe((view) => {\n if (view.inlineConditions && view.inlineConditions.length) {\n view.inlineConditions?.forEach((c) => {\n if (c.value) {\n inlineConditions.filters?.push({\n field: c.name,\n operator: { type: c.operator } as any,\n value: c.value,\n });\n }\n });\n }\n if (view.conditions.length) {\n view.conditions.forEach((c) => {\n mainConditions.filters?.push({\n field: c.name,\n operator: { type: c.operator } as any,\n value: c.value,\n });\n });\n }\n this.dataSource.filter({\n field: null as any,\n logic: 'and',\n operator: null as any,\n filters: [mainConditions, inlineConditions],\n });\n this.dataSource.refresh();\n this._views$.next(this._views$.value.map((v) => (v.name === this._currentView ? view : v)));\n });\n }\n\n resetConditions(): void {\n this.view$.pipe(first()).subscribe((view) => {\n this._currentConditions$.next(cloneDeep(view.conditions));\n });\n }\n}\n\nexport const AXP_LISTVIEW_LOADER = new InjectionToken<AXPListViewLoader>('AXP_LISTVIEW_LOADER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPListViewLoaderFactory {\n private cache: Map<string, AXPListViewLoader> = new Map();\n private entityService = inject(AXPEntityRegistryService);\n private schemaService = inject(AXPSchemaRegistryService);\n private layout = inject(AXPLayoutService);\n\n public async create(moduleName: string, entityName: string): Promise<AXPListViewLoader> {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n let result = this.cache.get(config.name);\n if (result) {\n this.layout.setNavigationLoading(false);\n return result;\n }\n result = new AXPListViewLoaderDefault(config, this.schemaService);\n this.cache.set(config.name, result);\n this.layout.setNavigationLoading(false);\n return result;\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPAdminLayoutState, AXPCommonWidgetModule, AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityViewRootSectionConfig, AXPSchemaModule } from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { Actions } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\n@Component({\n templateUrl: 'entity-quick-view.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, AXPSchemaModule, AXPCommonWidgetModule, AXDecoratorModule, AXButtonModule, AXDropdownModule, AXDropdownButtonModule],\n})\nexport class AXPEntityQuickViewComponent extends AXBasePageComponent {\n private entity!: AXPEntityConfig;\n protected root!: AXPEntityViewRootSectionConfig;\n private store = inject(Store<AXPAdminLayoutState>);\n private workflow = inject(AXPWorkflowService);\n\n protected canDelete = false;\n protected canCreate = false;\n protected canUpdate = false;\n\n protected data: any;\n\n /**\n *\n */\n constructor(private actions$: Actions) {\n super();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n //\n if (this.entity.views.quickView) {\n this.root = this.entity.views.quickView?.root;\n this.canDelete = this.entity.editOptions?.delete ?? true;\n this.canCreate = this.entity.editOptions?.create ?? true;\n this.canUpdate = this.entity.editOptions?.update ?? true;\n }\n }\n\n protected getProperties(names: string[]): AXPEntityPropertyConfig[] {\n return this.entity.properties.filter((c) => names.includes(c.name));\n }\n\n handleCloseClick() {\n this.close();\n }\n\n protected handleCommandClick(command: string) {\n switch (command) {\n case 'delete':\n this.workflow.execute('delete-entity', {\n module: this.entity.module,\n entity: this.entity.name,\n ids: [this.data.id],\n });\n this.close();\n break;\n case 'details':\n this.workflow.execute('show-details', {\n payload: {\n module: this.entity.module,\n entity: this.entity.name,\n },\n id: this.data.id,\n });\n this.close();\n break;\n default:\n break;\n }\n }\n}\n","<div class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\" *ngIf=\"root.properties?.length\">\n <div *ngFor=\"let p of getProperties(root.properties)\"\n class=\"ax-flex ax-p-4 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\n <div class=\"ax-min-w-[10rem] ax-text-gray-500\">\n <span>{{ p.title }}</span>\n </div>\n <div class=\"ax-min-w-[30rem]\">\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\"></axp-widget-renderer>\n </div>\n </div>\n </div>\n <div *ngFor=\"let s of root.sections\"\n class=\"ax-flex ax-flex-col ax-pb-3 last-of-type:ax-border-none last-of-type:ax-pb-3\">\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold\">{{ s.title }}</span>\n </div>\n <div class=\"ax-flex ax-flex-col\">\n <div *ngFor=\"let p of getProperties(s.properties)\"\n class=\"ax-flex ax-flex-col md:ax-flex-row ax-p-3 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\n @if (s.options?.showPropTitle!=false) {\n <div class=\"ax-min-w-[10rem] ax-text-neutral-500 dark:ax-text-neutral-300 ax-mb-2 md:ax-mb-0\">\n <span>{{ p.title }}</span>\n </div>\n }\n <div class=\"md:ax-min-w-[30rem]\">\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\" [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button text=\"Close\" (onClick)=\"handleCloseClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"View Details\" (onClick)=\"handleCommandClick('details')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-info-circle\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(canDelete)\n {\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </ax-suffix>\n</ax-footer>","import { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\n\nimport { AXPLayoutService } from '@acorex/platform/common';\nimport { AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPEntityViewConfig } from '@acorex/platform/common';\n\nexport interface AXPEntityModifyViewLoader {\n get entity(): AXPEntityConfig;\n get data(): any;\n get section(): any;\n\n getProp(name: string): AXPEntityPropertyConfig | undefined;\n update(values: any): Promise<any>;\n}\n\nexport class AXPEntityModifyLoaderDefault implements AXPEntityModifyViewLoader {\n private _config!: AXPEntityConfig;\n private _data: any = {};\n private _currentSection: any;\n\n constructor(private config: AXPEntityConfig, private selectedData: any, private selectedSection: any) {\n this._data = this.selectedData;\n this._currentSection = this.selectedSection;\n }\n\n get entity(): AXPEntityConfig {\n if (!this._config) {\n this._config = cloneDeep(this.config);\n }\n return this._config;\n }\n\n get data(): any {\n return this._data;\n }\n get section(): any {\n return this._currentSection;\n }\n\n private get view(): AXPEntityViewConfig {\n return this.entity.views.detailView as AXPEntityViewConfig;\n }\n\n //****************** Properties ******************//\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\n\n //****************** update ******************//\n public async update(values: any): Promise<any> {\n if (this._config.commands?.update) {\n const updated = await this._config.commands?.update(this._data.id, values);\n Object.assign(this._data, updated);\n return Promise.resolve();\n } else {\n return Promise.reject(`There is not any update commands for '${this.config.name}'`);\n }\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityModifyViewLoaderFactory {\n private entityService = inject(AXPEntityRegistryService);\n private layout = inject(AXPLayoutService);\n\n public async create(\n moduleName: string,\n entityName: string,\n id: string,\n section: any\n ): Promise<AXPEntityModifyViewLoader> {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n if (config.dataSource.byKey) {\n const data = await config.dataSource.byKey(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityModifyLoaderDefault(config, data, section);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityModifyViewLoaderFactory } from '../entity-modify-view/entity-modify-view.config';\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\n\nexport const AXPEntityModifyEvent = createWorkFlowEvent<{ module: string; entity: string; updateValues: any }>(\n '[Entity] Modified'\n);\n@Injectable()\nexport class AXPEntityModifyPopupAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private entityRegistery = inject(AXPEntityRegistryService);\n private entityCreateFactory = inject(AXPEntityModifyViewLoaderFactory);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n const { module, entity: entityName, section, id } = payload;\n const entity = await this.entityRegistery.resolve(module, entityName);\n const loader = await this.entityCreateFactory.create(module, entityName, id, section);\n\n const com = await import('../entity-modify-view/entity-modify-view.component');\n const popup = await this.popupService.open(com.AXPEntityModifyViewComponent, {\n title: `Modify ${payload.section.title}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n context: loader.data,\n loader: loader,\n properties: payload.section.properties,\n entity,\n },\n });\n context.setOutput('popupResult', false);\n if (popup.data?.result == true) {\n context.setOutput('popupResult', true);\n context.setVariable('updatedData', cloneDeep(popup.data.context));\n }\n }\n}\n\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityRegistryService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n const updatedData = context.getVariable('updatedData');\n const entity = await this.entityRegistery.resolve(payload.module, payload.entity);\n this.dispatch(AXPEntityModifyEvent({ module: entity.module, entity: entity.name, updateValues: updatedData }));\n }\n}\n\nexport const AXPModifyEntityWorkflow: AXPWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPEntityModifyPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"popupResult\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'Entity Modified',\n content: 'Record has been successfully updated.',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n nextSteps: [\n {\n conditions: [],\n nextStepId: '',\n },\n ],\n },\n },\n};\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable()\nexport class AXPShowQuickViewAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityRegistryService);\n private formatService = inject(AXFormatService);\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n\n const entity = await this.entityRegistery.resolve(payload.module, payload.entity);\n const suggestedProps = entity.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\n let suggestedFormat = 'Item #{{id}}';\n if (suggestedProps) suggestedFormat = `{{${suggestedProps.name}}}`;\n const title = this.formatService.format(entity.formats?.header ?? entity.formats?.default ?? suggestedFormat, 'string', payload.data);\n //\n const com = await import('../entity-quick-view/entity-quick-view.component');\n this.popupService.open(com.AXPEntityQuickViewComponent, {\n title: `${title} - Quick View`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n entity: entity,\n data: payload.data,\n },\n });\n }\n}\n\nexport const AXPShowQuickViewWorkflow: AXPWorkflow = {\n startStepId: 'showQuickView',\n steps: {\n showQuickView: {\n id: 'showQuickView',\n action: 'AXPShowQuickViewAction',\n },\n },\n};\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable()\nexport class AXPShowDetailViewAction extends AXPWorkflowAction {\n private navigation = inject(AXPWorkflowNavigateAction);\n private sessionService = inject(AXPSessionService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n const id = context.getVariable('id');\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/${payload.module}/e/${payload.entity}/${id}/view`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n}\n\n\nexport const AXPShowDetailsViewWorkflow: AXPWorkflow = {\n startStepId: 'showDetailView',\n steps: {\n showDetailView: {\n id: 'showDetailView',\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\n\n@Injectable()\nexport class AXPShowListViewAction extends AXPWorkflowAction {\n private navigation = inject(AXPWorkflowNavigateAction);\n private sessionService = inject(AXPSessionService);\n async execute(context?: any): Promise<void> {\n const payload = context.getVariable('payload');\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/${payload.entity.module}/e/${payload.entity}/list`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n}\n\nexport const AXPShowListViewWorkflow: AXPWorkflow = {\n startStepId: 'showListView',\n steps: {\n showListView: {\n id: 'showListView',\n action: 'AXPShowListViewAction',\n },\n },\n};\n","import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXHtmlEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDrawerComponent, AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPAdminLayoutState, AXPLayoutChildDrawerClose, AXPLayoutChildDrawerToggle, AXPStickyDirective, getChildDrawer, isSmallScreen } from '@acorex/platform/common';\nimport { AXPCommonWidgetModule, AXPEntityViewChildSectionConfig, AXPSchemaModule } from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { CommonModule, Location } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild, WritableSignal, inject, signal } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { Actions, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { cloneDeep } from 'lodash-es';\nimport { first } from 'rxjs';\nimport { AXPEntityDetailViewLoader } from './detail-view.config';\nimport { AXPEntityDeletedEvent, AXPEntityModifyEvent } from '../workflows';\n@Component({\n templateUrl: './entity-details-view.component.html',\n imports: [\n CommonModule,\n RouterModule,\n AXButtonModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXImageModule,\n AXActionSheetModule,\n AXSwitchModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXBadgeModule,\n AXButtonModule,\n AXSwitchModule,\n AXPSchemaModule,\n AXTooltipModule,\n AXBreadcrumbsModule,\n //\n AXPCommonWidgetModule,\n AXPStickyDirective,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n})\nexport class AXPEntityDetailsViewComponent {\n private popupService = inject(AXPopupService);\n private sessionService = inject(AXPSessionService);\n private activeRoute = inject(ActivatedRoute);\n private router = inject(Router);\n private location = inject(Location);\n private cdr = inject(ChangeDetectorRef);\n private platform = inject(AXPlatform);\n private workflow = inject(AXPWorkflowService);\n\n protected loader = this.activeRoute.snapshot.data['loader'] as AXPEntityDetailViewLoader;\n\n @ViewChild('drawer') drawer!: AXDrawerComponent;\n\n private store = inject(Store<AXPAdminLayoutState>);\n protected isSM = this.store.select(isSmallScreen());\n protected isOpen = this.store.select(getChildDrawer());\n //\n protected canDelete = this.loader.entity.editOptions?.delete ?? true;\n protected canCreate = this.loader.entity.editOptions?.create ?? true;\n protected canUpdate = this.loader.entity.editOptions?.update ?? true;\n //\n\n\n protected context: WritableSignal<any> = signal(cloneDeep(this.loader.data));\n\n constructor(private actions$: Actions, private unsubscriber: AXUnsubscriber) {\n this.activeRoute.paramMap.pipe(first()).subscribe((c) => {\n this.setSection(c.get('section') as string);\n });\n //\n this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {\n if (\n event.payload.entity == this.loader.entity.name &&\n event.payload.module == this.loader.entity.module &&\n event.payload.id.includes(this.loader.data.id)\n ) {\n this.workflow.execute('show-list-view', {\n payload: {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n },\n });\n }\n });\n this.workflow.events$.pipe(ofType(AXPEntityModifyEvent), this.unsubscriber.takeUntilDestroy).subscribe(async (event) => {\n if (\n event.payload.entity == this.loader.entity.name &&\n event.payload.module == this.loader.entity.module &&\n event.payload.updateValues.id === this.loader.data.id\n ) {\n await this.loader.update(event.payload.updateValues);\n this.context.set(cloneDeep(this.loader.data));\n }\n });\n }\n\n protected handleMenuClick(e: AXHtmlEvent, item: AXPEntityViewChildSectionConfig) {\n const entity = this.loader.entity;\n const path = `/${this.sessionService.application?.name}/${entity.module}/e/${entity.name}/${this.loader.data?.id}/view/${item.name}`;\n this.location.go(path);\n this.setSection(item.name);\n }\n\n protected handleCollapsedChange(value: boolean) {\n if (value) this.store.dispatch(AXPLayoutChildDrawerClose());\n }\n\n protected handleDrawerClick() {\n this.store.dispatch(AXPLayoutChildDrawerToggle());\n }\n\n private setSection(name: string) {\n this.loader.setSection(name);\n }\n\n protected async handleSectionEdit(section: AXPEntityViewChildSectionConfig) {\n this.workflow.execute('modify-entity', {\n payload: {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n id: this.loader.data.id,\n section: section,\n },\n });\n }\n\n protected isActive(item: AXPEntityViewChildSectionConfig) {\n return item.name == window.location.pathname.split('/').pop();\n }\n\n protected handleCommandClick(command: string) {\n switch (command) {\n case 'delete':\n this.workflow.execute('delete-entity', {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n ids: [this.loader.data.id],\n });\n break;\n case 'create': {\n this.workflow.execute('create-entity', {\n payload: {\n module: this.loader.entity.module,\n entity: this.loader.entity.name,\n },\n });\n break;\n }\n default:\n break;\n }\n }\n}\n","<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <!-- <ax-button class=\"lg:ax-hidden\">\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-button> -->\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\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>\n <a>Home</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ loader.entity.title }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ loader.title }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs> -->\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @if(canCreate || canUpdate) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" 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 <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\n </ax-prefix>\n </ax-button-item> \n <ax-divider></ax-divider>-->\n @if(canCreate) {\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\n (onClick)=\"handleCommandClick('create')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n } @if(canDelete) {\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\n (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n @if((loader.hasSections$| async)) {\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\n @for(tab of (loader.sections$ | async); track tab.name) {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\n class=\"first:!ax-ms-0\"> </ax-tab-item>\n }\n </ax-tabs>\n }\n <!-- Finish Section Tab Items -->\n </div>\n @for(section of (loader.section$ | async)?.sections; track section.name) {\n <ax-form #form>\n <div class=\"ax-card ax-shadow-md\">\n <div class=\"ax-card-header\">\n <p>{{ section.title }}</p>\n @if(canUpdate) {\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\n <ng-container *ngFor=\"let name of section.properties\">\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\n @if(section.options?.showPropTitle!=false){\n <div\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\n <div class=\"ax-flex ax-flex-col ax-items-start\">\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\n <!-- @if(prop.description) {\n <i\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\n [axTooltip]=\"prop.description\"\n [axTooltipPlacement]=\"'end'\"\n ></i>\n } -->\n @if(prop.description) {\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\n }\n </div>\n </div>\n }\n <div\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\n [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ax-form>\n }\n </div>\n </ax-content>\n</ax-drawer-container>","import { AXFormatService } from '@acorex/core/format';\nimport { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { assign, cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable, defaultIfEmpty, map, of, switchMap } from 'rxjs';\n\nimport { AXPLayoutService } from '@acorex/platform/common';\nimport { AXPEntityConfig, AXPEntityPropertyConfig, AXPEntityRegistryService, AXPEntityViewChildSectionConfig, AXPEntityViewConfig } from '@acorex/platform/common';\n\nexport interface AXPEntityDetailViewLoader {\n get entity(): AXPEntityConfig;\n get data(): any;\n get title(): string;\n\n get sectionTitle(): string;\n get sections$(): Observable<AXPEntityViewChildSectionConfig[]>;\n get hasSections$(): Observable<boolean>;\n get section$(): Observable<AXPEntityViewChildSectionConfig>;\n setSection(name: string): void;\n\n getProp(name: string): AXPEntityPropertyConfig | undefined;\n update(values: any): Promise<any>;\n}\n\nexport class AXPEntityDetailLoaderDefault implements AXPEntityDetailViewLoader {\n private _config!: AXPEntityConfig;\n private _currentSection = 'default';\n\n constructor(\n private config: AXPEntityConfig,\n private store: Store,\n private entityData: any,\n private formatService: AXFormatService\n ) { }\n\n get entity(): AXPEntityConfig {\n if (!this._config) {\n this._config = cloneDeep(this.config);\n }\n return this._config;\n }\n\n get data(): any {\n return this.entityData;\n }\n\n private get view(): AXPEntityViewConfig {\n return (this.entity.views.detailView ?? this.entity.views.quickView) as AXPEntityViewConfig;\n }\n\n //****************** Titles ******************//\n get title(): string {\n const suggestedProps = this.entity.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\n let suggestedFormat = 'Item #{{id}}';\n if (suggestedProps) suggestedFormat = `{{${suggestedProps.name}}}`;\n const title = this.formatService.format(\n this.entity.formats?.header ?? this.entity.formats?.default ?? suggestedFormat,\n 'string',\n this.data\n );\n return title;\n }\n\n get sectionTitle(): string {\n return `${this.entity.title}`;\n }\n\n //****************** Sections ******************//\n\n private get sections(): AXPEntityViewChildSectionConfig[] {\n return this.view.root.sections?.length\n ? this.view.root.sections\n : [\n {\n name: 'default',\n title: 'Default',\n properties: this.view.root.properties,\n },\n ];\n }\n\n private _sections$ = new BehaviorSubject<AXPEntityViewChildSectionConfig[]>(this.sections);\n\n public get sections$(): Observable<AXPEntityViewChildSectionConfig[]> {\n return this._sections$.pipe(defaultIfEmpty([]));\n }\n\n public get section$(): Observable<AXPEntityViewChildSectionConfig> {\n return this.sections$.pipe(\n switchMap((sections) => {\n const section = sections.find((c) => c.name === this._currentSection) ?? this.sections[0];\n if (!section.sections?.length) {\n section.sections = [\n {\n name: 'default',\n title: 'Details',\n properties: section.properties,\n },\n ];\n }\n return of(section);\n })\n );\n }\n\n public get hasSections$(): Observable<boolean> {\n return this.sections$.pipe(map((c) => c.length > 1));\n }\n\n public setSection(name: string) {\n this._currentSection = name ?? 'default';\n const updatedSection = this.sections.find((c) => c.name === this._currentSection) || {\n name: 'default',\n title: 'Default',\n properties: this.view.root.properties,\n };\n const currentSections = this._sections$.value;\n const updatedSections = currentSections.map((section) => {\n if (section.name === updatedSection.name) {\n return updatedSection;\n } else {\n return section;\n }\n });\n this._sections$.next(updatedSections);\n }\n\n //****************** Properties ******************//\n public getProp = (name: string): AXPEntityPropertyConfig | undefined => this.entity.properties.find((c) => c.name == name);\n\n //****************** Update ******************//\n public async update(values: any): Promise<any> {\n assign(this.data, values);\n this.setSection(this._currentSection);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityDetailViewLoaderFactory {\n private entityService = inject(AXPEntityRegistryService);\n private formatService = inject(AXFormatService);\n private layout = inject(AXPLayoutService);\n private store = inject(Store);\n\n public async create(moduleName: string, entityName: string, id: string): Promise<AXPEntityDetailViewLoader> {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.dataSource.byKey) {\n const data = await config.dataSource.byKey(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityDetailLoaderDefault(config, this.store, data, this.formatService);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n}\n","import { ActivatedRouteSnapshot, RouteReuseStrategy, DetachedRouteHandle } from '@angular/router';\nimport { AXPEntityDetailsViewComponent, AXPEntityListViewComponent } from './entity-layout';\n\n\nexport class AXPCustomReuseStrategy implements RouteReuseStrategy {\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void { }\n\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n return null;\n }\n\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n if (future.component === AXPEntityListViewComponent || future.component === AXPEntityDetailsViewComponent) {\n return false;\n }\n\n return future.routeConfig === curr.routeConfig;\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityModifyViewLoaderFactory } from '../entity-modify-view/entity-modify-view.config';\nimport { AXPEntityRegistryService } from '@acorex/platform/common';\n\n\n@Injectable()\nexport class AXPEntityModifySectionPopupAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private entityRegistery = inject(AXPEntityRegistryService);\n private entityCreateFactory = inject(AXPEntityModifyViewLoaderFactory);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n const { module, entity: entityName, section, id } = payload;\n const entity = await this.entityRegistery.resolve(module, entityName);\n const loader = await this.entityCreateFactory.create(module, entityName, id, section);\n\n const com = await import('../entity-modify-view/entity-modify-view.component');\n const popup = await this.popupService.open(com.AXPEntityModifyViewComponent, {\n title: `Modify ${payload.section.title}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n context: loader.data,\n loader: loader,\n properties: payload.section.properties,\n entity,\n },\n });\n context.setOutput('popupResult', false);\n if (popup.data?.result == true) {\n context.setOutput('popupResult', true);\n context.setVariable('updatedData', cloneDeep(popup.data.context));\n }\n }\n}\n\n\nexport const AXPModifyEntitySectionWorkflow: AXPWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPEntityModifySectionPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"popupResult\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'Entity Modified',\n content: 'Record has been successfully updated.',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n nextSteps: [\n {\n conditions: [],\n nextStepId: '',\n },\n ],\n },\n },\n};\n","import { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { NgModule } from '@angular/core';\nimport { RouteReuseStrategy } from '@angular/router';\nimport { StoreModule } from '@ngrx/store';\nimport { AXPCustomReuseStrategy } from './custom-reuse.strategy';\nimport { AXPListViewModule } from './entity-layout';\nimport {\n AXPCreateEntityWorkflow,\n AXPEntityCreatePopupAction,\n AXPEntityCreateSubmittedAction,\n} from './entity-layout/workflows/create-entity.workflow';\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction, AXPMyCustomFunc } from './entity-layout/workflows/delete-entity.workflow';\nimport {\n AXPEntityModifyConfirmedAction,\n AXPEntityModifyPopupAction,\n AXPModifyEntityWorkflow,\n} from './entity-layout/workflows/modify-entity.workflow';\nimport { AXPShowDetailsViewWorkflow } from './entity-layout/workflows/show-details.workflow';\nimport { AXPShowListViewWorkflow } from './entity-layout/workflows/show-list.workflow';\nimport { AXPShowQuickViewWorkflow } from './entity-layout/workflows/show-quick-view.workflow';\nimport { AXPEntityModifySectionPopupAction, AXPModifyEntitySectionWorkflow } from './entity-layout/workflows/modify-section.workflow';\n\n@NgModule({\n imports: [\n\n AXPListViewModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityPerformDeleteAction,\n AXPEntityModifyPopupAction,\n AXPEntityModifySectionPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPEntityCreatePopupAction,\n AXPEntityCreateSubmittedAction,\n },\n workflows: {\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity': AXPModifyEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'create-entity': AXPCreateEntityWorkflow,\n 'show-details': AXPShowDetailsViewWorkflow,\n 'show-quick-view': AXPShowQuickViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n },\n functions: {\n test: AXPMyCustomFunc,\n },\n }),\n ],\n exports: [],\n declarations: [],\n providers: [{ provide: RouteReuseStrategy, useClass: AXPCustomReuseStrategy }],\n})\nexport class AXPAdminLayoutModule { }\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\n//\nimport {\n AXPEntityDetailViewLoader,\n AXPEntityDetailViewLoaderFactory,\n AXPListViewLoader,\n AXPListViewLoaderFactory,\n} from './entity-layout';\n\nexport const AXPListViewLoaderResolver: ResolveFn<Promise<AXPListViewLoader>> = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot,\n service: AXPListViewLoaderFactory = inject(AXPListViewLoaderFactory)\n): Promise<AXPListViewLoader> => {\n const appName = route.parent?.paramMap.get('app') as string;\n const moduleName = route.parent?.paramMap.get('module') as string;\n const entityName = route.paramMap.get('entity') as string;\n return service.create(moduleName, entityName);\n};\n\nexport const AXPEntityDetailViewLoaderResolver: ResolveFn<Promise<AXPEntityDetailViewLoader>> = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot,\n service: AXPEntityDetailViewLoaderFactory = inject(AXPEntityDetailViewLoaderFactory)\n): Promise<AXPEntityDetailViewLoader> => {\n const appName = route.parent?.paramMap.get('app') as string;\n const moduleName = route.parent?.paramMap.get('module') as string;\n const entityName = route.paramMap.get('entity') as string;\n const id = route.paramMap.get('id') as string;\n return service.create(moduleName, entityName, id);\n};\n","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { Route } from '@angular/router';\nimport { AXPEntityDetailsViewComponent, AXPEntityListViewComponent } from './entity-layout';\nimport { AXPEntityDetailViewLoaderResolver, AXPListViewLoaderResolver } from './entity.resolver';\n\nexport const AX_ADMIN_ROUTES: Route[] = [\n {\n path: ':app',\n canActivate: [AXPAuthGuard],\n children: [\n {\n path: ':module',\n children: [\n {\n path: 'e/:entity/:id/view/:section',\n resolve: { loader: AXPEntityDetailViewLoaderResolver },\n component: AXPEntityDetailsViewComponent,\n },\n {\n path: 'e/:entity/:id/view',\n resolve: { loader: AXPEntityDetailViewLoaderResolver },\n component: AXPEntityDetailsViewComponent,\n },\n {\n path: 'e/:entity',\n redirectTo: ':entity/list',\n pathMatch: 'full',\n },\n {\n path: 'e/:entity/list',\n component: AXPEntityListViewComponent,\n resolve: {\n loader: AXPListViewLoaderResolver,\n },\n // canActivate: [AXPPermissionGuard],\n // data: {\n // requiredPermission: \"dynamic\"\n // }\n },\n // {\n // path: 'ee/:entity/:id/view',\n // resolve: { vm: AXPEntityDetailViewModelResolver },\n // component: AXPDefaultThemeEntityDetailsViewComponent,\n // },\n ],\n },\n ],\n },\n];\n","import { AXMWorkflowErrorHandler, AXPCommonModule, AXPDialogConfirmAction, AXPToastAction, AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { AXPShowDetailViewAction, AXPShowListViewAction, AXPShowQuickViewAction } from './admin/entity-layout/workflows';\n\n@NgModule({\n imports: [\n AXPCommonModule.forChild({ errorHandlers: [AXMWorkflowErrorHandler] }),\n AXPWorkflowModule.forChild({\n actions: {\n AXPWorkflowNavigateAction,\n AXPDialogConfirmAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPShowListViewAction,\n AXPShowQuickViewAction,\n },\n }),\n ],\n exports: [RouterModule],\n})\nexport class AXPLayoutModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i4","i12","i16","i5","i6","i1","i2","i7","i8","i9","i10","i11","i13","i14","i15.AXPListViewOptionsColumnsComponent","i16.AXPListViewOptionConditionsComponent","i17.AXPListViewOptionSortingComponent","ofType"],"mappings":"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"}