@acorex/modules 20.2.4-next.8 → 20.3.0-next.0

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 (204) hide show
  1. package/application-management/index.d.ts +49 -1
  2. package/calendar-management/index.d.ts +19 -1
  3. package/common/index.d.ts +50 -0
  4. package/contact-management/index.d.ts +40 -4
  5. package/content-management/index.d.ts +20 -2
  6. package/conversation/index.d.ts +34 -16
  7. package/dashboard-management/index.d.ts +11 -4
  8. package/data-management/index.d.ts +20 -2
  9. package/document-management/index.d.ts +36 -6
  10. package/fesm2022/acorex-modules-application-management.mjs +483 -286
  11. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  12. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BbO_ea5W.mjs → acorex-modules-auth-acorex-modules-auth-BTi7qTvr.mjs} +29 -12
  13. package/fesm2022/acorex-modules-auth-acorex-modules-auth-BTi7qTvr.mjs.map +1 -0
  14. package/fesm2022/{acorex-modules-auth-app-chooser.component-y0HLrwJM.mjs → acorex-modules-auth-app-chooser.component-s4LYKAc7.mjs} +2 -2
  15. package/fesm2022/{acorex-modules-auth-app-chooser.component-y0HLrwJM.mjs.map → acorex-modules-auth-app-chooser.component-s4LYKAc7.mjs.map} +1 -1
  16. package/fesm2022/{acorex-modules-auth-login.module-1U_5UgDs.mjs → acorex-modules-auth-login.module-DetWdAgo.mjs} +4 -4
  17. package/fesm2022/{acorex-modules-auth-login.module-1U_5UgDs.mjs.map → acorex-modules-auth-login.module-DetWdAgo.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-auth-master.layout-DGsAGhOH.mjs → acorex-modules-auth-master.layout-BJRB1Vns.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-auth-master.layout-DGsAGhOH.mjs.map → acorex-modules-auth-master.layout-BJRB1Vns.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-auth-oauth-callback.component-CPHBV5bA.mjs → acorex-modules-auth-oauth-callback.component-DKHJoF3X.mjs} +2 -2
  21. package/fesm2022/{acorex-modules-auth-oauth-callback.component-CPHBV5bA.mjs.map → acorex-modules-auth-oauth-callback.component-DKHJoF3X.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-auth-password.component-CF3ReHyw.mjs → acorex-modules-auth-password.component-B_vA7-vu.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-auth-password.component-CF3ReHyw.mjs.map → acorex-modules-auth-password.component-B_vA7-vu.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-auth-password.component-C85NgQxA.mjs → acorex-modules-auth-password.component-WUrm5Y6i.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-auth-password.component-C85NgQxA.mjs.map → acorex-modules-auth-password.component-WUrm5Y6i.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-auth-routes-BJh0Fwpy.mjs → acorex-modules-auth-routes-CYf17elA.mjs} +2 -2
  27. package/fesm2022/{acorex-modules-auth-routes-BJh0Fwpy.mjs.map → acorex-modules-auth-routes-CYf17elA.mjs.map} +1 -1
  28. package/fesm2022/acorex-modules-auth-show-profile-command-DjvX7n9K.mjs +53 -0
  29. package/fesm2022/acorex-modules-auth-show-profile-command-DjvX7n9K.mjs.map +1 -0
  30. package/fesm2022/{acorex-modules-auth-two-factor.module-Bsh2_A5L.mjs → acorex-modules-auth-two-factor.module-CeJGeuid.mjs} +2 -2
  31. package/fesm2022/{acorex-modules-auth-two-factor.module-Bsh2_A5L.mjs.map → acorex-modules-auth-two-factor.module-CeJGeuid.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-auth-user-sessions.component-ChMkstLg.mjs → acorex-modules-auth-user-sessions.component-D0jQEJcC.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-auth-user-sessions.component-ChMkstLg.mjs.map → acorex-modules-auth-user-sessions.component-D0jQEJcC.mjs.map} +1 -1
  34. package/fesm2022/acorex-modules-auth.mjs +1 -1
  35. package/fesm2022/acorex-modules-calendar-management.mjs +92 -29
  36. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  37. package/fesm2022/{acorex-modules-common-manage-extra-properties.command-DqdhTfLD.mjs → acorex-modules-common-manage-extra-properties.command-7prqQhV5.mjs} +15 -12
  38. package/fesm2022/acorex-modules-common-manage-extra-properties.command-7prqQhV5.mjs.map +1 -0
  39. package/fesm2022/acorex-modules-common.mjs +106 -8
  40. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  41. package/fesm2022/acorex-modules-contact-management.mjs +280 -122
  42. package/fesm2022/acorex-modules-contact-management.mjs.map +1 -1
  43. package/fesm2022/acorex-modules-content-management.mjs +555 -490
  44. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  45. package/fesm2022/acorex-modules-conversation.mjs +315 -252
  46. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  47. package/fesm2022/{acorex-modules-customer-management-acorex-modules-customer-management-DZBixdOT.mjs → acorex-modules-customer-management-acorex-modules-customer-management-BHs4rrB8.mjs} +12 -12
  48. package/fesm2022/{acorex-modules-customer-management-acorex-modules-customer-management-DZBixdOT.mjs.map → acorex-modules-customer-management-acorex-modules-customer-management-BHs4rrB8.mjs.map} +1 -1
  49. package/fesm2022/{acorex-modules-customer-management-activity.entity-By32mnXN.mjs → acorex-modules-customer-management-activity.entity-D_9Nut_6.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-customer-management-activity.entity-By32mnXN.mjs.map → acorex-modules-customer-management-activity.entity-D_9Nut_6.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-customer-management-customer-segment.entity-CjFYqTMc.mjs → acorex-modules-customer-management-customer-segment.entity-swBR8-dJ.mjs} +2 -2
  52. package/fesm2022/{acorex-modules-customer-management-customer-segment.entity-CjFYqTMc.mjs.map → acorex-modules-customer-management-customer-segment.entity-swBR8-dJ.mjs.map} +1 -1
  53. package/fesm2022/{acorex-modules-customer-management-customer-type.entity-Bk_Ng_DS.mjs → acorex-modules-customer-management-customer-type.entity-GmfdE2Ex.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-customer-management-customer-type.entity-Bk_Ng_DS.mjs.map → acorex-modules-customer-management-customer-type.entity-GmfdE2Ex.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-customer-management-customer.entity-rUNC9glL.mjs → acorex-modules-customer-management-customer.entity-Bld5nRai.mjs} +23 -23
  56. package/fesm2022/acorex-modules-customer-management-customer.entity-Bld5nRai.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-customer-management-deal-contact-role.entity-BWX44lzi.mjs → acorex-modules-customer-management-deal-contact-role.entity-Ci_ymO_w.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-customer-management-deal-contact-role.entity-BWX44lzi.mjs.map → acorex-modules-customer-management-deal-contact-role.entity-Ci_ymO_w.mjs.map} +1 -1
  59. package/fesm2022/{acorex-modules-customer-management-lead.entity-B3gv0YnT.mjs → acorex-modules-customer-management-lead.entity-BcQvYHnL.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-customer-management-lead.entity-B3gv0YnT.mjs.map → acorex-modules-customer-management-lead.entity-BcQvYHnL.mjs.map} +1 -1
  61. package/fesm2022/{acorex-modules-customer-management-lifecycle-stage.entity-cs1hb_Ro.mjs → acorex-modules-customer-management-lifecycle-stage.entity-DSZyAv5_.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-customer-management-lifecycle-stage.entity-cs1hb_Ro.mjs.map → acorex-modules-customer-management-lifecycle-stage.entity-DSZyAv5_.mjs.map} +1 -1
  63. package/fesm2022/{acorex-modules-customer-management-opportunity-stage.entity-C-opdmDW.mjs → acorex-modules-customer-management-opportunity-stage.entity-BpwLN_fw.mjs} +2 -2
  64. package/fesm2022/{acorex-modules-customer-management-opportunity-stage.entity-C-opdmDW.mjs.map → acorex-modules-customer-management-opportunity-stage.entity-BpwLN_fw.mjs.map} +1 -1
  65. package/fesm2022/{acorex-modules-customer-management-opportunity.entity-D5n_4xgK.mjs → acorex-modules-customer-management-opportunity.entity-DaiL4951.mjs} +2 -2
  66. package/fesm2022/{acorex-modules-customer-management-opportunity.entity-D5n_4xgK.mjs.map → acorex-modules-customer-management-opportunity.entity-DaiL4951.mjs.map} +1 -1
  67. package/fesm2022/{acorex-modules-customer-management-sales-pipeline.entity-AeLhcil2.mjs → acorex-modules-customer-management-sales-pipeline.entity-DP_w8V9E.mjs} +2 -2
  68. package/fesm2022/{acorex-modules-customer-management-sales-pipeline.entity-AeLhcil2.mjs.map → acorex-modules-customer-management-sales-pipeline.entity-DP_w8V9E.mjs.map} +1 -1
  69. package/fesm2022/{acorex-modules-customer-management-sales-territory.entity-uK9N7p_k.mjs → acorex-modules-customer-management-sales-territory.entity-BJNrmMO3.mjs} +2 -2
  70. package/fesm2022/{acorex-modules-customer-management-sales-territory.entity-uK9N7p_k.mjs.map → acorex-modules-customer-management-sales-territory.entity-BJNrmMO3.mjs.map} +1 -1
  71. package/fesm2022/acorex-modules-customer-management.mjs +1 -1
  72. package/fesm2022/acorex-modules-dashboard-management.mjs +182 -54
  73. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  74. package/fesm2022/acorex-modules-data-management.mjs +93 -28
  75. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  76. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-CiVbcZ81.mjs → acorex-modules-document-management-acorex-modules-document-management-BV6piYsz.mjs} +1037 -926
  77. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BV6piYsz.mjs.map +1 -0
  78. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-iRZU056o.mjs → acorex-modules-document-management-attachment-widget.component-DVXmIiQt.mjs} +2 -2
  79. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-iRZU056o.mjs.map → acorex-modules-document-management-attachment-widget.component-DVXmIiQt.mjs.map} +1 -1
  80. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DCoD73F7.mjs → acorex-modules-document-management-create-folder-dialog.component-CiT3wteQ.mjs} +2 -2
  81. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DCoD73F7.mjs.map → acorex-modules-document-management-create-folder-dialog.component-CiT3wteQ.mjs.map} +1 -1
  82. package/fesm2022/{acorex-modules-document-management-details-view.component-D0JuVG8v.mjs → acorex-modules-document-management-details-view.component-BXUpaDZO.mjs} +2 -2
  83. package/fesm2022/{acorex-modules-document-management-details-view.component-D0JuVG8v.mjs.map → acorex-modules-document-management-details-view.component-BXUpaDZO.mjs.map} +1 -1
  84. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-B-VnHqr3.mjs → acorex-modules-document-management-document-signature-popup.component-D3GahdPn.mjs} +2 -2
  85. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-B-VnHqr3.mjs.map → acorex-modules-document-management-document-signature-popup.component-D3GahdPn.mjs.map} +1 -1
  86. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BdIU8PXg.mjs → acorex-modules-document-management-drive-choose.component-Bbms4LAS.mjs} +2 -2
  87. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BdIU8PXg.mjs.map → acorex-modules-document-management-drive-choose.component-Bbms4LAS.mjs.map} +1 -1
  88. package/fesm2022/{acorex-modules-document-management-drive.component-DGQD1adR.mjs → acorex-modules-document-management-drive.component-DfHDC5o7.mjs} +2 -2
  89. package/fesm2022/{acorex-modules-document-management-drive.component-DGQD1adR.mjs.map → acorex-modules-document-management-drive.component-DfHDC5o7.mjs.map} +1 -1
  90. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-Ch9CAOwx.mjs → acorex-modules-document-management-large-icons-view.component-BPmfNI3J.mjs} +2 -2
  91. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-Ch9CAOwx.mjs.map → acorex-modules-document-management-large-icons-view.component-BPmfNI3J.mjs.map} +1 -1
  92. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DgGef-W5.mjs → acorex-modules-document-management-large-tiles-view.component-6fjTzrwf.mjs} +2 -2
  93. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DgGef-W5.mjs.map → acorex-modules-document-management-large-tiles-view.component-6fjTzrwf.mjs.map} +1 -1
  94. package/fesm2022/{acorex-modules-document-management-list-view.component-DK6IZdC0.mjs → acorex-modules-document-management-list-view.component-DeBNY8Aj.mjs} +2 -2
  95. package/fesm2022/{acorex-modules-document-management-list-view.component-DK6IZdC0.mjs.map → acorex-modules-document-management-list-view.component-DeBNY8Aj.mjs.map} +1 -1
  96. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BV7PYxuz.mjs → acorex-modules-document-management-permission-definition.provider-Bn-umdXX.mjs} +2 -2
  97. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BV7PYxuz.mjs.map → acorex-modules-document-management-permission-definition.provider-Bn-umdXX.mjs.map} +1 -1
  98. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C37tOs99.mjs → acorex-modules-document-management-rename-node-dialog.component-LRFo58Xg.mjs} +2 -2
  99. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C37tOs99.mjs.map → acorex-modules-document-management-rename-node-dialog.component-LRFo58Xg.mjs.map} +1 -1
  100. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-D0NHNq4W.mjs → acorex-modules-document-management-small-icons-view.component-BlQ3EhiJ.mjs} +2 -2
  101. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-D0NHNq4W.mjs.map → acorex-modules-document-management-small-icons-view.component-BlQ3EhiJ.mjs.map} +1 -1
  102. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-DLNbw_y5.mjs → acorex-modules-document-management-small-tiles-view.component-BM2Uj_Wz.mjs} +2 -2
  103. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-DLNbw_y5.mjs.map → acorex-modules-document-management-small-tiles-view.component-BM2Uj_Wz.mjs.map} +1 -1
  104. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  105. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-BvDYd3fI.mjs → acorex-modules-help-desk-acorex-modules-help-desk-C4s1EVQy.mjs} +123 -49
  106. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-C4s1EVQy.mjs.map +1 -0
  107. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-DH_FG8iE.mjs → acorex-modules-help-desk-capture-screen.component-BLZbJmw1.mjs} +2 -2
  108. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-DH_FG8iE.mjs.map → acorex-modules-help-desk-capture-screen.component-BLZbJmw1.mjs.map} +1 -1
  109. package/fesm2022/acorex-modules-help-desk.mjs +1 -1
  110. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-By3qopAk.mjs +1519 -0
  111. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-By3qopAk.mjs.map +1 -0
  112. package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-DfVvf8Fg.mjs → acorex-modules-human-capital-management-employee-skill.entity-DRUHGUnT.mjs} +17 -17
  113. package/fesm2022/acorex-modules-human-capital-management-employee-skill.entity-DRUHGUnT.mjs.map +1 -0
  114. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-ByBqfKiF.mjs → acorex-modules-human-capital-management-employee.entity-Cn9GnmJE.mjs} +37 -15
  115. package/fesm2022/acorex-modules-human-capital-management-employee.entity-Cn9GnmJE.mjs.map +1 -0
  116. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-DZ8ubvD6.mjs → acorex-modules-human-capital-management-employment-type.entity-BveY2th_.mjs} +11 -10
  117. package/fesm2022/acorex-modules-human-capital-management-employment-type.entity-BveY2th_.mjs.map +1 -0
  118. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-CIm3XrTb.mjs +267 -0
  119. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-CIm3XrTb.mjs.map +1 -0
  120. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-COan6Cnw.mjs +95 -0
  121. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-COan6Cnw.mjs.map +1 -0
  122. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-BtIVnv-C.mjs → acorex-modules-human-capital-management-position-assignment.entity-BJw9jR1o.mjs} +14 -14
  123. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-BJw9jR1o.mjs.map +1 -0
  124. package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-DFCE3zcH.mjs → acorex-modules-human-capital-management-skill-level.entity-CZe8y_hA.mjs} +10 -10
  125. package/fesm2022/acorex-modules-human-capital-management-skill-level.entity-CZe8y_hA.mjs.map +1 -0
  126. package/fesm2022/{acorex-modules-human-capital-management-skill.entity-DPeTwYH4.mjs → acorex-modules-human-capital-management-skill.entity-CDXB7zyy.mjs} +8 -8
  127. package/fesm2022/acorex-modules-human-capital-management-skill.entity-CDXB7zyy.mjs.map +1 -0
  128. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  129. package/fesm2022/acorex-modules-locale-management.mjs +120 -13
  130. package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
  131. package/fesm2022/acorex-modules-location-management.mjs +125 -57
  132. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  133. package/fesm2022/acorex-modules-log-management.mjs +440 -164
  134. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  135. package/fesm2022/acorex-modules-meeting-management-meeting-schedule.entity-D-RQ-D3d.mjs +155 -0
  136. package/fesm2022/acorex-modules-meeting-management-meeting-schedule.entity-D-RQ-D3d.mjs.map +1 -0
  137. package/fesm2022/acorex-modules-meeting-management.mjs +654 -620
  138. package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -1
  139. package/fesm2022/acorex-modules-notification-management.mjs +835 -795
  140. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  141. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-BshJoI7_.mjs → acorex-modules-party-management-acorex-modules-party-management-DzhGLAZb.mjs} +373 -230
  142. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-DzhGLAZb.mjs.map +1 -0
  143. package/fesm2022/{acorex-modules-party-management-industry.entity-CoMI4imz.mjs → acorex-modules-party-management-industry.entity-sLrAmADa.mjs} +2 -2
  144. package/fesm2022/{acorex-modules-party-management-industry.entity-CoMI4imz.mjs.map → acorex-modules-party-management-industry.entity-sLrAmADa.mjs.map} +1 -1
  145. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-D-VpvXeU.mjs → acorex-modules-party-management-party-identifier-type.entity-WL-tJlK7.mjs} +2 -2
  146. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-D-VpvXeU.mjs.map → acorex-modules-party-management-party-identifier-type.entity-WL-tJlK7.mjs.map} +1 -1
  147. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-BcXi9BM0.mjs → acorex-modules-party-management-party-identifier.entity-BGJdllN8.mjs} +2 -2
  148. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-BcXi9BM0.mjs.map → acorex-modules-party-management-party-identifier.entity-BGJdllN8.mjs.map} +1 -1
  149. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-B-gMK84C.mjs → acorex-modules-party-management-party-relationship.entity-Bhqgy4-Y.mjs} +2 -2
  150. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-B-gMK84C.mjs.map → acorex-modules-party-management-party-relationship.entity-Bhqgy4-Y.mjs.map} +1 -1
  151. package/fesm2022/{acorex-modules-party-management-party-role.entity-OV4XUnfD.mjs → acorex-modules-party-management-party-role.entity-BpPCL3GG.mjs} +2 -2
  152. package/fesm2022/{acorex-modules-party-management-party-role.entity-OV4XUnfD.mjs.map → acorex-modules-party-management-party-role.entity-BpPCL3GG.mjs.map} +1 -1
  153. package/fesm2022/{acorex-modules-party-management-party.entity-Cwd9EqB4.mjs → acorex-modules-party-management-party.entity-v-YrPNOP.mjs} +2 -2
  154. package/fesm2022/{acorex-modules-party-management-party.entity-Cwd9EqB4.mjs.map → acorex-modules-party-management-party.entity-v-YrPNOP.mjs.map} +1 -1
  155. package/fesm2022/acorex-modules-party-management.mjs +1 -1
  156. package/fesm2022/acorex-modules-platform-management.mjs +444 -397
  157. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  158. package/fesm2022/acorex-modules-project-management-email-jsa.command-DC3Zbfdn.mjs +115 -0
  159. package/fesm2022/acorex-modules-project-management-email-jsa.command-DC3Zbfdn.mjs.map +1 -0
  160. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-CJKR5FZw.mjs +113 -0
  161. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-CJKR5FZw.mjs.map +1 -0
  162. package/fesm2022/acorex-modules-project-management-setup-jsa.command-Cztc8TDy.mjs +94 -0
  163. package/fesm2022/acorex-modules-project-management-setup-jsa.command-Cztc8TDy.mjs.map +1 -0
  164. package/fesm2022/acorex-modules-project-management-sign-jsa.command-b28tr2kE.mjs +77 -0
  165. package/fesm2022/acorex-modules-project-management-sign-jsa.command-b28tr2kE.mjs.map +1 -0
  166. package/fesm2022/acorex-modules-project-management.mjs +1416 -279
  167. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  168. package/fesm2022/acorex-modules-report-management.mjs +83 -15
  169. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  170. package/fesm2022/acorex-modules-security-management.mjs +4 -1
  171. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  172. package/fesm2022/{acorex-modules-task-management-task-board.page-Je2Y8X62.mjs → acorex-modules-task-management-task-board.page-CaypEYjP.mjs} +3 -1
  173. package/fesm2022/{acorex-modules-task-management-task-board.page-Je2Y8X62.mjs.map → acorex-modules-task-management-task-board.page-CaypEYjP.mjs.map} +1 -1
  174. package/fesm2022/acorex-modules-task-management.mjs +3254 -3069
  175. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  176. package/fesm2022/acorex-modules-training-management.mjs +1 -1
  177. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  178. package/help-desk/index.d.ts +32 -14
  179. package/human-capital-management/index.d.ts +150 -2
  180. package/locale-management/index.d.ts +27 -3
  181. package/location-management/index.d.ts +20 -2
  182. package/log-management/index.d.ts +8 -1
  183. package/meeting-management/index.d.ts +47 -20
  184. package/notification-management/index.d.ts +48 -36
  185. package/package.json +13 -13
  186. package/party-management/index.d.ts +43 -1
  187. package/platform-management/index.d.ts +33 -21
  188. package/project-management/index.d.ts +156 -3
  189. package/report-management/index.d.ts +14 -2
  190. package/task-management/index.d.ts +56 -2
  191. package/fesm2022/acorex-modules-auth-acorex-modules-auth-BbO_ea5W.mjs.map +0 -1
  192. package/fesm2022/acorex-modules-common-manage-extra-properties.command-DqdhTfLD.mjs.map +0 -1
  193. package/fesm2022/acorex-modules-customer-management-customer.entity-rUNC9glL.mjs.map +0 -1
  194. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-CiVbcZ81.mjs.map +0 -1
  195. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-BvDYd3fI.mjs.map +0 -1
  196. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-D4A3ZYFq.mjs +0 -723
  197. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-D4A3ZYFq.mjs.map +0 -1
  198. package/fesm2022/acorex-modules-human-capital-management-employee-skill.entity-DfVvf8Fg.mjs.map +0 -1
  199. package/fesm2022/acorex-modules-human-capital-management-employee.entity-ByBqfKiF.mjs.map +0 -1
  200. package/fesm2022/acorex-modules-human-capital-management-employment-type.entity-DZ8ubvD6.mjs.map +0 -1
  201. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-BtIVnv-C.mjs.map +0 -1
  202. package/fesm2022/acorex-modules-human-capital-management-skill-level.entity-DFCE3zcH.mjs.map +0 -1
  203. package/fesm2022/acorex-modules-human-capital-management-skill.entity-DPeTwYH4.mjs.map +0 -1
  204. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BshJoI7_.mjs.map +0 -1
@@ -1,27 +1,27 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injector, Injectable, NgModule, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import * as i5 from '@angular/common';
2
+ import { Injectable, NgModule, inject, Injector, input, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1$1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';
6
- import { AXPSearchCommandProvider, createAllQueryView, AXPEntityQueryType, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
7
- import { AXPEntityService, AXMEntityCrudServiceImpl, entityMasterCrudActions, entityMasterRecordActions, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
6
+ import { createAllQueryView, AXPEntityQueryType, AXPSearchCommandProvider, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
7
+ import { AXMEntityCrudServiceImpl, entityMasterCrudActions, entityMasterRecordActions, AXPEntityService, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
8
8
  import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
9
9
  import * as i1 from '@angular/router';
10
10
  import { RouterModule } from '@angular/router';
11
11
  import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
12
- import * as i4 from '@acorex/core/translation';
12
+ import * as i3$1 from '@acorex/core/translation';
13
13
  import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
14
14
  import { AXPSystemActionType } from '@acorex/platform/core';
15
15
  import { AXBadgeModule } from '@acorex/components/badge';
16
- import * as i1$1 from '@acorex/components/button';
16
+ import * as i2 from '@acorex/components/button';
17
17
  import { AXButtonModule } from '@acorex/components/button';
18
- import * as i2 from '@acorex/components/decorators';
18
+ import * as i3 from '@acorex/components/decorators';
19
19
  import { AXDecoratorModule } from '@acorex/components/decorators';
20
- import * as i3 from '@acorex/components/loading';
20
+ import * as i2$1 from '@acorex/components/loading';
21
21
  import { AXLoadingModule } from '@acorex/components/loading';
22
22
  import { AXFormatModule } from '@acorex/core/format';
23
- import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
24
23
  import { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
24
+ import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
25
25
 
26
26
  const config = {
27
27
  i18n: 'contact-management',
@@ -55,88 +55,6 @@ const RootConfig = {
55
55
  },
56
56
  };
57
57
 
58
- class AXMContactManagementEntityProvider {
59
- constructor() {
60
- this.injector = inject(Injector);
61
- }
62
- preload() {
63
- const module = RootConfig.module.name;
64
- return Array.from(Object.values(RootConfig.entities)).map((entity) => ({
65
- module: module,
66
- entity: entity.name,
67
- }));
68
- }
69
- async get(moduleName, entityName) {
70
- if (moduleName == RootConfig.module.name) {
71
- switch (entityName) {
72
- case RootConfig.entities.contactMethodType.name:
73
- return (await Promise.resolve().then(function () { return contactMethodType_entity; })).contactMethodTypeFactory(this.injector);
74
- case RootConfig.entities.contactMethod.name:
75
- return (await import('./acorex-modules-contact-management-contact-method.entity-DR6V9Nox.mjs')).contactMethodFactory(this.injector);
76
- case RootConfig.entities.emergencyContact.name:
77
- return (await import('./acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs')).emergencyContactFactory(this.injector);
78
- }
79
- }
80
- return null;
81
- }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
83
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementEntityProvider }); }
84
- }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementEntityProvider, decorators: [{
86
- type: Injectable
87
- }] });
88
-
89
- class AXMContactManagementMenuProvider {
90
- constructor() {
91
- this.entityService = inject(AXPEntityService);
92
- this.sessionService = inject(AXPSessionService);
93
- }
94
- async provide(context) {
95
- const module = RootConfig.module;
96
- context.addItems([
97
- {
98
- priority: 9002,
99
- text: '@contact-management:root-menu',
100
- icon: module.icon,
101
- children: [
102
- {
103
- text: '@contact-management:contact-method-type.plural-title',
104
- path: this.entityService.createPath(module.name, RootConfig.entities.contactMethodType.name),
105
- icon: RootConfig.entities.contactMethodType.icon,
106
- priority: 5,
107
- },
108
- {
109
- text: ``,
110
- type: 'break',
111
- priority: 10,
112
- },
113
- {
114
- text: '@contact-management:emergency-contact.plural-title',
115
- path: this.entityService.createPath(module.name, RootConfig.entities.emergencyContact.name),
116
- icon: RootConfig.entities.emergencyContact.icon,
117
- priority: 12,
118
- },
119
- {
120
- text: '@contact-management:emergency-contact.page.title',
121
- path: `${this.sessionService.application?.name}/emergency-contacts`,
122
- icon: 'fa-light fa-phone-rotary',
123
- priority: 13,
124
- },
125
- ],
126
- },
127
- ]);
128
- }
129
- }
130
-
131
- class AXMContactManagementSearchCommandProvider extends AXPSearchCommandProvider {
132
- constructor() {
133
- super(...arguments);
134
- this.commands = [
135
- // Commands will be added here following the correct pattern
136
- ];
137
- }
138
- }
139
-
140
58
  class AXMContactMethodTypeService extends AXMEntityCrudServiceImpl {
141
59
  }
142
60
  class AXMContactMethodTypeServiceImpl extends AXMContactMethodTypeService {
@@ -378,9 +296,172 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
378
296
  type: Injectable
379
297
  }], ctorParameters: () => [] });
380
298
 
299
+ class AXMContactMethodTypeEntityModule {
300
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodTypeEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
301
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodTypeEntityModule }); }
302
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodTypeEntityModule, providers: [
303
+ {
304
+ provide: AXMContactMethodTypeService,
305
+ useClass: AXMContactMethodTypeServiceImpl,
306
+ },
307
+ ] }); }
308
+ }
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodTypeEntityModule, decorators: [{
310
+ type: NgModule,
311
+ args: [{
312
+ imports: [],
313
+ exports: [],
314
+ declarations: [],
315
+ providers: [
316
+ {
317
+ provide: AXMContactMethodTypeService,
318
+ useClass: AXMContactMethodTypeServiceImpl,
319
+ },
320
+ ],
321
+ }]
322
+ }] });
323
+
324
+ class AXMContactMethodEntityModule {
325
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
326
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodEntityModule }); }
327
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodEntityModule, providers: [
328
+ {
329
+ provide: AXMContactMethodService,
330
+ useClass: AXMContactMethodServiceImpl,
331
+ },
332
+ ] }); }
333
+ }
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactMethodEntityModule, decorators: [{
335
+ type: NgModule,
336
+ args: [{
337
+ imports: [],
338
+ exports: [],
339
+ declarations: [],
340
+ providers: [
341
+ {
342
+ provide: AXMContactMethodService,
343
+ useClass: AXMContactMethodServiceImpl,
344
+ },
345
+ ],
346
+ }]
347
+ }] });
348
+
349
+ class AXMEmergencyContactEntityModule {
350
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEmergencyContactEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
351
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMEmergencyContactEntityModule }); }
352
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEmergencyContactEntityModule, providers: [
353
+ {
354
+ provide: AXMEmergencyContactService,
355
+ useClass: AXMEmergencyContactServiceImpl,
356
+ },
357
+ ] }); }
358
+ }
359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEmergencyContactEntityModule, decorators: [{
360
+ type: NgModule,
361
+ args: [{
362
+ imports: [],
363
+ exports: [],
364
+ declarations: [],
365
+ providers: [
366
+ {
367
+ provide: AXMEmergencyContactService,
368
+ useClass: AXMEmergencyContactServiceImpl,
369
+ },
370
+ ],
371
+ }]
372
+ }] });
373
+
374
+ // Entity Services
375
+
376
+ class AXMContactManagementEntityProvider {
377
+ constructor() {
378
+ this.injector = inject(Injector);
379
+ }
380
+ preload() {
381
+ const module = RootConfig.module.name;
382
+ return Array.from(Object.values(RootConfig.entities)).map((entity) => ({
383
+ module: module,
384
+ entity: entity.name,
385
+ }));
386
+ }
387
+ async get(moduleName, entityName) {
388
+ if (moduleName == RootConfig.module.name) {
389
+ switch (entityName) {
390
+ case RootConfig.entities.contactMethodType.name:
391
+ return (await Promise.resolve().then(function () { return contactMethodType_entity; })).contactMethodTypeFactory(this.injector);
392
+ case RootConfig.entities.contactMethod.name:
393
+ return (await import('./acorex-modules-contact-management-contact-method.entity-DR6V9Nox.mjs')).contactMethodFactory(this.injector);
394
+ case RootConfig.entities.emergencyContact.name:
395
+ return (await import('./acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs')).emergencyContactFactory(this.injector);
396
+ }
397
+ }
398
+ return null;
399
+ }
400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
401
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementEntityProvider }); }
402
+ }
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementEntityProvider, decorators: [{
404
+ type: Injectable
405
+ }] });
406
+
407
+ class AXMContactManagementMenuProvider {
408
+ constructor() {
409
+ this.entityService = inject(AXPEntityService);
410
+ this.sessionService = inject(AXPSessionService);
411
+ }
412
+ async provide(context) {
413
+ const module = RootConfig.module;
414
+ context.addItems([
415
+ {
416
+ priority: 9002,
417
+ text: '@contact-management:root-menu',
418
+ icon: module.icon,
419
+ children: [
420
+ {
421
+ text: '@contact-management:contact-method-type.plural-title',
422
+ path: this.entityService.createPath(module.name, RootConfig.entities.contactMethodType.name),
423
+ icon: RootConfig.entities.contactMethodType.icon,
424
+ priority: 5,
425
+ },
426
+ {
427
+ text: ``,
428
+ type: 'break',
429
+ priority: 10,
430
+ },
431
+ {
432
+ text: '@contact-management:emergency-contact.plural-title',
433
+ path: this.entityService.createPath(module.name, RootConfig.entities.emergencyContact.name),
434
+ icon: RootConfig.entities.emergencyContact.icon,
435
+ priority: 12,
436
+ },
437
+ {
438
+ text: '@contact-management:emergency-contact.page.title',
439
+ path: `${this.sessionService.application?.name}/emergency-contacts`,
440
+ icon: 'fa-light fa-phone-rotary',
441
+ priority: 13,
442
+ },
443
+ ],
444
+ },
445
+ ]);
446
+ }
447
+ }
448
+
449
+ class AXMContactManagementSearchCommandProvider extends AXPSearchCommandProvider {
450
+ constructor() {
451
+ super(...arguments);
452
+ this.commands = [
453
+ // Commands will be added here following the correct pattern
454
+ ];
455
+ }
456
+ }
457
+
381
458
  class AXMContactManagementModule {
382
459
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
383
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementModule, imports: [CommonModule, i1.RouterModule] }); }
460
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementModule, imports: [CommonModule,
461
+ // Entity Modules
462
+ AXMContactMethodTypeEntityModule,
463
+ AXMContactMethodEntityModule,
464
+ AXMEmergencyContactEntityModule, i1.RouterModule] }); }
384
465
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMContactManagementModule, providers: [
385
466
  // Entity Provider
386
467
  {
@@ -410,20 +491,11 @@ class AXMContactManagementModule {
410
491
  },
411
492
  multi: true,
412
493
  },
413
- // Entity Services
414
- {
415
- provide: AXMContactMethodTypeService,
416
- useClass: AXMContactMethodTypeServiceImpl,
417
- },
418
- {
419
- provide: AXMContactMethodService,
420
- useClass: AXMContactMethodServiceImpl,
421
- },
422
- {
423
- provide: AXMEmergencyContactService,
424
- useClass: AXMEmergencyContactServiceImpl,
425
- },
426
494
  ], imports: [CommonModule,
495
+ // Entity Modules
496
+ AXMContactMethodTypeEntityModule,
497
+ AXMContactMethodEntityModule,
498
+ AXMEmergencyContactEntityModule,
427
499
  RouterModule.forChild([{
428
500
  path: ':app/emergency-contacts',
429
501
  component: AXPRootLayoutComponent,
@@ -441,6 +513,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
441
513
  args: [{
442
514
  imports: [
443
515
  CommonModule,
516
+ // Entity Modules
517
+ AXMContactMethodTypeEntityModule,
518
+ AXMContactMethodEntityModule,
519
+ AXMEmergencyContactEntityModule,
444
520
  RouterModule.forChild([{
445
521
  path: ':app/emergency-contacts',
446
522
  component: AXPRootLayoutComponent,
@@ -482,19 +558,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
482
558
  },
483
559
  multi: true,
484
560
  },
485
- // Entity Services
486
- {
487
- provide: AXMContactMethodTypeService,
488
- useClass: AXMContactMethodTypeServiceImpl,
489
- },
490
- {
491
- provide: AXMContactMethodService,
492
- useClass: AXMContactMethodServiceImpl,
493
- },
494
- {
495
- provide: AXMEmergencyContactService,
496
- useClass: AXMEmergencyContactServiceImpl,
497
- },
498
561
  ],
499
562
  }]
500
563
  }] });
@@ -558,6 +621,100 @@ var permissionDefinition_provider = /*#__PURE__*/Object.freeze({
558
621
  AXMPermissionDefinitionProvider: AXMPermissionDefinitionProvider
559
622
  });
560
623
 
624
+ class AXMEmergencyContactItemComponent {
625
+ constructor() {
626
+ this.contact = input.required(...(ngDevMode ? [{ debugName: "contact" }] : []));
627
+ this.expanded = signal(false, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
628
+ this.categoryIcon = computed(() => {
629
+ const c = this.contact()?.categories?.[0];
630
+ return c?.icon ?? 'fa-light fa-circle-info';
631
+ }, ...(ngDevMode ? [{ debugName: "categoryIcon" }] : []));
632
+ this.categoryColor = computed(() => {
633
+ const c = this.contact()?.categories?.[0];
634
+ return c?.color ?? 'fa-light fa-circle-info';
635
+ }, ...(ngDevMode ? [{ debugName: "categoryColor" }] : []));
636
+ this.messageDisabled = computed(() => {
637
+ const c = this.contact();
638
+ const smsNumber = c.textNumber || c.phoneNumber;
639
+ return !(c.isTextCapable && !!smsNumber);
640
+ }, ...(ngDevMode ? [{ debugName: "messageDisabled" }] : []));
641
+ this.callDisabled = computed(() => !this.contact().phoneNumber, ...(ngDevMode ? [{ debugName: "callDisabled" }] : []));
642
+ this.coverageText = computed(() => {
643
+ const c = this.contact();
644
+ const coverage = [];
645
+ if (c.isNational)
646
+ coverage.push('National');
647
+ if (c.isRegional)
648
+ coverage.push('Regional');
649
+ if (c.isLocal)
650
+ coverage.push('Local');
651
+ return coverage.join(', ');
652
+ }, ...(ngDevMode ? [{ debugName: "coverageText" }] : []));
653
+ this.capabilitiesText = computed(() => {
654
+ const c = this.contact();
655
+ const caps = [];
656
+ if (c.isTextCapable)
657
+ caps.push('Text');
658
+ if (c.isVideoCallCapable)
659
+ caps.push('Video');
660
+ if (!caps.length)
661
+ return 'Voice Only';
662
+ return caps.join(' ');
663
+ }, ...(ngDevMode ? [{ debugName: "capabilitiesText" }] : []));
664
+ }
665
+ toggleExpanded() {
666
+ this.expanded.update((v) => !v);
667
+ }
668
+ handleCall() {
669
+ const number = this.contact().phoneNumber;
670
+ if (number) {
671
+ window.open(`tel:${number}`, '_self');
672
+ }
673
+ }
674
+ handleText() {
675
+ const c = this.contact();
676
+ const smsNumber = c.textNumber || c.phoneNumber;
677
+ if (c.isTextCapable && smsNumber) {
678
+ window.open(`sms:${smsNumber}`, '_self');
679
+ }
680
+ }
681
+ visitWebsite() {
682
+ const url = this.contact().website;
683
+ if (url) {
684
+ window.open(url, '_blank');
685
+ }
686
+ }
687
+ async copyInfo() {
688
+ const c = this.contact();
689
+ const info = {
690
+ name: c.name,
691
+ phone: c.phoneNumber,
692
+ text: c.textNumber,
693
+ email: c.email,
694
+ website: c.website,
695
+ availability: c.availability,
696
+ coverage: this.coverageText(),
697
+ capabilities: this.capabilitiesText(),
698
+ };
699
+ try {
700
+ if (navigator?.clipboard) {
701
+ await navigator.clipboard.writeText(JSON.stringify(info, null, 2));
702
+ }
703
+ }
704
+ catch {
705
+ // ignore
706
+ }
707
+ }
708
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEmergencyContactItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
709
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMEmergencyContactItemComponent, isStandalone: true, selector: "axm-emergency-contact-item", inputs: { contact: { classPropertyName: "contact", publicName: "contact", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "\"ax-block ax-rounded-lg ax-border ax-lightest-surface dark:ax-darker-surface ax-shadow-sm\"" } }, ngImport: i0, template: "<div class=\"ax-space-y-3 ax-py-4\">\n <!-- Header -->\n <div class=\"ax-flex ax-items-center ax-justify-center ax-gap-3 ax-flex-col\">\n <div class=\"ax-flex ax-items-start ax-gap-3 ax-min-w-0 ax-px-4 ax-w-full\">\n <div\n class=\"ax-flex ax-border ax-items-center ax-justify-center ax-w-10 ax-h-10 ax-rounded-md ax-lighter-surface dark:ax-surface\"\n >\n <ax-icon [icon]=\"categoryIcon()\" [style.color]=\"categoryColor()\"></ax-icon>\n </div>\n <div class=\"ax-min-w-0\">\n <div class=\"ax-text-lg ax-font-semibold ax-text-default ax-truncate\">{{ contact().name }}</div>\n @if (contact().shortName) {\n <div class=\"ax-text-sm ax-text-muted ax-truncate\">{{ contact().shortName }}</div>\n }\n </div>\n </div>\n <div class=\"ax-w-full ax-border-t ax-border-lighter dark:ax-border-darker\"></div>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-sm ax-w-full ax-px-4\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button [look]=\"'blank'\" (onClick)=\"handleText()\" [disabled]=\"messageDisabled()\">\n <ax-icon icon=\"fa-light fa-message\" class=\"ax-text-primary\"></ax-icon>\n </ax-button>\n <ax-button [look]=\"'blank'\" (onClick)=\"handleCall()\" [disabled]=\"callDisabled()\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary\"></ax-icon>\n </ax-button>\n </div>\n <ax-button [look]=\"'blank'\" [text]=\"'More details'\" (onClick)=\"toggleExpanded()\">\n <ax-icon [icon]=\"expanded() ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Details -->\n @if (expanded()) {\n <div class=\"ax-px-6 ax-border-t ax-space-y-4 ax-pt-4 ax-border-lighter dark:ax-border-darker\">\n <!-- Rowed details; only render when data exists -->\n <div class=\"ax-grid ax-grid-cols-1 ax-gap-3\">\n <div class=\"ax-flex ax-items-center ax-gap-2\" *ngIf=\"true\">\n <ax-icon icon=\"fa-light fa-building\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Company Name</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ contact().name }}</div>\n </div>\n\n @if (contact().phoneNumber || contact().shortName) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Phone</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">\n {{ contact().shortName || contact().phoneNumber }}\n </div>\n </div>\n }\n\n @if (contact().email) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-envelope\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Email</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ contact().email }}</div>\n </div>\n }\n\n @if (contact().website) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-globe\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Website</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-right\">\n <a class=\"ax-text-accent ax-hover:underline\" [href]=\"contact().website\" target=\"_blank\">{{\n contact().website\n }}</a>\n </div>\n </div>\n }\n\n @if (coverageText()) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-location-dot\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Coverage</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ coverageText() }}</div>\n </div>\n }\n\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-wand-magic-sparkles\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Capabilities</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ capabilitiesText() }}</div>\n </div>\n\n @if (contact().availability) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-clock\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Availability</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ contact().availability }}</div>\n </div>\n }\n\n @if (contact().lastVerified) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-badge-check\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Last Verified</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">\n {{ contact().lastVerified | date }}\n </div>\n </div>\n }\n </div>\n\n <!-- Footer actions -->\n <div class=\"ax-flex ax-justify-end ax-gap-2\">\n <ax-button [look]=\"'blank'\" (onClick)=\"copyInfo()\" [text]=\"'Copy Info'\">\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n @if (contact().website) {\n <ax-button [look]=\"'blank'\" [text]=\"'Check Website'\" (onClick)=\"visitWebsite()\">\n <ax-icon icon=\"fa-light fa-arrow-up-right-from-square\"></ax-icon>\n </ax-button>\n }\n </div>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
710
+ }
711
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEmergencyContactItemComponent, decorators: [{
712
+ type: Component,
713
+ args: [{ selector: 'axm-emergency-contact-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXButtonModule, AXDecoratorModule], host: {
714
+ '[class]': '"ax-block ax-rounded-lg ax-border ax-lightest-surface dark:ax-darker-surface ax-shadow-sm"',
715
+ }, template: "<div class=\"ax-space-y-3 ax-py-4\">\n <!-- Header -->\n <div class=\"ax-flex ax-items-center ax-justify-center ax-gap-3 ax-flex-col\">\n <div class=\"ax-flex ax-items-start ax-gap-3 ax-min-w-0 ax-px-4 ax-w-full\">\n <div\n class=\"ax-flex ax-border ax-items-center ax-justify-center ax-w-10 ax-h-10 ax-rounded-md ax-lighter-surface dark:ax-surface\"\n >\n <ax-icon [icon]=\"categoryIcon()\" [style.color]=\"categoryColor()\"></ax-icon>\n </div>\n <div class=\"ax-min-w-0\">\n <div class=\"ax-text-lg ax-font-semibold ax-text-default ax-truncate\">{{ contact().name }}</div>\n @if (contact().shortName) {\n <div class=\"ax-text-sm ax-text-muted ax-truncate\">{{ contact().shortName }}</div>\n }\n </div>\n </div>\n <div class=\"ax-w-full ax-border-t ax-border-lighter dark:ax-border-darker\"></div>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-sm ax-w-full ax-px-4\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button [look]=\"'blank'\" (onClick)=\"handleText()\" [disabled]=\"messageDisabled()\">\n <ax-icon icon=\"fa-light fa-message\" class=\"ax-text-primary\"></ax-icon>\n </ax-button>\n <ax-button [look]=\"'blank'\" (onClick)=\"handleCall()\" [disabled]=\"callDisabled()\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary\"></ax-icon>\n </ax-button>\n </div>\n <ax-button [look]=\"'blank'\" [text]=\"'More details'\" (onClick)=\"toggleExpanded()\">\n <ax-icon [icon]=\"expanded() ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Details -->\n @if (expanded()) {\n <div class=\"ax-px-6 ax-border-t ax-space-y-4 ax-pt-4 ax-border-lighter dark:ax-border-darker\">\n <!-- Rowed details; only render when data exists -->\n <div class=\"ax-grid ax-grid-cols-1 ax-gap-3\">\n <div class=\"ax-flex ax-items-center ax-gap-2\" *ngIf=\"true\">\n <ax-icon icon=\"fa-light fa-building\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Company Name</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ contact().name }}</div>\n </div>\n\n @if (contact().phoneNumber || contact().shortName) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Phone</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">\n {{ contact().shortName || contact().phoneNumber }}\n </div>\n </div>\n }\n\n @if (contact().email) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-envelope\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Email</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ contact().email }}</div>\n </div>\n }\n\n @if (contact().website) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-globe\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Website</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-right\">\n <a class=\"ax-text-accent ax-hover:underline\" [href]=\"contact().website\" target=\"_blank\">{{\n contact().website\n }}</a>\n </div>\n </div>\n }\n\n @if (coverageText()) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-location-dot\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Coverage</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ coverageText() }}</div>\n </div>\n }\n\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-wand-magic-sparkles\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Capabilities</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ capabilitiesText() }}</div>\n </div>\n\n @if (contact().availability) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-clock\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Availability</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">{{ contact().availability }}</div>\n </div>\n }\n\n @if (contact().lastVerified) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-badge-check\"></ax-icon>\n <div class=\"ax-text-sm ax-text-muted\">Last Verified</div>\n <div class=\"ax-flex-1 ax-text-sm ax-text-default ax-text-right\">\n {{ contact().lastVerified | date }}\n </div>\n </div>\n }\n </div>\n\n <!-- Footer actions -->\n <div class=\"ax-flex ax-justify-end ax-gap-2\">\n <ax-button [look]=\"'blank'\" (onClick)=\"copyInfo()\" [text]=\"'Copy Info'\">\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n @if (contact().website) {\n <ax-button [look]=\"'blank'\" [text]=\"'Check Website'\" (onClick)=\"visitWebsite()\">\n <ax-icon icon=\"fa-light fa-arrow-up-right-from-square\"></ax-icon>\n </ax-button>\n }\n </div>\n </div>\n }\n</div>\n" }]
716
+ }] });
717
+
561
718
  class AXMEmergencyContactsPageComponent extends AXPPageLayoutBaseComponent {
562
719
  constructor() {
563
720
  super(...arguments);
@@ -757,7 +914,7 @@ class AXMEmergencyContactsPageComponent extends AXPPageLayoutBaseComponent {
757
914
  provide: AXPPageLayoutBase,
758
915
  useExisting: AXMEmergencyContactsPageComponent,
759
916
  },
760
- ], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <axp-page-content>\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-8\">\n <ax-loading>Loading emergency contacts...</ax-loading>\n </div>\n } @else {\n <div class=\"ax-space-y-6 ax-p-4\">\n <!-- Quick Dial Section -->\n @if (quickDialContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone-rotary\" class=\"ax-text-danger\"></ax-icon>\n Quick Dial\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of quickDialContacts(); track contact.id) {\n <div\n class=\"emergency-contact-quick-dial ax-p-4 ax-rounded-lg ax-border ax-bg-light\"\n [style.--priority-color]=\"'var(--ax-sys-color-' + getPriorityColor(contact.priority) + ')' + ''\"\n >\n <!-- Compact Header with Primary Action -->\n <div class=\"ax-flex ax-items-start ax-justify-between ax-gap-3\">\n <div class=\"ax-flex-1 ax-min-w-0\">\n <h3 class=\"ax-text-lg ax-font-semibold ax-truncate ax-text-default\">\n {{ contact.name }}\n </h3>\n @if (contact.shortName) {\n <p class=\"ax-text-sm ax-text-muted ax-truncate\">{{ contact.shortName }}</p>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button\n [color]=\"getPrimaryActionColor(contact)\"\n [size]=\"'small'\"\n [look]=\"'filled'\"\n [text]=\"getPrimaryActionLabel(contact)\"\n (onClick)=\"performPrimaryAction(contact)\"\n >\n <ax-icon\n [icon]=\"getPrimaryAction(contact) === 'text' ? 'fa-light fa-message' : 'fa-light fa-phone'\"\n ></ax-icon>\n </ax-button>\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n (onClick)=\"toggleExpanded(contact.id)\"\n >\n <ax-icon\n [icon]=\"isExpanded(contact.id) ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"\n ></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Collapsible Details -->\n @if (isExpanded(contact.id)) {\n <div class=\"ax-pt-3 ax-space-y-3\">\n <!-- Primary Phone -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary ax-w-4\"></ax-icon>\n <span class=\"contact-info-text ax-text-sm ax-font-mono ax-flex-1\">{{\n contact.phoneNumber\n }}</span>\n <ax-button\n [color]=\"'secondary'\"\n [size]=\"'small'\"\n [look]=\"'ghost'\"\n (onClick)=\"handleCopyNumber(contact)\"\n >\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n </div>\n\n <!-- Capabilities -->\n <div class=\"contact-info-text ax-flex ax-items-center ax-gap-2 ax-text-xs ax-text-muted\">\n <ax-icon icon=\"fa-light fa-info-circle\" class=\"ax-w-4\"></ax-icon>\n <span>{{ getCapabilitiesText(contact) }}</span>\n </div>\n\n <!-- Availability -->\n @if (contact.availability) {\n <div class=\"contact-info-text ax-flex ax-items-center ax-gap-2 ax-text-xs ax-text-muted\">\n <ax-icon icon=\"fa-light fa-clock\" class=\"ax-w-4\"></ax-icon>\n <span class=\"ax-truncate\">{{ contact.availability }}</span>\n </div>\n }\n\n @if (contact.requiresConfirmation) {\n <div class=\"ax-p-2 ax-rounded ax-bg-warning-50 ax-border ax-border-warning-200\">\n <p class=\"ax-text-xs ax-text-warning-800 ax-flex ax-items-center ax-gap-1\">\n <ax-icon icon=\"fa-light fa-triangle-exclamation\"></ax-icon>\n This contact requires confirmation before calling\n </p>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Dashboard Contacts Section -->\n @if (dashboardContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-tachometer-alt\" class=\"ax-text-primary\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div>\n <div class=\"ax-space-y-4\">\n @for (contact of dashboardContacts(); track contact.id) {\n <div class=\"emergency-contact-detailed ax-p-4 ax-rounded-lg ax-border ax-bg-light\">\n <!-- Compact header -->\n <div class=\"ax-flex ax-items-start ax-justify-between ax-mb-3 ax-gap-3\">\n <div class=\"ax-flex-1 ax-min-w-0\">\n <h3 class=\"ax-text-xl ax-font-semibold ax-text-default\">{{ contact.name }}</h3>\n @if (contact.shortName) {\n <p class=\"ax-text-muted\">{{ contact.shortName }}</p>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button\n [color]=\"getPrimaryActionColor(contact)\"\n [look]=\"'filled'\"\n [size]=\"'small'\"\n [text]=\"getPrimaryActionLabel(contact)\"\n (onClick)=\"performPrimaryAction(contact)\"\n >\n <ax-icon\n [icon]=\"getPrimaryAction(contact) === 'text' ? 'fa-light fa-message' : 'fa-light fa-phone'\"\n ></ax-icon>\n </ax-button>\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n (onClick)=\"toggleExpanded(contact.id)\"\n >\n <ax-icon\n [icon]=\"isExpanded(contact.id) ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"\n ></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Collapsible Details -->\n @if (isExpanded(contact.id)) {\n <div class=\"ax-grid ax-grid-cols-1 lg:ax-grid-cols-3 ax-gap-4 ax-items-start\">\n <!-- Contact Info -->\n <div class=\"lg:ax-col-span-2\">\n @if (contact.description) {\n <p class=\"ax-text-muted ax-mb-4\">{{ contact.description }}</p>\n }\n\n <!-- Contact Methods Grid -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 ax-gap-3 ax-mb-4\">\n <!-- Phone -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary\"></ax-icon>\n <span class=\"ax-font-mono\">{{ contact.phoneNumber }}</span>\n </div>\n\n <!-- Text Number -->\n @if (contact.textNumber) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-message\" class=\"ax-text-secondary\"></ax-icon>\n <span class=\"ax-font-mono\">{{ contact.textNumber }}</span>\n </div>\n }\n\n <!-- Email -->\n @if (contact.email) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-envelope\" class=\"ax-text-info\"></ax-icon>\n <span>{{ contact.email }}</span>\n </div>\n }\n\n <!-- Website -->\n @if (contact.website) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-globe\" class=\"ax-text-accent\"></ax-icon>\n <a [href]=\"contact.website\" target=\"_blank\" class=\"ax-text-accent ax-hover:underline\">\n Website\n </a>\n </div>\n }\n </div>\n\n <!-- Coverage & Capabilities -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-3 ax-gap-3 ax-text-sm\">\n <div>\n <strong class=\"ax-text-muted\">Coverage:</strong>\n <p>{{ getCoverageText(contact) }}</p>\n </div>\n <div>\n <strong class=\"ax-text-muted\">Capabilities:</strong>\n <p>{{ getCapabilitiesText(contact) }}</p>\n </div>\n @if (contact.availability) {\n <div>\n <strong class=\"ax-text-muted\">Availability:</strong>\n <p>{{ contact.availability }}</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Secondary actions and meta -->\n <div class=\"ax-flex ax-flex-col ax-gap-3\">\n <!-- Secondary Actions -->\n <div class=\"ax-flex ax-gap-2\">\n @if (contact.website) {\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleVisitWebsite(contact)\"\n >\n <ax-icon icon=\"fa-light fa-external-link\"></ax-icon>\n </ax-button>\n }\n\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleCopyNumber(contact)\"\n >\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n </div>\n\n <!-- Warnings -->\n @if (contact.requiresConfirmation) {\n <div class=\"ax-p-3 ax-rounded ax-bg-warning-50 ax-border ax-border-warning-200\">\n <p class=\"ax-text-xs ax-text-warning-800 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-triangle-exclamation\"></ax-icon>\n This contact requires confirmation before calling\n </p>\n </div>\n }\n\n @if (contact.lastVerified) {\n <div class=\"ax-text-xs ax-text-muted\">\n <strong>Last Verified:</strong>\n <p>{{ contact.lastVerified | date }}</p>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n }\n\n <!-- Fallback: Show all contacts if no filtered contacts are available -->\n @if (quickDialContacts().length === 0 && dashboardContacts().length === 0 && displayContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-list\" class=\"ax-text-info\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div class=\"ax-space-y-4\">\n @for (contact of displayContacts(); track contact.id) {\n <div class=\"emergency-contact-detailed ax-p-4 ax-rounded-lg ax-border ax-bg-light\">\n <!-- Compact header -->\n <div class=\"ax-flex ax-items-start ax-justify-between ax-mb-3 ax-gap-3\">\n <div class=\"ax-flex-1 ax-min-w-0\">\n <h3 class=\"ax-text-xl ax-font-semibold ax-text-default\">{{ contact.name }}</h3>\n @if (contact.shortName) {\n <p class=\"ax-text-muted\">{{ contact.shortName }}</p>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button\n [color]=\"getPrimaryActionColor(contact)\"\n [look]=\"'filled'\"\n [size]=\"'small'\"\n (onClick)=\"performPrimaryAction(contact)\"\n >\n <ax-icon\n [icon]=\"getPrimaryAction(contact) === 'text' ? 'fa-light fa-message' : 'fa-light fa-phone'\"\n ></ax-icon>\n {{ getPrimaryActionLabel(contact) }}\n </ax-button>\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n (onClick)=\"toggleExpanded(contact.id)\"\n >\n <ax-icon\n [icon]=\"isExpanded(contact.id) ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"\n ></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Collapsible details -->\n @if (isExpanded(contact.id)) {\n <div class=\"ax-grid ax-grid-cols-1 lg:ax-grid-cols-3 ax-gap-4 ax-items-start\">\n <!-- Contact Info -->\n <div class=\"lg:ax-col-span-2\">\n @if (contact.description) {\n <p class=\"ax-text-muted ax-mb-4\">{{ contact.description }}</p>\n }\n\n <!-- Contact Methods Grid -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 ax-gap-3 ax-mb-4\">\n <!-- Phone -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary\"></ax-icon>\n <span class=\"ax-font-mono\">{{ contact.phoneNumber }}</span>\n </div>\n\n <!-- Email -->\n @if (contact.email) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-envelope\" class=\"ax-text-info\"></ax-icon>\n <span>{{ contact.email }}</span>\n </div>\n }\n\n <!-- Website -->\n @if (contact.website) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-globe\" class=\"ax-text-accent\"></ax-icon>\n <a [href]=\"contact.website\" target=\"_blank\" class=\"ax-text-accent ax-hover:underline\">\n Website\n </a>\n </div>\n }\n </div>\n\n <!-- Status Info -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-3 ax-gap-3 ax-text-sm\">\n <div>\n <strong class=\"ax-text-muted\">Coverage:</strong>\n <p>{{ getCoverageText(contact) }}</p>\n </div>\n <div>\n <strong class=\"ax-text-muted\">Capabilities:</strong>\n <p>{{ getCapabilitiesText(contact) }}</p>\n </div>\n <div>\n <strong class=\"ax-text-muted\">Status:</strong>\n <p class=\"ax-flex ax-items-center ax-gap-1\">\n <span [class]=\"contact.isActive ? 'ax-text-success' : 'ax-text-danger'\">\n {{ contact.isActive ? 'Active' : 'Inactive' }}\n </span>\n @if (contact.isVerified) {\n <ax-icon icon=\"fa-light fa-check-circle\" class=\"ax-text-success\"></ax-icon>\n }\n </p>\n </div>\n </div>\n </div>\n\n <!-- Secondary Actions -->\n <div class=\"ax-flex ax-gap-2\">\n @if (contact.website) {\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleVisitWebsite(contact)\"\n >\n <ax-icon icon=\"fa-light fa-external-link\"></ax-icon>\n </ax-button>\n }\n\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleCopyNumber(contact)\"\n >\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- No Contacts State -->\n @if (allContacts().length === 0 && !loading()) {\n <div class=\"ax-text-center ax-py-12\">\n <ax-icon icon=\"fa-light fa-phone-slash\" class=\"ax-text-6xl ax-text-muted ax-mb-4\"></ax-icon>\n <h3 class=\"ax-text-xl ax-font-medium ax-text-muted ax-mb-2\">No emergency contacts available</h3>\n </div>\n }\n </div>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-emergency-contacts-page{display:block;width:100%;height:100%}axm-emergency-contacts-page .ax-space-y-6.ax-p-4{max-width:1200px;margin:0 auto;padding-left:1rem;padding-right:1rem}@media (min-width: 768px){axm-emergency-contacts-page .ax-space-y-6.ax-p-4{padding-left:1.5rem;padding-right:1.5rem}}axm-emergency-contacts-page h2{margin-bottom:1.25rem;color:var(--ax-sys-color-primary);border-bottom:1px solid var(--ax-sys-color-border);padding-bottom:.5rem}axm-emergency-contacts-page h2 ax-icon{margin-right:.5rem}@media (min-width: 768px){axm-emergency-contacts-page h2 ax-icon{margin-right:.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial{position:relative;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant);min-height:140px}axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-2px);border-color:var(--priority-color, var(--ax-sys-color-primary))}axm-emergency-contacts-page .emergency-contact-quick-dial h3{color:var(--ax-sys-color-on-surface);margin-bottom:.125rem;font-size:1rem;line-height:1.5rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial h3{font-size:1.125rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.75rem;line-height:1rem;font-weight:500}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.875rem;line-height:1.25rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{min-height:30px}axm-emergency-contacts-page .emergency-contact-detailed{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant)}axm-emergency-contacts-page .emergency-contact-detailed:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-1px);border-color:var(--ax-sys-color-primary)}axm-emergency-contacts-page .emergency-contact-detailed h3{color:var(--ax-sys-color-on-surface);font-size:1.125rem;line-height:1.75rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-detailed h3{font-size:1.25rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-detailed ax-icon{flex-shrink:0}@media (min-width: 640px){axm-emergency-contacts-page .emergency-contact-detailed .ax-grid-cols-1.sm\\\\:ax-grid-cols-2>div{min-width:0px}}@media (min-width: 1024px){axm-emergency-contacts-page .emergency-contact-detailed .ax-flex.ax-flex-col.ax-gap-3{position:-webkit-sticky;position:sticky;top:1rem}}axm-emergency-contacts-page ax-loading{margin-left:auto;margin-right:auto}axm-emergency-contacts-page .ax-text-center.ax-py-12 ax-icon{margin-left:auto;margin-right:auto;display:block}axm-emergency-contacts-page ax-badge[data-color=danger]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-danger-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=warning]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=primary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=secondary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-secondary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-secondary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page .ax-bg-warning-50 ax-icon{flex-shrink:0}axm-emergency-contacts-page .ax-font-mono{letter-spacing:.025em}@media (min-width: 640px){axm-emergency-contacts-page axp-layout-content .ax-gap-4{gap:1.5rem}}axm-emergency-contacts-page ax-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}axm-emergency-contacts-page ax-button:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button[data-color=danger]{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button[data-color=danger]:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-icon.ax-w-4{height:1rem}axm-emergency-contacts-page ax-icon.ax-text-6xl{height:6rem;width:6rem}@media (max-width: 640px){axm-emergency-contacts-page .ax-grid-cols-1 .ax-gap-3{gap:.5rem}axm-emergency-contacts-page .emergency-contact-quick-dial .contact-info-text{font-size:.75rem;line-height:1rem}}@media print{axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{break-inside:avoid;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button{display:none}axm-emergency-contacts-page .ax-bg-warning-50{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}}@media (prefers-contrast: high){axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{border-width:2px}axm-emergency-contacts-page ax-badge{border-width:2px}}@media (prefers-reduced-motion: reduce){axm-emergency-contacts-page *{transition-property:none}axm-emergency-contacts-page ax-button:hover,axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXFormatModule }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "pipe", type: i5.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
917
+ ], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <axp-page-content>\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-8\">\n <ax-loading>Loading emergency contacts...</ax-loading>\n </div>\n } @else {\n <div class=\"ax-space-y-6 ax-p-4\">\n <!-- Quick Dial Section -->\n @if (quickDialContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone-rotary\" class=\"ax-text-danger\"></ax-icon>\n Quick Dial\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of quickDialContacts(); track contact.id) {\n <axm-emergency-contact-item [contact]=\"contact\"></axm-emergency-contact-item>\n }\n </div>\n </div>\n }\n\n <!-- Dashboard Contacts Section -->\n @if (dashboardContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-tachometer-alt\" class=\"ax-text-primary\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of dashboardContacts(); track contact.id) {\n <axm-emergency-contact-item [contact]=\"contact\"></axm-emergency-contact-item>\n }\n </div>\n </div>\n }\n\n <!-- Fallback: Show all contacts if no filtered contacts are available -->\n @if (quickDialContacts().length === 0 && dashboardContacts().length === 0 && displayContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-list\" class=\"ax-text-info\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of displayContacts(); track contact.id) {\n <axm-emergency-contact-item [contact]=\"contact\"></axm-emergency-contact-item>\n }\n </div>\n </div>\n }\n\n <!-- No Contacts State -->\n @if (allContacts().length === 0 && !loading()) {\n <div class=\"ax-text-center ax-py-12\">\n <ax-icon icon=\"fa-light fa-phone-slash\" class=\"ax-text-6xl ax-text-muted ax-mb-4\"></ax-icon>\n <h3 class=\"ax-text-xl ax-font-medium ax-text-muted ax-mb-2\">No emergency contacts available</h3>\n </div>\n }\n </div>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-emergency-contacts-page{display:block;width:100%;height:100%}axm-emergency-contacts-page .ax-space-y-6.ax-p-4{max-width:1200px;margin:0 auto;padding-left:1rem;padding-right:1rem}@media (min-width: 768px){axm-emergency-contacts-page .ax-space-y-6.ax-p-4{padding-left:1.5rem;padding-right:1.5rem}}axm-emergency-contacts-page h2{margin-bottom:1.25rem;color:var(--ax-sys-color-primary);border-bottom:1px solid var(--ax-sys-color-border);padding-bottom:.5rem}axm-emergency-contacts-page h2 ax-icon{margin-right:.5rem}@media (min-width: 768px){axm-emergency-contacts-page h2 ax-icon{margin-right:.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial{position:relative;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant);min-height:140px}axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-2px);border-color:var(--priority-color, var(--ax-sys-color-primary))}axm-emergency-contacts-page .emergency-contact-quick-dial h3{color:var(--ax-sys-color-on-surface);margin-bottom:.125rem;font-size:1rem;line-height:1.5rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial h3{font-size:1.125rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.75rem;line-height:1rem;font-weight:500}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.875rem;line-height:1.25rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{min-height:30px}axm-emergency-contacts-page .emergency-contact-detailed{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant)}axm-emergency-contacts-page .emergency-contact-detailed:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-1px);border-color:var(--ax-sys-color-primary)}axm-emergency-contacts-page .emergency-contact-detailed h3{color:var(--ax-sys-color-on-surface);font-size:1.125rem;line-height:1.75rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-detailed h3{font-size:1.25rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-detailed ax-icon{flex-shrink:0}@media (min-width: 640px){axm-emergency-contacts-page .emergency-contact-detailed .ax-grid-cols-1.sm\\\\:ax-grid-cols-2>div{min-width:0px}}@media (min-width: 1024px){axm-emergency-contacts-page .emergency-contact-detailed .ax-flex.ax-flex-col.ax-gap-3{position:-webkit-sticky;position:sticky;top:1rem}}axm-emergency-contacts-page ax-loading{margin-left:auto;margin-right:auto}axm-emergency-contacts-page .ax-text-center.ax-py-12 ax-icon{margin-left:auto;margin-right:auto;display:block}axm-emergency-contacts-page ax-badge[data-color=danger]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-danger-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=warning]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=primary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=secondary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-secondary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-secondary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page .ax-bg-warning-50 ax-icon{flex-shrink:0}axm-emergency-contacts-page .ax-font-mono{letter-spacing:.025em}@media (min-width: 640px){axm-emergency-contacts-page axp-layout-content .ax-gap-4{gap:1.5rem}}axm-emergency-contacts-page ax-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}axm-emergency-contacts-page ax-button:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button[data-color=danger]{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button[data-color=danger]:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-icon.ax-w-4{height:1rem}axm-emergency-contacts-page ax-icon.ax-text-6xl{height:6rem;width:6rem}@media (max-width: 640px){axm-emergency-contacts-page .ax-grid-cols-1 .ax-gap-3{gap:.5rem}axm-emergency-contacts-page .emergency-contact-quick-dial .contact-info-text{font-size:.75rem;line-height:1rem}}@media print{axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{break-inside:avoid;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button{display:none}axm-emergency-contacts-page .ax-bg-warning-50{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}}@media (prefers-contrast: high){axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{border-width:2px}axm-emergency-contacts-page ax-badge{border-width:2px}}@media (prefers-reduced-motion: reduce){axm-emergency-contacts-page *{transition-property:none}axm-emergency-contacts-page ax-button:hover,axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i3$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXFormatModule }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXMEmergencyContactItemComponent, selector: "axm-emergency-contact-item", inputs: ["contact"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
761
918
  }
762
919
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEmergencyContactsPageComponent, decorators: [{
763
920
  type: Component,
@@ -771,14 +928,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
771
928
  AXFormatModule,
772
929
  AXPPageLayoutComponent,
773
930
  AXPThemeLayoutBlockComponent,
931
+ AXMEmergencyContactItemComponent,
774
932
  ], host: {
775
- '(window:resize)': 'onResize()'
933
+ '(window:resize)': 'onResize()',
776
934
  }, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
777
935
  {
778
936
  provide: AXPPageLayoutBase,
779
937
  useExisting: AXMEmergencyContactsPageComponent,
780
938
  },
781
- ], template: "<axp-page-layout *translate=\"let t\">\n <axp-page-content>\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-8\">\n <ax-loading>Loading emergency contacts...</ax-loading>\n </div>\n } @else {\n <div class=\"ax-space-y-6 ax-p-4\">\n <!-- Quick Dial Section -->\n @if (quickDialContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone-rotary\" class=\"ax-text-danger\"></ax-icon>\n Quick Dial\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of quickDialContacts(); track contact.id) {\n <div\n class=\"emergency-contact-quick-dial ax-p-4 ax-rounded-lg ax-border ax-bg-light\"\n [style.--priority-color]=\"'var(--ax-sys-color-' + getPriorityColor(contact.priority) + ')' + ''\"\n >\n <!-- Compact Header with Primary Action -->\n <div class=\"ax-flex ax-items-start ax-justify-between ax-gap-3\">\n <div class=\"ax-flex-1 ax-min-w-0\">\n <h3 class=\"ax-text-lg ax-font-semibold ax-truncate ax-text-default\">\n {{ contact.name }}\n </h3>\n @if (contact.shortName) {\n <p class=\"ax-text-sm ax-text-muted ax-truncate\">{{ contact.shortName }}</p>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button\n [color]=\"getPrimaryActionColor(contact)\"\n [size]=\"'small'\"\n [look]=\"'filled'\"\n [text]=\"getPrimaryActionLabel(contact)\"\n (onClick)=\"performPrimaryAction(contact)\"\n >\n <ax-icon\n [icon]=\"getPrimaryAction(contact) === 'text' ? 'fa-light fa-message' : 'fa-light fa-phone'\"\n ></ax-icon>\n </ax-button>\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n (onClick)=\"toggleExpanded(contact.id)\"\n >\n <ax-icon\n [icon]=\"isExpanded(contact.id) ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"\n ></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Collapsible Details -->\n @if (isExpanded(contact.id)) {\n <div class=\"ax-pt-3 ax-space-y-3\">\n <!-- Primary Phone -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary ax-w-4\"></ax-icon>\n <span class=\"contact-info-text ax-text-sm ax-font-mono ax-flex-1\">{{\n contact.phoneNumber\n }}</span>\n <ax-button\n [color]=\"'secondary'\"\n [size]=\"'small'\"\n [look]=\"'ghost'\"\n (onClick)=\"handleCopyNumber(contact)\"\n >\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n </div>\n\n <!-- Capabilities -->\n <div class=\"contact-info-text ax-flex ax-items-center ax-gap-2 ax-text-xs ax-text-muted\">\n <ax-icon icon=\"fa-light fa-info-circle\" class=\"ax-w-4\"></ax-icon>\n <span>{{ getCapabilitiesText(contact) }}</span>\n </div>\n\n <!-- Availability -->\n @if (contact.availability) {\n <div class=\"contact-info-text ax-flex ax-items-center ax-gap-2 ax-text-xs ax-text-muted\">\n <ax-icon icon=\"fa-light fa-clock\" class=\"ax-w-4\"></ax-icon>\n <span class=\"ax-truncate\">{{ contact.availability }}</span>\n </div>\n }\n\n @if (contact.requiresConfirmation) {\n <div class=\"ax-p-2 ax-rounded ax-bg-warning-50 ax-border ax-border-warning-200\">\n <p class=\"ax-text-xs ax-text-warning-800 ax-flex ax-items-center ax-gap-1\">\n <ax-icon icon=\"fa-light fa-triangle-exclamation\"></ax-icon>\n This contact requires confirmation before calling\n </p>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Dashboard Contacts Section -->\n @if (dashboardContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-tachometer-alt\" class=\"ax-text-primary\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div>\n <div class=\"ax-space-y-4\">\n @for (contact of dashboardContacts(); track contact.id) {\n <div class=\"emergency-contact-detailed ax-p-4 ax-rounded-lg ax-border ax-bg-light\">\n <!-- Compact header -->\n <div class=\"ax-flex ax-items-start ax-justify-between ax-mb-3 ax-gap-3\">\n <div class=\"ax-flex-1 ax-min-w-0\">\n <h3 class=\"ax-text-xl ax-font-semibold ax-text-default\">{{ contact.name }}</h3>\n @if (contact.shortName) {\n <p class=\"ax-text-muted\">{{ contact.shortName }}</p>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button\n [color]=\"getPrimaryActionColor(contact)\"\n [look]=\"'filled'\"\n [size]=\"'small'\"\n [text]=\"getPrimaryActionLabel(contact)\"\n (onClick)=\"performPrimaryAction(contact)\"\n >\n <ax-icon\n [icon]=\"getPrimaryAction(contact) === 'text' ? 'fa-light fa-message' : 'fa-light fa-phone'\"\n ></ax-icon>\n </ax-button>\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n (onClick)=\"toggleExpanded(contact.id)\"\n >\n <ax-icon\n [icon]=\"isExpanded(contact.id) ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"\n ></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Collapsible Details -->\n @if (isExpanded(contact.id)) {\n <div class=\"ax-grid ax-grid-cols-1 lg:ax-grid-cols-3 ax-gap-4 ax-items-start\">\n <!-- Contact Info -->\n <div class=\"lg:ax-col-span-2\">\n @if (contact.description) {\n <p class=\"ax-text-muted ax-mb-4\">{{ contact.description }}</p>\n }\n\n <!-- Contact Methods Grid -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 ax-gap-3 ax-mb-4\">\n <!-- Phone -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary\"></ax-icon>\n <span class=\"ax-font-mono\">{{ contact.phoneNumber }}</span>\n </div>\n\n <!-- Text Number -->\n @if (contact.textNumber) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-message\" class=\"ax-text-secondary\"></ax-icon>\n <span class=\"ax-font-mono\">{{ contact.textNumber }}</span>\n </div>\n }\n\n <!-- Email -->\n @if (contact.email) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-envelope\" class=\"ax-text-info\"></ax-icon>\n <span>{{ contact.email }}</span>\n </div>\n }\n\n <!-- Website -->\n @if (contact.website) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-globe\" class=\"ax-text-accent\"></ax-icon>\n <a [href]=\"contact.website\" target=\"_blank\" class=\"ax-text-accent ax-hover:underline\">\n Website\n </a>\n </div>\n }\n </div>\n\n <!-- Coverage & Capabilities -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-3 ax-gap-3 ax-text-sm\">\n <div>\n <strong class=\"ax-text-muted\">Coverage:</strong>\n <p>{{ getCoverageText(contact) }}</p>\n </div>\n <div>\n <strong class=\"ax-text-muted\">Capabilities:</strong>\n <p>{{ getCapabilitiesText(contact) }}</p>\n </div>\n @if (contact.availability) {\n <div>\n <strong class=\"ax-text-muted\">Availability:</strong>\n <p>{{ contact.availability }}</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Secondary actions and meta -->\n <div class=\"ax-flex ax-flex-col ax-gap-3\">\n <!-- Secondary Actions -->\n <div class=\"ax-flex ax-gap-2\">\n @if (contact.website) {\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleVisitWebsite(contact)\"\n >\n <ax-icon icon=\"fa-light fa-external-link\"></ax-icon>\n </ax-button>\n }\n\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleCopyNumber(contact)\"\n >\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n </div>\n\n <!-- Warnings -->\n @if (contact.requiresConfirmation) {\n <div class=\"ax-p-3 ax-rounded ax-bg-warning-50 ax-border ax-border-warning-200\">\n <p class=\"ax-text-xs ax-text-warning-800 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-triangle-exclamation\"></ax-icon>\n This contact requires confirmation before calling\n </p>\n </div>\n }\n\n @if (contact.lastVerified) {\n <div class=\"ax-text-xs ax-text-muted\">\n <strong>Last Verified:</strong>\n <p>{{ contact.lastVerified | date }}</p>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n }\n\n <!-- Fallback: Show all contacts if no filtered contacts are available -->\n @if (quickDialContacts().length === 0 && dashboardContacts().length === 0 && displayContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-list\" class=\"ax-text-info\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div class=\"ax-space-y-4\">\n @for (contact of displayContacts(); track contact.id) {\n <div class=\"emergency-contact-detailed ax-p-4 ax-rounded-lg ax-border ax-bg-light\">\n <!-- Compact header -->\n <div class=\"ax-flex ax-items-start ax-justify-between ax-mb-3 ax-gap-3\">\n <div class=\"ax-flex-1 ax-min-w-0\">\n <h3 class=\"ax-text-xl ax-font-semibold ax-text-default\">{{ contact.name }}</h3>\n @if (contact.shortName) {\n <p class=\"ax-text-muted\">{{ contact.shortName }}</p>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-button\n [color]=\"getPrimaryActionColor(contact)\"\n [look]=\"'filled'\"\n [size]=\"'small'\"\n (onClick)=\"performPrimaryAction(contact)\"\n >\n <ax-icon\n [icon]=\"getPrimaryAction(contact) === 'text' ? 'fa-light fa-message' : 'fa-light fa-phone'\"\n ></ax-icon>\n {{ getPrimaryActionLabel(contact) }}\n </ax-button>\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n (onClick)=\"toggleExpanded(contact.id)\"\n >\n <ax-icon\n [icon]=\"isExpanded(contact.id) ? 'fa-light fa-chevron-up' : 'fa-light fa-chevron-down'\"\n ></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Collapsible details -->\n @if (isExpanded(contact.id)) {\n <div class=\"ax-grid ax-grid-cols-1 lg:ax-grid-cols-3 ax-gap-4 ax-items-start\">\n <!-- Contact Info -->\n <div class=\"lg:ax-col-span-2\">\n @if (contact.description) {\n <p class=\"ax-text-muted ax-mb-4\">{{ contact.description }}</p>\n }\n\n <!-- Contact Methods Grid -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 ax-gap-3 ax-mb-4\">\n <!-- Phone -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone\" class=\"ax-text-primary\"></ax-icon>\n <span class=\"ax-font-mono\">{{ contact.phoneNumber }}</span>\n </div>\n\n <!-- Email -->\n @if (contact.email) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-envelope\" class=\"ax-text-info\"></ax-icon>\n <span>{{ contact.email }}</span>\n </div>\n }\n\n <!-- Website -->\n @if (contact.website) {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-globe\" class=\"ax-text-accent\"></ax-icon>\n <a [href]=\"contact.website\" target=\"_blank\" class=\"ax-text-accent ax-hover:underline\">\n Website\n </a>\n </div>\n }\n </div>\n\n <!-- Status Info -->\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-3 ax-gap-3 ax-text-sm\">\n <div>\n <strong class=\"ax-text-muted\">Coverage:</strong>\n <p>{{ getCoverageText(contact) }}</p>\n </div>\n <div>\n <strong class=\"ax-text-muted\">Capabilities:</strong>\n <p>{{ getCapabilitiesText(contact) }}</p>\n </div>\n <div>\n <strong class=\"ax-text-muted\">Status:</strong>\n <p class=\"ax-flex ax-items-center ax-gap-1\">\n <span [class]=\"contact.isActive ? 'ax-text-success' : 'ax-text-danger'\">\n {{ contact.isActive ? 'Active' : 'Inactive' }}\n </span>\n @if (contact.isVerified) {\n <ax-icon icon=\"fa-light fa-check-circle\" class=\"ax-text-success\"></ax-icon>\n }\n </p>\n </div>\n </div>\n </div>\n\n <!-- Secondary Actions -->\n <div class=\"ax-flex ax-gap-2\">\n @if (contact.website) {\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleVisitWebsite(contact)\"\n >\n <ax-icon icon=\"fa-light fa-external-link\"></ax-icon>\n </ax-button>\n }\n\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'ghost'\"\n [size]=\"'small'\"\n class=\"ax-flex-1\"\n (onClick)=\"handleCopyNumber(contact)\"\n >\n <ax-icon icon=\"fa-light fa-copy\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- No Contacts State -->\n @if (allContacts().length === 0 && !loading()) {\n <div class=\"ax-text-center ax-py-12\">\n <ax-icon icon=\"fa-light fa-phone-slash\" class=\"ax-text-6xl ax-text-muted ax-mb-4\"></ax-icon>\n <h3 class=\"ax-text-xl ax-font-medium ax-text-muted ax-mb-2\">No emergency contacts available</h3>\n </div>\n }\n </div>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-emergency-contacts-page{display:block;width:100%;height:100%}axm-emergency-contacts-page .ax-space-y-6.ax-p-4{max-width:1200px;margin:0 auto;padding-left:1rem;padding-right:1rem}@media (min-width: 768px){axm-emergency-contacts-page .ax-space-y-6.ax-p-4{padding-left:1.5rem;padding-right:1.5rem}}axm-emergency-contacts-page h2{margin-bottom:1.25rem;color:var(--ax-sys-color-primary);border-bottom:1px solid var(--ax-sys-color-border);padding-bottom:.5rem}axm-emergency-contacts-page h2 ax-icon{margin-right:.5rem}@media (min-width: 768px){axm-emergency-contacts-page h2 ax-icon{margin-right:.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial{position:relative;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant);min-height:140px}axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-2px);border-color:var(--priority-color, var(--ax-sys-color-primary))}axm-emergency-contacts-page .emergency-contact-quick-dial h3{color:var(--ax-sys-color-on-surface);margin-bottom:.125rem;font-size:1rem;line-height:1.5rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial h3{font-size:1.125rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.75rem;line-height:1rem;font-weight:500}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.875rem;line-height:1.25rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{min-height:30px}axm-emergency-contacts-page .emergency-contact-detailed{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant)}axm-emergency-contacts-page .emergency-contact-detailed:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-1px);border-color:var(--ax-sys-color-primary)}axm-emergency-contacts-page .emergency-contact-detailed h3{color:var(--ax-sys-color-on-surface);font-size:1.125rem;line-height:1.75rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-detailed h3{font-size:1.25rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-detailed ax-icon{flex-shrink:0}@media (min-width: 640px){axm-emergency-contacts-page .emergency-contact-detailed .ax-grid-cols-1.sm\\\\:ax-grid-cols-2>div{min-width:0px}}@media (min-width: 1024px){axm-emergency-contacts-page .emergency-contact-detailed .ax-flex.ax-flex-col.ax-gap-3{position:-webkit-sticky;position:sticky;top:1rem}}axm-emergency-contacts-page ax-loading{margin-left:auto;margin-right:auto}axm-emergency-contacts-page .ax-text-center.ax-py-12 ax-icon{margin-left:auto;margin-right:auto;display:block}axm-emergency-contacts-page ax-badge[data-color=danger]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-danger-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=warning]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=primary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=secondary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-secondary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-secondary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page .ax-bg-warning-50 ax-icon{flex-shrink:0}axm-emergency-contacts-page .ax-font-mono{letter-spacing:.025em}@media (min-width: 640px){axm-emergency-contacts-page axp-layout-content .ax-gap-4{gap:1.5rem}}axm-emergency-contacts-page ax-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}axm-emergency-contacts-page ax-button:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button[data-color=danger]{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button[data-color=danger]:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-icon.ax-w-4{height:1rem}axm-emergency-contacts-page ax-icon.ax-text-6xl{height:6rem;width:6rem}@media (max-width: 640px){axm-emergency-contacts-page .ax-grid-cols-1 .ax-gap-3{gap:.5rem}axm-emergency-contacts-page .emergency-contact-quick-dial .contact-info-text{font-size:.75rem;line-height:1rem}}@media print{axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{break-inside:avoid;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button{display:none}axm-emergency-contacts-page .ax-bg-warning-50{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}}@media (prefers-contrast: high){axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{border-width:2px}axm-emergency-contacts-page ax-badge{border-width:2px}}@media (prefers-reduced-motion: reduce){axm-emergency-contacts-page *{transition-property:none}axm-emergency-contacts-page ax-button:hover,axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}\n"] }]
939
+ ], template: "<axp-page-layout *translate=\"let t\">\n <axp-page-content>\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-8\">\n <ax-loading>Loading emergency contacts...</ax-loading>\n </div>\n } @else {\n <div class=\"ax-space-y-6 ax-p-4\">\n <!-- Quick Dial Section -->\n @if (quickDialContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-phone-rotary\" class=\"ax-text-danger\"></ax-icon>\n Quick Dial\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of quickDialContacts(); track contact.id) {\n <axm-emergency-contact-item [contact]=\"contact\"></axm-emergency-contact-item>\n }\n </div>\n </div>\n }\n\n <!-- Dashboard Contacts Section -->\n @if (dashboardContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-tachometer-alt\" class=\"ax-text-primary\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of dashboardContacts(); track contact.id) {\n <axm-emergency-contact-item [contact]=\"contact\"></axm-emergency-contact-item>\n }\n </div>\n </div>\n }\n\n <!-- Fallback: Show all contacts if no filtered contacts are available -->\n @if (quickDialContacts().length === 0 && dashboardContacts().length === 0 && displayContacts().length > 0) {\n <div class=\"ax-mb-8\">\n <h2 class=\"ax-text-2xl ax-font-semibold ax-mb-4 ax-flex ax-items-center ax-gap-2\">\n <ax-icon icon=\"fa-light fa-list\" class=\"ax-text-info\"></ax-icon>\n All Emergency Contacts\n </h2>\n <div class=\"ax-grid ax-grid-cols-1 sm:ax-grid-cols-2 lg:ax-grid-cols-3 xl:ax-grid-cols-4 ax-gap-4\">\n @for (contact of displayContacts(); track contact.id) {\n <axm-emergency-contact-item [contact]=\"contact\"></axm-emergency-contact-item>\n }\n </div>\n </div>\n }\n\n <!-- No Contacts State -->\n @if (allContacts().length === 0 && !loading()) {\n <div class=\"ax-text-center ax-py-12\">\n <ax-icon icon=\"fa-light fa-phone-slash\" class=\"ax-text-6xl ax-text-muted ax-mb-4\"></ax-icon>\n <h3 class=\"ax-text-xl ax-font-medium ax-text-muted ax-mb-2\">No emergency contacts available</h3>\n </div>\n }\n </div>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-emergency-contacts-page{display:block;width:100%;height:100%}axm-emergency-contacts-page .ax-space-y-6.ax-p-4{max-width:1200px;margin:0 auto;padding-left:1rem;padding-right:1rem}@media (min-width: 768px){axm-emergency-contacts-page .ax-space-y-6.ax-p-4{padding-left:1.5rem;padding-right:1.5rem}}axm-emergency-contacts-page h2{margin-bottom:1.25rem;color:var(--ax-sys-color-primary);border-bottom:1px solid var(--ax-sys-color-border);padding-bottom:.5rem}axm-emergency-contacts-page h2 ax-icon{margin-right:.5rem}@media (min-width: 768px){axm-emergency-contacts-page h2 ax-icon{margin-right:.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial{position:relative;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant);min-height:140px}axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-2px);border-color:var(--priority-color, var(--ax-sys-color-primary))}axm-emergency-contacts-page .emergency-contact-quick-dial h3{color:var(--ax-sys-color-on-surface);margin-bottom:.125rem;font-size:1rem;line-height:1.5rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial h3{font-size:1.125rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.75rem;line-height:1rem;font-weight:500}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{font-size:.875rem;line-height:1.25rem}}axm-emergency-contacts-page .emergency-contact-quick-dial .ax-button{min-height:30px}axm-emergency-contacts-page .emergency-contact-detailed{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s;border:1px solid var(--ax-sys-color-outline-variant)}axm-emergency-contacts-page .emergency-contact-detailed:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:translateY(-1px);border-color:var(--ax-sys-color-primary)}axm-emergency-contacts-page .emergency-contact-detailed h3{color:var(--ax-sys-color-on-surface);font-size:1.125rem;line-height:1.75rem;font-weight:600}@media (min-width: 768px){axm-emergency-contacts-page .emergency-contact-detailed h3{font-size:1.25rem;line-height:1.75rem}}axm-emergency-contacts-page .emergency-contact-detailed ax-icon{flex-shrink:0}@media (min-width: 640px){axm-emergency-contacts-page .emergency-contact-detailed .ax-grid-cols-1.sm\\\\:ax-grid-cols-2>div{min-width:0px}}@media (min-width: 1024px){axm-emergency-contacts-page .emergency-contact-detailed .ax-flex.ax-flex-col.ax-gap-3{position:-webkit-sticky;position:sticky;top:1rem}}axm-emergency-contacts-page ax-loading{margin-left:auto;margin-right:auto}axm-emergency-contacts-page .ax-text-center.ax-py-12 ax-icon{margin-left:auto;margin-right:auto;display:block}axm-emergency-contacts-page ax-badge[data-color=danger]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-danger-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=warning]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=primary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page ax-badge[data-color=secondary]{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-secondary-200),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-secondary-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-800),var(--tw-text-opacity, 1))}axm-emergency-contacts-page .ax-bg-warning-50 ax-icon{flex-shrink:0}axm-emergency-contacts-page .ax-font-mono{letter-spacing:.025em}@media (min-width: 640px){axm-emergency-contacts-page axp-layout-content .ax-gap-4{gap:1.5rem}}axm-emergency-contacts-page ax-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}axm-emergency-contacts-page ax-button:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}axm-emergency-contacts-page ax-button[data-color=danger]{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button[data-color=danger]:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-icon.ax-w-4{height:1rem}axm-emergency-contacts-page ax-icon.ax-text-6xl{height:6rem;width:6rem}@media (max-width: 640px){axm-emergency-contacts-page .ax-grid-cols-1 .ax-gap-3{gap:.5rem}axm-emergency-contacts-page .emergency-contact-quick-dial .contact-info-text{font-size:.75rem;line-height:1rem}}@media print{axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{break-inside:avoid;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-emergency-contacts-page ax-button{display:none}axm-emergency-contacts-page .ax-bg-warning-50{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}}@media (prefers-contrast: high){axm-emergency-contacts-page .emergency-contact-quick-dial,axm-emergency-contacts-page .emergency-contact-detailed{border-width:2px}axm-emergency-contacts-page ax-badge{border-width:2px}}@media (prefers-reduced-motion: reduce){axm-emergency-contacts-page *{transition-property:none}axm-emergency-contacts-page ax-button:hover,axm-emergency-contacts-page .emergency-contact-quick-dial:hover{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}\n"] }]
782
940
  }] });
783
941
 
784
942
  var emergencyContactsPage_component = /*#__PURE__*/Object.freeze({
@@ -790,5 +948,5 @@ var emergencyContactsPage_component = /*#__PURE__*/Object.freeze({
790
948
  * Generated bundle index. Do not edit.
791
949
  */
792
950
 
793
- export { AXMContactManagementEntityProvider, AXMContactManagementMenuProvider, AXMContactManagementModule, AXMContactManagementSearchCommandProvider, AXMContactMethodService, AXMContactMethodServiceImpl, AXMContactMethodTypeService, AXMContactMethodTypeServiceImpl, AXMEmergencyContactService, AXMEmergencyContactServiceImpl, AXMEmergencyContactsPageComponent, AXMPermissionDefinitionProvider, RootConfig, contactMethodTypeFactory };
951
+ export { AXMContactManagementEntityProvider, AXMContactManagementMenuProvider, AXMContactManagementModule, AXMContactManagementSearchCommandProvider, AXMContactMethodEntityModule, AXMContactMethodService, AXMContactMethodServiceImpl, AXMContactMethodTypeEntityModule, AXMContactMethodTypeService, AXMContactMethodTypeServiceImpl, AXMEmergencyContactEntityModule, AXMEmergencyContactItemComponent, AXMEmergencyContactService, AXMEmergencyContactServiceImpl, AXMEmergencyContactsPageComponent, AXMPermissionDefinitionProvider, RootConfig, contactMethodTypeFactory };
794
952
  //# sourceMappingURL=acorex-modules-contact-management.mjs.map