@acorex/platform 18.0.2 → 18.0.4

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 (232) hide show
  1. package/common/lib/app/application.types.d.ts +43 -26
  2. package/common/lib/common.module.d.ts +6 -5
  3. package/common/lib/data/data-provider.types.d.ts +1 -1
  4. package/common/lib/data/dexie-storage.service.d.ts +15 -0
  5. package/common/lib/data/entity-data-provider.d.ts +14 -0
  6. package/common/lib/data/index.d.ts +3 -0
  7. package/common/lib/data/storage-service.d.ts +22 -0
  8. package/common/lib/schema/entity/entity.class.d.ts +3 -0
  9. package/common/lib/utils/data-generator.d.ts +2 -0
  10. package/esm2022/common/lib/app/application.types.mjs +1 -1
  11. package/esm2022/common/lib/common.module.mjs +19 -2
  12. package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
  13. package/esm2022/common/lib/data/dexie-storage.service.mjs +36 -0
  14. package/esm2022/common/lib/data/entity-data-provider.mjs +26 -0
  15. package/esm2022/common/lib/data/index.mjs +4 -1
  16. package/esm2022/common/lib/data/storage-service.mjs +5 -0
  17. package/esm2022/common/lib/schema/entity/entity-registery.service.mjs +2 -2
  18. package/esm2022/common/lib/schema/entity/entity.class.mjs +1 -1
  19. package/esm2022/common/lib/utils/data-generator.mjs +22 -1
  20. package/esm2022/common/lib/workflows/common.workflow.mjs +3 -3
  21. package/esm2022/layout/builder/lib/builder/builder.service.mjs +7 -2
  22. package/esm2022/layout/builder/lib/builder/widget.types.mjs +5 -1
  23. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +9 -8
  24. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +34 -21
  25. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +23 -15
  26. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +46 -49
  27. package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +9 -7
  28. package/esm2022/layout/entity/lib/entity-registery.service.mjs +2 -2
  29. package/esm2022/layout/entity/lib/entity.module.mjs +13 -4
  30. package/esm2022/layout/entity/lib/entity.viewmodel.mjs +7 -6
  31. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +127 -39
  32. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +83 -37
  33. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +34 -23
  34. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +17 -20
  35. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +17 -15
  36. package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +11 -23
  37. package/esm2022/layout/entity/lib/workflows/show-details.workflow.mjs +3 -3
  38. package/esm2022/layout/entity/lib/workflows/show-list.workflow.mjs +35 -0
  39. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +3 -3
  40. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +2 -2
  41. package/esm2022/layouts/lib/layout.module.mjs +3 -3
  42. package/esm2022/themes/default/lib/default.module.mjs +3 -3
  43. package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +2 -2
  44. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +2 -2
  45. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/{entity-list-view.component.mjs → entity-master-list-view.component.mjs} +8 -2
  46. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +2 -1
  47. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +1 -1
  48. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +2 -2
  49. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +21 -12
  50. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +3 -2
  51. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-column.component.mjs +2 -2
  52. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-view.component.mjs +2 -2
  53. package/esm2022/workflow/lib/actions/start-workflow.action.mjs +28 -0
  54. package/esm2022/workflow/lib/workflow.module.mjs +7 -2
  55. package/esm2022/workflow/lib/workflow.service.mjs +53 -6
  56. package/esm2022/workflow/lib/workflow.types.mjs +12 -6
  57. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs → acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs} +3 -2
  58. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs.map → acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs.map} +1 -1
  59. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-BlA_cFkP.mjs → acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs} +4 -3
  60. package/fesm2022/acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs.map +1 -0
  61. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-CEqibiML.mjs → acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs} +4 -3
  62. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs → acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs} +4 -3
  64. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs.map → acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs.map} +1 -1
  65. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-BVG9_XXh.mjs → acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs} +4 -3
  66. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs.map +1 -0
  67. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs → acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs} +4 -3
  68. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs.map → acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs.map} +1 -1
  69. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-BlXTU887.mjs → acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs} +4 -3
  70. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs.map +1 -0
  71. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-B0s6FN-g.mjs → acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs} +4 -3
  72. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-B0s6FN-g.mjs.map → acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs.map} +1 -1
  73. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-B7KBCsUt.mjs → acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs} +4 -3
  74. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-B7KBCsUt.mjs.map → acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs.map} +1 -1
  75. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-Dy7pAkGG.mjs → acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs} +4 -3
  76. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-Dy7pAkGG.mjs.map → acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs.map} +1 -1
  77. package/fesm2022/{acorex-platform-common-email-widget-column.component-D_UNn2dW.mjs → acorex-platform-common-email-widget-column.component-BgNdL62k.mjs} +4 -3
  78. package/fesm2022/acorex-platform-common-email-widget-column.component-BgNdL62k.mjs.map +1 -0
  79. package/fesm2022/{acorex-platform-common-email-widget-edit.component-DWT24mCM.mjs → acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs} +4 -3
  80. package/fesm2022/{acorex-platform-common-email-widget-edit.component-DWT24mCM.mjs.map → acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs.map} +1 -1
  81. package/fesm2022/{acorex-platform-common-email-widget-view.component-B6puyycL.mjs → acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs} +4 -3
  82. package/fesm2022/{acorex-platform-common-email-widget-view.component-B6puyycL.mjs.map → acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs.map} +1 -1
  83. package/fesm2022/{acorex-platform-common-file-widget-column.component-C1faGR4K.mjs → acorex-platform-common-file-widget-column.component-CwFzLLHt.mjs} +4 -3
  84. package/fesm2022/acorex-platform-common-file-widget-column.component-CwFzLLHt.mjs.map +1 -0
  85. package/fesm2022/{acorex-platform-common-file-widget-edit.component-CTvS9ls8.mjs → acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs} +4 -3
  86. package/fesm2022/{acorex-platform-common-file-widget-edit.component-CTvS9ls8.mjs.map → acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs.map} +1 -1
  87. package/fesm2022/{acorex-platform-common-file-widget-filter.component-D4AMg5M0.mjs → acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs} +4 -3
  88. package/fesm2022/acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs.map +1 -0
  89. package/fesm2022/{acorex-platform-common-file-widget-view.component-CHI4VCvt.mjs → acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs} +4 -3
  90. package/fesm2022/{acorex-platform-common-file-widget-view.component-CHI4VCvt.mjs.map → acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs.map} +1 -1
  91. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CAOctYzV.mjs → acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs} +4 -3
  92. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CAOctYzV.mjs.map → acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs.map} +1 -1
  93. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-lgaYDZeD.mjs → acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs} +4 -3
  94. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs.map +1 -0
  95. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-Ci50jeO5.mjs → acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs} +4 -3
  96. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-Ci50jeO5.mjs.map → acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs.map} +1 -1
  97. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-DFKG-kum.mjs → acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs} +4 -3
  98. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs.map +1 -0
  99. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-CFzCGcqA.mjs → acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs} +4 -3
  100. package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs.map +1 -0
  101. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-CYTSeEOq.mjs → acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs} +4 -3
  102. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs.map +1 -0
  103. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-BkxT9_Hh.mjs → acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs} +4 -3
  104. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs.map +1 -0
  105. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-5YeixMp7.mjs → acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs} +4 -3
  106. package/fesm2022/acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs.map +1 -0
  107. package/fesm2022/{acorex-platform-common-map-widget-edit.component-CE3QQBmX.mjs → acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs} +4 -3
  108. package/fesm2022/acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs.map +1 -0
  109. package/fesm2022/{acorex-platform-common-map-widget-view.component-Cv4OCTxz.mjs → acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs} +4 -3
  110. package/fesm2022/acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs.map +1 -0
  111. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-CJdh6TKb.mjs → acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs} +4 -3
  112. package/fesm2022/acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs.map +1 -0
  113. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-kiEHxJia.mjs → acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs} +4 -3
  114. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-kiEHxJia.mjs.map → acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs.map} +1 -1
  115. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DzbjgZA7.mjs → acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs} +4 -3
  116. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DzbjgZA7.mjs.map → acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs.map} +1 -1
  117. package/fesm2022/{acorex-platform-common-number-widget-edit.component-BRuIP96Y.mjs → acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs} +4 -3
  118. package/fesm2022/acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs.map +1 -0
  119. package/fesm2022/{acorex-platform-common-number-widget-filter.component-jQ4DaFQH.mjs → acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs} +4 -3
  120. package/fesm2022/{acorex-platform-common-number-widget-filter.component-jQ4DaFQH.mjs.map → acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs.map} +1 -1
  121. package/fesm2022/{acorex-platform-common-number-widget-view.component-BzUWjT8m.mjs → acorex-platform-common-number-widget-view.component-DD0tkoc4.mjs} +4 -3
  122. package/fesm2022/acorex-platform-common-number-widget-view.component-DD0tkoc4.mjs.map +1 -0
  123. package/fesm2022/{acorex-platform-common-password-widget-column.component-BRzyuK5c.mjs → acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs} +4 -3
  124. package/fesm2022/{acorex-platform-common-password-widget-column.component-BRzyuK5c.mjs.map → acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs.map} +1 -1
  125. package/fesm2022/{acorex-platform-common-password-widget-edit.component-q6R2dw5k.mjs → acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs} +4 -3
  126. package/fesm2022/acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs.map +1 -0
  127. package/fesm2022/{acorex-platform-common-password-widget-view.component-CKaQItON.mjs → acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs} +4 -3
  128. package/fesm2022/{acorex-platform-common-password-widget-view.component-CKaQItON.mjs.map → acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs.map} +1 -1
  129. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BD7BScjW.mjs → acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs} +4 -3
  130. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BD7BScjW.mjs.map → acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs.map} +1 -1
  131. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-D8tGKfNj.mjs → acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs} +4 -3
  132. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-D8tGKfNj.mjs.map → acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs.map} +1 -1
  133. package/fesm2022/{acorex-platform-common-phone-widget-view.component-CFiMsGOB.mjs → acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs} +4 -3
  134. package/fesm2022/{acorex-platform-common-phone-widget-view.component-CFiMsGOB.mjs.map → acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs.map} +1 -1
  135. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BPzwY_8L.mjs → acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs} +4 -3
  136. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BPzwY_8L.mjs.map → acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs.map} +1 -1
  137. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-CA2xRfVg.mjs → acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs} +4 -3
  138. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs.map +1 -0
  139. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-DYfTZ64H.mjs → acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs} +4 -3
  140. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs.map +1 -0
  141. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-_MglaOmo.mjs → acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs} +4 -3
  142. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-_MglaOmo.mjs.map → acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs.map} +1 -1
  143. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-QKw_tyOd.mjs → acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs} +4 -3
  144. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs.map +1 -0
  145. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-DRToTnHQ.mjs → acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs} +4 -3
  146. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs.map +1 -0
  147. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-CjDiuUdj.mjs → acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs} +4 -3
  148. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs.map +1 -0
  149. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-DF29uWl2.mjs → acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs} +4 -3
  150. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-DF29uWl2.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs.map} +1 -1
  151. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-BWzoR4HM.mjs → acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs} +4 -3
  152. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs.map +1 -0
  153. package/fesm2022/{acorex-platform-common-string-widget-filter.component-Di_GFHme.mjs → acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs} +4 -3
  154. package/fesm2022/acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs.map +1 -0
  155. package/fesm2022/{acorex-platform-common-text-widget-column.component-BSYd1CbC.mjs → acorex-platform-common-text-widget-column.component-qXusAevm.mjs} +4 -3
  156. package/fesm2022/{acorex-platform-common-text-widget-column.component-BSYd1CbC.mjs.map → acorex-platform-common-text-widget-column.component-qXusAevm.mjs.map} +1 -1
  157. package/fesm2022/{acorex-platform-common-text-widget-edit.component-K9z9N1qw.mjs → acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs} +4 -3
  158. package/fesm2022/{acorex-platform-common-text-widget-edit.component-K9z9N1qw.mjs.map → acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs.map} +1 -1
  159. package/fesm2022/{acorex-platform-common-text-widget-view.component-WbZtm_bf.mjs → acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs} +4 -3
  160. package/fesm2022/{acorex-platform-common-text-widget-view.component-WbZtm_bf.mjs.map → acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs.map} +1 -1
  161. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-ZCBSYMuz.mjs → acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs} +4 -3
  162. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-ZCBSYMuz.mjs.map → acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs.map} +1 -1
  163. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-rkDfLA-J.mjs → acorex-platform-common-toggle-widget-edit.component-CDG62BJN.mjs} +4 -3
  164. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CDG62BJN.mjs.map +1 -0
  165. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DLDIrci1.mjs → acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs} +4 -3
  166. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DLDIrci1.mjs.map → acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs.map} +1 -1
  167. package/fesm2022/acorex-platform-common.mjs +252 -149
  168. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  169. package/fesm2022/acorex-platform-layout-builder.mjs +10 -1
  170. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  171. package/fesm2022/acorex-platform-layout-entity.mjs +445 -261
  172. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  173. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-BmSMt95H.mjs → acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs} +3 -3
  174. package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs.map +1 -0
  175. package/fesm2022/acorex-platform-layouts.mjs +4 -4
  176. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  177. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs → acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs} +2 -2
  178. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs.map +1 -0
  179. package/fesm2022/acorex-platform-themes-default.mjs +13 -6
  180. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  181. package/fesm2022/acorex-platform-widgets.mjs +50 -42
  182. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  183. package/fesm2022/acorex-platform-workflow.mjs +184 -104
  184. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  185. package/layout/builder/lib/builder/widget.types.d.ts +3 -0
  186. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +6 -5
  187. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +4 -0
  188. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +10 -5
  189. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +0 -1
  190. package/layout/entity/lib/entity.viewmodel.d.ts +3 -3
  191. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +18 -3
  192. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +8 -1
  193. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +10 -3
  194. package/layout/entity/lib/workflows/create-entity.workflow.d.ts +0 -2
  195. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +2 -4
  196. package/layout/entity/lib/workflows/modify-section.workflow.d.ts +2 -5
  197. package/layout/entity/lib/workflows/show-list.workflow.d.ts +10 -0
  198. package/package.json +1 -1
  199. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.d.ts +4 -0
  200. package/workflow/lib/actions/start-workflow.action.d.ts +10 -0
  201. package/workflow/lib/workflow.service.d.ts +4 -2
  202. package/workflow/lib/workflow.types.d.ts +3 -1
  203. package/fesm2022/acorex-platform-common-avatar-widget-view.component-BlA_cFkP.mjs.map +0 -1
  204. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-CEqibiML.mjs.map +0 -1
  205. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BVG9_XXh.mjs.map +0 -1
  206. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BlXTU887.mjs.map +0 -1
  207. package/fesm2022/acorex-platform-common-email-widget-column.component-D_UNn2dW.mjs.map +0 -1
  208. package/fesm2022/acorex-platform-common-file-widget-column.component-C1faGR4K.mjs.map +0 -1
  209. package/fesm2022/acorex-platform-common-file-widget-filter.component-D4AMg5M0.mjs.map +0 -1
  210. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-lgaYDZeD.mjs.map +0 -1
  211. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DFKG-kum.mjs.map +0 -1
  212. package/fesm2022/acorex-platform-common-lookup-widget-column.component-CFzCGcqA.mjs.map +0 -1
  213. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CYTSeEOq.mjs.map +0 -1
  214. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-BkxT9_Hh.mjs.map +0 -1
  215. package/fesm2022/acorex-platform-common-lookup-widget-view.component-5YeixMp7.mjs.map +0 -1
  216. package/fesm2022/acorex-platform-common-map-widget-edit.component-CE3QQBmX.mjs.map +0 -1
  217. package/fesm2022/acorex-platform-common-map-widget-view.component-Cv4OCTxz.mjs.map +0 -1
  218. package/fesm2022/acorex-platform-common-messenger-widget-column.component-CJdh6TKb.mjs.map +0 -1
  219. package/fesm2022/acorex-platform-common-number-widget-edit.component-BRuIP96Y.mjs.map +0 -1
  220. package/fesm2022/acorex-platform-common-number-widget-view.component-BzUWjT8m.mjs.map +0 -1
  221. package/fesm2022/acorex-platform-common-password-widget-edit.component-q6R2dw5k.mjs.map +0 -1
  222. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-CA2xRfVg.mjs.map +0 -1
  223. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-DYfTZ64H.mjs.map +0 -1
  224. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-QKw_tyOd.mjs.map +0 -1
  225. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DRToTnHQ.mjs.map +0 -1
  226. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-CjDiuUdj.mjs.map +0 -1
  227. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-BWzoR4HM.mjs.map +0 -1
  228. package/fesm2022/acorex-platform-common-string-widget-filter.component-Di_GFHme.mjs.map +0 -1
  229. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-rkDfLA-J.mjs.map +0 -1
  230. package/fesm2022/acorex-platform-layouts-entity-create-view.component-BmSMt95H.mjs.map +0 -1
  231. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs.map +0 -1
  232. /package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/{entity-list-view.component.d.ts → entity-master-list-view.component.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layout-entity.mjs","sources":["../../../../libs/platform/layout/entity/src/lib/entity.config.ts","../../../../libs/platform/layout/entity/src/lib/entity-registery.service.ts","../../../../libs/platform/layout/entity/src/lib/entity.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/delete-entity.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-update.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/modify-section.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity-detail-list.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-single.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-create.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-list.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/create-entity.workflow.ts","../../../../libs/platform/layout/entity/src/lib/workflows/show-details.workflow.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-view.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-selector.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-edit.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-filter.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-column.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-print.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-designer.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget.config.ts","../../../../libs/platform/layout/entity/src/lib/entity.module.ts","../../../../libs/platform/layout/entity/src/acorex-platform-layout-entity.ts"],"sourcesContent":["import { AXPEntity } from \"@acorex/platform/common\";\r\nimport { InjectionToken, Type } from \"@angular/core\";\r\n\r\n\r\nexport interface AXPEntityConfigs {\r\n viewers: {\r\n root: () => Type<any>;\r\n detail: {\r\n list: () => Type<any> | Promise<Type<any>>;\r\n }\r\n master: {\r\n single: () => Type<any> | Promise<Type<any>>;\r\n create: () => Type<any> | Promise<Type<any>>;\r\n modify: () => Type<any> | Promise<Type<any>>;\r\n list: () => Type<any> | Promise<Type<any>>;\r\n }\r\n }\r\n}\r\n\r\nexport const AXP_ENTITY_CONFIG_TOKEN = new InjectionToken<AXPEntityConfigs>('AXP_ENTITY_CONFIG_TOKEN');\r\n\r\n\r\nexport interface AXPEntityDefinitionLoader {\r\n get(moduleName: string, entityName: string): Promise<AXPEntity | null>;\r\n}\r\n\r\n\r\nexport const AXP_ENTITY_DEFINITION_LOADER = new InjectionToken<AXPEntityDefinitionLoader>('AXP_ENTITY_DEFINITION_LOADER');","import { Injectable, inject } from \"@angular/core\";\r\nimport { AXP_ENTITY_DEFINITION_LOADER } from \"./entity.config\";\r\nimport { AXPEntity } from \"@acorex/platform/common\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXPEntityDefinitionRegistryService {\r\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\r\n private entities = new Map<string, AXPEntity>();\r\n\r\n // Entity loader service for dynamically loading entity configurations.\r\n private loader = inject(AXP_ENTITY_DEFINITION_LOADER); // Assuming AXPEntityLoader is the correct type\r\n\r\n\r\n /**\r\n * Registers a new entity configuration. Entities are identified uniquely by a combination\r\n * of their module and name.\r\n * \r\n * @param config The configuration object of the entity to be registered.\r\n */\r\n register(config: AXPEntity): void {\r\n const key = this.createEntityKey(config.module, config.name);\r\n this.entities.set(key, config);\r\n }\r\n\r\n /**\r\n * Resolves an entity configuration based on module and entity name. If the configuration\r\n * is not already registered, attempts to load it dynamically. Throws an error if the\r\n * entity cannot be found or loaded.\r\n * \r\n * @param moduleName The module name of the entity.\r\n * @param entityName The name of the entity.\r\n * @returns A promise resolving to the entity configuration.\r\n * @throws Error if the entity configuration cannot be resolved.\r\n */\r\n async resolve(moduleName: string, entityName: string): Promise<AXPEntity> {\r\n const key = this.createEntityKey(moduleName, entityName);\r\n let config = this.entities.get(key) ?? null;\r\n\r\n if (!config) {\r\n try {\r\n config = await this.loader.get(moduleName, entityName);\r\n if (config) {\r\n this.register(config);\r\n }\r\n } catch (error) {\r\n\r\n throw error; // Rethrow to allow error handling by caller\r\n }\r\n\r\n if (!config) {\r\n throw new Error(`Invalid Entity name: ${key}`);\r\n }\r\n }\r\n\r\n return config;\r\n }\r\n\r\n /**\r\n * Creates a unique key for an entity based on its module and name.\r\n * \r\n * @param moduleName The module name of the entity.\r\n * @param entityName The name of the entity.\r\n * @returns The unique key for the entity.\r\n */\r\n private createEntityKey(moduleName: string, entityName: string): string {\r\n return `${moduleName}.${entityName}`;\r\n }\r\n}\r\n","import { AXStyleColorType } from \"@acorex/components/common\";\r\nimport { AXPWidgetColumnNode } from \"@acorex/platform/layout/builder\";\r\nimport { computed } from \"@angular/core\";\r\nimport { AXPEntity, AXPEntityAction, AXPEntityCommandScope, AXPEntityProperty, resolveActionLook } from \"@acorex/platform/common\";\r\n\r\nexport class AXPEntityCommandTriggerViewModel {\r\n priority: 'primary' | 'secondary';\r\n color: AXStyleColorType;\r\n icon: string;\r\n title: string;\r\n name: string\r\n separated: boolean\r\n scope: AXPEntityCommandScope;\r\n\r\n constructor(entity: AXPEntity, action: AXPEntityAction) {\r\n this.name = action.command;\r\n const resolvedLook = resolveActionLook(action);\r\n this.priority = action.priority;\r\n this.title = action.title;\r\n this.separated = action.separated ?? false;\r\n this.color = action.color ?? resolvedLook.color;\r\n this.icon = action.icon ?? resolvedLook.icon\r\n this.scope = action.scope\r\n }\r\n}\r\n\r\nexport class AXPEntityListViewColumnViewModel {\r\n\r\n constructor(private property: AXPEntityProperty) {\r\n\r\n }\r\n name = this.property.name;\r\n title = this.property.title;\r\n description = this.property.description;\r\n visible = this.property.options?.table?.visible ?? true;\r\n\r\n node = computed<AXPWidgetColumnNode>(() => {\r\n const widget = this.property.schema.interface!;\r\n return {\r\n path: this.name,\r\n type: widget.type,\r\n options: { ...widget?.options, ... this.property.options?.table?.widget }\r\n } as AXPWidgetColumnNode;\r\n\r\n })\r\n}\r\n\r\n","import { AXDialogService } from '@acorex/components/dialog';\r\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\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\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\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(AXPEntityDefinitionRegistryService);\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 deleteExec = entity.commands?.delete?.execute as Function\r\n const wrappedPromises = (ids as any[])\r\n .map((id, i) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(deleteExec(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\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(\"deleteConfirmed\") == true' },\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 { cloneDeep, merge, set } from \"lodash-es\";\r\nimport { Injectable, Injector, computed, inject, signal } from \"@angular/core\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { AXPWidgetNode } from \"@acorex/platform/layout/builder\";\r\nimport { AXPWorkflowService } from \"@acorex/platform/workflow\";\r\nimport { AXPEntity, AXPEntityProperty, AXPGridLayoutOptions, AXPLayoutService } from \"@acorex/platform/common\";\r\n\r\n\r\nexport class AXPEntityMasterUpdateElementViewModel {\r\n\r\n constructor(private entity: AXPEntity, private property: AXPEntityProperty) {\r\n\r\n }\r\n\r\n name = signal(this.property.name);\r\n title = signal(this.property.title);\r\n description = signal(this.property.description);\r\n\r\n editable = computed<boolean>(() => {\r\n return !(this.property.schema.readonly ?? false) &&\r\n (this.property.options?.update?.enabled ?? true)\r\n });\r\n\r\n order = signal(this.property.options?.view?.layout?.order ?? 0);\r\n\r\n isRequired = computed<boolean>(() => {\r\n return this.property.validations?.some(c => c.rule == 'required') || false\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.property.options?.update?.layout ?? this.property.options?.view?.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n node = computed<AXPWidgetNode>(() => {\r\n const schema = this.property.schema!;\r\n const widget = schema.interface!;\r\n return {\r\n type: widget.type,\r\n mode: this.editable() ? 'edit' : 'view',\r\n path: this.name(),\r\n children: widget.children,\r\n formula: widget.formula,\r\n triggers: widget.triggers,\r\n options: merge(\r\n schema.interface?.options,\r\n this.property.options?.create?.widget,\r\n { validationRules: this.property.validations },\r\n )\r\n } as AXPWidgetNode;\r\n })\r\n}\r\n\r\n\r\n\r\nexport class AXPEntityMasterUpdateViewModel {\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n private workflow = this.injector.get(AXPWorkflowService);\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity,\r\n private entityData: any,\r\n private props: string[]\r\n ) {\r\n }\r\n\r\n\r\n public isInProgress = signal<boolean>(false);\r\n\r\n public context = signal<any>(cloneDeep(this.entityData));\r\n\r\n elements = computed(() => {\r\n const props = this.entityDef.properties.filter(c => this.props.includes(c.name) && c.schema.hidden != true && c.options?.update?.enabled != false);\r\n return props.map(e => {\r\n return new AXPEntityMasterUpdateElementViewModel(this.entityDef, e);\r\n })\r\n });\r\n\r\n public async save(): Promise<any> {\r\n this.isInProgress.set(true);\r\n try {\r\n const com = this.entityDef.commands?.update;\r\n if (com) {\r\n const exec = com.execute as Function;\r\n return await exec(this.context());\r\n }\r\n }\r\n finally {\r\n this.isInProgress.set(false);\r\n }\r\n }\r\n\r\n public reset() {\r\n this.context.set(cloneDeep(this.entityData));\r\n }\r\n\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityMasterUpdateViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string, id: string, props: string[]): Promise<AXPEntityMasterUpdateViewModel> {\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(true);\r\n if (config.queries.byKey) {\r\n const func = config.queries.byKey.execute as Function;\r\n const data = await func(id);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterUpdateViewModel(this.injector, config, data, props);\r\n }\r\n this.layout.setNavigationLoading(false);\r\n return Promise.reject('cannot fetch ');\r\n }\r\n}\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 { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\r\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\r\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\r\n\r\nexport const AXPEntityModifyEvent = createWorkFlowEvent<{ module: string; entity: string; updateValues: any }>(\r\n '[Entity] Modified'\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(AXPEntityDefinitionRegistryService);\r\n private config = inject(AXP_ENTITY_CONFIG_TOKEN)\r\n private factory = inject(AXPEntityMasterUpdateViewModelFactory);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const payload = context.getVariable('payload');\r\n const { module, entity, properties, id, title } = payload;\r\n const entityRef = await this.entityRegistery.resolve(module, entity);\r\n const vm = await this.factory.create(module, entity, id, properties);\r\n\r\n const com = await this.config.viewers.master.modify();\r\n const popup = await this.popupService.open(com, {\r\n title: title ?? `Modify ${entityRef.formats.individual}`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n vm,\r\n properties,\r\n entity: entityRef,\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@Injectable()\r\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\r\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\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\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 { Injector, computed, signal } from \"@angular/core\";\r\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from \"./entity.viewmodel\";\r\nimport { AXFormatService } from \"@acorex/core/format\";\r\nimport { AXDataSource, AXDataSourceFilterOption, AXDataSourceOperator } from \"@acorex/components/common\";\r\nimport { AXPWorkflowService } from \"@acorex/platform/workflow\";\r\nimport { AXP_ENTITY_DEFINITION_LOADER } from \"./entity.config\";\r\nimport { AXPEntity, AXPRelatedEntity } from \"@acorex/platform/common\";\r\n\r\n\r\n\r\n\r\nexport class AXPEntityDetailListViewModel {\r\n\r\n\r\n private detailEntity = signal<AXPEntity | null>(null);\r\n private formatService = this.injector.get(AXFormatService)\r\n private workflow = this.injector.get(AXPWorkflowService);\r\n\r\n\r\n\r\n dataSource = new AXDataSource({\r\n byKey: (key) => {\r\n const func = this.detailEntity()?.queries.byKey.execute as Function;\r\n return func();\r\n },\r\n load: (e) => {\r\n const func = this.detailEntity()?.queries.list?.execute as Function;\r\n return func(e);\r\n },\r\n pageSize: 5,\r\n key: 'id'\r\n\r\n })\r\n\r\n constructor(\r\n private injector: Injector,\r\n private detailEntityConfig: AXPRelatedEntity,\r\n private parent: { entity: AXPEntity, data: any },\r\n ) {\r\n this.initialize();\r\n }\r\n\r\n async initialize() {\r\n const loader = this.injector.get(AXP_ENTITY_DEFINITION_LOADER);\r\n const [moduleName, entityName] = this.detailEntityConfig.entity.split('.');\r\n const entity = await loader.get(moduleName, entityName)\r\n if (!entity) {\r\n throw Error(`Invalid enitity name: ${this.detailEntityConfig.entity}`)\r\n }\r\n this.detailEntity.set(entity);\r\n this.applyFilterAndSort();\r\n\r\n }\r\n\r\n public selectedItems = signal<any[]>([]);\r\n\r\n public hasSelectedItems = computed<boolean>(() => {\r\n return this.selectedItems().length > 0\r\n });\r\n\r\n public clearSelection(): void {\r\n this.selectedItems.set([]);\r\n }\r\n\r\n //****************** Title ******************//\r\n public title = computed<string>(() => {\r\n return this.detailEntityConfig.title ?? this.detailEntity()?.interfaces?.detail?.list?.title! ?? this.detailEntity()?.formats.plural!;\r\n });\r\n\r\n //****************** Inline filter ******************//\r\n public inlineFiltersPlaceholders = computed<string[]>(() => {\r\n //return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\r\n return [];\r\n });\r\n\r\n public hasInlineFilters = computed<boolean>(() => {\r\n return this.inlineFiltersPlaceholders().length > 0;\r\n });\r\n\r\n\r\n //****************** Actions ******************//\r\n private actions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n // const list = this.detailEntity.interfaces?.master?.list?.actions ?? [];\r\n // return list\r\n // .filter(a =>\r\n // (a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\r\n // (a.scope != AXPEntityCommandScope.Selected && !this.hasSelectedItems())\r\n // )\r\n // .map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\r\n return []\r\n });\r\n\r\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'primary');\r\n });\r\n\r\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'secondary');\r\n });\r\n\r\n //****************** Filter ******************//\r\n\r\n private inlineFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'or',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n applyInlineFilter(value: string) {\r\n // const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\r\n // this.inlineFilters.filters = [];\r\n // if (value) {\r\n // props.forEach(p => {\r\n // this.inlineFilters.filters?.push({\r\n // field: p.name,\r\n // operator: {\r\n // type: 'contains'\r\n // },\r\n // value\r\n // })\r\n // })\r\n // }\r\n this.applyFilterAndSort();\r\n }\r\n\r\n applyFilterAndSort() {\r\n this.dataSource.clearFilter();\r\n //\r\n //this.dataSource.sort(...this.detailEntity.().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\r\n //\r\n\r\n const parentFilters: AXDataSourceFilterOption[] = this.detailEntityConfig.conditions?.map(c => {\r\n return {\r\n field: c.name,\r\n operator: (c.operator as unknown as AXDataSourceOperator),\r\n value: this.parent.data.id\r\n } as AXDataSourceFilterOption;\r\n }) ?? [];\r\n const parentFilterWrapper: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: parentFilters\r\n };\r\n //\r\n const inline = this.inlineFilters.filters?.length ?? 0;\r\n const parent = parentFilterWrapper.filters?.length ?? 0;\r\n //\r\n if (inline) {\r\n this.dataSource.filter(this.inlineFilters);\r\n }\r\n else if (!inline && parent) {\r\n this.dataSource.filter(parentFilterWrapper);\r\n }\r\n else if (inline && parent) {\r\n this.dataSource.filter({\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: [this.inlineFilters, parentFilterWrapper]\r\n });\r\n }\r\n //\r\n this.dataSource.refresh();\r\n }\r\n\r\n\r\n //****************** Columns ******************//\r\n\r\n columns = computed(() => {\r\n if (this.detailEntity()) {\r\n const columns = this.detailEntityConfig.columns ?? []\r\n const props = this.detailEntity()?.properties.filter(c =>\r\n c.schema.hidden != true &&\r\n c.options?.table?.enabled &&\r\n (columns?.length == 0 || columns?.includes(c.name))\r\n ) ?? [];\r\n return props.map(e => {\r\n return new AXPEntityListViewColumnViewModel(e);\r\n })\r\n }\r\n return [];\r\n });\r\n\r\n\r\n\r\n //****************** Commands ******************//\r\n public async executeCommand(commandName: string, data: any = null) {\r\n }\r\n\r\n}\r\n\r\n\r\n","import { AXFormatService } from \"@acorex/core/format\";\r\nimport { cloneDeep, merge, set } from \"lodash-es\";\r\nimport { Injectable, Injector, computed, inject, signal } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { AXPWorkflowService, ofType } from \"@acorex/platform/workflow\";\r\nimport { AXPSessionService } from \"@acorex/platform/auth\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { AXPEntityCommandTriggerViewModel } from \"./entity.viewmodel\";\r\nimport { AXPWidgetNode } from \"@acorex/platform/layout/builder\";\r\nimport { AXPEntityDeletedEvent } from \"./workflows/delete-entity.workflow\";\r\nimport { AXPEntityModifyEvent } from \"./workflows/modify-section.workflow\";\r\nimport { AXPEntityDetailListViewModel } from \"./entity-detail-list.viewmodel\";\r\nimport { AXPBeardCrumb, AXPEntity, AXPEntityCommandScope, AXPEntityProperty, AXPEntityPropertyGroup, AXPGridLayoutOptions, AXPLayoutService } from \"@acorex/platform/common\";\r\n\r\n\r\nexport class AXPEntityMasterSingleViewGroupViewModel {\r\n\r\n constructor(private entity: AXPEntity, private group: AXPEntityPropertyGroup) {\r\n }\r\n\r\n\r\n name = signal(this.group.id);\r\n isLoading = signal(false);\r\n\r\n title = computed<string>(() => {\r\n if (this.group.title)\r\n return this.group.title;\r\n return this.group.id;\r\n });\r\n\r\n description = computed<string | null | undefined>(() => {\r\n if (this.group.description)\r\n return this.group.description;\r\n return null;\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.group.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n\r\n props = computed(() => {\r\n const props = this.entity.properties.filter(c => c.groupId == this.group.id && c.schema.hidden != true && c.options?.view?.enabled != false);\r\n return props.map(e => {\r\n return new AXPEntityMasterSingleElementViewModel(this.entity, this, e);\r\n })\r\n });\r\n\r\n editableProps = computed(() => {\r\n const props = this.entity.properties.filter(c => c.groupId == this.group.id && c.schema.hidden != true && c.options?.update?.enabled != false);\r\n return props.map(e => {\r\n return new AXPEntityMasterSingleElementViewModel(this.entity, this, e);\r\n })\r\n });\r\n\r\n editable = computed(() => {\r\n return this.editableProps().length > 0\r\n });\r\n}\r\n\r\nexport class AXPEntityMasterSingleElementViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntityMasterSingleViewGroupViewModel, private property: AXPEntityProperty) {\r\n\r\n }\r\n\r\n name = signal(this.property.name);\r\n title = signal(this.property.title);\r\n description = signal(this.property.description);\r\n\r\n order = signal(this.property.options?.view?.layout?.order ?? 0);\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.property.options?.view?.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n node = computed<AXPWidgetNode>(() => {\r\n const schema = this.property.schema!;\r\n const widget = schema.interface!;\r\n return {\r\n type: widget.type,\r\n mode: 'view',\r\n path: this.name(),\r\n children: widget.children,\r\n formula: widget.formula,\r\n options: merge(\r\n schema.interface?.options,\r\n this.property.options?.create?.widget,\r\n { validationRules: this.property.validations },\r\n )\r\n } as AXPWidgetNode;\r\n })\r\n}\r\n\r\n\r\n\r\nexport class AXPEntityMasterSingleViewModel {\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n private _viewDef = cloneDeep(this.entityDef.interfaces?.master?.single)!\r\n private session = this.injector.get(AXPSessionService);\r\n private formatService = this.injector.get(AXFormatService)\r\n private workflow = this.injector.get(AXPWorkflowService)\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity,\r\n private entityData: any,\r\n ) {\r\n this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent)).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)).subscribe(async (event) => {\r\n if (\r\n event.payload.entity == this.entityDef.name &&\r\n event.payload.module == this.entityDef.module &&\r\n event.payload.updateValues.id === this.context().id\r\n ) {\r\n this.context.set(event.payload.updateValues);\r\n }\r\n });\r\n }\r\n\r\n\r\n public context = signal<any>(cloneDeep(this.entityData));\r\n\r\n private actions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.entityDef.interfaces?.master?.single?.actions?.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\r\n });\r\n\r\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'primary');\r\n });\r\n\r\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'secondary');\r\n });\r\n\r\n public sections = computed<AXPEntityMasterSingleViewGroupViewModel[]>(() => {\r\n const props = this.entityDef.properties.filter(c => c.groupId && c.schema.hidden != true && c.options?.view?.enabled != false);\r\n const groups = this.entityDef.groups?.filter(g => props.some(p => p.groupId == g.id));\r\n const result = groups?.map((section) => {\r\n return new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section)\r\n })\r\n return (result ?? []) as AXPEntityMasterSingleViewGroupViewModel[];\r\n });\r\n\r\n //****************** Title ******************//\r\n public title = computed<string>(() => {\r\n const suggestedProps = this.entityDef.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\r\n let suggestedFormat = 'Item #{{id}}';\r\n if (suggestedProps) suggestedFormat = `{{${suggestedProps.name}}}`;\r\n return this.formatService.format(this._viewDef.title ?? suggestedFormat,\r\n 'string',\r\n this.context()\r\n );\r\n });\r\n //****************** Description ******************//\r\n public description = computed<string | null>(() => {\r\n return this._viewDef.description ? this.formatService.format(this._viewDef.description,\r\n 'string',\r\n this.context()\r\n ) : null;\r\n });\r\n\r\n //****************** Beardcrumbs ******************//\r\n public beardcrumbs = computed<AXPBeardCrumb[]>(() => {\r\n return [\r\n {\r\n title: \"Home\",\r\n icon: \"fa-solid fa-home ax-text-xs ax-me-2\",\r\n url: [`/${this.session.application?.name}`]\r\n },\r\n {\r\n title: this.entityDef.formats.plural ?? this.entityDef.formats.individual,\r\n url: [`/${this.session.application?.name}`, 'm', `${this.entityDef.module}`, 'e', `${this.entityDef.name}`, 'list']\r\n },\r\n {\r\n title: this.title(),\r\n }\r\n ]\r\n });\r\n\r\n\r\n public relatedEntities = computed<AXPEntityDetailListViewModel[]>(() => {\r\n return this.entityDef.relatedEntities?.map(re =>\r\n new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })\r\n ) ?? []\r\n });\r\n\r\n\r\n public async executeCommand(commandName: string, data: any = null) {\r\n // debugger\r\n //TODO: syntact for workflow\r\n switch (commandName) {\r\n case 'delete-entity':\r\n this.workflow.execute('delete-entity', {\r\n module: this.entityDef.module,\r\n entity: this.entityDef.name,\r\n ids: [this.context().id],\r\n });\r\n break;\r\n case 'modify-entity-section': {\r\n this.workflow.execute('modify-entity-section', {\r\n payload: {\r\n properties: (data as AXPEntityMasterSingleViewGroupViewModel).editableProps().map(m => m.name()),\r\n id: this.entityData.id,\r\n module: this.entityDef.module,\r\n entity: this.entityDef.name,\r\n },\r\n });\r\n break;\r\n }\r\n default:\r\n {\r\n const action = this.actions().find(c => c.name == commandName);\r\n this.workflow.execute(commandName, {\r\n payload: {\r\n module: this.entityDef.module,\r\n entity: this.entityDef.name,\r\n data: action?.scope == AXPEntityCommandScope.Individual ? data : null\r\n }\r\n })\r\n }\r\n }\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityDetailViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string, id: string): Promise<AXPEntityMasterSingleViewModel> {\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(true);\r\n if (config.queries.byKey) {\r\n const func = config.queries.byKey.execute as Function;\r\n const data = await func(id);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterSingleViewModel(this.injector, config, data);\r\n }\r\n this.layout.setNavigationLoading(false);\r\n return Promise.reject('cannot fetch ');\r\n }\r\n}\r\n\r\n\r\nexport const AXPEntityDetailViewModelResolver: ResolveFn<Promise<AXPEntityMasterSingleViewModel>> = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n service: AXPEntityDetailViewModelFactory = inject(AXPEntityDetailViewModelFactory)\r\n): Promise<AXPEntityMasterSingleViewModel> => {\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 //\r\n return service.create(moduleName, entityName, id);\r\n};\r\n\r\n\r\n","import { Injectable, inject, Injector, computed, signal } from \"@angular/core\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { AXPWorkflowService } from \"@acorex/platform/workflow\";\r\nimport { cloneDeep, merge, set } from \"lodash-es\";\r\nimport { AXPWidgetNode } from \"@acorex/platform/layout/builder\";\r\nimport { AXPEntity, AXPEntityPropertyGroup, AXPGridLayoutOptions, AXPEntityProperty, AXPLayoutService } from \"@acorex/platform/common\";\r\n\r\nexport class AXPEntityCreateViewSectionViewModel {\r\n\r\n constructor(private entity: AXPEntity, private group: AXPEntityPropertyGroup) {\r\n }\r\n\r\n\r\n name = signal(this.group.id);\r\n\r\n title = computed<string>(() => {\r\n if (this.group.title)\r\n return this.group.title;\r\n return this.group.id;\r\n });\r\n\r\n description = computed<string | null | undefined>(() => {\r\n if (this.group.description)\r\n return this.group.description;\r\n return null;\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.group.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n\r\n elements = computed(() => {\r\n const props = this.entity.properties.filter(c =>\r\n c.groupId == this.group.id &&\r\n c.schema.hidden != true &&\r\n c.options?.create?.enabled != false);\r\n return props.map(e => {\r\n return new AXPEntityCreateViewElementViewModel(this.entity, this, e);\r\n })\r\n });\r\n}\r\n\r\nexport class AXPEntityCreateViewElementViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntityCreateViewSectionViewModel, private property: AXPEntityProperty) {\r\n\r\n }\r\n\r\n name = signal(this.property.name);\r\n title = signal(this.property.title);\r\n description = signal(this.property.description);\r\n\r\n editable = computed<boolean>(() => {\r\n return !(this.property.schema.readonly ?? false)\r\n });\r\n\r\n order = signal(this.property.options?.view?.layout?.order ?? 0);\r\n\r\n isRequired = computed<boolean>(() => {\r\n return this.property.validations?.some(c => c.rule == 'required') || false\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.property.options?.create?.layout ?? this.property.options?.view?.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n node = computed<AXPWidgetNode>(() => {\r\n const schema = this.property.schema!;\r\n const widget = schema.interface!;\r\n return {\r\n type: widget.type,\r\n mode: this.editable() ? 'edit' : 'view',\r\n path: this.name(),\r\n children: widget.children,\r\n formula: widget.formula,\r\n triggers: widget.triggers,\r\n options: merge(\r\n schema.interface?.options,\r\n this.property.options?.create?.widget,\r\n { validationRules: this.property.validations },\r\n )\r\n } as AXPWidgetNode;\r\n })\r\n}\r\n\r\n\r\nexport class AXPEntityMasterCreateViewModel {\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n\r\n private workflow = this.injector.get(AXPWorkflowService)\r\n\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity,\r\n private initialData: any = null,\r\n ) {\r\n }\r\n\r\n public context = signal<any>({});\r\n\r\n public isInProgress = signal<boolean>(false);\r\n\r\n public sections = computed<AXPEntityCreateViewSectionViewModel[]>(() => {\r\n const props = this.entityDef.properties.filter(p => p.groupId && p.schema.hidden != true && p.options?.create?.enabled == true);\r\n const groups = this.entityDef.groups?.filter(g => props.some(p => p.groupId == g.id));\r\n const result = groups?.map((section) => {\r\n return new AXPEntityCreateViewSectionViewModel(this.entityDef, section)\r\n })\r\n return (result ?? []) as AXPEntityCreateViewSectionViewModel[];\r\n });\r\n\r\n public async save(): Promise<any | void> {\r\n try {\r\n this.isInProgress.set(true);\r\n const exec = this.entityDef.commands?.create?.execute as Function;\r\n return await exec((this.context()));\r\n }\r\n finally {\r\n this.isInProgress.set(false);\r\n }\r\n }\r\n\r\n public async createNewOne() {\r\n await this.workflow.execute('create-entity', {\r\n payload: {\r\n module: this.entityDef.module,\r\n entity: this.entityDef.name,\r\n },\r\n });\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityCreateViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string, initialData: any = null): Promise<AXPEntityMasterCreateViewModel> {\r\n this.layout.setNavigationLoading(true);\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterCreateViewModel(this.injector, config, initialData);\r\n }\r\n}\r\n\r\n","import { cloneDeep } from \"lodash-es\";\r\nimport { Injectable, Injector, computed, inject, signal } from \"@angular/core\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from \"./entity.viewmodel\";\r\nimport { AXFormatService } from \"@acorex/core/format\";\r\nimport { AXPSessionService } from \"@acorex/platform/auth\";\r\nimport { AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption } from \"@acorex/components/common\";\r\nimport { AXPWorkflowService } from \"@acorex/platform/workflow\";\r\nimport { AXPEntity, AXPQueryView, AXPBeardCrumb, AXPEntityCommandScope, AXPLayoutService } from \"@acorex/platform/common\";\r\n\r\n\r\n\r\n\r\nexport interface AXPEntityMasterListViewSortPropViewModel {\r\n\r\n name: string;\r\n title: string;\r\n dir: string;\r\n}\r\n\r\n\r\nexport class AXPEntityMasterListViewQueryViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntityMasterListViewModel, private view: AXPQueryView) {\r\n\r\n }\r\n\r\n name = this.view.name;\r\n title = this.view.title;\r\n sorts = this.view.sorts;\r\n columns = this.view.columns;\r\n conditions = this.view.conditions;\r\n\r\n}\r\n\r\n\r\nexport class AXPEntityMasterListViewModel {\r\n\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n private _viewDef = cloneDeep(this.entityDef.interfaces?.master?.list)!\r\n private formatService = this.injector.get(AXFormatService)\r\n private session = this.injector.get(AXPSessionService);\r\n private workflow = this.injector.get(AXPWorkflowService);\r\n\r\n\r\n\r\n dataSource = new AXDataSource({\r\n byKey: (key) => {\r\n const func = this.entityDef.queries.byKey.execute as Function;\r\n return func();\r\n },\r\n load: (e) => {\r\n const func = this.entityDef.queries.list?.execute as Function;\r\n return func(e);\r\n },\r\n pageSize: 10,\r\n key: 'id'\r\n\r\n })\r\n\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity\r\n ) {\r\n }\r\n\r\n public selectedItems = signal<any[]>([]);\r\n\r\n public hasSelectedItems = computed<boolean>(() => {\r\n return this.selectedItems().length > 0\r\n });\r\n\r\n public clearSelection(): void {\r\n this.selectedItems.set([]);\r\n }\r\n\r\n //****************** Title ******************//\r\n public title = computed<string>(() => {\r\n return this._viewDef.title ?? this.entityDef.formats.plural!;\r\n });\r\n //****************** Description ******************//\r\n public description = computed<string | null>(() => {\r\n return this._viewDef.description ?? null;\r\n });\r\n\r\n //****************** Inline filter ******************//\r\n public inlineFiltersPlaceholders = computed<string[]>(() => {\r\n return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\r\n });\r\n\r\n public hasInlineFilters = computed<boolean>(() => {\r\n return this.inlineFiltersPlaceholders().length > 0;\r\n });\r\n\r\n //****************** Beardcrumbs ******************//\r\n public beardcrumbs = computed<AXPBeardCrumb[]>(() => {\r\n return [\r\n {\r\n title: \"Home\",\r\n icon: \"fa-solid fa-home ax-text-xs ax-me-2\",\r\n url: [`/${this.session.application?.name}`]\r\n },\r\n {\r\n title: this.title(),\r\n url: [`/${this.session.application?.name}`, 'm', `${this.entityDef.module}`, 'e', `${this.entityDef.name}`, 'list']\r\n }\r\n ]\r\n });\r\n\r\n //****************** Actions ******************//\r\n private actions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n const list = this.entityDef.interfaces?.master?.list?.actions ?? [];\r\n return list\r\n .filter(a =>\r\n (a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\r\n (a.scope != AXPEntityCommandScope.Selected && !this.hasSelectedItems())\r\n )\r\n .map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\r\n });\r\n\r\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'primary');\r\n });\r\n\r\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'secondary');\r\n });\r\n\r\n //****************** Filter ******************//\r\n\r\n private inlineFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'or',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n private advanceFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n applyInlineFilter(value: string) {\r\n const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\r\n this.inlineFilters.filters = [];\r\n if (value) {\r\n props.forEach(p => {\r\n this.inlineFilters.filters?.push({\r\n field: p.name,\r\n operator: {\r\n type: 'contains'\r\n },\r\n value\r\n })\r\n })\r\n }\r\n this.applyFilterAndSort();\r\n }\r\n\r\n applyFilterAndSort() {\r\n this.dataSource.clearFilter();\r\n //\r\n this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\r\n //\r\n const inline = this.inlineFilters.filters?.length ?? 0;\r\n const advance = this.advanceFilters.filters?.length ?? 0;\r\n debugger\r\n if (inline && !advance) {\r\n this.dataSource.filter(this.inlineFilters);\r\n }\r\n else if (!inline && advance) {\r\n this.dataSource.filter(this.advanceFilters);\r\n }\r\n else if (inline && advance) {\r\n this.dataSource.filter({\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: [this.inlineFilters, this.advanceFilters]\r\n });\r\n }\r\n //\r\n this.dataSource.refresh();\r\n }\r\n\r\n //****************** Columns ******************//\r\n\r\n private allAvailableColumns = () => {\r\n const props = cloneDeep(this.entityDef.properties.filter(c => c.schema.hidden != true && c.options?.table?.enabled));\r\n return props.map(e => {\r\n return new AXPEntityListViewColumnViewModel(e);\r\n })\r\n };\r\n\r\n visibleColumnCount = () => {\r\n return this.columns().filter(c => c.visible == true).length;\r\n };\r\n\r\n columns = signal<AXPEntityListViewColumnViewModel[]>([]);\r\n\r\n resetColumns() {\r\n this.applyViewColumns();\r\n }\r\n\r\n applyColumns() {\r\n //this.columns.set(this.clonedColumns())\r\n }\r\n\r\n applyViewColumns() {\r\n const cols = this.view().columns;\r\n const cloned = this.allAvailableColumns()\r\n .map(c => {\r\n const col = new AXPEntityListViewColumnViewModel(this.entityDef.properties.find(p => p.name == c.name)!)\r\n col.visible = !cols.some(c => c == col.name);\r\n return col;\r\n })\r\n this.columns.set(cloned);\r\n }\r\n\r\n //****************** Sort ******************//\r\n\r\n sortableFields = () => {\r\n const props = this.entityDef.properties.filter(c => c.options?.sort?.enabled);\r\n return props.map(e => {\r\n return {\r\n name: e.name,\r\n title: e.title,\r\n dir: 'asc'\r\n };\r\n })\r\n };\r\n\r\n sortableFieldsCount = () => {\r\n return this.entityDef.properties.filter(c => c.options?.sort?.enabled).length ?? 0;\r\n }\r\n\r\n canSort = () => {\r\n return this.sortableFieldsCount() > 0\r\n };\r\n\r\n canAddMoreSort = () => {\r\n return this.sortedCount() < this.sortableFieldsCount();\r\n }\r\n\r\n\r\n sortedCount = () => {\r\n return this.sortedFields().length\r\n };\r\n\r\n sortedFields = signal<AXPEntityMasterListViewSortPropViewModel[]>([]);\r\n\r\n resetSorts() {\r\n this.applyViewSorts();\r\n }\r\n\r\n applySorts() {\r\n this.applyFilterAndSort();\r\n }\r\n\r\n addSort(): void {\r\n const prop = this.sortableFields().find(c => !this.sortedFields().some(s => s.name == c.name))\r\n if (prop) {\r\n this.sortedFields.set([...this.sortedFields(), ...[prop]]);\r\n }\r\n }\r\n\r\n removeSort(name: string): void {\r\n this.sortedFields.set(this.sortedFields().filter(c => c.name != name));\r\n }\r\n\r\n applyViewSorts() {\r\n const fileds = this.view().sorts.map(c => ({\r\n name: c.name,\r\n title: c.name,\r\n dir: c.dir ?? 'asc'\r\n }));\r\n this.sortedFields.set(fileds);\r\n }\r\n\r\n //****************** Views ******************//\r\n\r\n\r\n setView(viewName: string | null = null) {\r\n if (viewName != this.view().name) {\r\n this.view.set(this.views().find(c => c.name == viewName) ?? this.views()[0]);\r\n this.applyViewSorts();\r\n this.applyViewColumns();\r\n this.applyFilterAndSort();\r\n }\r\n }\r\n\r\n views = computed(() => {\r\n const views = this.entityDef.interfaces?.master?.list?.views ?? [];\r\n return views.map(v => {\r\n return new AXPEntityMasterListViewQueryViewModel(this.entityDef, this, v);\r\n })\r\n });\r\n\r\n view = signal<AXPEntityMasterListViewQueryViewModel>(this.views()[0]);\r\n\r\n\r\n //****************** Commands ******************//\r\n public async executeCommand(commandName: string, data: any = null) {\r\n // debugger\r\n const action = this.actions().find(c => c.name == commandName);\r\n this.workflow.execute(commandName, {\r\n payload: {\r\n module: this.entityDef.module,\r\n entity: this.entityDef.name,\r\n data: action?.scope == AXPEntityCommandScope.Selected ? this.selectedItems : data\r\n }\r\n })\r\n\r\n }\r\n\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityListViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string): Promise<AXPEntityMasterListViewModel> {\r\n this.layout.setNavigationLoading(true);\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterListViewModel(this.injector, config);\r\n }\r\n}\r\n\r\nexport const AXPEntityListViewModelResolver: ResolveFn<Promise<AXPEntityMasterListViewModel>> = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n service: AXPEntityListViewModelFactory = inject(AXPEntityListViewModelFactory)\r\n): Promise<AXPEntityMasterListViewModel> => {\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 //\r\n return service.create(moduleName, entityName);\r\n};\r\n\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 { AXPEntityCreateViewModelFactory } from '../entity-master-create.viewmodel';\r\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\r\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\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(AXPEntityDefinitionRegistryService);\r\n private popupService = inject(AXPopupService);\r\n private platform = inject(AXPlatform);\r\n private factory = inject(AXPEntityCreateViewModelFactory);\r\n private config = inject(AXP_ENTITY_CONFIG_TOKEN)\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const { module, entity: entity } = context.getVariable('payload');\r\n const entityRef = await this.entityRegistery.resolve(module, entity);\r\n\r\n const com = await this.config.viewers.master.create();\r\n const result = await this.popupService.open(com, {\r\n title: `Create New ${entityRef.formats.individual}`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n vm: await this.factory.create(module, entity),\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 { 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 { module, entity, data } = context.getVariable('payload');\r\n const id = data.id;\r\n const newPayload = {\r\n commands: `/${this.sessionService.application?.name}/m/${module}/e/${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 { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n })\nexport class AXPLookupWidgetViewComponent extends AXPWidgetBase<any> {}","import { AXValueChangedEvent } from '@acorex/components/common';\r\nimport { AXDataTableModule, AXDataTableRowDbClick } from '@acorex/components/data-table';\r\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\r\nimport { AXBasePageComponent } from '@acorex/components/page';\r\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\r\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\r\n@Component({\r\n template: `\r\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\r\n @if(vm.hasInlineFilters())\r\n {\r\n <div class=\"ax-w-full\" >\r\n <ax-search-box [placeholder]=\"'Search on '+vm.inlineFiltersPlaceholders().join(', ')\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-h-[50vh]\" [paging]=\"true\" [fetchDataMode]=\"'auto'\"\r\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\r\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\r\n <!-- <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column> -->\r\n @for(col of vm.columns();track col.name) {\r\n @if(col.visible)\r\n {\r\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\r\n }\r\n }\r\n </ax-data-table>\r\n </div>\r\n <!-- <ax-footer>\r\n <ax-suffix>\r\n <ax-button look=\"solid\" color=\"ghost\" text=\"Cancel\" (onClick)=\"handleCloseClick()\"> </ax-button>\r\n <ax-dropdown-button [disabled]=\"vm.isInProgress()\" color=\"primary\" text=\"Save\" look=\"solid\"\r\n (onClick)=\"handleSaveClick(form)\">\r\n <ax-loading *ngIf=\"vm.isInProgress()\"></ax-loading>\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Save & Create New\" (onClick)=\"handleSaveAndNewClick(form)\"> </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n </ax-suffix>\r\n </ax-footer> -->\r\n `,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule, AXDecoratorModule, AXDropdownButtonModule, AXDataTableModule, AXSearchBoxModule, AXPLayoutBuilderModule],\r\n inputs: []\r\n})\r\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\r\n\r\n protected vm: AXPLookupWidgetSelectorViewModel;\r\n\r\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\r\n this.close({ items: [e.data] })\r\n }\r\n\r\n protected async handleSelectedRowsChange(rows: unknown[]) {\r\n //this.vm.selectedItems.set(rows);\r\n }\r\n\r\n handleChangeSearchValue(e: AXValueChangedEvent) {\r\n if (e.isUserInteraction) {\r\n this.vm.applyInlineFilter(e.value);\r\n }\r\n }\r\n}","import { AXDataSource, AXDataSourceFilterOption } from '@acorex/components/common';\r\nimport { AXPEntityListViewColumnViewModel } from '../../entity.viewmodel';\r\nimport { computed } from '@angular/core';\r\nimport { AXPEntity } from '@acorex/platform/common';\r\n\r\n\r\nexport class AXPLookupWidgetSelectorViewModel {\r\n\r\n constructor(private entityDef: AXPEntity) {\r\n\r\n }\r\n\r\n dataSource = new AXDataSource({\r\n byKey: (key) => {\r\n const func = this.entityDef.queries.byKey.execute as Function;\r\n return func();\r\n },\r\n load: (e) => {\r\n const func = this.entityDef.queries.list?.execute as Function;\r\n return func(e);\r\n },\r\n pageSize: 10,\r\n key: 'id'\r\n });\r\n\r\n public inlineFiltersPlaceholders = computed<string[]>(() => {\r\n return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\r\n });\r\n\r\n public hasInlineFilters = computed<boolean>(() => {\r\n return this.inlineFiltersPlaceholders().length > 0;\r\n });\r\n\r\n\r\n public columns = () => {\r\n const props = this.entityDef.properties.filter(c => c.schema.hidden != true && c.options?.table?.enabled);\r\n return props.map(e => {\r\n return new AXPEntityListViewColumnViewModel(e);\r\n })\r\n };\r\n\r\n\r\n private inlineFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'or',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n private advanceFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n applyInlineFilter(value: string) {\r\n const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\r\n this.inlineFilters.filters = [];\r\n if (value) {\r\n props.forEach(p => {\r\n this.inlineFilters.filters?.push({\r\n field: p.name,\r\n operator: {\r\n type: 'contains'\r\n },\r\n value\r\n })\r\n })\r\n }\r\n this.applyFilterAndSort();\r\n }\r\n\r\n applyFilterAndSort() {\r\n this.dataSource.clearFilter();\r\n //\r\n //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\r\n //\r\n const inline = this.inlineFilters.filters?.length ?? 0;\r\n const advance = this.advanceFilters.filters?.length ?? 0;\r\n if (inline && !advance) {\r\n this.dataSource.filter(this.inlineFilters);\r\n }\r\n else if (!inline && advance) {\r\n this.dataSource.filter(this.advanceFilters);\r\n }\r\n else if (inline && advance) {\r\n this.dataSource.filter({\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: [this.inlineFilters, this.advanceFilters]\r\n });\r\n }\r\n //\r\n this.dataSource.refresh();\r\n }\r\n}","import { AXClickEvent, AXDataSource } from '@acorex/components/common';\r\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\r\nimport { AXPLayoutBuilderService, AXPWidgetBase } from '@acorex/platform/layout/builder';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXP_ENTITY_DEFINITION_LOADER } from '../../entity.config';\r\nimport { AXTextBoxModule } from '@acorex/components/text-box';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXFormatService } from '@acorex/core/format';\r\nimport { AXPopupService } from '@acorex/components/popup';\r\nimport { AXPLookupWidgetSelectorComponent } from './lookup-widget-selector.component';\r\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\r\nimport { AXPEntity, AXPQueryFilter } from '@acorex/platform/common';\r\n\r\n@Component({\r\n template: `\r\n <!-- <ax-select-box \r\n [dataSource]=\"dataSource\" \r\n [valueField]=\"'id'\" \r\n [textField]=\"textField\" \r\n [ngModel]=\"getValue()\"\r\n (onValueChanged)=\"handleValueChange($event);\"\r\n >\r\n </ax-select-box> -->\r\n <ax-text-box [ngModel]=\"displayText()\" readonly=\"true\" [placeholder]=\"placeholder()\">\r\n <ax-suffix>\r\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"handleOnClick($event)\">\r\n <ax-icon icon=\"far fa-search\">\r\n </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-text-box>\r\n `,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXSelectBoxModule,\r\n AXTextBoxModule,\r\n AXButtonModule,\r\n AXDecoratorModule\r\n ],\r\n inputs: [\"entity\", \"conditions\", \"expose\"]\r\n})\r\nexport class AXPLookupWidgetEditComponent extends AXPWidgetBase<any> {\r\n protected dataSource: AXDataSource | any[] = [];\r\n protected textField = \"title\";\r\n protected expose: string | undefined;\r\n protected entity: string;\r\n protected loader = inject(AXP_ENTITY_DEFINITION_LOADER);\r\n protected formatService = inject(AXFormatService);\r\n protected popupService = inject(AXPopupService);\r\n private readonly builderService = inject(AXPLayoutBuilderService);\r\n private entityDef: AXPEntity | null;\r\n\r\n protected conditions?: AXPQueryFilter[];\r\n\r\n protected displayText = signal(\"\");\r\n\r\n protected vm = signal<AXPLookupWidgetSelectorViewModel | null>(null);\r\n\r\n protected placeholder = computed(() => {\r\n return 'Search on ' + this.vm()?.inlineFiltersPlaceholders().join(', ')\r\n })\r\n\r\n\r\n override async ngOnInit() {\r\n super.ngOnInit();\r\n //\r\n const [module, entity] = this.entity.split('.');\r\n this.entityDef = await this.loader.get(module, entity);\r\n //\r\n this.vm.set(new AXPLookupWidgetSelectorViewModel(this.entityDef!));\r\n //\r\n this.textField = this.entityDef?.formats.lookup ?? this.entityDef?.properties.find(c => c.name != 'id')?.name ?? \"title\";\r\n const value = this.getValue()\r\n if (typeof value == 'object')\r\n this.displayText.set(this.formatService.format(this.textField, \"string\", value))\r\n else if (value != null) {\r\n const byKey = this.entityDef?.queries.byKey?.execute as Function;\r\n const item = await byKey(this.getValue());\r\n this.setItems(item);\r\n }\r\n }\r\n\r\n\r\n handleOnClick(e: AXClickEvent) {\r\n this.popupService.open(AXPLookupWidgetSelectorComponent, {\r\n title: `${this.entityDef?.formats.plural} Lookup`,\r\n size: 'md',\r\n data: {\r\n vm: new AXPLookupWidgetSelectorViewModel(this.entityDef!)\r\n }\r\n }).then((e: any) => {\r\n if (e.data?.items) {\r\n this.setItems(e.data?.items[0]);\r\n }\r\n })\r\n }\r\n\r\n private setItems(item: any) {\r\n const text = this.formatService.format(this.textField, \"string\", item);\r\n this.displayText.set(text);\r\n this.setValue(item.id);\r\n if (this.expose) {\r\n this.builderService.setValue(this.expose, item);\r\n }\r\n }\r\n}","import { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule],\n inputs: []\n})\nexport class AXPLookupWidgetFilterComponent extends AXPWidgetBase<any> {}","import { AXPColumnWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n@Component({\n template: `{{rawValue}}`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: ['rawValue']\n})\nexport class AXPLookupWidgetColumnComponent extends AXPColumnWidgetBase<any> {}","import { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n})\nexport class AXPLookupWidgetPrintComponent extends AXPWidgetBase<any> {}","import { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n})\nexport class AXPLookupWidgetDesignerComponent extends AXPWidgetBase<any> {}","import { AXPWidgetConfig } from '@acorex/platform/layout/builder';\nexport const AXPLookupWidget: AXPWidgetConfig = {\n name: \"lookup\",\n components: {\n view: {\n component: () => import('./lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n filter: {\n component: () => import('./lookup-widget-filter.component').then((c) => c.AXPLookupWidgetFilterComponent),\n },\n column: {\n component: () => import('./lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n },\n print: {\n component: () => import('./lookup-widget-print.component').then((c) => c.AXPLookupWidgetPrintComponent),\n },\n designer: {\n component: () => import('./lookup-widget-designer.component').then((c) => c.AXPLookupWidgetDesignerComponent),\n },\n }\n}","import { NgModule, inject } from '@angular/core';\r\nimport { ROUTES, RouterModule, Routes } from '@angular/router';\r\nimport { AXPEntityDetailViewModelResolver } from './entity-master-single.viewmodel';\r\nimport { AXP_ENTITY_CONFIG_TOKEN } from './entity.config';\r\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\r\nimport { AXPCreateEntityWorkflow, AXPEntityCreatePopupAction } from './workflows/create-entity.workflow';\r\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction } from './workflows/delete-entity.workflow';\r\nimport { AXPEntityModifyConfirmedAction, AXPEntityModifySectionPopupAction, AXPModifyEntitySectionWorkflow } from './workflows/modify-section.workflow';\r\nimport { AXPEntityListViewModelResolver } from './entity-master-list.viewmodel';\r\nimport { AXPShowDetailViewAction, AXPShowDetailsViewWorkflow } from './workflows/show-details.workflow';\r\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\r\nimport { AXPLookupWidget } from './widgets/lookup-widget';\r\n\r\n\r\nfunction routesFacory() {\r\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\r\n let routes: Routes = [];\r\n routes = [\r\n {\r\n path: ':app/m',\r\n component: config.viewers.root(),\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 {\r\n path: 'e/:entity/list',\r\n loadComponent: () => {\r\n return config.viewers.master.list()\r\n },\r\n resolve: {\r\n vm: AXPEntityListViewModelResolver,\r\n },\r\n },\r\n {\r\n path: 'e/:entity/:id/view',\r\n resolve: { vm: AXPEntityDetailViewModelResolver },\r\n loadComponent: () => {\r\n return config.viewers.master.single()\r\n },\r\n },\r\n {\r\n path: 'e/:entity/:id',\r\n redirectTo: 'e/:entity/:id/view',\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: 'e/:entity',\r\n redirectTo: ':entity/list',\r\n pathMatch: 'full',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ];\r\n return routes;\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule,\r\n AXPWorkflowModule.forChild({\r\n actions: {\r\n AXPEntityCreatePopupAction,\r\n AXPEntityPerformDeleteAction,\r\n AXPEntityModifySectionPopupAction,\r\n AXPEntityModifyConfirmedAction,\r\n AXPShowDetailViewAction\r\n },\r\n workflows: {\r\n 'create-entity': AXPCreateEntityWorkflow,\r\n 'delete-entity': AXPDeleteEntityWorkflow,\r\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\r\n 'open-entity': AXPShowDetailsViewWorkflow,\r\n },\r\n }),\r\n AXPLayoutBuilderModule.forChild({\r\n widgets: [\r\n AXPLookupWidget,\r\n ],\r\n }),\r\n ],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n multi: true,\r\n useFactory: routesFacory,\r\n },\r\n ],\r\n})\r\nexport class AXPEntityModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i4","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-layout-entity.mjs","sources":["../../../../libs/platform/layout/entity/src/lib/entity.config.ts","../../../../libs/platform/layout/entity/src/lib/entity-registery.service.ts","../../../../libs/platform/layout/entity/src/lib/entity.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/delete-entity.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-update.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/modify-section.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity-detail-list.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-single.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-create.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-list.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/create-entity.workflow.ts","../../../../libs/platform/layout/entity/src/lib/workflows/show-details.workflow.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-view.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-selector.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-edit.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-filter.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-column.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-print.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-designer.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget.config.ts","../../../../libs/platform/layout/entity/src/lib/workflows/show-list.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity.module.ts","../../../../libs/platform/layout/entity/src/acorex-platform-layout-entity.ts"],"sourcesContent":["import { AXPEntity } from \"@acorex/platform/common\";\r\nimport { InjectionToken, Type } from \"@angular/core\";\r\n\r\n\r\nexport interface AXPEntityConfigs {\r\n viewers: {\r\n root: () => Type<any>;\r\n detail: {\r\n list: () => Type<any> | Promise<Type<any>>;\r\n }\r\n master: {\r\n single: () => Type<any> | Promise<Type<any>>;\r\n create: () => Type<any> | Promise<Type<any>>;\r\n modify: () => Type<any> | Promise<Type<any>>;\r\n list: () => Type<any> | Promise<Type<any>>;\r\n }\r\n }\r\n}\r\n\r\nexport const AXP_ENTITY_CONFIG_TOKEN = new InjectionToken<AXPEntityConfigs>('AXP_ENTITY_CONFIG_TOKEN');\r\n\r\n\r\nexport interface AXPEntityDefinitionLoader {\r\n get(moduleName: string, entityName: string): Promise<AXPEntity | null>;\r\n}\r\n\r\n\r\nexport const AXP_ENTITY_DEFINITION_LOADER = new InjectionToken<AXPEntityDefinitionLoader>('AXP_ENTITY_DEFINITION_LOADER');","import { Injectable, inject } from \"@angular/core\";\r\nimport { AXP_ENTITY_DEFINITION_LOADER } from \"./entity.config\";\r\nimport { AXPEntity } from \"@acorex/platform/common\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXPEntityDefinitionRegistryService {\r\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\r\n private entities = new Map<string, AXPEntity>();\r\n\r\n // Entity loader service for dynamically loading entity configurations.\r\n private loader = inject(AXP_ENTITY_DEFINITION_LOADER); // Assuming AXPEntityLoader is the correct type\r\n\r\n\r\n /**\r\n * Registers a new entity configuration. Entities are identified uniquely by a combination\r\n * of their module and name.\r\n * \r\n * @param config The configuration object of the entity to be registered.\r\n */\r\n register(config: AXPEntity): void {\r\n const key = this.createEntityKey(config.module, config.name);\r\n this.entities.set(key, config);\r\n }\r\n\r\n /**\r\n * Resolves an entity configuration based on module and entity name. If the configuration\r\n * is not already registered, attempts to load it dynamically. Throws an error if the\r\n * entity cannot be found or loaded.\r\n * \r\n * @param moduleName The module name of the entity.\r\n * @param entityName The name of the entity.\r\n * @returns A promise resolving to the entity configuration.\r\n * @throws Error if the entity configuration cannot be resolved.\r\n */\r\n async resolve(moduleName: string, entityName: string): Promise<AXPEntity> {\r\n const key = this.createEntityKey(moduleName, entityName);\r\n let config = this.entities.get(key) ?? null;\r\n\r\n if (!config) {\r\n try {\r\n config = await this.loader.get(moduleName, entityName);\r\n if (config) {\r\n this.register(config);\r\n }\r\n } catch (error) {\r\n\r\n throw error; // Rethrow to allow error handling by caller\r\n }\r\n\r\n if (!config) {\r\n throw new Error(`Invalid entity name: ${key}`);\r\n }\r\n }\r\n\r\n return config;\r\n }\r\n\r\n /**\r\n * Creates a unique key for an entity based on its module and name.\r\n * \r\n * @param moduleName The module name of the entity.\r\n * @param entityName The name of the entity.\r\n * @returns The unique key for the entity.\r\n */\r\n private createEntityKey(moduleName: string, entityName: string): string {\r\n return `${moduleName}.${entityName}`;\r\n }\r\n}\r\n","import { AXStyleColorType } from \"@acorex/components/common\";\r\nimport { AXPWidgetColumnNode } from \"@acorex/platform/layout/builder\";\r\nimport { computed } from \"@angular/core\";\r\nimport { AXPEntity, AXPEntityAction, AXPEntityCommandScope, AXPEntityProperty, AXPEntityTableColumn, resolveActionLook } from \"@acorex/platform/common\";\r\n\r\nexport class AXPEntityCommandTriggerViewModel {\r\n priority: 'primary' | 'secondary';\r\n color: AXStyleColorType;\r\n icon: string;\r\n title: string;\r\n name: string\r\n separated: boolean\r\n scope: AXPEntityCommandScope;\r\n\r\n constructor(entity: AXPEntity, action: AXPEntityAction) {\r\n this.name = action.command;\r\n const resolvedLook = resolveActionLook(action);\r\n this.priority = action.priority;\r\n this.title = action.title;\r\n this.separated = action.separated ?? false;\r\n this.color = action.color ?? resolvedLook.color;\r\n this.icon = action.icon ?? resolvedLook.icon\r\n this.scope = action.scope\r\n }\r\n}\r\n\r\nexport class AXPEntityListViewColumnViewModel {\r\n\r\n constructor(private property: AXPEntityProperty, private column: AXPEntityTableColumn) {\r\n\r\n }\r\n\r\n name = this.property.name;\r\n title = this.column.title ?? this.property.title;\r\n visible = this.column?.options?.visible ?? true;\r\n\r\n node = computed<AXPWidgetColumnNode>(() => {\r\n const widget = this.property.schema.interface!;\r\n return {\r\n path: this.name,\r\n type: widget.type,\r\n //... this.property.options?.table?.widget\r\n options: { ...widget?.options }\r\n } as AXPWidgetColumnNode;\r\n\r\n })\r\n}\r\n\r\n","import { AXDialogService } from '@acorex/components/dialog';\r\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\r\nimport {\r\n AXPWorkflow,\r\n AXPWorkflowAction,\r\n AXPWorkflowContext,\r\n createWorkFlowEvent,\r\n} from '@acorex/platform/workflow';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\r\n\r\nexport const AXPEntityDeletedEvent = createWorkFlowEvent<{ entity: string; ids: string[] }>(\r\n '[Entity] Deleted'\r\n);\r\n\r\n@Injectable()\r\nexport class AXPEntityPerformDeleteAction extends AXPWorkflowAction {\r\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\r\n private dialogService = inject(AXDialogService);\r\n private loadingDialog = inject(AXLoadingDialogService);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n debugger\r\n const moduleEntity = context.getVariable('entity');\r\n const [moduleName, entityName] = moduleEntity.split(\".\");\r\n const items = context.getVariable<any[]>('data');\r\n const ids = items.map(c => c.id);\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 deleteExec = entity.commands?.delete?.execute as Function\r\n const wrappedPromises = (ids as any[])\r\n .map((id, i) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(deleteExec(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 debugger\r\n // Dispatch actions\r\n this.dispatch(AXPEntityDeletedEvent({ entity: moduleEntity, ids: 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 debugger\r\n // Dispatch actions\r\n this.dispatch(AXPEntityDeletedEvent({ entity: moduleEntity, ids: 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\r\nexport const AXPDeleteEntityWorkflow: AXPWorkflow = {\r\n startStepId: 'confirm-delete',\r\n steps: {\r\n \"confirm-delete\": {\r\n action: 'show-prompt-dialog',\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 ],\r\n },\r\n ],\r\n nextStepId: 'perform-delete',\r\n },\r\n ],\r\n },\r\n \"perform-delete\": {\r\n action: 'entity-perform-delete',\r\n },\r\n },\r\n};\r\n","import { cloneDeep, merge, set } from \"lodash-es\";\r\nimport { Injectable, Injector, computed, inject, signal } from \"@angular/core\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { AXPWidgetNode } from \"@acorex/platform/layout/builder\";\r\nimport { AXPWorkflowService } from \"@acorex/platform/workflow\";\r\nimport { AXPEntity, AXPEntityProperty, AXPGridLayoutOptions, AXPLayoutService } from \"@acorex/platform/common\";\r\n\r\n\r\nexport class AXPEntityMasterUpdateElementViewModel {\r\n\r\n constructor(private entity: AXPEntity, private property: AXPEntityProperty) {\r\n\r\n }\r\n\r\n name = signal(this.property.name);\r\n title = signal(this.property.title);\r\n description = signal(this.property.description);\r\n\r\n editable = computed<boolean>(() => {\r\n return !(this.property.schema.readonly ?? false)\r\n });\r\n\r\n\r\n isRequired = computed<boolean>(() => {\r\n return this.property.validations?.some(c => c.rule == 'required') || false\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const updateProp = this.entity.interfaces?.master?.update?.properties?.find(c => c.name == this.property.name);\r\n const source = cloneDeep(updateProp?.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n node = computed<AXPWidgetNode>(() => {\r\n const schema = this.property.schema!;\r\n const widget = schema.interface!;\r\n return {\r\n type: widget.type,\r\n mode: this.editable() ? 'edit' : 'view',\r\n path: this.name(),\r\n children: widget.children,\r\n formula: widget.formula,\r\n triggers: widget.triggers,\r\n options: merge(\r\n schema.interface?.options,\r\n //this.property.options?.create?.widget,\r\n { validationRules: this.property.validations },\r\n )\r\n } as AXPWidgetNode;\r\n })\r\n}\r\n\r\n\r\n\r\nexport class AXPEntityMasterUpdateViewModel {\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n private workflow = this.injector.get(AXPWorkflowService);\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity,\r\n private entityData: any,\r\n private props: string[]\r\n ) {\r\n }\r\n\r\n\r\n public isInProgress = signal<boolean>(false);\r\n\r\n public context = signal<any>(cloneDeep(this.entityData));\r\n\r\n elements = computed(() => {\r\n const props = this.entityDef.properties.filter(c =>\r\n this.props.includes(c.name) &&\r\n c.schema.hidden != true);\r\n return props.map(e => {\r\n return new AXPEntityMasterUpdateElementViewModel(this.entityDef, e);\r\n })\r\n });\r\n\r\n public async save(): Promise<any> {\r\n this.isInProgress.set(true);\r\n try {\r\n const com = this.entityDef.commands?.update;\r\n if (com) {\r\n const exec = com.execute as Function;\r\n return await exec(this.context());\r\n }\r\n }\r\n finally {\r\n this.isInProgress.set(false);\r\n }\r\n }\r\n\r\n public reset() {\r\n this.context.set(cloneDeep(this.entityData));\r\n }\r\n\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityMasterUpdateViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string, id: string, props: string[]): Promise<AXPEntityMasterUpdateViewModel> {\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(true);\r\n if (config.queries.byKey) {\r\n const func = config.queries.byKey.execute as Function;\r\n const data = await func(id);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterUpdateViewModel(this.injector, config, data, props);\r\n }\r\n this.layout.setNavigationLoading(false);\r\n return Promise.reject('cannot fetch ');\r\n }\r\n}\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 { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\r\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\r\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\r\n\r\nexport const AXPEntityModifyEvent = createWorkFlowEvent<{ entity: string; values: any }>(\r\n '[Entity] Modified'\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(AXPEntityDefinitionRegistryService);\r\n private config = inject(AXP_ENTITY_CONFIG_TOKEN)\r\n private factory = inject(AXPEntityMasterUpdateViewModelFactory);\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const [moduleName, entityName] = context.getVariable<string>('entity').split(\".\");\r\n const { properties, id, title } = context.getVariable('data');\r\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\r\n const vm = await this.factory.create(moduleName, entityName, id, properties);\r\n\r\n const com = await this.config.viewers.master.modify();\r\n const popup = await this.popupService.open(com, {\r\n title: title ?? `Modify ${entityRef.formats.individual}`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n vm,\r\n properties,\r\n entity: entityRef,\r\n },\r\n });\r\n context.setOutput('result', false);\r\n if (popup.data?.result == true) {\r\n context.setOutput('result', true);\r\n context.setVariable('data', cloneDeep(popup.data.context));\r\n }\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n const updatedData = context.getVariable('data');\r\n this.dispatch(AXPEntityModifyEvent({ entity: context.getVariable<string>('entity'), values: updatedData }));\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(\"result\") == 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 },\r\n },\r\n};\r\n","import { Injector, computed, signal } from \"@angular/core\";\r\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from \"./entity.viewmodel\";\r\nimport { AXFormatService } from \"@acorex/core/format\";\r\nimport { AXDataSource, AXDataSourceFilterOption, AXDataSourceOperator } from \"@acorex/components/common\";\r\nimport { AXPWorkflowService } from \"@acorex/platform/workflow\";\r\nimport { AXP_ENTITY_DEFINITION_LOADER } from \"./entity.config\";\r\nimport { AXPEntity, AXPRelatedEntity } from \"@acorex/platform/common\";\r\n\r\n\r\n\r\n\r\nexport class AXPEntityDetailListViewModel {\r\n\r\n\r\n private detailEntity = signal<AXPEntity | null>(null);\r\n private formatService = this.injector.get(AXFormatService)\r\n private workflow = this.injector.get(AXPWorkflowService);\r\n\r\n\r\n\r\n dataSource = new AXDataSource({\r\n byKey: (key) => {\r\n const func = this.detailEntity()?.queries.byKey.execute as Function;\r\n return func();\r\n },\r\n load: (e) => {\r\n const func = this.detailEntity()?.queries.list?.execute as Function;\r\n return func(e);\r\n },\r\n pageSize: 5,\r\n key: 'id'\r\n\r\n })\r\n\r\n constructor(\r\n private injector: Injector,\r\n private detailEntityConfig: AXPRelatedEntity,\r\n private parent: { entity: AXPEntity, data: any },\r\n ) {\r\n this.initialize();\r\n }\r\n\r\n async initialize() {\r\n const loader = this.injector.get(AXP_ENTITY_DEFINITION_LOADER);\r\n const [moduleName, entityName] = this.detailEntityConfig.entity.split('.');\r\n const entity = await loader.get(moduleName, entityName)\r\n if (!entity) {\r\n throw Error(`Invalid enitity name: ${this.detailEntityConfig.entity}`)\r\n }\r\n this.detailEntity.set(entity);\r\n this.applyFilterAndSort();\r\n\r\n }\r\n\r\n public selectedItems = signal<any[]>([]);\r\n\r\n public hasSelectedItems = computed<boolean>(() => {\r\n return this.selectedItems().length > 0\r\n });\r\n\r\n public clearSelection(): void {\r\n this.selectedItems.set([]);\r\n }\r\n\r\n //****************** Title ******************//\r\n public title = computed<string>(() => {\r\n return this.detailEntityConfig.title ?? this.detailEntity()?.interfaces?.detail?.list?.title! ?? this.detailEntity()?.formats.plural!;\r\n });\r\n\r\n //****************** Inline filter ******************//\r\n public inlineFiltersPlaceholders = computed<string[]>(() => {\r\n //return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\r\n return [];\r\n });\r\n\r\n public hasInlineFilters = computed<boolean>(() => {\r\n return this.inlineFiltersPlaceholders().length > 0;\r\n });\r\n\r\n\r\n //****************** Actions ******************//\r\n private actions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n // const list = this.detailEntity.interfaces?.master?.list?.actions ?? [];\r\n // return list\r\n // .filter(a =>\r\n // (a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\r\n // (a.scope != AXPEntityCommandScope.Selected && !this.hasSelectedItems())\r\n // )\r\n // .map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\r\n return []\r\n });\r\n\r\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'primary');\r\n });\r\n\r\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'secondary');\r\n });\r\n\r\n //****************** Filter ******************//\r\n\r\n private inlineFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'or',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n applyInlineFilter(value: string) {\r\n // const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\r\n // this.inlineFilters.filters = [];\r\n // if (value) {\r\n // props.forEach(p => {\r\n // this.inlineFilters.filters?.push({\r\n // field: p.name,\r\n // operator: {\r\n // type: 'contains'\r\n // },\r\n // value\r\n // })\r\n // })\r\n // }\r\n this.applyFilterAndSort();\r\n }\r\n\r\n applyFilterAndSort() {\r\n this.dataSource.clearFilter();\r\n //\r\n //this.dataSource.sort(...this.detailEntity.().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\r\n //\r\n\r\n const parentFilters: AXDataSourceFilterOption[] = this.detailEntityConfig.conditions?.map(c => {\r\n return {\r\n field: c.name,\r\n operator: (c.operator as unknown as AXDataSourceOperator),\r\n value: this.parent.data?.id\r\n } as AXDataSourceFilterOption;\r\n }) ?? [];\r\n const parentFilterWrapper: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: parentFilters\r\n };\r\n //\r\n const inline = this.inlineFilters.filters?.length ?? 0;\r\n const parent = parentFilterWrapper.filters?.length ?? 0;\r\n //\r\n if (inline) {\r\n this.dataSource.filter(this.inlineFilters);\r\n }\r\n else if (!inline && parent) {\r\n this.dataSource.filter(parentFilterWrapper);\r\n }\r\n else if (inline && parent) {\r\n this.dataSource.filter({\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: [this.inlineFilters, parentFilterWrapper]\r\n });\r\n }\r\n //\r\n this.dataSource.refresh();\r\n }\r\n\r\n\r\n //****************** Columns ******************//\r\n\r\n columns = computed(() => {\r\n if (this.detailEntity()) {\r\n const detailColumns = this.detailEntityConfig.columns ?? []\r\n const columns = this.detailEntity()?.columns?.map(c => c.name) ?? [];\r\n const props = this.detailEntity()?.properties.filter(p =>\r\n p.schema.hidden != true &&\r\n (detailColumns?.length == 0 || detailColumns?.includes(p.name))\r\n ) ?? []\r\n const displayColumns = props.filter(p => columns.some(c => c == p.name));\r\n return displayColumns.map(p => {\r\n return new AXPEntityListViewColumnViewModel(p, this.detailEntity()?.columns?.find(c => c.name == p.name)!);\r\n })\r\n }\r\n return [];\r\n });\r\n\r\n\r\n\r\n //****************** Commands ******************//\r\n public async executeCommand(commandName: string, data: any = null) {\r\n }\r\n\r\n}\r\n\r\n\r\n","import { AXFormatService } from \"@acorex/core/format\";\r\nimport { cloneDeep, merge, set } from \"lodash-es\";\r\nimport { Injectable, Injector, computed, inject, signal } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { AXPWorkflowService, ofType } from \"@acorex/platform/workflow\";\r\nimport { AXPSessionService } from \"@acorex/platform/auth\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { AXPEntityCommandTriggerViewModel } from \"./entity.viewmodel\";\r\nimport { AXPWidgetNode } from \"@acorex/platform/layout/builder\";\r\nimport { AXPEntityDeletedEvent } from \"./workflows/delete-entity.workflow\";\r\nimport { AXPEntityModifyEvent } from \"./workflows/modify-section.workflow\";\r\nimport { AXPEntityDetailListViewModel } from \"./entity-detail-list.viewmodel\";\r\nimport { AXPBeardCrumb, AXPEntity, AXPEntityCommandScope, AXPEntityProperty, AXPEntityPropertyView, AXPEntitySectionView, AXPGridLayoutOptions, AXPLayoutService } from \"@acorex/platform/common\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n\r\nexport class AXPEntityMasterSingleViewGroupViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntitySectionView) {\r\n }\r\n\r\n\r\n group = this.entity.groups?.find(c => c.id == this.section.id)!;\r\n name = signal(this.group.id);\r\n isLoading = signal(false);\r\n\r\n title = computed<string>(() => {\r\n return this.group.title ?? this.group.id;\r\n });\r\n\r\n description = computed<string | null | undefined>(() => {\r\n return this.group.description;\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.section.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n props = computed(() => {\r\n const props = this.entity.properties.filter(\r\n c => c.groupId == this.group.id &&\r\n c.schema.hidden != true\r\n ).map(c => c.name);\r\n const viewProps = this.entity.interfaces?.master?.single?.properties?.filter(c => props.includes(c.name)) ?? []\r\n\r\n return viewProps.map(e => {\r\n return new AXPEntityMasterSingleElementViewModel(this.entity, this, e);\r\n })\r\n });\r\n\r\n editableProps = computed(() => {\r\n const editableProps = this.entity.interfaces?.master?.update?.properties?.map(c => c.name) ?? [];\r\n const props = this.entity.properties.filter(c =>\r\n c.groupId == this.group.id &&\r\n c.schema.hidden != true &&\r\n editableProps.includes(c.name)\r\n );\r\n return props.map(e => {\r\n return new AXPEntityMasterSingleElementViewModel(this.entity, this, e);\r\n })\r\n });\r\n\r\n editable = computed(() => {\r\n return this.editableProps().length > 0\r\n });\r\n}\r\n\r\nexport class AXPEntityMasterSingleElementViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntityMasterSingleViewGroupViewModel, private propertyView: AXPEntityPropertyView) {\r\n\r\n }\r\n\r\n private property = this.entity.properties.find(c => c.name == this.propertyView.name)!\r\n name = signal(this.property.name);\r\n title = signal(this.property.title);\r\n description = signal(this.property.description);\r\n\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const viewProp = this.entity.interfaces?.master?.single?.properties?.find(c => c.name == this.property.name);\r\n const source = cloneDeep(viewProp?.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n node = computed<AXPWidgetNode>(() => {\r\n const schema = this.property.schema!;\r\n const widget = schema.interface!;\r\n return {\r\n type: widget.type,\r\n mode: 'view',\r\n path: this.name(),\r\n children: widget.children,\r\n formula: widget.formula,\r\n options: merge(\r\n schema.interface?.options,\r\n //this.property.options?.create?.widget,\r\n { validationRules: this.property.validations },\r\n )\r\n } as AXPWidgetNode;\r\n })\r\n}\r\n\r\n\r\n\r\nexport class AXPEntityMasterSingleViewModel {\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n private _viewDef = cloneDeep(this.entityDef.interfaces?.master?.single)!\r\n private session = this.injector.get(AXPSessionService);\r\n private formatService = this.injector.get(AXFormatService)\r\n private workflow = this.injector.get(AXPWorkflowService)\r\n\r\n public events$: Subject<{ action: string }> = new Subject();\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity,\r\n private entityData: any,\r\n ) {\r\n this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent)).subscribe((event) => {\r\n if (\r\n event.payload.entity == this.entityDef.source &&\r\n event.payload.ids.includes(this.context().id)\r\n ) {\r\n this.workflow.execute('show-list-view', {\r\n entity: this.entityDef.source\r\n });\r\n }\r\n });\r\n this.workflow.events$.pipe(ofType(AXPEntityModifyEvent)).subscribe(async (event) => {\r\n if (\r\n event.payload.entity == this.entityDef.source &&\r\n event.payload.values.id === this.context().id\r\n ) {\r\n this.context.set(event.payload.values);\r\n }\r\n });\r\n }\r\n\r\n\r\n public context = signal<any>(cloneDeep(this.entityData));\r\n\r\n private actions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.entityDef.interfaces?.master?.single?.actions?.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\r\n });\r\n\r\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'primary');\r\n });\r\n\r\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'secondary');\r\n });\r\n\r\n public sections = computed<AXPEntityMasterSingleViewGroupViewModel[]>(() => {\r\n const viewProps = this.entityDef.interfaces?.master?.single?.properties?.map(c => c.name);\r\n const props = this.entityDef.properties.filter(c =>\r\n c.groupId &&\r\n c.schema.hidden != true &&\r\n viewProps?.includes(c.name)\r\n );\r\n const groups = this.entityDef.interfaces?.master?.single?.sections?.filter(g =>\r\n props.some(p => p.groupId == g.id)\r\n ) ?? [];\r\n const result = groups?.map((section) => {\r\n return new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section)\r\n })\r\n return (result ?? []) as AXPEntityMasterSingleViewGroupViewModel[];\r\n });\r\n\r\n //****************** Title ******************//\r\n public title = computed<string>(() => {\r\n const suggestedProps = this.entityDef.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\r\n let suggestedFormat = 'Item #{{id}}';\r\n if (suggestedProps) suggestedFormat = `{{${suggestedProps.name}}}`;\r\n return this.formatService.format(this._viewDef.title ?? suggestedFormat,\r\n 'string',\r\n this.context()\r\n );\r\n });\r\n //****************** Description ******************//\r\n public description = computed<string | null>(() => {\r\n return this._viewDef.description ? this.formatService.format(this._viewDef.description,\r\n 'string',\r\n this.context()\r\n ) : null;\r\n });\r\n\r\n //****************** Beardcrumbs ******************//\r\n public beardcrumbs = computed<AXPBeardCrumb[]>(() => {\r\n return [\r\n {\r\n title: \"Home\",\r\n icon: \"fa-solid fa-home ax-text-xs ax-me-2\",\r\n url: [`/${this.session.application?.name}`]\r\n },\r\n {\r\n title: this.entityDef.formats.plural ?? this.entityDef.formats.individual,\r\n url: [`/${this.session.application?.name}`, 'm', `${this.entityDef.module}`, 'e', `${this.entityDef.name}`, 'list']\r\n },\r\n {\r\n title: this.title(),\r\n }\r\n ]\r\n });\r\n\r\n\r\n public relatedEntities = computed<AXPEntityDetailListViewModel[]>(() => {\r\n return this.entityDef.relatedEntities?.map(re =>\r\n new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })\r\n ) ?? []\r\n });\r\n\r\n\r\n public async executeCommand(commandName: string, data: any = null) {\r\n // debugger\r\n //TODO: syntact for workflow\r\n switch (commandName) {\r\n case 'delete-entity':\r\n this.workflow.execute('delete-entity', {\r\n entity: this.entityDef.source,\r\n data: [this.context()],\r\n });\r\n break;\r\n case 'modify-entity-section': {\r\n this.workflow.execute('modify-entity-section', {\r\n entity: this.entityDef.source,\r\n data: {\r\n id: this.context().id,\r\n properties: (data as AXPEntityMasterSingleViewGroupViewModel).editableProps().map(m => m.name()),\r\n },\r\n });\r\n break;\r\n }\r\n default:\r\n {\r\n const action = this.actions().find(c => c.name == commandName);\r\n this.workflow.execute(commandName, {\r\n entity: this.entityDef.source,\r\n data: action?.scope == AXPEntityCommandScope.Individual ? data : null\r\n })\r\n }\r\n }\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityDetailViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string, id: string): Promise<AXPEntityMasterSingleViewModel> {\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(true);\r\n if (config.queries.byKey) {\r\n const func = config.queries.byKey.execute as Function;\r\n const data = await func(id);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterSingleViewModel(this.injector, config, data);\r\n }\r\n this.layout.setNavigationLoading(false);\r\n return Promise.reject('cannot fetch ');\r\n }\r\n}\r\n\r\n\r\nexport const AXPEntityDetailViewModelResolver: ResolveFn<Promise<AXPEntityMasterSingleViewModel>> = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n service: AXPEntityDetailViewModelFactory = inject(AXPEntityDetailViewModelFactory)\r\n): Promise<AXPEntityMasterSingleViewModel> => {\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 //\r\n return service.create(moduleName, entityName, id);\r\n};\r\n\r\n\r\n","import { Injectable, inject, Injector, computed, signal } from \"@angular/core\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { AXPWorkflowService } from \"@acorex/platform/workflow\";\r\nimport { cloneDeep, merge, set } from \"lodash-es\";\r\nimport { AXPWidgetNode } from \"@acorex/platform/layout/builder\";\r\nimport { AXPEntity, AXPEntityPropertyGroup, AXPGridLayoutOptions, AXPEntityProperty, AXPLayoutService, AXPEntityPropertyCreateView, AXPEntitySectionView } from \"@acorex/platform/common\";\r\n\r\nexport class AXPEntityCreateViewSectionViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntitySectionView) {\r\n }\r\n\r\n\r\n group = this.entity.groups?.find(c => c.id == this.section.id)!;\r\n name = signal(this.group.id);\r\n\r\n title = computed<string>(() => {\r\n return this.group.title ?? this.group.id;\r\n });\r\n\r\n description = computed<string | null | undefined>(() => {\r\n return this.group.description;;\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.section.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n\r\n elements = computed(() => {\r\n const createProps = this.entity.interfaces?.master?.create?.properties ?? []\r\n const createPropsNames = createProps.map(c => c.name)\r\n const props = this.entity.properties.filter(c =>\r\n c.groupId == this.group.id &&\r\n c.schema.hidden != true &&\r\n createPropsNames.includes(c.name)\r\n );\r\n return props.map(p => {\r\n return new AXPEntityCreateViewElementViewModel(this.entity, this, p, createProps.find(c => c.name == p.name)!);\r\n })\r\n });\r\n}\r\n\r\nexport class AXPEntityCreateViewElementViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntityCreateViewSectionViewModel, private property: AXPEntityProperty, private createProp: AXPEntityPropertyCreateView) {\r\n\r\n }\r\n\r\n name = signal(this.property.name);\r\n title = signal(this.property.title);\r\n description = signal(this.property.description);\r\n\r\n editable = computed<boolean>(() => {\r\n return !(this.property.schema.readonly ?? false)\r\n });\r\n\r\n isRequired = computed<boolean>(() => {\r\n return this.property.validations?.some(c => c.rule == 'required') || false\r\n });\r\n\r\n layout = computed<AXPGridLayoutOptions>(() => {\r\n const source = cloneDeep(this.createProp.layout ?? {}) as object;\r\n set(source, \"positions.default.colSpan\", 12);\r\n return source as AXPGridLayoutOptions;\r\n });\r\n\r\n node = computed<AXPWidgetNode>(() => {\r\n const schema = this.property.schema!;\r\n const widget = schema.interface!;\r\n return {\r\n type: widget.type,\r\n mode: this.editable() ? 'edit' : 'view',\r\n path: this.name(),\r\n children: widget.children,\r\n formula: widget.formula,\r\n triggers: widget.triggers,\r\n options: merge(\r\n schema.interface?.options,\r\n //this.property.options?.create?.widget,\r\n { validationRules: this.property.validations },\r\n )\r\n } as AXPWidgetNode;\r\n })\r\n}\r\n\r\n\r\nexport class AXPEntityMasterCreateViewModel {\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n\r\n private workflow = this.injector.get(AXPWorkflowService)\r\n\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity,\r\n private initialData: any = {},\r\n ) {\r\n\r\n if (!initialData)\r\n initialData = {};\r\n this.config.properties\r\n .filter(c => c.schema.defaultValue && typeof c.schema.defaultValue === 'function')\r\n .forEach(p => {\r\n debugger\r\n const func = p.schema.defaultValue as Function;\r\n set(initialData, p.name, func(initialData));\r\n });\r\n this.context.set(initialData);\r\n }\r\n\r\n public context = signal<any>(this.initialData ?? {});\r\n\r\n public isInProgress = signal<boolean>(false);\r\n\r\n public sections = computed<AXPEntityCreateViewSectionViewModel[]>(() => {\r\n const createProps = this.entityDef.interfaces?.master?.create?.properties?.map(c => c.name) ?? []\r\n const props = this.entityDef.properties.filter(p => p.groupId && p.schema.hidden != true && createProps.includes(p.name));\r\n const groups = this.entityDef.interfaces?.master?.create?.sections?.filter(g => props.some(p => p.groupId == g.id)) ?? [];\r\n const result = groups?.map((section) => {\r\n return new AXPEntityCreateViewSectionViewModel(this.entityDef, section)\r\n })\r\n return (result ?? []) as AXPEntityCreateViewSectionViewModel[];\r\n });\r\n\r\n public async save(): Promise<any | void> {\r\n try {\r\n this.isInProgress.set(true);\r\n const exec = this.entityDef.commands?.create?.execute as Function;\r\n return await exec((this.context()));\r\n }\r\n finally {\r\n this.isInProgress.set(false);\r\n }\r\n }\r\n\r\n public async createNewOne() {\r\n await this.workflow.execute('create-entity', {\r\n payload: {\r\n module: this.entityDef.module,\r\n entity: this.entityDef.name,\r\n },\r\n });\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityCreateViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string, initialData: any = null): Promise<AXPEntityMasterCreateViewModel> {\r\n this.layout.setNavigationLoading(true);\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterCreateViewModel(this.injector, config, initialData);\r\n }\r\n}\r\n\r\n","import { cloneDeep } from \"lodash-es\";\r\nimport { Injectable, Injector, ViewRef, computed, inject, signal } from \"@angular/core\";\r\nimport { AXPEntityDefinitionRegistryService } from \"./entity-registery.service\";\r\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from \"./entity.viewmodel\";\r\nimport { AXFormatService } from \"@acorex/core/format\";\r\nimport { AXPSessionService } from \"@acorex/platform/auth\";\r\nimport { AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption } from \"@acorex/components/common\";\r\nimport { AXPWorkflowService, ofType } from \"@acorex/platform/workflow\";\r\nimport { AXPEntity, AXPQueryView, AXPBeardCrumb, AXPEntityCommandScope, AXPLayoutService } from \"@acorex/platform/common\";\r\nimport { AXPEntityDeletedEvent } from \"./workflows/delete-entity.workflow\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n\r\n\r\n\r\nexport interface AXPEntityMasterListViewSortPropViewModel {\r\n\r\n name: string;\r\n title: string;\r\n dir: string;\r\n}\r\n\r\n\r\nexport class AXPEntityMasterListViewQueryViewModel {\r\n\r\n constructor(private entity: AXPEntity, private section: AXPEntityMasterListViewModel, private view: AXPQueryView) {\r\n\r\n }\r\n\r\n name = this.view.name;\r\n title = this.view.title;\r\n sorts = this.view.sorts;\r\n columns = this.view.columns;\r\n conditions = this.view.conditions;\r\n\r\n}\r\n\r\n\r\nexport class AXPEntityMasterListViewModel {\r\n\r\n\r\n private entityDef = cloneDeep(this.config)!;\r\n private _viewDef = cloneDeep(this.entityDef.interfaces?.master?.list)!\r\n private formatService = this.injector.get(AXFormatService)\r\n private session = this.injector.get(AXPSessionService);\r\n private workflow = this.injector.get(AXPWorkflowService);\r\n\r\n public events$: Subject<{ action: string }> = new Subject();\r\n\r\n\r\n\r\n dataSource = new AXDataSource({\r\n byKey: (key) => {\r\n const func = this.entityDef.queries.byKey.execute as Function;\r\n return func();\r\n },\r\n load: (e) => {\r\n const func = this.entityDef.queries.list?.execute as Function;\r\n return func(e);\r\n },\r\n pageSize: 10,\r\n key: 'id'\r\n\r\n })\r\n\r\n\r\n constructor(\r\n private injector: Injector,\r\n private config: AXPEntity\r\n ) {\r\n this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent)).subscribe((event) => {\r\n if (\r\n event.payload.entity == this.entityDef.source\r\n ) {\r\n this.selectedItems.set([]);\r\n this.events$.next({ action: \"refresh\" });\r\n }\r\n });\r\n }\r\n\r\n public selectedItems = signal<any[]>([]);\r\n\r\n public hasSelectedItems = computed<boolean>(() => {\r\n return this.selectedItems().length > 0\r\n });\r\n\r\n public clearSelection(): void {\r\n this.selectedItems.set([]);\r\n }\r\n\r\n //****************** Title ******************//\r\n public title = computed<string>(() => {\r\n return this._viewDef.title ?? this.entityDef.formats.plural!;\r\n });\r\n //****************** Description ******************//\r\n public description = computed<string | null>(() => {\r\n return this._viewDef.description ?? null;\r\n });\r\n\r\n //****************** Inline filter ******************//\r\n public inlineFiltersPlaceholders = computed<string[]>(() => {\r\n return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\r\n });\r\n\r\n public hasInlineFilters = computed<boolean>(() => {\r\n return this.inlineFiltersPlaceholders().length > 0;\r\n });\r\n\r\n //****************** Beardcrumbs ******************//\r\n public beardcrumbs = computed<AXPBeardCrumb[]>(() => {\r\n return [\r\n {\r\n title: \"Home\",\r\n icon: \"fa-solid fa-home ax-text-xs ax-me-2\",\r\n url: [`/${this.session.application?.name}`]\r\n },\r\n {\r\n title: this.title(),\r\n url: [`/${this.session.application?.name}`, 'm', `${this.entityDef.module}`, 'e', `${this.entityDef.name}`, 'list']\r\n }\r\n ]\r\n });\r\n\r\n //****************** Actions ******************//\r\n private actions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n const list = this.entityDef.interfaces?.master?.list?.actions ?? [];\r\n return list\r\n .filter(a =>\r\n (a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\r\n (a.scope != AXPEntityCommandScope.Selected && !this.hasSelectedItems())\r\n )\r\n .map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\r\n });\r\n\r\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'primary');\r\n });\r\n\r\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\r\n return this.actions().filter(c => c.priority == 'secondary');\r\n });\r\n\r\n //****************** Filter ******************//\r\n\r\n private inlineFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'or',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n private advanceFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n applyInlineFilter(value: string) {\r\n const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\r\n this.inlineFilters.filters = [];\r\n if (value) {\r\n props.forEach(p => {\r\n this.inlineFilters.filters?.push({\r\n field: p.name,\r\n operator: {\r\n type: 'contains'\r\n },\r\n value\r\n })\r\n })\r\n }\r\n this.applyFilterAndSort();\r\n }\r\n\r\n applyFilterAndSort() {\r\n this.dataSource.clearFilter();\r\n //\r\n this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\r\n //\r\n const inline = this.inlineFilters.filters?.length ?? 0;\r\n const advance = this.advanceFilters.filters?.length ?? 0;\r\n if (inline && !advance) {\r\n this.dataSource.filter(this.inlineFilters);\r\n }\r\n else if (!inline && advance) {\r\n this.dataSource.filter(this.advanceFilters);\r\n }\r\n else if (inline && advance) {\r\n this.dataSource.filter({\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: [this.inlineFilters, this.advanceFilters]\r\n });\r\n }\r\n //\r\n this.dataSource.refresh();\r\n }\r\n\r\n //****************** Columns ******************//\r\n\r\n private allAvailableColumns = () => {\r\n const columns = this.entityDef.columns?.map(c => c.name) ?? [];\r\n const props = this.entityDef.properties.filter(p => p.schema.hidden != true)\r\n const displayColumns = props.filter(p => columns.some(c => c == p.name));\r\n return displayColumns.map(p => {\r\n return new AXPEntityListViewColumnViewModel(p, this.entityDef.columns?.find(c => c.name == p.name)!);\r\n })\r\n };\r\n\r\n visibleColumnCount = () => {\r\n return this.columns().filter(c => c.visible == true).length;\r\n };\r\n\r\n columns = signal<AXPEntityListViewColumnViewModel[]>([]);\r\n\r\n resetColumns() {\r\n this.applyViewColumns();\r\n }\r\n\r\n applyColumns() {\r\n //this.columns.set(this.clonedColumns())\r\n }\r\n\r\n applyViewColumns() {\r\n const cols = this.view().columns;\r\n const cloned = this.allAvailableColumns()\r\n .map(c => {\r\n const column = this.entityDef.columns?.find(cc => cc.name == c.name);\r\n const prop = this.entityDef.properties.find(p => p.name == c.name);\r\n const col = new AXPEntityListViewColumnViewModel(prop!, column!);\r\n col.visible = !cols.some(c => c == col.name) && col.visible != false;\r\n return col;\r\n })\r\n this.columns.set(cloned);\r\n }\r\n\r\n //****************** Sort ******************//\r\n\r\n sortableFields = () => {\r\n const props = this.entityDef.properties.filter(c => c.options?.sort?.enabled);\r\n return props.map(e => {\r\n return {\r\n name: e.name,\r\n title: e.title,\r\n dir: 'asc'\r\n };\r\n })\r\n };\r\n\r\n sortableFieldsCount = () => {\r\n return this.entityDef.properties.filter(c => c.options?.sort?.enabled).length ?? 0;\r\n }\r\n\r\n canSort = () => {\r\n return this.sortableFieldsCount() > 0\r\n };\r\n\r\n canAddMoreSort = () => {\r\n return this.sortedCount() < this.sortableFieldsCount();\r\n }\r\n\r\n\r\n sortedCount = () => {\r\n return this.sortedFields().length\r\n };\r\n\r\n sortedFields = signal<AXPEntityMasterListViewSortPropViewModel[]>([]);\r\n\r\n resetSorts() {\r\n this.applyViewSorts();\r\n }\r\n\r\n applySorts() {\r\n this.applyFilterAndSort();\r\n }\r\n\r\n addSort(): void {\r\n const prop = this.sortableFields().find(c => !this.sortedFields().some(s => s.name == c.name))\r\n if (prop) {\r\n this.sortedFields.set([...this.sortedFields(), ...[prop]]);\r\n }\r\n }\r\n\r\n removeSort(name: string): void {\r\n this.sortedFields.set(this.sortedFields().filter(c => c.name != name));\r\n }\r\n\r\n applyViewSorts() {\r\n const fileds = this.view().sorts.map(c => ({\r\n name: c.name,\r\n title: c.name,\r\n dir: c.dir ?? 'asc'\r\n }));\r\n this.sortedFields.set(fileds);\r\n }\r\n\r\n //****************** Views ******************//\r\n\r\n\r\n setView(viewName: string | null = null) {\r\n if (viewName != this.view().name) {\r\n this.view.set(this.views().find(c => c.name == viewName) ?? this.views()[0]);\r\n this.applyViewSorts();\r\n this.applyViewColumns();\r\n this.applyFilterAndSort();\r\n }\r\n }\r\n\r\n views = computed(() => {\r\n const views = this.entityDef.interfaces?.master?.list?.views ?? [];\r\n return views.map(v => {\r\n return new AXPEntityMasterListViewQueryViewModel(this.entityDef, this, v);\r\n })\r\n });\r\n\r\n view = signal<AXPEntityMasterListViewQueryViewModel>(this.views()[0]);\r\n\r\n\r\n //****************** Commands ******************//\r\n public async executeCommand(commandName: string, data: any = null) {\r\n const action = this.actions().find(c => c.name == commandName);\r\n await this.workflow.execute(commandName, {\r\n entity: this.entityDef.source,\r\n data: action?.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : data\r\n })\r\n }\r\n\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPEntityListViewModelFactory {\r\n private entityService = inject(AXPEntityDefinitionRegistryService);\r\n private layout = inject(AXPLayoutService);\r\n private injector = inject(Injector);\r\n\r\n public async create(moduleName: string, entityName: string): Promise<AXPEntityMasterListViewModel> {\r\n this.layout.setNavigationLoading(true);\r\n const config = await this.entityService.resolve(moduleName, entityName);\r\n this.layout.setNavigationLoading(false);\r\n return new AXPEntityMasterListViewModel(this.injector, config);\r\n }\r\n}\r\n\r\nexport const AXPEntityListViewModelResolver: ResolveFn<Promise<AXPEntityMasterListViewModel>> = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n service: AXPEntityListViewModelFactory = inject(AXPEntityListViewModelFactory)\r\n): Promise<AXPEntityMasterListViewModel> => {\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 //\r\n return service.create(moduleName, entityName);\r\n};\r\n\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 { AXPEntityCreateViewModelFactory } from '../entity-master-create.viewmodel';\r\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\r\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\r\n\r\nexport const AXPEntityCreateEvent = createWorkFlowEvent<{ entity: string }>('[Entity] Created!');\r\n\r\n@Injectable()\r\nexport class AXPEntityCreatePopupAction extends AXPWorkflowAction {\r\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\r\n private popupService = inject(AXPopupService);\r\n private platform = inject(AXPlatform);\r\n private factory = inject(AXPEntityCreateViewModelFactory);\r\n private config = inject(AXP_ENTITY_CONFIG_TOKEN)\r\n\r\n\r\n\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n\r\n const [module, entity] = context.getVariable<string>('entity').split(\".\");\r\n const dataContext = context.getVariable<any>('context');\r\n const entityRef = await this.entityRegistery.resolve(module, entity);\r\n const com = await this.config.viewers.master.create();\r\n const result = await this.popupService.open(com, {\r\n title: `Create New ${entityRef.formats.individual}`,\r\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\r\n data: {\r\n vm: await this.factory.create(module, entity, dataContext),\r\n entity,\r\n },\r\n });\r\n context.setOutput('result', false);\r\n if (result.data?.save) {\r\n context.setOutput('result', true);\r\n context.setVariable('redirect', result.data.redirect);\r\n context.setVariable('data', result.data.item);\r\n }\r\n }\r\n}\r\n\r\nexport class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {\r\n async execute(context: AXPWorkflowContext): Promise<void> {\r\n this.dispatch(AXPEntityCreateEvent({ entity: context.getVariable<string>('entity') }));\r\n }\r\n}\r\n\r\nexport const AXPCreateEntityWorkflow: AXPWorkflow = {\r\n startStepId: 'show-popup',\r\n steps: {\r\n \"show-popup\": {\r\n action: 'AXPEntityCreatePopupAction',\r\n nextSteps: [\r\n {\r\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\r\n nextStepId: 'show-toast',\r\n },\r\n ],\r\n },\r\n \"show-toast\": {\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: 'dispatch-event',\r\n },\r\n ],\r\n },\r\n \"dispatch-event\": {\r\n action: 'AXPEntityCreateSubmittedAction',\r\n nextSteps: [\r\n {\r\n conditions: [{ type: 'SINGLE', expression: 'context.getVariable(\"redirect\") == true' }],\r\n nextStepId: 'show-entity',\r\n },\r\n ],\r\n },\r\n \"show-entity\": {\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, 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 [module, entity] = context.getVariable('entity').split(\".\");\r\n const { id } = context.getVariable('data');\r\n const newPayload = {\r\n commands: `/${this.sessionService.application?.name}/m/${module}/e/${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 { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n })\nexport class AXPLookupWidgetViewComponent extends AXPWidgetBase<any> {}","import { AXCommonModule, AXValueChangedEvent } from '@acorex/components/common';\r\nimport { AXDataTableModule, AXDataTableRowClick, AXDataTableRowDbClick } from '@acorex/components/data-table';\r\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\r\nimport { AXBasePageComponent } from '@acorex/components/page';\r\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\r\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\r\nimport { AXFormModule } from '@acorex/components/form';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\r\n@Component({\r\n template: `\r\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\r\n @if(vm.hasInlineFilters())\r\n {\r\n <div class=\"ax-w-full\" >\r\n <ax-search-box [placeholder]=\"'Search on '+vm.inlineFiltersPlaceholders().join(', ')\" [value]=\"searchTerm\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\" [axAutoFocus]=\"true\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-h-[50vh]\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\r\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\" \r\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowClick)=\"handleRowClick($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\r\n <!-- <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column> -->\r\n @for(col of vm.columns();track col.name) {\r\n @if(col.visible)\r\n {\r\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\r\n }\r\n }\r\n </ax-data-table>\r\n </div>\r\n <ax-footer>\r\n <ax-suffix>\r\n <ax-button look=\"solid\" color=\"ghost\" text=\"Close\" (onClick)=\"handleCloseClick()\"> </ax-button>\r\n <ax-button look=\"solid\" color=\"primary\" text=\"Select\" (onClick)=\"handleSelectClick()\" [disabled]=\"focusedRow==null\"> </ax-button>\r\n @if(!vm.canCreate())\r\n {\r\n <ax-button look=\"solid\" color=\"primary\" text=\"Create New\" (onClick)=\"handleCreateNewClick()\"> \r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n </ax-suffix>\r\n </ax-footer>\r\n `,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n AXCommonModule,\r\n AXButtonModule,\r\n AXFormModule,\r\n AXDecoratorModule,\r\n AXDropdownButtonModule,\r\n AXDataTableModule,\r\n AXSearchBoxModule,\r\n AXPLayoutBuilderModule\r\n ],\r\n inputs: []\r\n})\r\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\r\n\r\n\r\n protected vm: AXPLookupWidgetSelectorViewModel;\r\n protected searchTerm: string;\r\n protected focusedRow: any;\r\n\r\n\r\n // protected override ngOnInit(): void {\r\n // super.ngOnInit();\r\n\r\n // }\r\n\r\n protected ngAfterViewInit() {\r\n debugger\r\n if (this.searchTerm) {\r\n this.vm.applyInlineFilter(this.searchTerm);\r\n }\r\n else {\r\n this.vm.applyFilterAndSort();\r\n }\r\n }\r\n\r\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\r\n this.close({ items: [e.data] })\r\n }\r\n\r\n protected handleRowClick(e: AXDataTableRowClick) {\r\n this.focusedRow = e.data;\r\n }\r\n\r\n protected async handleSelectedRowsChange(rows: unknown[]) {\r\n //this.vm.selectedItems.set(rows);\r\n }\r\n\r\n handleChangeSearchValue(e: AXValueChangedEvent) {\r\n if (e.isUserInteraction) {\r\n this.vm.applyInlineFilter(e.value);\r\n }\r\n }\r\n\r\n protected async handleCreateNewClick() {\r\n this.close();\r\n await this.vm.create()\r\n }\r\n\r\n protected handleCloseClick() {\r\n this.close();\r\n }\r\n\r\n protected handleSelectClick() {\r\n if (this.focusedRow) {\r\n this.close({ items: [this.focusedRow] })\r\n }\r\n }\r\n}","import { AXDataSource, AXDataSourceCallbackResult, AXDataSourceFilterOption } from '@acorex/components/common';\r\nimport { AXPEntityListViewColumnViewModel } from '../../entity.viewmodel';\r\nimport { computed, Injector } from '@angular/core';\r\nimport { AXPEntity } from '@acorex/platform/common';\r\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\r\n\r\n\r\nexport class AXPLookupWidgetSelectorViewModel {\r\n private workflow = this.injector.get(AXPWorkflowService);\r\n\r\n constructor(private injector: Injector, private entityDef: AXPEntity, private parentFilters: AXDataSourceFilterOption | null = null) {\r\n\r\n }\r\n\r\n dataSource = new AXDataSource({\r\n byKey: (key) => {\r\n const func = this.entityDef.queries.byKey.execute as Function;\r\n return func();\r\n },\r\n load: (e) => {\r\n const func = this.entityDef.queries.list?.execute as Function;\r\n return func(e);\r\n },\r\n pageSize: 10,\r\n key: 'id'\r\n });\r\n\r\n\r\n public canCreate = computed(() => {\r\n return this.entityDef.commands?.create?.execute != null;\r\n });\r\n\r\n public async create(): Promise<void> {\r\n await this.workflow.execute('create-entity', {\r\n entity: this.entityDef.source,\r\n });\r\n }\r\n\r\n public inlineFiltersPlaceholders = computed<string[]>(() => {\r\n return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\r\n });\r\n\r\n public hasInlineFilters = computed<boolean>(() => {\r\n return this.inlineFiltersPlaceholders().length > 0;\r\n });\r\n\r\n\r\n public columns = () => {\r\n const listColumns = this.entityDef.columns ?? [];\r\n const columns = listColumns?.map(c => c.name) ?? [];\r\n const props = this.entityDef.properties.filter(p => p.schema.hidden != true)\r\n const displayColumns = props.filter(p => columns.some(c => c == p.name));\r\n return displayColumns.map(p => {\r\n return new AXPEntityListViewColumnViewModel(p, listColumns?.find(c => c.name == p.name)!);\r\n })\r\n };\r\n\r\n\r\n private inlineFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'or',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n private advanceFilters: AXDataSourceFilterOption = {\r\n field: null as any,\r\n logic: 'and',\r\n operator: null as any,\r\n filters: []\r\n };\r\n\r\n applyInlineFilter(value: string, refresh: boolean = true) {\r\n const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\r\n this.inlineFilters.filters = [];\r\n if (value) {\r\n props.forEach(p => {\r\n this.inlineFilters.filters?.push({\r\n field: p.name,\r\n operator: {\r\n type: 'contains'\r\n },\r\n value\r\n })\r\n })\r\n }\r\n if (refresh)\r\n this.applyFilterAndSort();\r\n }\r\n\r\n applyFilterAndSort() {\r\n this.dataSource.clearFilter();\r\n //\r\n //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\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: this.parentFilters ? [this.inlineFilters, this.parentFilters] : [this.inlineFilters]\r\n });\r\n //\r\n this.dataSource.refresh();\r\n }\r\n\r\n\r\n\r\n async find(value: string): Promise<AXDataSourceCallbackResult<any>> {\r\n this.applyInlineFilter(value.trim(), false);\r\n const func = this.entityDef.queries.list?.execute as Function;\r\n return await func({ filter: this.inlineFilters, take: 10 }) ?? [];\r\n }\r\n}","import { AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXEvent, AXFocusEvent, AXHtmlEvent, AXValueChangedEvent } from '@acorex/components/common';\r\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\r\nimport { AXPLayoutBuilderService, AXPWidgetBase } from '@acorex/platform/layout/builder';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, Injector, signal, viewChild, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXP_ENTITY_DEFINITION_LOADER } from '../../entity.config';\r\nimport { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXFormatService } from '@acorex/core/format';\r\nimport { AXPopupService } from '@acorex/components/popup';\r\nimport { AXPLookupWidgetSelectorComponent } from './lookup-widget-selector.component';\r\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\r\nimport { AXPEntity, AXPQueryFilter, AXPValidationRules } from '@acorex/platform/common';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { get, isEqual } from 'lodash-es';\r\nimport { AXValidationModule } from '@acorex/core/validation';\r\nimport { AXFormModule } from '@acorex/components/form';\r\n\r\n@Component({\r\n template: `\r\n <ax-text-box [ngModel]=\"displayText()\" (onValueChanged)=\"handleValueChange($event)\" [placeholder]=\"placeholder()\" (onKeyUp)=\"handleKeyDown($event)\" (onBlur)=\"handleOnBlur($event)\">\r\n @for (validation of validationRules; track $index) {\r\n <ax-validation-rule [rule]=\"validation.rule\" [message]=\"validation.options?.message\" [options]=\"validation.options\"></ax-validation-rule>\r\n }\r\n <ax-suffix>\r\n <ax-button color=\"ghost\" look=\"twotone\" [disabled]=\"isLoading()\" (onClick)=\"handleOnClick($event)\">\r\n @if(isLoading())\r\n {\r\n <ax-loading></ax-loading> \r\n }\r\n @else {\r\n <ax-icon icon=\"far fa-search\">\r\n </ax-icon>\r\n }\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-text-box>\r\n `,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXSelectBoxModule,\r\n AXTextBoxModule,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXLoadingModule,\r\n AXValidationModule,\r\n AXFormModule\r\n ],\r\n inputs: [\"entity\", \"conditions\", \"expose\"]\r\n})\r\nexport class AXPLookupWidgetEditComponent extends AXPWidgetBase<any> {\r\n\r\n protected textField = \"title\";\r\n protected expose: string | undefined;\r\n protected entity: string;\r\n protected filter: AXDataSourceFilterOption | null;\r\n\r\n protected validationRules: AXPValidationRules = [];\r\n\r\n protected injector = inject(Injector);\r\n protected loader = inject(AXP_ENTITY_DEFINITION_LOADER);\r\n protected formatService = inject(AXFormatService);\r\n protected popupService = inject(AXPopupService);\r\n private readonly builderService = inject(AXPLayoutBuilderService);\r\n private entityDef: AXPEntity | null;\r\n\r\n protected conditions?: AXPQueryFilter[];\r\n\r\n protected displayText = signal(\"\");\r\n protected selectedItem = signal<any | null>(null);\r\n protected searchTerm = signal<string | null>(null);\r\n\r\n @ViewChild(AXTextBoxComponent)\r\n textbox: AXTextBoxComponent;\r\n\r\n protected isLoading = signal(false);\r\n\r\n protected isOpen = signal(false);\r\n\r\n protected vm = signal<AXPLookupWidgetSelectorViewModel | null>(null);\r\n\r\n protected placeholder = computed(() => {\r\n return 'Search on ' + this.vm()?.inlineFiltersPlaceholders().join(', ')\r\n })\r\n\r\n\r\n override async ngOnInit() {\r\n super.ngOnInit();\r\n //\r\n const [module, entity] = this.entity.split('.');\r\n this.entityDef = await this.loader.get(module, entity);\r\n //\r\n this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef!, this.filter));\r\n //\r\n this.textField = this.entityDef?.formats.lookup ?? this.entityDef?.properties.find(c => c.name != 'id')?.name ?? \"title\";\r\n const value = this.getValue()\r\n if (typeof value == 'object')\r\n this.displayText.set(this.formatService.format(this.textField, \"string\", value))\r\n else if (value != null) {\r\n await this.findByValue();\r\n }\r\n this.builderService.onChanged.subscribe(async c => {\r\n if (c.path == this.path) {\r\n console.log(c, this.getValue());\r\n await this.findByValue();\r\n }\r\n })\r\n }\r\n\r\n private async findByValue() {\r\n const byKey = this.entityDef?.queries.byKey?.execute as Function;\r\n const item = await byKey(this.getValue());\r\n this.setItems(item);\r\n }\r\n\r\n\r\n handleOnClick(e: AXClickEvent) {\r\n this.showSelector();\r\n }\r\n\r\n\r\n private showSelector() {\r\n this.isOpen.set(true)\r\n this.popupService.open(AXPLookupWidgetSelectorComponent, {\r\n title: `${this.entityDef?.formats.plural} Lookup`,\r\n size: (this.vm()?.columns().length ?? 0) > 3 ? 'lg' : 'md',\r\n data: {\r\n vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef!, this.filter),\r\n searchTerm: this.searchTerm() == this.displayText() ? null : this.searchTerm()\r\n }\r\n }).then((e: any) => {\r\n this.isOpen.set(false)\r\n this.textbox.focus();\r\n if (e.data?.items) {\r\n this.setItems(e.data?.items[0]);\r\n }\r\n })\r\n }\r\n\r\n protected handleValueChange(e: AXValueChangedEvent) {\r\n this.searchTerm.set(e.value);\r\n }\r\n\r\n protected handleOnBlur(e: AXFocusEvent) {\r\n const com = (e.component as AXTextBoxComponent);\r\n const input = (com['input'] as ElementRef).nativeElement as HTMLInputElement;\r\n setTimeout(() => {\r\n if (this.selectedItem()) {\r\n input.value = this.displayText();\r\n }\r\n else {\r\n if (!this.isOpen()) {\r\n input.value = '';\r\n this.searchTerm.set(null);\r\n }\r\n }\r\n }, 100);\r\n }\r\n\r\n protected async handleKeyDown(e: AXHtmlEvent) {\r\n const keyEvent = e.nativeEvent as KeyboardEvent;\r\n const value = this.searchTerm()?.trim();\r\n if ((keyEvent.code == \"Enter\" || keyEvent.code == \"NumpadEnter\") && value) {\r\n this.isLoading.set(true);\r\n const result = await this.vm()?.find(value);\r\n if (result?.total == 1) {\r\n this.setItems(result.items[0]);\r\n }\r\n else {\r\n this.showSelector();\r\n }\r\n this.isLoading.set(false);\r\n }\r\n }\r\n\r\n private setItems(item: any) {\r\n this.searchTerm.set(null);\r\n this.displayText.set('');\r\n this.selectedItem.set(item);\r\n const text = this.formatService.format(this.textField, \"string\", item);\r\n this.displayText.set(text);\r\n this.setValue(item.id);\r\n if (this.expose) {\r\n if (typeof this.expose == 'string') {\r\n this.builderService.setValue(this.expose, item);\r\n }\r\n else if (Array.isArray(this.expose)) {\r\n (this.expose as any[]).forEach(i => {\r\n if (typeof i == \"string\") {\r\n this.builderService.setValue(i, item);\r\n }\r\n else {\r\n this.builderService.setValue(i.target, get(item, i.source));\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n public clear() {\r\n this.searchTerm.set('');\r\n this.displayText.set('');\r\n this.selectedItem.set(null);\r\n }\r\n}","import { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule],\n inputs: []\n})\nexport class AXPLookupWidgetFilterComponent extends AXPWidgetBase<any> {}","import { AXPColumnWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n@Component({\n template: `{{rawValue}}`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: ['rawValue']\n})\nexport class AXPLookupWidgetColumnComponent extends AXPColumnWidgetBase<any> {}","import { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n})\nexport class AXPLookupWidgetPrintComponent extends AXPWidgetBase<any> {}","import { AXPWidgetBase } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n@Component({\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n})\nexport class AXPLookupWidgetDesignerComponent extends AXPWidgetBase<any> {}","import { AXPWidgetConfig } from '@acorex/platform/layout/builder';\nexport const AXPLookupWidget: AXPWidgetConfig = {\n name: \"lookup\",\n components: {\n view: {\n component: () => import('./lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n filter: {\n component: () => import('./lookup-widget-filter.component').then((c) => c.AXPLookupWidgetFilterComponent),\n },\n column: {\n component: () => import('./lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n },\n print: {\n component: () => import('./lookup-widget-print.component').then((c) => c.AXPLookupWidgetPrintComponent),\n },\n designer: {\n component: () => import('./lookup-widget-designer.component').then((c) => c.AXPLookupWidgetDesignerComponent),\n },\n }\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 [moduleName, entityName] = context.getVariable('entity').split(\".\");\r\n const newPayload = {\r\n commands: `/${this.sessionService.application?.name}/m/${moduleName}/e/${entityName}/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 { NgModule, inject } from '@angular/core';\r\nimport { ROUTES, RouterModule, Routes } from '@angular/router';\r\nimport { AXPEntityDetailViewModelResolver } from './entity-master-single.viewmodel';\r\nimport { AXP_ENTITY_CONFIG_TOKEN } from './entity.config';\r\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\r\nimport { AXPCreateEntityWorkflow, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction } from './workflows/create-entity.workflow';\r\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction } from './workflows/delete-entity.workflow';\r\nimport { AXPEntityModifyConfirmedAction, AXPEntityModifySectionPopupAction, AXPModifyEntitySectionWorkflow } from './workflows/modify-section.workflow';\r\nimport { AXPEntityListViewModelResolver } from './entity-master-list.viewmodel';\r\nimport { AXPShowDetailViewAction, AXPShowDetailsViewWorkflow } from './workflows/show-details.workflow';\r\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\r\nimport { AXPLookupWidget } from './widgets/lookup-widget';\r\nimport { AXPShowListViewAction, AXPShowListViewWorkflow } from './workflows/show-list.workflow';\r\n\r\n\r\nfunction routesFacory() {\r\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\r\n let routes: Routes = [];\r\n routes = [\r\n {\r\n path: ':app/m',\r\n component: config.viewers.root(),\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 {\r\n path: 'e/:entity/list',\r\n loadComponent: () => {\r\n return config.viewers.master.list()\r\n },\r\n resolve: {\r\n vm: AXPEntityListViewModelResolver,\r\n },\r\n },\r\n {\r\n path: 'e/:entity/:id/view',\r\n resolve: { vm: AXPEntityDetailViewModelResolver },\r\n loadComponent: () => {\r\n return config.viewers.master.single()\r\n },\r\n },\r\n {\r\n path: 'e/:entity/:id',\r\n redirectTo: 'e/:entity/:id/view',\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: 'e/:entity',\r\n redirectTo: ':entity/list',\r\n pathMatch: 'full',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ];\r\n return routes;\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule,\r\n AXPWorkflowModule.forChild({\r\n actions: {\r\n AXPEntityCreatePopupAction,\r\n AXPEntityPerformDeleteAction,\r\n \"entity-perform-delete\": AXPEntityPerformDeleteAction,\r\n AXPEntityModifySectionPopupAction,\r\n AXPEntityModifyConfirmedAction,\r\n AXPShowDetailViewAction,\r\n AXPEntityCreateSubmittedAction,\r\n AXPShowListViewAction\r\n },\r\n workflows: {\r\n 'create-entity': AXPCreateEntityWorkflow,\r\n 'delete-entity': AXPDeleteEntityWorkflow,\r\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\r\n 'open-entity': AXPShowDetailsViewWorkflow,\r\n 'show-list-view': AXPShowListViewWorkflow\r\n },\r\n }),\r\n AXPLayoutBuilderModule.forChild({\r\n widgets: [\r\n AXPLookupWidget,\r\n ],\r\n }),\r\n ],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n multi: true,\r\n useFactory: routesFacory,\r\n },\r\n ],\r\n})\r\nexport class AXPEntityModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i5","i6"],"mappings":"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"}