@acorex/modules 19.2.5 → 19.2.7

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 (208) hide show
  1. package/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +2 -2
  2. package/auth/lib/store/auth.effects.d.ts +2 -2
  3. package/fesm2022/{acorex-modules-application-management-module-designer.component-kMtkkid-.mjs → acorex-modules-application-management-module-designer.component-DPJ4qpK3.mjs} +4 -4
  4. package/fesm2022/acorex-modules-application-management-module-designer.component-DPJ4qpK3.mjs.map +1 -0
  5. package/fesm2022/acorex-modules-application-management.mjs +3 -3
  6. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  7. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CcRRSTGN.mjs → acorex-modules-auth-acorex-modules-auth-HwJJs-3A.mjs} +24 -24
  8. package/fesm2022/acorex-modules-auth-acorex-modules-auth-HwJJs-3A.mjs.map +1 -0
  9. package/fesm2022/acorex-modules-auth-app-chooser.component-BvxMkXPp.mjs +64 -0
  10. package/fesm2022/acorex-modules-auth-app-chooser.component-BvxMkXPp.mjs.map +1 -0
  11. package/fesm2022/{acorex-modules-auth-login.module-ua9uEgUG.mjs → acorex-modules-auth-login.module-CDvLUxls.mjs} +4 -4
  12. package/fesm2022/{acorex-modules-auth-login.module-ua9uEgUG.mjs.map → acorex-modules-auth-login.module-CDvLUxls.mjs.map} +1 -1
  13. package/fesm2022/acorex-modules-auth-master.layout-CnKBnl8W.mjs +23 -0
  14. package/fesm2022/acorex-modules-auth-master.layout-CnKBnl8W.mjs.map +1 -0
  15. package/fesm2022/{acorex-modules-auth-password.component-BVoPZUG9.mjs → acorex-modules-auth-password.component-1FnIjiZ8.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-auth-password.component-BVoPZUG9.mjs.map → acorex-modules-auth-password.component-1FnIjiZ8.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-auth-password.component-CIwOjQRh.mjs → acorex-modules-auth-password.component-C16jeHuJ.mjs} +4 -4
  18. package/fesm2022/acorex-modules-auth-password.component-C16jeHuJ.mjs.map +1 -0
  19. package/fesm2022/{acorex-modules-auth-routes-hR3jePok.mjs → acorex-modules-auth-routes-ZDDUhAWd.mjs} +2 -2
  20. package/fesm2022/{acorex-modules-auth-routes-hR3jePok.mjs.map → acorex-modules-auth-routes-ZDDUhAWd.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-auth-setting.provider-GJeEbIRd.mjs → acorex-modules-auth-setting.provider-DDl3OHw6.mjs} +2 -2
  22. package/fesm2022/{acorex-modules-auth-setting.provider-GJeEbIRd.mjs.map → acorex-modules-auth-setting.provider-DDl3OHw6.mjs.map} +1 -1
  23. package/fesm2022/acorex-modules-auth-tenant-chooser.component-CKsbiOUX.mjs +83 -0
  24. package/fesm2022/acorex-modules-auth-tenant-chooser.component-CKsbiOUX.mjs.map +1 -0
  25. package/fesm2022/{acorex-modules-auth-two-factor.module-CKe_H_-u.mjs → acorex-modules-auth-two-factor.module-C32MVGby.mjs} +2 -2
  26. package/fesm2022/{acorex-modules-auth-two-factor.module-CKe_H_-u.mjs.map → acorex-modules-auth-two-factor.module-C32MVGby.mjs.map} +1 -1
  27. package/fesm2022/acorex-modules-auth.mjs +1 -1
  28. package/fesm2022/acorex-modules-conversation.mjs +4 -4
  29. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  30. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-DGGKoVbL.mjs +908 -0
  31. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-DGGKoVbL.mjs.map +1 -0
  32. package/fesm2022/{acorex-modules-form-template-management-category.entity-BcfMw_wb.mjs → acorex-modules-form-template-management-category.entity-B1X2QyYV.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-form-template-management-category.entity-BcfMw_wb.mjs.map → acorex-modules-form-template-management-category.entity-B1X2QyYV.mjs.map} +1 -1
  34. package/fesm2022/acorex-modules-form-template-management-designer.page-BLbPLLdP.mjs.map +1 -1
  35. package/fesm2022/{acorex-modules-form-template-management-setting.provider-ceq0ZtxA.mjs → acorex-modules-form-template-management-setting.provider-D-HyCbH7.mjs} +2 -2
  36. package/fesm2022/{acorex-modules-form-template-management-setting.provider-ceq0ZtxA.mjs.map → acorex-modules-form-template-management-setting.provider-D-HyCbH7.mjs.map} +1 -1
  37. package/fesm2022/acorex-modules-form-template-management-template-picker.component-xiRKc4FF.mjs +126 -0
  38. package/fesm2022/acorex-modules-form-template-management-template-picker.component-xiRKc4FF.mjs.map +1 -0
  39. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CVyFN7D9.mjs → acorex-modules-form-template-management-template-widget-edit.component-CyZLM6M9.mjs} +2 -2
  40. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CyZLM6M9.mjs.map +1 -0
  41. package/fesm2022/{acorex-modules-form-template-management-template.entity-BpApQcvG.mjs → acorex-modules-form-template-management-template.entity-DXIhxJeU.mjs} +2 -2
  42. package/fesm2022/{acorex-modules-form-template-management-template.entity-BpApQcvG.mjs.map → acorex-modules-form-template-management-template.entity-DXIhxJeU.mjs.map} +1 -1
  43. package/fesm2022/acorex-modules-form-template-management.mjs +1 -907
  44. package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -1
  45. package/fesm2022/acorex-modules-notification-management.mjs +263 -9
  46. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  47. package/fesm2022/acorex-modules-organization-management-add-item.component-D0tN7Se4.mjs +83 -0
  48. package/fesm2022/acorex-modules-organization-management-add-item.component-D0tN7Se4.mjs.map +1 -0
  49. package/fesm2022/{acorex-modules-organization-managment-branch.entity-kuZxLStS.mjs → acorex-modules-organization-management-branch.entity-CbmnpHl2.mjs} +2 -2
  50. package/fesm2022/acorex-modules-organization-management-branch.entity-CbmnpHl2.mjs.map +1 -0
  51. package/fesm2022/{acorex-modules-organization-managment-chart.entity-BqUE8fbV.mjs → acorex-modules-organization-management-chart.entity-Bk4WgsYr.mjs} +2 -2
  52. package/fesm2022/acorex-modules-organization-management-chart.entity-Bk4WgsYr.mjs.map +1 -0
  53. package/fesm2022/{acorex-modules-organization-managment-company.entity-DJt8tCqO.mjs → acorex-modules-organization-management-company.entity-d7GaCVei.mjs} +2 -2
  54. package/fesm2022/acorex-modules-organization-management-company.entity-d7GaCVei.mjs.map +1 -0
  55. package/fesm2022/{acorex-modules-organization-managment-department.entity-C1PxLx6p.mjs → acorex-modules-organization-management-department.entity-Dl7y4Rva.mjs} +2 -2
  56. package/fesm2022/acorex-modules-organization-management-department.entity-Dl7y4Rva.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-organization-managment-division.entity-DHVnrP38.mjs → acorex-modules-organization-management-division.entity-Ckmu2Tj9.mjs} +2 -2
  58. package/fesm2022/acorex-modules-organization-management-division.entity-Ckmu2Tj9.mjs.map +1 -0
  59. package/fesm2022/{acorex-modules-organization-managment-employee.entity-D4BSxGAW.mjs → acorex-modules-organization-management-employee.entity-PwlBjkYo.mjs} +2 -2
  60. package/fesm2022/acorex-modules-organization-management-employee.entity-PwlBjkYo.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-organization-managment-employment-type.entity-Cgbezwio.mjs → acorex-modules-organization-management-employment-type.entity-9aOaYT_-.mjs} +2 -2
  62. package/fesm2022/acorex-modules-organization-management-employment-type.entity-9aOaYT_-.mjs.map +1 -0
  63. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-BzjTyYyS.mjs +92 -0
  64. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-BzjTyYyS.mjs.map +1 -0
  65. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-DObuNZKQ.mjs +145 -0
  66. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-DObuNZKQ.mjs.map +1 -0
  67. package/fesm2022/acorex-modules-organization-management-org-chart.page-Cz4ENQRa.mjs +868 -0
  68. package/fesm2022/acorex-modules-organization-management-org-chart.page-Cz4ENQRa.mjs.map +1 -0
  69. package/fesm2022/{acorex-modules-organization-managment-position.entity-Bbb5KAkm.mjs → acorex-modules-organization-management-position.entity-DDkiBefn.mjs} +2 -2
  70. package/fesm2022/acorex-modules-organization-management-position.entity-DDkiBefn.mjs.map +1 -0
  71. package/fesm2022/{acorex-modules-organization-managment-setting.keys-CF6Giykz.mjs → acorex-modules-organization-management-setting.keys-CF6Giykz.mjs} +1 -1
  72. package/fesm2022/acorex-modules-organization-management-setting.keys-CF6Giykz.mjs.map +1 -0
  73. package/fesm2022/{acorex-modules-organization-managment-setting.provider-nKs53GcA.mjs → acorex-modules-organization-management-setting.provider-eLv_qnmE.mjs} +3 -3
  74. package/fesm2022/acorex-modules-organization-management-setting.provider-eLv_qnmE.mjs.map +1 -0
  75. package/fesm2022/{acorex-modules-organization-managment.mjs → acorex-modules-organization-management.mjs} +66 -22
  76. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -0
  77. package/fesm2022/acorex-modules-platform-management.mjs +1455 -155
  78. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  79. package/fesm2022/acorex-modules-security-management.mjs +12 -1
  80. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  81. package/form-template-management/index.d.ts +0 -1
  82. package/form-template-management/lib/features/designer/index.d.ts +5 -0
  83. package/form-template-management/lib/{services → features/designer}/template.provider.d.ts +1 -1
  84. package/form-template-management/lib/features/index.d.ts +1 -0
  85. package/notification-management/lib/entities/channel/channel.types.d.ts +14 -2
  86. package/organization-management/README.md +3 -0
  87. package/organization-management/index.d.ts +4 -0
  88. package/{organization-managment → organization-management}/lib/entities/chart/chart.types.d.ts +10 -5
  89. package/organization-management/lib/features/index.d.ts +1 -0
  90. package/organization-management/lib/features/organization-chart/add-item/add-item.component.d.ts +21 -0
  91. package/organization-management/lib/features/organization-chart/index.d.ts +1 -0
  92. package/{organization-managment → organization-management}/lib/features/organization-chart/org-chart-configuration.page.d.ts +4 -4
  93. package/organization-management/lib/features/organization-chart/org-chart-configuration.service.d.ts +25 -0
  94. package/organization-management/lib/features/organization-chart/org-chart-print.service.d.ts +45 -0
  95. package/{organization-managment → organization-management}/lib/features/organization-chart/org-chart.page.d.ts +79 -8
  96. package/organization-management/lib/features/organization-chart/org-chart.service.d.ts +63 -0
  97. package/organization-management/lib/features/organization-chart/org-chart.type.d.ts +46 -0
  98. package/{organization-managment/lib/organization-managment.module.d.ts → organization-management/lib/organization-management.module.d.ts} +4 -4
  99. package/package.json +8 -8
  100. package/platform-management/lib/const.d.ts +12 -0
  101. package/platform-management/lib/entities/app-term/components/notify-app/notify-app.component.d.ts +1 -2
  102. package/platform-management/lib/entities/data-source/coulmn-def.widget.d.ts +56 -0
  103. package/platform-management/lib/entities/data-source/data-source.entity.d.ts +3 -0
  104. package/platform-management/lib/entities/data-source/data-source.service.d.ts +10 -0
  105. package/platform-management/lib/entities/data-source/data-source.types.d.ts +7 -0
  106. package/platform-management/lib/entities/data-source/datasource-provider.dynamic.d.ts +6 -0
  107. package/platform-management/lib/entities/data-source/index.d.ts +3 -0
  108. package/platform-management/lib/entities/index.d.ts +2 -0
  109. package/platform-management/lib/entities/promotion/components/index.d.ts +1 -0
  110. package/platform-management/lib/entities/promotion/components/promotion-slot/promotion-slot.component.d.ts +13 -0
  111. package/platform-management/lib/entities/promotion/index.d.ts +4 -0
  112. package/platform-management/lib/entities/promotion/promotion.entity.d.ts +3 -0
  113. package/platform-management/lib/entities/promotion/promotion.service.d.ts +10 -0
  114. package/platform-management/lib/entities/promotion/promotion.types.d.ts +15 -0
  115. package/platform-management/lib/platform-management.module.d.ts +2 -1
  116. package/security-management/index.d.ts +1 -0
  117. package/security-management/lib/menu.keys.d.ts +5 -0
  118. package/fesm2022/acorex-modules-application-management-module-designer.component-kMtkkid-.mjs.map +0 -1
  119. package/fesm2022/acorex-modules-auth-acorex-modules-auth-CcRRSTGN.mjs.map +0 -1
  120. package/fesm2022/acorex-modules-auth-app-chooser.component-DuRnQda8.mjs +0 -64
  121. package/fesm2022/acorex-modules-auth-app-chooser.component-DuRnQda8.mjs.map +0 -1
  122. package/fesm2022/acorex-modules-auth-master.layout-KNzdjwP6.mjs +0 -23
  123. package/fesm2022/acorex-modules-auth-master.layout-KNzdjwP6.mjs.map +0 -1
  124. package/fesm2022/acorex-modules-auth-password.component-CIwOjQRh.mjs.map +0 -1
  125. package/fesm2022/acorex-modules-auth-tenant-chooser.component-Cx3fK__H.mjs +0 -83
  126. package/fesm2022/acorex-modules-auth-tenant-chooser.component-Cx3fK__H.mjs.map +0 -1
  127. package/fesm2022/acorex-modules-form-template-management-template-picker.component-CG-_1tWi.mjs +0 -126
  128. package/fesm2022/acorex-modules-form-template-management-template-picker.component-CG-_1tWi.mjs.map +0 -1
  129. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CVyFN7D9.mjs.map +0 -1
  130. package/fesm2022/acorex-modules-organization-managment-branch.entity-kuZxLStS.mjs.map +0 -1
  131. package/fesm2022/acorex-modules-organization-managment-chart.entity-BqUE8fbV.mjs.map +0 -1
  132. package/fesm2022/acorex-modules-organization-managment-company.entity-DJt8tCqO.mjs.map +0 -1
  133. package/fesm2022/acorex-modules-organization-managment-department.entity-C1PxLx6p.mjs.map +0 -1
  134. package/fesm2022/acorex-modules-organization-managment-division.entity-DHVnrP38.mjs.map +0 -1
  135. package/fesm2022/acorex-modules-organization-managment-employee.entity-D4BSxGAW.mjs.map +0 -1
  136. package/fesm2022/acorex-modules-organization-managment-employment-type.entity-Cgbezwio.mjs.map +0 -1
  137. package/fesm2022/acorex-modules-organization-managment-org-chart-configuration.page-Dc6c7GmB.mjs +0 -310
  138. package/fesm2022/acorex-modules-organization-managment-org-chart-configuration.page-Dc6c7GmB.mjs.map +0 -1
  139. package/fesm2022/acorex-modules-organization-managment-org-chart.page-CTHNSn2n.mjs +0 -505
  140. package/fesm2022/acorex-modules-organization-managment-org-chart.page-CTHNSn2n.mjs.map +0 -1
  141. package/fesm2022/acorex-modules-organization-managment-position.entity-Bbb5KAkm.mjs.map +0 -1
  142. package/fesm2022/acorex-modules-organization-managment-setting.keys-CF6Giykz.mjs.map +0 -1
  143. package/fesm2022/acorex-modules-organization-managment-setting.provider-nKs53GcA.mjs.map +0 -1
  144. package/fesm2022/acorex-modules-organization-managment.mjs.map +0 -1
  145. package/organization-managment/README.md +0 -3
  146. package/organization-managment/index.d.ts +0 -3
  147. package/organization-managment/lib/features/organization-chart/org-chart-print.service.d.ts +0 -22
  148. package/organization-managment/lib/features/organization-chart/org-chart.service.d.ts +0 -35
  149. package/organization-managment/lib/features/organization-chart/org-chart.type.d.ts +0 -25
  150. /package/form-template-management/lib/{services → features/designer}/designer-connector.service.d.ts +0 -0
  151. /package/form-template-management/lib/{pages → features}/designer/designer.page.d.ts +0 -0
  152. /package/form-template-management/lib/{components → features/designer}/widgets/template/index.d.ts +0 -0
  153. /package/form-template-management/lib/{components → features/designer}/widgets/template/template-widget-designer.component.d.ts +0 -0
  154. /package/form-template-management/lib/{components → features/designer}/widgets/template/template-widget-edit.component.d.ts +0 -0
  155. /package/form-template-management/lib/{components → features/designer}/widgets/template/template-widget-view.component.d.ts +0 -0
  156. /package/form-template-management/lib/{components → features/designer}/widgets/template/template-widget.config.d.ts +0 -0
  157. /package/form-template-management/lib/{components → features/designer}/widgets/template-designer/index.d.ts +0 -0
  158. /package/form-template-management/lib/{components → features/designer}/widgets/template-designer/template-designer-widget-view.component.d.ts +0 -0
  159. /package/form-template-management/lib/{components → features/designer}/widgets/template-designer/template-designer-widget.config.d.ts +0 -0
  160. /package/form-template-management/lib/{components → features/designer}/widgets/template-picker/template-picker.component.d.ts +0 -0
  161. /package/form-template-management/lib/{components → features/designer}/widgets/template-picker/template.provider.d.ts +0 -0
  162. /package/form-template-management/lib/{workflows → features/designer/workflows}/create-template.workflow.d.ts +0 -0
  163. /package/form-template-management/lib/{workflows → features/designer/workflows}/design-template.workflow.d.ts +0 -0
  164. /package/{organization-managment → organization-management}/lib/const.d.ts +0 -0
  165. /package/{organization-managment → organization-management}/lib/entities/branch/branch.entity.d.ts +0 -0
  166. /package/{organization-managment → organization-management}/lib/entities/branch/branch.module.d.ts +0 -0
  167. /package/{organization-managment → organization-management}/lib/entities/branch/branch.service.d.ts +0 -0
  168. /package/{organization-managment → organization-management}/lib/entities/branch/branch.types.d.ts +0 -0
  169. /package/{organization-managment → organization-management}/lib/entities/branch/index.d.ts +0 -0
  170. /package/{organization-managment → organization-management}/lib/entities/chart/chart.entity.d.ts +0 -0
  171. /package/{organization-managment → organization-management}/lib/entities/chart/chart.module.d.ts +0 -0
  172. /package/{organization-managment → organization-management}/lib/entities/chart/chart.service.d.ts +0 -0
  173. /package/{organization-managment → organization-management}/lib/entities/chart/index.d.ts +0 -0
  174. /package/{organization-managment → organization-management}/lib/entities/company/company.entity.d.ts +0 -0
  175. /package/{organization-managment → organization-management}/lib/entities/company/company.module.d.ts +0 -0
  176. /package/{organization-managment → organization-management}/lib/entities/company/company.service.d.ts +0 -0
  177. /package/{organization-managment → organization-management}/lib/entities/company/company.types.d.ts +0 -0
  178. /package/{organization-managment → organization-management}/lib/entities/company/index.d.ts +0 -0
  179. /package/{organization-managment → organization-management}/lib/entities/department/department.entity.d.ts +0 -0
  180. /package/{organization-managment → organization-management}/lib/entities/department/department.module.d.ts +0 -0
  181. /package/{organization-managment → organization-management}/lib/entities/department/department.service.d.ts +0 -0
  182. /package/{organization-managment → organization-management}/lib/entities/department/department.types.d.ts +0 -0
  183. /package/{organization-managment → organization-management}/lib/entities/department/index.d.ts +0 -0
  184. /package/{organization-managment → organization-management}/lib/entities/division/division.entity.d.ts +0 -0
  185. /package/{organization-managment → organization-management}/lib/entities/division/division.module.d.ts +0 -0
  186. /package/{organization-managment → organization-management}/lib/entities/division/division.service.d.ts +0 -0
  187. /package/{organization-managment → organization-management}/lib/entities/division/division.types.d.ts +0 -0
  188. /package/{organization-managment → organization-management}/lib/entities/division/index.d.ts +0 -0
  189. /package/{organization-managment → organization-management}/lib/entities/employee/employee.entity.d.ts +0 -0
  190. /package/{organization-managment → organization-management}/lib/entities/employee/employee.module.d.ts +0 -0
  191. /package/{organization-managment → organization-management}/lib/entities/employee/employee.service.d.ts +0 -0
  192. /package/{organization-managment → organization-management}/lib/entities/employee/employee.types.d.ts +0 -0
  193. /package/{organization-managment → organization-management}/lib/entities/employee/index.d.ts +0 -0
  194. /package/{organization-managment → organization-management}/lib/entities/employment-type/employment-type.entity.d.ts +0 -0
  195. /package/{organization-managment → organization-management}/lib/entities/employment-type/employment-type.module.d.ts +0 -0
  196. /package/{organization-managment → organization-management}/lib/entities/employment-type/employment-type.service.d.ts +0 -0
  197. /package/{organization-managment → organization-management}/lib/entities/employment-type/employment-type.types.d.ts +0 -0
  198. /package/{organization-managment → organization-management}/lib/entities/employment-type/index.d.ts +0 -0
  199. /package/{organization-managment → organization-management}/lib/entities/index.d.ts +0 -0
  200. /package/{organization-managment → organization-management}/lib/entities/position/index.d.ts +0 -0
  201. /package/{organization-managment → organization-management}/lib/entities/position/position.entity.d.ts +0 -0
  202. /package/{organization-managment → organization-management}/lib/entities/position/position.module.d.ts +0 -0
  203. /package/{organization-managment → organization-management}/lib/entities/position/position.service.d.ts +0 -0
  204. /package/{organization-managment → organization-management}/lib/entities/position/position.types.d.ts +0 -0
  205. /package/{organization-managment → organization-management}/lib/entity.provider.d.ts +0 -0
  206. /package/{organization-managment → organization-management}/lib/menu.provider.d.ts +0 -0
  207. /package/{organization-managment → organization-management}/lib/setting.keys.d.ts +0 -0
  208. /package/{organization-managment → organization-management}/lib/setting.provider.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-organization-management-org-chart-configuration.page-BzjTyYyS.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart-configuration.page.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart-configuration.page.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSimplePageLayout } from '@acorex/platform/themes/default';\nimport {\n AXPLayoutThemeService,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderTemplateComponent,\n AXPThemeLayoutPagePrimaryActionsComponent,\n AXPThemeLayoutPageSecondaryActionsComponent,\n} from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { RootConfig } from '../../const';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { FormsModule } from '@angular/forms';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXAlertModule } from '@acorex/components/alert';\nimport { AXMOrgChartConfigService } from './org-chart-configuration.service';\n\n@Component({\n templateUrl: './org-chart-configuration.page.html',\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n //\n AXPSimplePageLayout,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderTemplateComponent,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutPageSecondaryActionsComponent,\n AXPThemeLayoutPagePrimaryActionsComponent,\n //\n AXMenuModule,\n AXButtonModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXCheckBoxModule,\n AXBreadcrumbsModule,\n AXAlertModule\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXMOrgChartConfigService],\n})\nexport class AXMOrgChartConfigurationPage {\n\n protected readonly layout = inject(AXPLayoutThemeService);\n protected readonly chartService = inject(AXMOrgChartConfigService);\n\n protected loadingStates = signal<{ [parent: string]: { [child: string]: boolean } | undefined }>({});\n\n protected readonly rootConfig = RootConfig;\n\n\n async ngOnInit() {\n await this.chartService.load();\n }\n\n\n protected async togglePermission(parent: string, child: string) {\n //TODO: Check the async and loading\n\n // Set the loading state for this cell to true.\n this.loadingStates.update((states) => {\n if (!states[parent]) {\n states[parent] = {};\n }\n states[parent][child] = true;\n return states;\n });\n\n\n\n this.chartService.set(parent, child, !this.chartService.get(parent, child));\n\n await this.chartService.update();\n\n // Turn off the loading state.\n this.loadingStates.update((states) => {\n if (!states[parent]) {\n states[parent] = {};\n }\n states[parent][child] = false;\n return states;\n });\n }\n\n\n}\n","<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-header>\n <axp-layout-title> {{t(rootConfig.entities.structure.title) | async}} </axp-layout-title>\n\n <axp-layout-description>Customize your organization's hierarchical relationships</axp-layout-description>\n\n <axp-layout-actions>\n <axp-layout-actions-primary> </axp-layout-actions-primary>\n <axp-layout-actions-secondary>\n <ax-button-item [text]=\"(t('reset') | async)!\">\n <ax-prefix>\n <ax-icon [icon]=\"'fa-solid fa-print'\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </axp-layout-actions-secondary>\n </axp-layout-actions>\n\n\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n Home\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n Organization\n </ax-breadcrumbs-item>\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n </axp-layout-header>\n\n <axp-layout-content>\n <div class=\"ax-flex ax-flex-col ax-gap-6 ax-w-full \">\n <div>\n <h3 class=\"ax-font-semibold ax-text-xl\">Relations Permissions</h3>\n <p class=\"ax-text-sm ax-opacity-85\">\n This matrix sets the relationships between nodes in your organization chart. Click a cell to toggle the\n relation between <span class=\"ax-text-danger-500\">Allowed</span> and <span\n class=\"ax-text-success-500\">Denied</span>.\n </p>\n </div>\n <div class=\"ax-rounded-md ax-overflow-hidden ax-w-full\">\n <table class=\" ax-table-auto ax-border-collapse ax-w-full ax-border-primary-darkest ax-rounded-md\">\n <thead>\n <tr class=\"ax-bg-primary-light ax-text-on-primary-light\">\n <!-- Top-left empty cell -->\n <th class=\"ax-border ax-border-primary-darkest ax-p-4 ax-min-w-44 ax-font-semibold ax-text-start\">Parent\n \\\n Child</th>\n <!-- Horizontal headers -->\n @for ( type of chartService.types; track $index) {\n <th class=\"ax-border ax-border-primary-darkest ax-p-4 ax-min-w-44 ax-text-center ax-font-semibold\">\n {{ type }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n <!-- For each parent type, render a row with alternating backgrounds -->\n @for ( parent of chartService.types; track $index) {\n <tr>\n <!-- Vertical header cell with custom header colors -->\n <td\n class=\"ax-border ax-border-primary-darkest ax-p-4 ax-font-semibold ax-bg-primary-light ax-text-on-primary-light ax-text-start\">\n {{ parent }}\n </td>\n <!-- Render a cell for each potential child type -->\n @for ( child of chartService.types; track $index) {\n <td class=\"ax-border ax-border-primary-darkest ax-p-2 \">\n <div class=\"ax-flex ax-justify-center ax-cursor-pointer ax-sm\">\n @let isLoading = loadingStates()[parent]?.[child];\n <ax-button look=\"blank\" [color]=\"chartService.isAllowed(parent, child) ? 'success' : 'danger'\"\n [text]=\"chartService.isAllowed(parent, child) ? 'Allowed' : 'Denied'\" [disabled]=\"isLoading\"\n (onClick)=\"togglePermission(parent, child)\">\n @if(isLoading)\n {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n <div>\n <ax-alert [color]=\"'warning'\">\n <ax-icon></ax-icon>\n <ax-title>Attention</ax-title>\n <ax-content>\n Changes made here will not update your current organization chart. They will only affect future charts or\n updates.\n </ax-content>\n </ax-alert>\n </div>\n </div>\n\n </axp-layout-content>\n</axp-layout-simple-page>"],"names":["i2","i3","i4","i5"],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, signal, Injectable } from '@angular/core';
3
+ import { AXPSettingService, AXPSettingScope } from '@acorex/platform/common';
4
+ import { A as AXPOrganizationSetting } from './acorex-modules-organization-management-setting.keys-CF6Giykz.mjs';
5
+
6
+ class AXMOrgChartConfigService {
7
+ constructor() {
8
+ this.settingService = inject(AXPSettingService);
9
+ //
10
+ this._types = ['Company', 'Location', 'BusinessUnit', 'Role', 'Employee'];
11
+ this._defaultPermissioEncoded = '0111001110001100001100001';
12
+ this.permissions = signal(this.defaultPermissions());
13
+ }
14
+ get types() {
15
+ return this._types;
16
+ }
17
+ defaultPermissions() {
18
+ return this.decode(this._defaultPermissioEncoded);
19
+ }
20
+ encode(permissions) {
21
+ let str = '';
22
+ for (const parent of this.types) {
23
+ for (const child of this.types) {
24
+ str += (permissions[parent]?.[child] ?? 0).toString();
25
+ }
26
+ }
27
+ return str;
28
+ }
29
+ decode(encoded) {
30
+ const result = {};
31
+ const expectedLength = this.types.length * this.types.length;
32
+ if (encoded.length !== expectedLength) {
33
+ throw new Error(`Invalid permissions string length. Expected ${expectedLength} but got ${encoded.length}`);
34
+ }
35
+ let index = 0;
36
+ for (const parent of this.types) {
37
+ result[parent] = {};
38
+ for (const child of this.types) {
39
+ const char = encoded.charAt(index);
40
+ result[parent][child] = parseInt(char, 10);
41
+ index++;
42
+ }
43
+ }
44
+ return result;
45
+ }
46
+ decodeMatrix(matrix) {
47
+ const newPermissions = {};
48
+ this.types.forEach((parent, rowIndex) => {
49
+ newPermissions[parent] = {};
50
+ this.types.forEach((child, colIndex) => {
51
+ newPermissions[parent][child] = matrix[rowIndex][colIndex];
52
+ });
53
+ });
54
+ return newPermissions;
55
+ }
56
+ validateEncodedValue(storedValue) {
57
+ try {
58
+ if (typeof storedValue === 'string') {
59
+ const expectedLength = this.types.length * this.types.length;
60
+ // Check that the string is the correct length and only contains 0s and 1s.
61
+ if (storedValue.length === expectedLength && /^[01]+$/.test(storedValue)) {
62
+ return this.decode(storedValue);
63
+ }
64
+ }
65
+ else if (Array.isArray(storedValue)) {
66
+ // Validate the 2D array dimensions and values.
67
+ if (storedValue.length === this.types.length &&
68
+ storedValue.every(row => Array.isArray(row) &&
69
+ row.length === this.types.length &&
70
+ row.every(val => val === 0 || val === 1))) {
71
+ return this.decodeMatrix(storedValue);
72
+ }
73
+ }
74
+ else if (typeof storedValue === 'object' && storedValue !== null) {
75
+ // Validate that the object has all the required keys and that their values are 0 or 1.
76
+ let valid = true;
77
+ for (const parent of this.types) {
78
+ if (!(parent in storedValue)) {
79
+ valid = false;
80
+ break;
81
+ }
82
+ const childPermissions = storedValue[parent];
83
+ for (const child of this.types) {
84
+ if (!(child in childPermissions) || (childPermissions[child] !== 0 && childPermissions[child] !== 1)) {
85
+ valid = false;
86
+ break;
87
+ }
88
+ }
89
+ if (!valid)
90
+ break;
91
+ }
92
+ if (valid) {
93
+ return storedValue;
94
+ }
95
+ }
96
+ }
97
+ catch (error) {
98
+ // In case of any errors during validation, fall back to default permissions.
99
+ }
100
+ // Return the default permissions if validation fails.
101
+ return this.defaultPermissions();
102
+ }
103
+ isAllowed(parent, child) {
104
+ return (this.permissions()[parent]?.[child] ?? 0) === 1;
105
+ }
106
+ set(parent, child, value) {
107
+ this.permissions.update((p) => {
108
+ if (!p[parent]) {
109
+ p[parent] = {};
110
+ }
111
+ p[parent][child] = value ? 1 : 0;
112
+ return p;
113
+ });
114
+ }
115
+ get(parent, child) {
116
+ return this.permissions()[parent]?.[child] === 1;
117
+ }
118
+ async load() {
119
+ const storedValue = await this.settingService
120
+ .scope(AXPSettingScope.Tenant)
121
+ .get(AXPOrganizationSetting.Relations);
122
+ // Use the validation method to ensure the stored value is correct.
123
+ if (storedValue) {
124
+ const validatedPermissions = this.validateEncodedValue(storedValue);
125
+ this.permissions.set(validatedPermissions);
126
+ }
127
+ else {
128
+ this.permissions.set(this.defaultPermissions());
129
+ }
130
+ }
131
+ async update() {
132
+ const matrix = this.encode(this.permissions());
133
+ await this.settingService
134
+ .scope(AXPSettingScope.Tenant)
135
+ .set(AXPOrganizationSetting.Relations, matrix);
136
+ }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
138
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartConfigService }); }
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartConfigService, decorators: [{
141
+ type: Injectable
142
+ }] });
143
+
144
+ export { AXMOrgChartConfigService as A };
145
+ //# sourceMappingURL=acorex-modules-organization-management-org-chart-configuration.service-DObuNZKQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-organization-management-org-chart-configuration.service-DObuNZKQ.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart-configuration.service.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { AXPSettingScope, AXPSettingService } from '@acorex/platform/common';\nimport { AXPOrganizationSetting } from '../../setting.keys';\n\n\nexport type AXMOrgChartNodePermission = {\n [parent: string]: {\n [child: string]: number // 0 (false) or 1 (true)\n };\n}\n\n@Injectable()\nexport class AXMOrgChartConfigService {\n\n private readonly settingService = inject(AXPSettingService);\n //\n protected _types = ['Company', 'Location', 'BusinessUnit', 'Role', 'Employee'];\n\n public get types(): string[] {\n return this._types;\n }\n\n private _defaultPermissioEncoded = '0111001110001100001100001';\n\n public permissions = signal<AXMOrgChartNodePermission>(this.defaultPermissions());\n\n\n private defaultPermissions(): AXMOrgChartNodePermission {\n return this.decode(this._defaultPermissioEncoded);\n }\n\n\n private encode(\n permissions: AXMOrgChartNodePermission\n ): string {\n let str = '';\n for (const parent of this.types) {\n for (const child of this.types) {\n str += (permissions[parent]?.[child] ?? 0).toString();\n }\n }\n return str;\n }\n\n\n private decode(encoded: string): AXMOrgChartNodePermission {\n const result: AXMOrgChartNodePermission = {};\n const expectedLength = this.types.length * this.types.length;\n if (encoded.length !== expectedLength) {\n throw new Error(`Invalid permissions string length. Expected ${expectedLength} but got ${encoded.length}`);\n }\n let index = 0;\n for (const parent of this.types) {\n result[parent] = {};\n for (const child of this.types) {\n const char = encoded.charAt(index);\n result[parent][child] = parseInt(char, 10);\n index++;\n }\n }\n return result;\n }\n\n\n private decodeMatrix(matrix: number[][]): AXMOrgChartNodePermission {\n const newPermissions: AXMOrgChartNodePermission = {};\n this.types.forEach((parent, rowIndex) => {\n newPermissions[parent] = {};\n this.types.forEach((child, colIndex) => {\n newPermissions[parent][child] = matrix[rowIndex][colIndex];\n });\n });\n return newPermissions;\n }\n\n private validateEncodedValue(storedValue: unknown): AXMOrgChartNodePermission {\n try {\n if (typeof storedValue === 'string') {\n const expectedLength = this.types.length * this.types.length;\n // Check that the string is the correct length and only contains 0s and 1s.\n if (storedValue.length === expectedLength && /^[01]+$/.test(storedValue)) {\n return this.decode(storedValue);\n }\n } else if (Array.isArray(storedValue)) {\n // Validate the 2D array dimensions and values.\n if (\n storedValue.length === this.types.length &&\n storedValue.every(\n row =>\n Array.isArray(row) &&\n row.length === this.types.length &&\n row.every(val => val === 0 || val === 1)\n )\n ) {\n return this.decodeMatrix(storedValue);\n }\n } else if (typeof storedValue === 'object' && storedValue !== null) {\n // Validate that the object has all the required keys and that their values are 0 or 1.\n let valid = true;\n for (const parent of this.types) {\n if (!(parent in storedValue)) {\n valid = false;\n break;\n }\n const childPermissions = (storedValue as any)[parent];\n for (const child of this.types) {\n if (!(child in childPermissions) || (childPermissions[child] !== 0 && childPermissions[child] !== 1)) {\n valid = false;\n break;\n }\n }\n if (!valid) break;\n }\n if (valid) {\n return storedValue as AXMOrgChartNodePermission;\n }\n }\n } catch (error) {\n // In case of any errors during validation, fall back to default permissions.\n }\n // Return the default permissions if validation fails.\n return this.defaultPermissions();\n }\n\n\n public isAllowed(parent: string, child: string): boolean {\n return (this.permissions()[parent]?.[child] ?? 0) === 1;\n }\n\n\n public set(parent: string, child: string, value: boolean) {\n this.permissions.update((p) => {\n if (!p[parent]) {\n p[parent] = {};\n }\n p[parent][child] = value ? 1 : 0;\n return p;\n });\n }\n\n public get(parent: string, child: string): boolean {\n return this.permissions()[parent]?.[child] === 1;\n }\n\n\n public async load() {\n const storedValue = await this.settingService\n .scope(AXPSettingScope.Tenant)\n .get(AXPOrganizationSetting.Relations);\n\n // Use the validation method to ensure the stored value is correct.\n if (storedValue) {\n const validatedPermissions = this.validateEncodedValue(storedValue);\n this.permissions.set(validatedPermissions);\n } else {\n this.permissions.set(this.defaultPermissions());\n }\n }\n\n public async update() {\n const matrix = this.encode(this.permissions());\n await this.settingService\n .scope(AXPSettingScope.Tenant)\n .set(AXPOrganizationSetting.Relations, matrix);\n }\n\n}\n"],"names":[],"mappings":"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"}