@digital-realty/ui-user-management 1.0.0-alpha.1 → 11.0.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 (245) hide show
  1. package/dist/index.html +1 -0
  2. package/dist/sw.js +1 -1
  3. package/dist/sw.js.map +1 -1
  4. package/dist/ui-user-management.js +2001 -0
  5. package/dist/ui-user-management2.js +1 -0
  6. package/dist/ui-user-management3.js +3 -0
  7. package/dist/ui-user-management4.js +3 -0
  8. package/dist/ui-user-management5.js +1 -0
  9. package/dist/ui-user-management6.js +1 -0
  10. package/dist/versions.js +1 -0
  11. package/dist/versions.json +1 -0
  12. package/package.json +11 -14
  13. package/dist/lib-components/packages/translations/locales/en/ui-user-management.js +0 -1
  14. package/dist/ui-user-management/out-tsc/src/api/inventory-api/ui-user-management.js +0 -1
  15. package/dist/ui-user-management/out-tsc/src/api/login-service-api/apis/ui-user-management.js +0 -1
  16. package/dist/ui-user-management/out-tsc/src/api/login-service-api/models/ui-user-management.js +0 -1
  17. package/dist/ui-user-management/out-tsc/src/api/login-service-api/models/ui-user-management2.js +0 -1
  18. package/dist/ui-user-management/out-tsc/src/api/login-service-api/ui-user-management.js +0 -1
  19. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management.js +0 -1
  20. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management2.js +0 -1
  21. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management3.js +0 -1
  22. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management4.js +0 -1
  23. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management5.js +0 -1
  24. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management6.js +0 -1
  25. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management7.js +0 -1
  26. package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management8.js +0 -1
  27. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management.js +0 -1
  28. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management10.js +0 -1
  29. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management11.js +0 -1
  30. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management12.js +0 -1
  31. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management13.js +0 -1
  32. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management14.js +0 -1
  33. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management15.js +0 -1
  34. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management16.js +0 -1
  35. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management17.js +0 -1
  36. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management18.js +0 -1
  37. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management19.js +0 -1
  38. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management2.js +0 -1
  39. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management20.js +0 -1
  40. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management21.js +0 -1
  41. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management22.js +0 -1
  42. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management23.js +0 -1
  43. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management24.js +0 -1
  44. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management25.js +0 -1
  45. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management26.js +0 -1
  46. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management27.js +0 -1
  47. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management28.js +0 -1
  48. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management29.js +0 -1
  49. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management3.js +0 -1
  50. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management30.js +0 -1
  51. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management31.js +0 -1
  52. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management32.js +0 -1
  53. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management33.js +0 -1
  54. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management4.js +0 -1
  55. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management5.js +0 -1
  56. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management6.js +0 -1
  57. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management7.js +0 -1
  58. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management8.js +0 -1
  59. package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management9.js +0 -1
  60. package/dist/ui-user-management/out-tsc/src/api/user-management-api/ui-user-management.js +0 -1
  61. package/dist/ui-user-management/out-tsc/src/assets/ui-user-management.js +0 -1
  62. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management.js +0 -1
  63. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management2.js +0 -1
  64. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management3.js +0 -1
  65. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management4.js +0 -1
  66. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management5.js +0 -1
  67. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management6.js +0 -1
  68. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management7.js +0 -1
  69. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management8.js +0 -1
  70. package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management9.js +0 -1
  71. package/dist/ui-user-management/out-tsc/src/components/dev/ui-user-management.js +0 -1
  72. package/dist/ui-user-management/out-tsc/src/components/general/ui-user-management.js +0 -1
  73. package/dist/ui-user-management/out-tsc/src/components/general/ui-user-management2.js +0 -1
  74. package/dist/ui-user-management/out-tsc/src/components/general/ui-user-management3.js +0 -1
  75. package/dist/ui-user-management/out-tsc/src/components/layout/ui-user-management.js +0 -1
  76. package/dist/ui-user-management/out-tsc/src/components/navigation/ui-user-management.js +0 -1
  77. package/dist/ui-user-management/out-tsc/src/components/navigation/ui-user-management2.js +0 -1
  78. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management.js +0 -1
  79. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management2.js +0 -1
  80. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management3.js +0 -1
  81. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management4.js +0 -1
  82. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management5.js +0 -1
  83. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management6.js +0 -1
  84. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management7.js +0 -1
  85. package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management8.js +0 -1
  86. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management.js +0 -1
  87. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management10.js +0 -1
  88. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management11.js +0 -1
  89. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management2.js +0 -1
  90. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management3.js +0 -1
  91. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management4.js +0 -1
  92. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management5.js +0 -1
  93. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management6.js +0 -1
  94. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management7.js +0 -1
  95. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management8.js +0 -1
  96. package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management9.js +0 -1
  97. package/dist/ui-user-management/out-tsc/src/components/user-management/ui-user-management.js +0 -1
  98. package/dist/ui-user-management/out-tsc/src/components/user-management/ui-user-management2.js +0 -1
  99. package/dist/ui-user-management/out-tsc/src/components/user-management/ui-user-management3.js +0 -1
  100. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management.js +0 -1
  101. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management10.js +0 -1
  102. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management11.js +0 -1
  103. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management2.js +0 -1
  104. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management3.js +0 -1
  105. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management4.js +0 -1
  106. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management5.js +0 -1
  107. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management6.js +0 -1
  108. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management7.js +0 -1
  109. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management8.js +0 -1
  110. package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management9.js +0 -1
  111. package/dist/ui-user-management/out-tsc/src/components/user-management/user-profile/ui-user-management.js +0 -1
  112. package/dist/ui-user-management/out-tsc/src/components/user-management/user-profile/ui-user-management2.js +0 -1
  113. package/dist/ui-user-management/out-tsc/src/components/user-management/user-profile/ui-user-management3.js +0 -1
  114. package/dist/ui-user-management/out-tsc/src/constants/events/ui-user-management.js +0 -1
  115. package/dist/ui-user-management/out-tsc/src/constants/events/ui-user-management2.js +0 -1
  116. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management.js +0 -1
  117. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management10.js +0 -1
  118. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management11.js +0 -1
  119. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management12.js +0 -1
  120. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management13.js +0 -1
  121. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management14.js +0 -1
  122. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management15.js +0 -1
  123. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management16.js +0 -1
  124. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management17.js +0 -1
  125. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management18.js +0 -1
  126. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management2.js +0 -1
  127. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management3.js +0 -1
  128. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management4.js +0 -1
  129. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management5.js +0 -1
  130. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management6.js +0 -1
  131. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management7.js +0 -1
  132. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management8.js +0 -1
  133. package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management9.js +0 -1
  134. package/dist/ui-user-management/out-tsc/src/constants/ui-user-management.js +0 -1
  135. package/dist/ui-user-management/out-tsc/src/constants/ui-user-management2.js +0 -1
  136. package/dist/ui-user-management/out-tsc/src/constants/ui-user-management3.js +0 -1
  137. package/dist/ui-user-management/out-tsc/src/constants/ui-user-management4.js +0 -1
  138. package/dist/ui-user-management/out-tsc/src/constants/ui-user-management5.js +0 -1
  139. package/dist/ui-user-management/out-tsc/src/constants/ui-user-management6.js +0 -1
  140. package/dist/ui-user-management/out-tsc/src/constants/ui-user-management7.js +0 -1
  141. package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management.js +0 -1
  142. package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management2.js +0 -1
  143. package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management3.js +0 -1
  144. package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management4.js +0 -1
  145. package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management5.js +0 -1
  146. package/dist/ui-user-management/out-tsc/src/domain/entities/ui-user-management.js +0 -1
  147. package/dist/ui-user-management/out-tsc/src/domain/entities/ui-user-management2.js +0 -1
  148. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management.js +0 -1
  149. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management2.js +0 -1
  150. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management3.js +0 -1
  151. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management4.js +0 -1
  152. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management5.js +0 -1
  153. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management6.js +0 -1
  154. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management7.js +0 -1
  155. package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management8.js +0 -1
  156. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management.js +0 -1
  157. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management10.js +0 -1
  158. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management11.js +0 -1
  159. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management2.js +0 -1
  160. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management3.js +0 -1
  161. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management4.js +0 -1
  162. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management5.js +0 -1
  163. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management6.js +0 -1
  164. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management7.js +0 -1
  165. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management8.js +0 -1
  166. package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management9.js +0 -1
  167. package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management.js +0 -1
  168. package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management2.js +0 -1
  169. package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management3.js +0 -1
  170. package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management4.js +0 -1
  171. package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management5.js +0 -1
  172. package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management6.js +0 -1
  173. package/dist/ui-user-management/out-tsc/src/models/ui-user-management.js +0 -1
  174. package/dist/ui-user-management/out-tsc/src/models/ui-user-management2.js +0 -1
  175. package/dist/ui-user-management/out-tsc/src/models/ui-user-management3.js +0 -1
  176. package/dist/ui-user-management/out-tsc/src/models/ui-user-management4.js +0 -1
  177. package/dist/ui-user-management/out-tsc/src/queries/ui-user-management.js +0 -1
  178. package/dist/ui-user-management/out-tsc/src/queries/ui-user-management2.js +0 -1
  179. package/dist/ui-user-management/out-tsc/src/routes/ui-user-management.js +0 -1
  180. package/dist/ui-user-management/out-tsc/src/routes/ui-user-management2.js +0 -1
  181. package/dist/ui-user-management/out-tsc/src/services/ui-user-management.js +0 -1
  182. package/dist/ui-user-management/out-tsc/src/services/ui-user-management10.js +0 -1
  183. package/dist/ui-user-management/out-tsc/src/services/ui-user-management11.js +0 -1
  184. package/dist/ui-user-management/out-tsc/src/services/ui-user-management12.js +0 -1
  185. package/dist/ui-user-management/out-tsc/src/services/ui-user-management13.js +0 -1
  186. package/dist/ui-user-management/out-tsc/src/services/ui-user-management14.js +0 -1
  187. package/dist/ui-user-management/out-tsc/src/services/ui-user-management15.js +0 -1
  188. package/dist/ui-user-management/out-tsc/src/services/ui-user-management16.js +0 -1
  189. package/dist/ui-user-management/out-tsc/src/services/ui-user-management17.js +0 -1
  190. package/dist/ui-user-management/out-tsc/src/services/ui-user-management18.js +0 -1
  191. package/dist/ui-user-management/out-tsc/src/services/ui-user-management19.js +0 -1
  192. package/dist/ui-user-management/out-tsc/src/services/ui-user-management2.js +0 -1
  193. package/dist/ui-user-management/out-tsc/src/services/ui-user-management20.js +0 -1
  194. package/dist/ui-user-management/out-tsc/src/services/ui-user-management21.js +0 -1
  195. package/dist/ui-user-management/out-tsc/src/services/ui-user-management22.js +0 -1
  196. package/dist/ui-user-management/out-tsc/src/services/ui-user-management23.js +0 -1
  197. package/dist/ui-user-management/out-tsc/src/services/ui-user-management3.js +0 -1
  198. package/dist/ui-user-management/out-tsc/src/services/ui-user-management4.js +0 -1
  199. package/dist/ui-user-management/out-tsc/src/services/ui-user-management5.js +0 -1
  200. package/dist/ui-user-management/out-tsc/src/services/ui-user-management6.js +0 -1
  201. package/dist/ui-user-management/out-tsc/src/services/ui-user-management7.js +0 -1
  202. package/dist/ui-user-management/out-tsc/src/services/ui-user-management8.js +0 -1
  203. package/dist/ui-user-management/out-tsc/src/services/ui-user-management9.js +0 -1
  204. package/dist/ui-user-management/out-tsc/src/state/ui-user-management.js +0 -1
  205. package/dist/ui-user-management/out-tsc/src/state/ui-user-management2.js +0 -1
  206. package/dist/ui-user-management/out-tsc/src/state/ui-user-management3.js +0 -1
  207. package/dist/ui-user-management/out-tsc/src/state/ui-user-management4.js +0 -1
  208. package/dist/ui-user-management/out-tsc/src/state/ui-user-management5.js +0 -1
  209. package/dist/ui-user-management/out-tsc/src/state/ui-user-management6.js +0 -1
  210. package/dist/ui-user-management/out-tsc/src/state/ui-user-management7.js +0 -1
  211. package/dist/ui-user-management/out-tsc/src/state/ui-user-management8.js +0 -1
  212. package/dist/ui-user-management/out-tsc/src/state/ui-user-management9.js +0 -1
  213. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management.js +0 -1
  214. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management10.js +0 -1
  215. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management11.js +0 -1
  216. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management12.js +0 -1
  217. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management13.js +0 -1
  218. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management14.js +0 -1
  219. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management15.js +0 -1
  220. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management16.js +0 -1
  221. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management17.js +0 -1
  222. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management18.js +0 -1
  223. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management19.js +0 -1
  224. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management2.js +0 -1
  225. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management20.js +0 -1
  226. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management21.js +0 -1
  227. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management22.js +0 -1
  228. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management23.js +0 -1
  229. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management24.js +0 -1
  230. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management25.js +0 -1
  231. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management26.js +0 -1
  232. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management3.js +0 -1
  233. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management4.js +0 -1
  234. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management5.js +0 -1
  235. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management6.js +0 -1
  236. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management7.js +0 -1
  237. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management8.js +0 -1
  238. package/dist/ui-user-management/out-tsc/src/styles/ui-user-management9.js +0 -1
  239. package/dist/ui-user-management/out-tsc/src/ui-user-management.js +0 -1
  240. package/dist/ui-user-management/out-tsc/src/ui-user-management2.js +0 -1
  241. package/dist/ui-user-management/out-tsc/src/ui-user-management3.js +0 -1
  242. package/dist/ui-user-management/out-tsc/src/views/ui-user-management.js +0 -1
  243. package/dist/ui-user-management/out-tsc/src/views/ui-user-management2.js +0 -1
  244. package/dist/ui-user-management/out-tsc/src/views/ui-user-management3.js +0 -1
  245. package/dist/ui-user-management/out-tsc/src/views/ui-user-management4.js +0 -1
@@ -0,0 +1,2001 @@
1
+ import{__decorate as s}from"tslib";import{css as E,LitElement as T,html as l,svg as Le,nothing as b}from"lit";import{customElement as y,property as c,state as u,query as F,queryAsync as Vi}from"lit/decorators.js";import{MobxLitElement as Te}from"@adobe/lit-mobx";import{elementTheme as re,baseTheme as Ie}from"@digital-realty/theme";import Dt from"toastify-js";import{ApplicationInsights as ji}from"@microsoft/applicationinsights-web";import"@digital-realty/ix-progress/ix-progress.js";import"@digital-realty/ix-icon-button/ix-icon-button.js";import{makeAutoObservable as Gi,toJS as _e,observable as Pt,makeObservable as Ki}from"mobx";import{gql as ke,GraphQLClient as Ji}from"graphql-request";import{User as Zi,UserManager as Wi}from"oidc-client-ts";import Mt from"i18next";import{initLitI18n as Qi}from"lit-i18n";import{Router as ue}from"@vaadin/router";import"@digital-realty/ix-button/ix-button.js";import"@digital-realty/ix-dialog/ix-dialog.js";import"@digital-realty/ix-textbox/ix-textbox.js";import"@digital-realty/ix-phone-input/ix-phone-input.js";import{parsePhoneNumberWithError as Bt,AsYouType as Yi,isPossiblePhoneNumber as Xi}from"libphonenumber-js";import{classMap as eo}from"lit/directives/class-map.js";import to from"validator";import"@digital-realty/ix-tree/ix-tree.js";import"@digital-realty/ix-multi-select/ix-multi-select.js";import{IconTypeMap as io,updateNodeCheckedStatus as pe,flattenTree as oo,findChildNodeById as Oe,collapseAllNodes as ze,calculateCheckedEndNodesCount as Lt,getCheckedAndIndeterminateNodesOnly as Ot,buildTreeFromFlatArray as zt,updateChildrenCount as qt}from"@digital-realty/ix-generic-tree";import{repeat as at}from"lit/directives/repeat.js";import"@digital-realty/ix-tabs/ix-tabs.js";import"@digital-realty/ix-tabs/ix-primary-tab.js";import"@digital-realty/ix-icon/ix-icon.js";import"@digital-realty/ix-card/ix-card.js";import Ht from"lodash.debounce";import"@digital-realty/ix-generic-tree/ix-generic-tree.js";import"@digital-realty/ix-accordion/ix-accordion.js";import"@digital-realty/ix-divider/ix-divider.js";import"@digital-realty/ix-phone-number/ix-phone-number.js";import"@material/web/icon/icon.js";import"@digital-realty/ix-select/ix-select.js";const no="http://localhost".replace(/\/+$/,"");class ee{constructor(t={}){this.configuration=t}set config(t){this.configuration=t}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:no}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||jt}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const t=this.configuration.apiKey;if(t)return typeof t=="function"?t:()=>t}get accessToken(){const t=this.configuration.accessToken;if(t)return typeof t=="function"?t:async()=>t}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const ao=new ee;class J{constructor(t=ao){this.configuration=t,this.fetchApi=async(i,o)=>{let n={url:i,init:o};for(const r of this.middleware)r.pre&&(n=await r.pre({fetch:this.fetchApi,...n})||n);let a;try{a=await(this.configuration.fetchApi||fetch)(n.url,n.init)}catch(r){for(const d of this.middleware)d.onError&&(a=await d.onError({fetch:this.fetchApi,url:n.url,init:n.init,error:r,response:a?a.clone():void 0})||a);if(a===void 0)throw r instanceof Error?new lo(r,"The request failed and the interceptors did not return an alternative response"):r}for(const r of this.middleware)r.post&&(a=await r.post({fetch:this.fetchApi,url:n.url,init:n.init,response:a.clone()})||a);return a},this.middleware=t.middleware}withMiddleware(...t){const i=this.clone();return i.middleware=i.middleware.concat(...t),i}withPreMiddleware(...t){const i=t.map(o=>({pre:o}));return this.withMiddleware(...i)}withPostMiddleware(...t){const i=t.map(o=>({post:o}));return this.withMiddleware(...i)}isJsonMime(t){return t?J.jsonRegex.test(t):!1}async request(t,i){const{url:o,init:n}=await this.createFetchParams(t,i),a=await this.fetchApi(o,n);if(a&&a.status>=200&&a.status<300)return a;throw new Vt(a,"Response returned an error code")}async createFetchParams(t,i){let o=this.configuration.basePath+t.path;t.query!==void 0&&Object.keys(t.query).length!==0&&(o+="?"+this.configuration.queryParamsStringify(t.query));const n=Object.assign({},this.configuration.headers,t.headers);Object.keys(n).forEach(v=>n[v]===void 0?delete n[v]:{});const a=typeof i=="function"?i:async()=>i,r={method:t.method,headers:n,body:t.body,credentials:this.configuration.credentials},d={...r,...await a({init:r,context:t})};let p;ro(d.body)||d.body instanceof URLSearchParams||so(d.body)?p=d.body:this.isJsonMime(n["Content-Type"])?p=JSON.stringify(d.body):p=d.body;const h={...d,body:p};return{url:o,init:h}}clone(){const t=this.constructor,i=new t(this.configuration);return i.middleware=this.middleware.slice(),i}}J.jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");function so(e){return typeof Blob<"u"&&e instanceof Blob}function ro(e){return typeof FormData<"u"&&e instanceof FormData}class Vt extends Error{constructor(t,i){super(i),this.response=t,this.name="ResponseError"}}class lo extends Error{constructor(t,i){super(i),this.cause=t,this.name="FetchError"}}class R extends Error{constructor(t,i){super(i),this.field=t,this.name="RequiredError"}}function f(e,t){return e[t]!=null}function jt(e,t=""){return Object.keys(e).map(i=>Gt(i,e[i],t)).filter(i=>i.length>0).join("&")}function Gt(e,t,i=""){const o=i+(i.length?`[${e}]`:e);if(t instanceof Array){const n=t.map(a=>encodeURIComponent(String(a))).join(`&${encodeURIComponent(o)}=`);return`${encodeURIComponent(o)}=${n}`}if(t instanceof Set){const n=Array.from(t);return Gt(e,n,i)}return t instanceof Date?`${encodeURIComponent(o)}=${encodeURIComponent(t.toISOString())}`:t instanceof Object?jt(t,o):`${encodeURIComponent(o)}=${encodeURIComponent(String(t))}`}class S{constructor(t,i=o=>o){this.raw=t,this.transformer=i}async value(){return this.transformer(await this.raw.json())}}class he{constructor(t){this.raw=t}async value(){}}const I={AccountSwitched:"account-switched",AuthenticationComplete:"authentication",CancelCreateUser:"cancel-create-user",ChangeUserAccount:"change-user-account",CloseDrawer:"close-drawer",CheckToggle:"check-toggle",CloseDialog:"close-dialog",CreateNewContact:"create-new-contact",CreateRole:"create-role",CreateUser:"create-user",AddRole:"add-role",ChangeAccountAssociation:"change-account",UpdateChanges:"update-changes",ReloadAccount:"reload-account",CreateUserClicked:"create-user-clicked",DrawerClose:"drawer-close",DuplicateRole:"duplicate-role",ErrorRaised:"um:error-raised",EvacAssistanceRequired:"evac-assistance-required",GridViewUpdate:"grid-view-update",NextButtonToggle:"next-button-toggle",NextStep:"next-step",OpenDialog:"open-dialog",PreviousStep:"previous-step",RefreshTable:"refresh-table",ResetSuccess:"reset-success",RouteChanged:"vaadin-router-location-changed",SetStep:"set-step",ToggleDialog:"toggle-dialog",ToggleDraft:"toggle-draft",ToggleDrawer:"toggle-drawer",ToggleNavBar:"toggle-menu",UpdateAccounts:"update-accounts",UpdateContact:"update-contact",UpdateDFA:"update-dfa",UpdateForm:"update-form",UserFlagUpdate:"user-flag-update",EditProfile:"edit-profile"},Kt=(e,t,i,o)=>{Dt({text:e,duration:t,newWindow:!1,close:!1,gravity:"bottom",position:i!=null?i:"right",stopOnFocus:!0,className:"success-toast",style:{background:"rgb(76, 175, 80)",minWidth:o!=null?o:"344px",maxHeight:"68px"}}).showToast()},Jt=(e,t,i)=>{Dt({text:e,duration:t,newWindow:!1,close:!1,gravity:"bottom",position:i!=null?i:"right",stopOnFocus:!0,style:{background:"rgb(219, 0, 40)",minWidth:"fit-content"}}).showToast()};var co="https://login-a1.digitalrealty.com",uo={UserManagementUIClientId:"usermanagementui",UserManagementUIScopes:"openid user_management_profile resource.usermanagementapi"},po={UI:{ff_cpa_2238_gars_v130:!1,ValidationRegexPatterns:{name:"^(?!\\s)[a-zA-Z\xE0\xE1\xE2\xE4\xE3\xE5\u0105\u010D\u0107\u0119\xE8\xE9\xEA\xEB\u0117\u012F\xEC\xED\xEE\xEF\u0142\u0144\xF2\xF3\xF4\xF6\xF5\xF8\xF9\xFA\xFB\xFC\u0173\u016B\xFF\xFD\u017C\u017A\xF1\xE7\u010D\u0161\u017E\xC0\xC1\xC2\xC4\xC3\xC5\u0104\u0106\u010C\u0116\u0118\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u012E\u0141\u0143\xD2\xD3\xD4\xD6\xD5\xD8\xD9\xDA\xDB\xDC\u0172\u016A\u0178\xDD\u017B\u0179\xD1\xDF\xC7\u0152\xC6\u010C\u0160\u017D\u2202\xF0 ,.'1234567890\\-]*(?=[^\\s])[a-zA-Z\xE0\xE1\xE2\xE4\xE3\xE5\u0105\u010D\u0107\u0119\xE8\xE9\xEA\xEB\u0117\u012F\xEC\xED\xEE\xEF\u0142\u0144\xF2\xF3\xF4\xF6\xF5\xF8\xF9\xFA\xFB\xFC\u0173\u016B\xFF\xFD\u017C\u017A\xF1\xE7\u010D\u0161\u017E\xC0\xC1\xC2\xC4\xC3\xC5\u0104\u0106\u010C\u0116\u0118\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u012E\u0141\u0143\xD2\xD3\xD4\xD6\xD5\xD8\xD9\xDA\xDB\xDC\u0172\u016A\u0178\xDD\u017B\u0179\xD1\xDF\xC7\u0152\xC6\u010C\u0160\u017D\u2202\xF0 ,.'1234567890\\-]$"},UserManagementUIStorageKey:"user-authentication",UserManagementXAuthUIStorageKey:"x-auth",DisableUserManagementUIAuth:!0,UserManagementAggregationApiUrl:"https://api-a1.interxion.com/usermanagement-ag",UserManagementApiUrl:"https://api-a1.interxion.com/usermanagement",AppInsights:{ShouldUseGlobal:!1,ConnectionString:"InstrumentationKey=cc2aa13e-a1d7-4ee4-9af3-a7018d276b0a;IngestionEndpoint=https://westeurope-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westeurope.livediagnostics.monitor.azure.com/;ApplicationId=b9356113-a6af-4347-9d66-3c325b2534c9"}},InternalUserRetired:!0},ho="@digitalrealty.com",B={LoginAuthority:co,LoginService:uo,UserManagement:po,InternalUserDomainWhitelist:ho};class mo{constructor(){this.fetchAppInsightsFromWindow=()=>window._appInsights,this.tryFetchShellAppInsights=()=>{const t=this.fetchAppInsightsFromWindow();if(!t){const i=this.buildStandaloneAppInsights();return i.trackException({severityLevel:4,exception:new Error("Application Insights instance could not be located on window. Falling back to standalone instance.")}),i}return t},this.buildStandaloneAppInsights=()=>{const t=new ji({config:{connectionString:B.UserManagement.UI.AppInsights.ConnectionString,isCookieUseDisabled:!0}});return t.loadAppInsights(),this.fetchAppInsightsFromWindow()&&t.trackException({severityLevel:4,exception:new Error("Application Insights instance already exists on window, but we're registering it again in standalone. This will cause issues with telemetry.")}),t},this.appInsights=this.buildStandaloneAppInsights()}}const go=new mo;var vo=go.appInsights;class Ft{constructor(){this.displayErrorBinding=this.displayError.bind(this),this.setupErrorHandler=()=>{document.addEventListener(I.ErrorRaised,this.displayErrorBinding)},this.destroyErrorHandler=()=>{document.removeEventListener(I.ErrorRaised,this.displayErrorBinding)},this.handleError=async(t,i)=>{let o=t;o.userMessage=i,t instanceof Vt&&await t.response.json().then(n=>{var a;o.message=n.detail,n.status===403&&(o.userMessage=(a=n.detail)!==null&&a!==void 0?a:"You don't have permission to perform this action.")}).catch(()=>{o.message="Failed to get the error details from response."}),t instanceof PromiseRejectionEvent&&(o=await t.reason),vo.trackException({exception:o}),this.displayError(o),console.error(o)},this.setupErrorHandler()}static getInstance(){return this.instance||(this.instance=new Ft),this.instance}displayError(t){let i="";typeof t=="string"?i=t:"userMessage"in t?i=t.userMessage:"message"in t&&(typeof t.message=="object"?i=JSON.stringify(t.message):i=String(t.message)),Jt(i,5e3,"center")}consoleError(t){console.error(t)}}const m=Ft.getInstance(),Zt=E`:host{--navbar-width:256px;--navbar-closed-width:80px;--logo-padding-left:0px;--navbar-icon-min-width:24px}.nav-bar{background:linear-gradient(#1456e0 20.5%,#0d2497 113.5%)}.nav-bar.wide{background:linear-gradient(90.27deg,#1456e0 0,#0d2497 99.23%)}.nav-bar.long{width:var(--navbar-width)}.nav-bar.long.closed{width:var(--navbar-closed-width)}.white-icon{--md-icon-button-icon-color:white;--md-sys-color-on-surface-variant:white}.animate-width{transition:width .3s ease,viewBox .3s ease,left .3s ease,opacity 3s ease}.expand-cta{--md-icon-button-icon-color:#94a3b8}.divider{border-color:#fff;opacity:.2;margin:0;flex-shrink:0;border-width:0 0 thin;border-style:solid}`;let Wt=class extends T{render(){return l` <ix-icon-button @click="${()=>{localStorage.clear(),window.location.href="/"}}" icon="restart_alt"> </ix-icon-button> `}};Wt=s([y("dev-clear-storage-button")],Wt);const w=E` *, ::before, ::after {
2
+ --tw-border-spacing-x: 0;
3
+ --tw-border-spacing-y: 0;
4
+ --tw-translate-x: 0;
5
+ --tw-translate-y: 0;
6
+ --tw-rotate: 0;
7
+ --tw-skew-x: 0;
8
+ --tw-skew-y: 0;
9
+ --tw-scale-x: 1;
10
+ --tw-scale-y: 1;
11
+ --tw-pan-x: ;
12
+ --tw-pan-y: ;
13
+ --tw-pinch-zoom: ;
14
+ --tw-scroll-snap-strictness: proximity;
15
+ --tw-gradient-from-position: ;
16
+ --tw-gradient-via-position: ;
17
+ --tw-gradient-to-position: ;
18
+ --tw-ordinal: ;
19
+ --tw-slashed-zero: ;
20
+ --tw-numeric-figure: ;
21
+ --tw-numeric-spacing: ;
22
+ --tw-numeric-fraction: ;
23
+ --tw-ring-inset: ;
24
+ --tw-ring-offset-width: 0px;
25
+ --tw-ring-offset-color: #fff;
26
+ --tw-ring-color: rgb(59 130 246 / 0.5);
27
+ --tw-ring-offset-shadow: 0 0 #0000;
28
+ --tw-ring-shadow: 0 0 #0000;
29
+ --tw-shadow: 0 0 #0000;
30
+ --tw-shadow-colored: 0 0 #0000;
31
+ --tw-blur: ;
32
+ --tw-brightness: ;
33
+ --tw-contrast: ;
34
+ --tw-grayscale: ;
35
+ --tw-hue-rotate: ;
36
+ --tw-invert: ;
37
+ --tw-saturate: ;
38
+ --tw-sepia: ;
39
+ --tw-drop-shadow: ;
40
+ --tw-backdrop-blur: ;
41
+ --tw-backdrop-brightness: ;
42
+ --tw-backdrop-contrast: ;
43
+ --tw-backdrop-grayscale: ;
44
+ --tw-backdrop-hue-rotate: ;
45
+ --tw-backdrop-invert: ;
46
+ --tw-backdrop-opacity: ;
47
+ --tw-backdrop-saturate: ;
48
+ --tw-backdrop-sepia: ;
49
+ --tw-contain-size: ;
50
+ --tw-contain-layout: ;
51
+ --tw-contain-paint: ;
52
+ --tw-contain-style: ;
53
+ }
54
+
55
+ ::backdrop {
56
+ --tw-border-spacing-x: 0;
57
+ --tw-border-spacing-y: 0;
58
+ --tw-translate-x: 0;
59
+ --tw-translate-y: 0;
60
+ --tw-rotate: 0;
61
+ --tw-skew-x: 0;
62
+ --tw-skew-y: 0;
63
+ --tw-scale-x: 1;
64
+ --tw-scale-y: 1;
65
+ --tw-pan-x: ;
66
+ --tw-pan-y: ;
67
+ --tw-pinch-zoom: ;
68
+ --tw-scroll-snap-strictness: proximity;
69
+ --tw-gradient-from-position: ;
70
+ --tw-gradient-via-position: ;
71
+ --tw-gradient-to-position: ;
72
+ --tw-ordinal: ;
73
+ --tw-slashed-zero: ;
74
+ --tw-numeric-figure: ;
75
+ --tw-numeric-spacing: ;
76
+ --tw-numeric-fraction: ;
77
+ --tw-ring-inset: ;
78
+ --tw-ring-offset-width: 0px;
79
+ --tw-ring-offset-color: #fff;
80
+ --tw-ring-color: rgb(59 130 246 / 0.5);
81
+ --tw-ring-offset-shadow: 0 0 #0000;
82
+ --tw-ring-shadow: 0 0 #0000;
83
+ --tw-shadow: 0 0 #0000;
84
+ --tw-shadow-colored: 0 0 #0000;
85
+ --tw-blur: ;
86
+ --tw-brightness: ;
87
+ --tw-contrast: ;
88
+ --tw-grayscale: ;
89
+ --tw-hue-rotate: ;
90
+ --tw-invert: ;
91
+ --tw-saturate: ;
92
+ --tw-sepia: ;
93
+ --tw-drop-shadow: ;
94
+ --tw-backdrop-blur: ;
95
+ --tw-backdrop-brightness: ;
96
+ --tw-backdrop-contrast: ;
97
+ --tw-backdrop-grayscale: ;
98
+ --tw-backdrop-hue-rotate: ;
99
+ --tw-backdrop-invert: ;
100
+ --tw-backdrop-opacity: ;
101
+ --tw-backdrop-saturate: ;
102
+ --tw-backdrop-sepia: ;
103
+ --tw-contain-size: ;
104
+ --tw-contain-layout: ;
105
+ --tw-contain-paint: ;
106
+ --tw-contain-style: ;
107
+ }
108
+
109
+ /*
110
+ ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
111
+ */
112
+
113
+ /*
114
+ 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
115
+ 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
116
+ */
117
+
118
+ *,
119
+ ::before,
120
+ ::after {
121
+ box-sizing: border-box;
122
+ /* 1 */
123
+ border-width: 0;
124
+ /* 2 */
125
+ border-style: solid;
126
+ /* 2 */
127
+ border-color: #e5e7eb;
128
+ /* 2 */
129
+ }
130
+
131
+ ::before,
132
+ ::after {
133
+ --tw-content: '';
134
+ }
135
+
136
+ /*
137
+ 1. Use a consistent sensible line-height in all browsers.
138
+ 2. Prevent adjustments of font size after orientation changes in iOS.
139
+ 3. Use a more readable tab size.
140
+ 4. Use the user's configured sans font-family by default.
141
+ 5. Use the user's configured sans font-feature-settings by default.
142
+ 6. Use the user's configured sans font-variation-settings by default.
143
+ 7. Disable tap highlights on iOS
144
+ */
145
+
146
+ html,
147
+ :host {
148
+ line-height: 1.5;
149
+ /* 1 */
150
+ -webkit-text-size-adjust: 100%;
151
+ /* 2 */
152
+ -moz-tab-size: 4;
153
+ /* 3 */
154
+ -o-tab-size: 4;
155
+ tab-size: 4;
156
+ /* 3 */
157
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
158
+ /* 4 */
159
+ font-feature-settings: normal;
160
+ /* 5 */
161
+ font-variation-settings: normal;
162
+ /* 6 */
163
+ -webkit-tap-highlight-color: transparent;
164
+ /* 7 */
165
+ }
166
+
167
+ /*
168
+ 1. Remove the margin in all browsers.
169
+ 2. Inherit line-height from html so users can set them as a class directly on the html element.
170
+ */
171
+
172
+ body {
173
+ margin: 0;
174
+ /* 1 */
175
+ line-height: inherit;
176
+ /* 2 */
177
+ }
178
+
179
+ /*
180
+ 1. Add the correct height in Firefox.
181
+ 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
182
+ 3. Ensure horizontal rules are visible by default.
183
+ */
184
+
185
+ hr {
186
+ height: 0;
187
+ /* 1 */
188
+ color: inherit;
189
+ /* 2 */
190
+ border-top-width: 1px;
191
+ /* 3 */
192
+ }
193
+
194
+ /*
195
+ Add the correct text decoration in Chrome, Edge, and Safari.
196
+ */
197
+
198
+ abbr:where([title]) {
199
+ -webkit-text-decoration: underline dotted;
200
+ text-decoration: underline dotted;
201
+ }
202
+
203
+ /*
204
+ Remove the default font size and weight for headings.
205
+ */
206
+
207
+ h1,
208
+ h2,
209
+ h3,
210
+ h4,
211
+ h5,
212
+ h6 {
213
+ font-size: inherit;
214
+ font-weight: inherit;
215
+ }
216
+
217
+ /*
218
+ Reset links to optimize for opt-in styling instead of opt-out.
219
+ */
220
+
221
+ a {
222
+ color: inherit;
223
+ text-decoration: inherit;
224
+ }
225
+
226
+ /*
227
+ Add the correct font weight in Edge and Safari.
228
+ */
229
+
230
+ b,
231
+ strong {
232
+ font-weight: bolder;
233
+ }
234
+
235
+ /*
236
+ 1. Use the user's configured mono font-family by default.
237
+ 2. Use the user's configured mono font-feature-settings by default.
238
+ 3. Use the user's configured mono font-variation-settings by default.
239
+ 4. Correct the odd em font sizing in all browsers.
240
+ */
241
+
242
+ code,
243
+ kbd,
244
+ samp,
245
+ pre {
246
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
247
+ /* 1 */
248
+ font-feature-settings: normal;
249
+ /* 2 */
250
+ font-variation-settings: normal;
251
+ /* 3 */
252
+ font-size: 1em;
253
+ /* 4 */
254
+ }
255
+
256
+ /*
257
+ Add the correct font size in all browsers.
258
+ */
259
+
260
+ small {
261
+ font-size: 80%;
262
+ }
263
+
264
+ /*
265
+ Prevent sub and sup elements from affecting the line height in all browsers.
266
+ */
267
+
268
+ sub,
269
+ sup {
270
+ font-size: 75%;
271
+ line-height: 0;
272
+ position: relative;
273
+ vertical-align: baseline;
274
+ }
275
+
276
+ sub {
277
+ bottom: -0.25em;
278
+ }
279
+
280
+ sup {
281
+ top: -0.5em;
282
+ }
283
+
284
+ /*
285
+ 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
286
+ 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
287
+ 3. Remove gaps between table borders by default.
288
+ */
289
+
290
+ table {
291
+ text-indent: 0;
292
+ /* 1 */
293
+ border-color: inherit;
294
+ /* 2 */
295
+ border-collapse: collapse;
296
+ /* 3 */
297
+ }
298
+
299
+ /*
300
+ 1. Change the font styles in all browsers.
301
+ 2. Remove the margin in Firefox and Safari.
302
+ 3. Remove default padding in all browsers.
303
+ */
304
+
305
+ button,
306
+ input,
307
+ optgroup,
308
+ select,
309
+ textarea {
310
+ font-family: inherit;
311
+ /* 1 */
312
+ font-feature-settings: inherit;
313
+ /* 1 */
314
+ font-variation-settings: inherit;
315
+ /* 1 */
316
+ font-size: 100%;
317
+ /* 1 */
318
+ font-weight: inherit;
319
+ /* 1 */
320
+ line-height: inherit;
321
+ /* 1 */
322
+ letter-spacing: inherit;
323
+ /* 1 */
324
+ color: inherit;
325
+ /* 1 */
326
+ margin: 0;
327
+ /* 2 */
328
+ padding: 0;
329
+ /* 3 */
330
+ }
331
+
332
+ /*
333
+ Remove the inheritance of text transform in Edge and Firefox.
334
+ */
335
+
336
+ button,
337
+ select {
338
+ text-transform: none;
339
+ }
340
+
341
+ /*
342
+ 1. Correct the inability to style clickable types in iOS and Safari.
343
+ 2. Remove default button styles.
344
+ */
345
+
346
+ button,
347
+ input:where([type='button']),
348
+ input:where([type='reset']),
349
+ input:where([type='submit']) {
350
+ -webkit-appearance: button;
351
+ /* 1 */
352
+ background-color: transparent;
353
+ /* 2 */
354
+ background-image: none;
355
+ /* 2 */
356
+ }
357
+
358
+ /*
359
+ Use the modern Firefox focus style for all focusable elements.
360
+ */
361
+
362
+ :-moz-focusring {
363
+ outline: auto;
364
+ }
365
+
366
+ /*
367
+ Remove the additional :invalid styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
368
+ */
369
+
370
+ :-moz-ui-invalid {
371
+ box-shadow: none;
372
+ }
373
+
374
+ /*
375
+ Add the correct vertical alignment in Chrome and Firefox.
376
+ */
377
+
378
+ progress {
379
+ vertical-align: baseline;
380
+ }
381
+
382
+ /*
383
+ Correct the cursor style of increment and decrement buttons in Safari.
384
+ */
385
+
386
+ ::-webkit-inner-spin-button,
387
+ ::-webkit-outer-spin-button {
388
+ height: auto;
389
+ }
390
+
391
+ /*
392
+ 1. Correct the odd appearance in Chrome and Safari.
393
+ 2. Correct the outline style in Safari.
394
+ */
395
+
396
+ [type='search'] {
397
+ -webkit-appearance: textfield;
398
+ /* 1 */
399
+ outline-offset: -2px;
400
+ /* 2 */
401
+ }
402
+
403
+ /*
404
+ Remove the inner padding in Chrome and Safari on macOS.
405
+ */
406
+
407
+ ::-webkit-search-decoration {
408
+ -webkit-appearance: none;
409
+ }
410
+
411
+ /*
412
+ 1. Correct the inability to style clickable types in iOS and Safari.
413
+ 2. Change font properties to inherit in Safari.
414
+ */
415
+
416
+ ::-webkit-file-upload-button {
417
+ -webkit-appearance: button;
418
+ /* 1 */
419
+ font: inherit;
420
+ /* 2 */
421
+ }
422
+
423
+ /*
424
+ Add the correct display in Chrome and Safari.
425
+ */
426
+
427
+ summary {
428
+ display: list-item;
429
+ }
430
+
431
+ /*
432
+ Removes the default spacing and border for appropriate elements.
433
+ */
434
+
435
+ blockquote,
436
+ dl,
437
+ dd,
438
+ h1,
439
+ h2,
440
+ h3,
441
+ h4,
442
+ h5,
443
+ h6,
444
+ hr,
445
+ figure,
446
+ p,
447
+ pre {
448
+ margin: 0;
449
+ }
450
+
451
+ fieldset {
452
+ margin: 0;
453
+ padding: 0;
454
+ }
455
+
456
+ legend {
457
+ padding: 0;
458
+ }
459
+
460
+ ol,
461
+ ul,
462
+ menu {
463
+ list-style: none;
464
+ margin: 0;
465
+ padding: 0;
466
+ }
467
+
468
+ /*
469
+ Reset default styling for dialogs.
470
+ */
471
+
472
+ dialog {
473
+ padding: 0;
474
+ }
475
+
476
+ /*
477
+ Prevent resizing textareas horizontally by default.
478
+ */
479
+
480
+ textarea {
481
+ resize: vertical;
482
+ }
483
+
484
+ /*
485
+ 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
486
+ 2. Set the default placeholder color to the user's configured gray 400 color.
487
+ */
488
+
489
+ input::-moz-placeholder, textarea::-moz-placeholder {
490
+ opacity: 1;
491
+ /* 1 */
492
+ color: #9ca3af;
493
+ /* 2 */
494
+ }
495
+
496
+ input::placeholder,
497
+ textarea::placeholder {
498
+ opacity: 1;
499
+ /* 1 */
500
+ color: #9ca3af;
501
+ /* 2 */
502
+ }
503
+
504
+ /*
505
+ Set the default cursor for buttons.
506
+ */
507
+
508
+ button,
509
+ [role="button"] {
510
+ cursor: pointer;
511
+ }
512
+
513
+ /*
514
+ Make sure disabled buttons don't get the pointer cursor.
515
+ */
516
+
517
+ :disabled {
518
+ cursor: default;
519
+ }
520
+
521
+ /*
522
+ 1. Make replaced elements display: block by default. (https://github.com/mozdevs/cssremedy/issues/14)
523
+ 2. Add vertical-align: middle to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
524
+ This can trigger a poorly considered lint error in some tools but is included by design.
525
+ */
526
+
527
+ img,
528
+ svg,
529
+ video,
530
+ canvas,
531
+ audio,
532
+ iframe,
533
+ embed,
534
+ object {
535
+ display: block;
536
+ /* 1 */
537
+ vertical-align: middle;
538
+ /* 2 */
539
+ }
540
+
541
+ /*
542
+ Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
543
+ */
544
+
545
+ img,
546
+ video {
547
+ max-width: 100%;
548
+ height: auto;
549
+ }
550
+
551
+ /* Make elements with the HTML hidden attribute stay hidden by default */
552
+
553
+ [hidden]:where(:not([hidden="until-found"])) {
554
+ display: none;
555
+ }
556
+
557
+ .dlr-text-default,:host,:host :root,:root,html {
558
+ font-family: var(--root-primary-font);
559
+ font-size: var(--text-default-size);
560
+ line-height: var(--text-default-line-height);
561
+ letter-spacing: var(--text-default-letter-spacing);
562
+ font-weight: var(--text-default-weight);
563
+ -webkit-text-decoration:var(--text-default-decoration);
564
+ text-decoration:var(--text-default-decoration);
565
+ text-transform:var(--text-default-transform);
566
+ }
567
+
568
+ .dlr-text-small {
569
+ font-family: var(--root-primary-font);
570
+ font-size: var(--text-small-size);
571
+ line-height: var(--text-small-line-height);
572
+ letter-spacing: var(--text-small-letter-spacing);
573
+ font-weight: var(--text-small-weight);
574
+ -webkit-text-decoration:var(--text-small-decoration);
575
+ text-decoration:var(--text-small-decoration);
576
+ text-transform:var(--text-small-transform);
577
+ }
578
+
579
+ .dlr-text-heading {
580
+ font-family: var(--root-secondary-font);
581
+ font-size: var(--text-heading-size);
582
+ line-height: var(--text-heading-line-height);
583
+ letter-spacing: var(--text-heading-letter-spacing);
584
+ font-weight: var(--text-heading-weight);
585
+ -webkit-text-decoration:var(--text-heading-decoration);
586
+ text-decoration:var(--text-heading-decoration);
587
+ text-transform:var(--text-heading-transform);
588
+ }
589
+
590
+ .dlr-text-page-title {
591
+ font-family: var(--root-secondary-font);
592
+ font-size: var(--text-page-title-size);
593
+ line-height: var(--text-page-title-line-height);
594
+ letter-spacing: var(--text-page-title-letter-spacing);
595
+ font-weight: var(--text-page-title-weight);
596
+ -webkit-text-decoration:var(--text-page-title-decoration);
597
+ text-decoration:var(--text-page-title-decoration);
598
+ text-transform:var(--text-page-title-transform);
599
+ }
600
+
601
+ .dlr-text-caption {
602
+ font-family: var(--root-primary-font);
603
+ font-size: var(--text-caption-size);
604
+ line-height: var(--text-caption-line-height);
605
+ letter-spacing: var(--text-caption-letter-spacing);
606
+ font-weight: var(--text-caption-weight);
607
+ -webkit-text-decoration:var(--text-caption-decoration);
608
+ text-decoration:var(--text-caption-decoration);
609
+ text-transform:var(--text-caption-transform);
610
+ }
611
+
612
+ .visible {
613
+ visibility: visible;
614
+ }
615
+
616
+ .collapse {
617
+ visibility: collapse;
618
+ }
619
+
620
+ .static {
621
+ position: static;
622
+ }
623
+
624
+ .fixed {
625
+ position: fixed;
626
+ }
627
+
628
+ .absolute {
629
+ position: absolute;
630
+ }
631
+
632
+ .relative {
633
+ position: relative;
634
+ }
635
+
636
+ .sticky {
637
+ position: sticky;
638
+ }
639
+
640
+ .inset-0 {
641
+ inset: 0px;
642
+ }
643
+
644
+ .left-0 {
645
+ left: 0px;
646
+ }
647
+
648
+ .left-\\[-200px\\] {
649
+ left: -200px;
650
+ }
651
+
652
+ .right-0 {
653
+ right: 0px;
654
+ }
655
+
656
+ .right-\\[-8px\\] {
657
+ right: -8px;
658
+ }
659
+
660
+ .top-\\[27px\\] {
661
+ top: 27px;
662
+ }
663
+
664
+ .z-20 {
665
+ z-index: 20;
666
+ }
667
+
668
+ .z-50 {
669
+ z-index: 50;
670
+ }
671
+
672
+ .m-0 {
673
+ margin: 0px;
674
+ }
675
+
676
+ .m-1 {
677
+ margin: 0.25rem;
678
+ }
679
+
680
+ .m-2 {
681
+ margin: 0.5rem;
682
+ }
683
+
684
+ .mx-0 {
685
+ margin-left: 0px;
686
+ margin-right: 0px;
687
+ }
688
+
689
+ .mx-4 {
690
+ margin-left: 1rem;
691
+ margin-right: 1rem;
692
+ }
693
+
694
+ .mx-auto {
695
+ margin-left: auto;
696
+ margin-right: auto;
697
+ }
698
+
699
+ .my-2 {
700
+ margin-top: 0.5rem;
701
+ margin-bottom: 0.5rem;
702
+ }
703
+
704
+ .mb-1 {
705
+ margin-bottom: 0.25rem;
706
+ }
707
+
708
+ .mb-2 {
709
+ margin-bottom: 0.5rem;
710
+ }
711
+
712
+ .mb-3 {
713
+ margin-bottom: 0.75rem;
714
+ }
715
+
716
+ .mb-4 {
717
+ margin-bottom: 1rem;
718
+ }
719
+
720
+ .mb-7 {
721
+ margin-bottom: 1.75rem;
722
+ }
723
+
724
+ .mb-8 {
725
+ margin-bottom: 2rem;
726
+ }
727
+
728
+ .ml-2 {
729
+ margin-left: 0.5rem;
730
+ }
731
+
732
+ .ml-4 {
733
+ margin-left: 1rem;
734
+ }
735
+
736
+ .mr-1 {
737
+ margin-right: 0.25rem;
738
+ }
739
+
740
+ .mr-2 {
741
+ margin-right: 0.5rem;
742
+ }
743
+
744
+ .mr-4 {
745
+ margin-right: 1rem;
746
+ }
747
+
748
+ .mt-1 {
749
+ margin-top: 0.25rem;
750
+ }
751
+
752
+ .mt-2 {
753
+ margin-top: 0.5rem;
754
+ }
755
+
756
+ .mt-4 {
757
+ margin-top: 1rem;
758
+ }
759
+
760
+ .mt-5 {
761
+ margin-top: 1.25rem;
762
+ }
763
+
764
+ .mt-6 {
765
+ margin-top: 1.5rem;
766
+ }
767
+
768
+ .block {
769
+ display: block;
770
+ }
771
+
772
+ .inline-block {
773
+ display: inline-block;
774
+ }
775
+
776
+ .inline {
777
+ display: inline;
778
+ }
779
+
780
+ .flex {
781
+ display: flex;
782
+ }
783
+
784
+ .table {
785
+ display: table;
786
+ }
787
+
788
+ .grid {
789
+ display: grid;
790
+ }
791
+
792
+ .contents {
793
+ display: contents;
794
+ }
795
+
796
+ .hidden {
797
+ display: none;
798
+ }
799
+
800
+ .h-8 {
801
+ height: 2rem;
802
+ }
803
+
804
+ .h-96 {
805
+ height: 24rem;
806
+ }
807
+
808
+ .h-auto {
809
+ height: auto;
810
+ }
811
+
812
+ .h-full {
813
+ height: 100%;
814
+ }
815
+
816
+ .h-screen {
817
+ height: 100vh;
818
+ }
819
+
820
+ .max-h-96 {
821
+ max-height: 24rem;
822
+ }
823
+
824
+ .max-h-\\[250px\\] {
825
+ max-height: 250px;
826
+ }
827
+
828
+ .max-h-\\[25vh\\] {
829
+ max-height: 25vh;
830
+ }
831
+
832
+ .max-h-none {
833
+ max-height: none;
834
+ }
835
+
836
+ .max-h-screen {
837
+ max-height: 100vh;
838
+ }
839
+
840
+ .min-h-\\[250px\\] {
841
+ min-height: 250px;
842
+ }
843
+
844
+ .min-h-full {
845
+ min-height: 100%;
846
+ }
847
+
848
+ .w-0 {
849
+ width: 0px;
850
+ }
851
+
852
+ .w-1 {
853
+ width: 0.25rem;
854
+ }
855
+
856
+ .w-1\\/2 {
857
+ width: 50%;
858
+ }
859
+
860
+ .w-2 {
861
+ width: 0.5rem;
862
+ }
863
+
864
+ .w-24 {
865
+ width: 6rem;
866
+ }
867
+
868
+ .w-32 {
869
+ width: 8rem;
870
+ }
871
+
872
+ .w-6 {
873
+ width: 1.5rem;
874
+ }
875
+
876
+ .w-8 {
877
+ width: 2rem;
878
+ }
879
+
880
+ .w-\\[178px\\] {
881
+ width: 178px;
882
+ }
883
+
884
+ .w-\\[200px\\] {
885
+ width: 200px;
886
+ }
887
+
888
+ .w-\\[340px\\] {
889
+ width: 340px;
890
+ }
891
+
892
+ .w-full {
893
+ width: 100%;
894
+ }
895
+
896
+ .w-screen {
897
+ width: 100vw;
898
+ }
899
+
900
+ .min-w-0 {
901
+ min-width: 0px;
902
+ }
903
+
904
+ .min-w-\\[96px\\] {
905
+ min-width: 96px;
906
+ }
907
+
908
+ .min-w-fit {
909
+ min-width: -moz-fit-content;
910
+ min-width: fit-content;
911
+ }
912
+
913
+ .max-w-2xl {
914
+ max-width: 42rem;
915
+ }
916
+
917
+ .max-w-\\[560px\\] {
918
+ max-width: 560px;
919
+ }
920
+
921
+ .max-w-full {
922
+ max-width: 100%;
923
+ }
924
+
925
+ .max-w-lg {
926
+ max-width: 32rem;
927
+ }
928
+
929
+ .max-w-min {
930
+ max-width: -moz-min-content;
931
+ max-width: min-content;
932
+ }
933
+
934
+ .flex-1 {
935
+ flex: 1 1 0%;
936
+ }
937
+
938
+ .flex-shrink {
939
+ flex-shrink: 1;
940
+ }
941
+
942
+ .shrink-0 {
943
+ flex-shrink: 0;
944
+ }
945
+
946
+ .flex-grow {
947
+ flex-grow: 1;
948
+ }
949
+
950
+ .grow {
951
+ flex-grow: 1;
952
+ }
953
+
954
+ .grow-0 {
955
+ flex-grow: 0;
956
+ }
957
+
958
+ .border-collapse {
959
+ border-collapse: collapse;
960
+ }
961
+
962
+ .transform {
963
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
964
+ }
965
+
966
+ @keyframes -spin-180 {
967
+ from {
968
+ transform: rotate(-180deg);
969
+ }
970
+
971
+ to {
972
+ transform: rotate(0deg);
973
+ }
974
+ }
975
+
976
+ .animate-spin-180-backwards {
977
+ animation: -spin-180 .3s linear forwards;
978
+ }
979
+
980
+ @keyframes spin-180 {
981
+ from {
982
+ transform: rotate(0deg);
983
+ }
984
+
985
+ to {
986
+ transform: rotate(-180deg);
987
+ }
988
+ }
989
+
990
+ .animate-spin-180-forwards {
991
+ animation: spin-180 .3s linear forwards;
992
+ }
993
+
994
+ .cursor-pointer {
995
+ cursor: pointer;
996
+ }
997
+
998
+ .resize {
999
+ resize: both;
1000
+ }
1001
+
1002
+ .grid-cols-1 {
1003
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1004
+ }
1005
+
1006
+ .grid-cols-2 {
1007
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1008
+ }
1009
+
1010
+ .grid-rows-1 {
1011
+ grid-template-rows: repeat(1, minmax(0, 1fr));
1012
+ }
1013
+
1014
+ .flex-row {
1015
+ flex-direction: row;
1016
+ }
1017
+
1018
+ .flex-col {
1019
+ flex-direction: column;
1020
+ }
1021
+
1022
+ .flex-wrap {
1023
+ flex-wrap: wrap;
1024
+ }
1025
+
1026
+ .items-start {
1027
+ align-items: flex-start;
1028
+ }
1029
+
1030
+ .items-center {
1031
+ align-items: center;
1032
+ }
1033
+
1034
+ .justify-end {
1035
+ justify-content: flex-end;
1036
+ }
1037
+
1038
+ .justify-between {
1039
+ justify-content: space-between;
1040
+ }
1041
+
1042
+ .gap-2 {
1043
+ gap: 0.5rem;
1044
+ }
1045
+
1046
+ .gap-3 {
1047
+ gap: 0.75rem;
1048
+ }
1049
+
1050
+ .gap-4 {
1051
+ gap: 1rem;
1052
+ }
1053
+
1054
+ .gap-5 {
1055
+ gap: 1.25rem;
1056
+ }
1057
+
1058
+ .gap-6 {
1059
+ gap: 1.5rem;
1060
+ }
1061
+
1062
+ .gap-x-8 {
1063
+ -moz-column-gap: 2rem;
1064
+ column-gap: 2rem;
1065
+ }
1066
+
1067
+ .gap-y-4 {
1068
+ row-gap: 1rem;
1069
+ }
1070
+
1071
+ .self-start {
1072
+ align-self: flex-start;
1073
+ }
1074
+
1075
+ .overflow-auto {
1076
+ overflow: auto;
1077
+ }
1078
+
1079
+ .overflow-hidden {
1080
+ overflow: hidden;
1081
+ }
1082
+
1083
+ .overflow-visible {
1084
+ overflow: visible;
1085
+ }
1086
+
1087
+ .overflow-y-auto {
1088
+ overflow-y: auto;
1089
+ }
1090
+
1091
+ .overflow-x-hidden {
1092
+ overflow-x: hidden;
1093
+ }
1094
+
1095
+ .whitespace-nowrap {
1096
+ white-space: nowrap;
1097
+ }
1098
+
1099
+ .text-wrap {
1100
+ text-wrap: wrap;
1101
+ }
1102
+
1103
+ .text-nowrap {
1104
+ text-wrap: nowrap;
1105
+ }
1106
+
1107
+ .break-words {
1108
+ overflow-wrap: break-word;
1109
+ }
1110
+
1111
+ .rounded-full {
1112
+ border-radius: 9999px;
1113
+ }
1114
+
1115
+ .rounded-lg {
1116
+ border-radius: 0.5rem;
1117
+ }
1118
+
1119
+ .rounded-md {
1120
+ border-radius: 0.375rem;
1121
+ }
1122
+
1123
+ .rounded-xl {
1124
+ border-radius: 0.75rem;
1125
+ }
1126
+
1127
+ .rounded-b-lg {
1128
+ border-bottom-right-radius: 0.5rem;
1129
+ border-bottom-left-radius: 0.5rem;
1130
+ }
1131
+
1132
+ .rounded-r-full {
1133
+ border-top-right-radius: 9999px;
1134
+ border-bottom-right-radius: 9999px;
1135
+ }
1136
+
1137
+ .rounded-t-lg {
1138
+ border-top-left-radius: 0.5rem;
1139
+ border-top-right-radius: 0.5rem;
1140
+ }
1141
+
1142
+ .border {
1143
+ border-width: 1px;
1144
+ }
1145
+
1146
+ .border-2 {
1147
+ border-width: 2px;
1148
+ }
1149
+
1150
+ .border-t-0 {
1151
+ border-top-width: 0px;
1152
+ }
1153
+
1154
+ .border-solid {
1155
+ border-style: solid;
1156
+ }
1157
+
1158
+ .border-slate-300 {
1159
+ --tw-border-opacity: 1;
1160
+ border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
1161
+ }
1162
+
1163
+ .bg-black {
1164
+ --tw-bg-opacity: 1;
1165
+ background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
1166
+ }
1167
+
1168
+ .bg-indigo-100 {
1169
+ --tw-bg-opacity: 1;
1170
+ background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));
1171
+ }
1172
+
1173
+ .bg-surface {
1174
+ background-color: var(--cp-dlr-blue-98);
1175
+ }
1176
+
1177
+ .bg-white {
1178
+ --tw-bg-opacity: 1;
1179
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1180
+ }
1181
+
1182
+ .fill-critical {
1183
+ fill: var(--cp-critical-40);
1184
+ }
1185
+
1186
+ .p-1 {
1187
+ padding: 0.25rem;
1188
+ }
1189
+
1190
+ .p-2 {
1191
+ padding: 0.5rem;
1192
+ }
1193
+
1194
+ .p-4 {
1195
+ padding: 1rem;
1196
+ }
1197
+
1198
+ .p-5 {
1199
+ padding: 1.25rem;
1200
+ }
1201
+
1202
+ .p-6 {
1203
+ padding: 1.5rem;
1204
+ }
1205
+
1206
+ .px-2 {
1207
+ padding-left: 0.5rem;
1208
+ padding-right: 0.5rem;
1209
+ }
1210
+
1211
+ .px-3 {
1212
+ padding-left: 0.75rem;
1213
+ padding-right: 0.75rem;
1214
+ }
1215
+
1216
+ .px-4 {
1217
+ padding-left: 1rem;
1218
+ padding-right: 1rem;
1219
+ }
1220
+
1221
+ .px-6 {
1222
+ padding-left: 1.5rem;
1223
+ padding-right: 1.5rem;
1224
+ }
1225
+
1226
+ .px-8 {
1227
+ padding-left: 2rem;
1228
+ padding-right: 2rem;
1229
+ }
1230
+
1231
+ .py-2 {
1232
+ padding-top: 0.5rem;
1233
+ padding-bottom: 0.5rem;
1234
+ }
1235
+
1236
+ .py-4 {
1237
+ padding-top: 1rem;
1238
+ padding-bottom: 1rem;
1239
+ }
1240
+
1241
+ .py-5 {
1242
+ padding-top: 1.25rem;
1243
+ padding-bottom: 1.25rem;
1244
+ }
1245
+
1246
+ .py-\\[0\\.75rem\\] {
1247
+ padding-top: 0.75rem;
1248
+ padding-bottom: 0.75rem;
1249
+ }
1250
+
1251
+ .pb-0 {
1252
+ padding-bottom: 0px;
1253
+ }
1254
+
1255
+ .pb-1 {
1256
+ padding-bottom: 0.25rem;
1257
+ }
1258
+
1259
+ .pb-2 {
1260
+ padding-bottom: 0.5rem;
1261
+ }
1262
+
1263
+ .pb-3 {
1264
+ padding-bottom: 0.75rem;
1265
+ }
1266
+
1267
+ .pb-5 {
1268
+ padding-bottom: 1.25rem;
1269
+ }
1270
+
1271
+ .pb-\\[1\\.5rem\\] {
1272
+ padding-bottom: 1.5rem;
1273
+ }
1274
+
1275
+ .pb-\\[2px\\] {
1276
+ padding-bottom: 2px;
1277
+ }
1278
+
1279
+ .pl-1 {
1280
+ padding-left: 0.25rem;
1281
+ }
1282
+
1283
+ .pl-11 {
1284
+ padding-left: 2.75rem;
1285
+ }
1286
+
1287
+ .pl-2 {
1288
+ padding-left: 0.5rem;
1289
+ }
1290
+
1291
+ .pl-4 {
1292
+ padding-left: 1rem;
1293
+ }
1294
+
1295
+ .pr-1 {
1296
+ padding-right: 0.25rem;
1297
+ }
1298
+
1299
+ .pr-4 {
1300
+ padding-right: 1rem;
1301
+ }
1302
+
1303
+ .pt-0 {
1304
+ padding-top: 0px;
1305
+ }
1306
+
1307
+ .pt-1 {
1308
+ padding-top: 0.25rem;
1309
+ }
1310
+
1311
+ .pt-2 {
1312
+ padding-top: 0.5rem;
1313
+ }
1314
+
1315
+ .pt-40 {
1316
+ padding-top: 10rem;
1317
+ }
1318
+
1319
+ .pt-6 {
1320
+ padding-top: 1.5rem;
1321
+ }
1322
+
1323
+ .pt-\\[0px\\] {
1324
+ padding-top: 0px;
1325
+ }
1326
+
1327
+ .pt-\\[10px\\] {
1328
+ padding-top: 10px;
1329
+ }
1330
+
1331
+ .text-left {
1332
+ text-align: left;
1333
+ }
1334
+
1335
+ .text-center {
1336
+ text-align: center;
1337
+ }
1338
+
1339
+ .text-2xl {
1340
+ font-size: 1.5rem;
1341
+ line-height: 2rem;
1342
+ }
1343
+
1344
+ .text-base {
1345
+ font-size: 1rem;
1346
+ line-height: 1.5rem;
1347
+ }
1348
+
1349
+ .text-sm {
1350
+ font-size: 0.875rem;
1351
+ line-height: 1.25rem;
1352
+ }
1353
+
1354
+ .text-xl {
1355
+ font-size: 1.25rem;
1356
+ line-height: 1.75rem;
1357
+ }
1358
+
1359
+ .font-bold {
1360
+ font-weight: 700;
1361
+ }
1362
+
1363
+ .font-extralight {
1364
+ font-weight: 200;
1365
+ }
1366
+
1367
+ .font-medium {
1368
+ font-weight: 500;
1369
+ }
1370
+
1371
+ .font-semibold {
1372
+ font-weight: 600;
1373
+ }
1374
+
1375
+ .uppercase {
1376
+ text-transform: uppercase;
1377
+ }
1378
+
1379
+ .capitalize {
1380
+ text-transform: capitalize;
1381
+ }
1382
+
1383
+ .italic {
1384
+ font-style: italic;
1385
+ }
1386
+
1387
+ .leading-7 {
1388
+ line-height: 1.75rem;
1389
+ }
1390
+
1391
+ .tracking-wide {
1392
+ letter-spacing: 0.025em;
1393
+ }
1394
+
1395
+ .tracking-wider {
1396
+ letter-spacing: 0.05em;
1397
+ }
1398
+
1399
+ .text-black {
1400
+ --tw-text-opacity: 1;
1401
+ color: rgb(0 0 0 / var(--tw-text-opacity, 1));
1402
+ }
1403
+
1404
+ .text-graphics-fill {
1405
+ color: var(--cp-neutral-blue-60p);
1406
+ }
1407
+
1408
+ .text-on-surface-variant {
1409
+ color: var(--cp-neutral-blue-70p);
1410
+ }
1411
+
1412
+ .text-slate-600 {
1413
+ --tw-text-opacity: 1;
1414
+ color: rgb(71 85 105 / var(--tw-text-opacity, 1));
1415
+ }
1416
+
1417
+ .text-white {
1418
+ --tw-text-opacity: 1;
1419
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1420
+ }
1421
+
1422
+ .underline {
1423
+ text-decoration-line: underline;
1424
+ }
1425
+
1426
+ .opacity-50 {
1427
+ opacity: 0.5;
1428
+ }
1429
+
1430
+ .opacity-60 {
1431
+ opacity: 0.6;
1432
+ }
1433
+
1434
+ .opacity-\\[\\.16\\] {
1435
+ opacity: .16;
1436
+ }
1437
+
1438
+ .outline {
1439
+ outline-style: solid;
1440
+ }
1441
+
1442
+ .blur {
1443
+ --tw-blur: blur(8px);
1444
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1445
+ }
1446
+
1447
+ .drop-shadow {
1448
+ --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
1449
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1450
+ }
1451
+
1452
+ .drop-shadow-lg {
1453
+ --tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));
1454
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1455
+ }
1456
+
1457
+ .filter {
1458
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1459
+ }
1460
+
1461
+ .transition {
1462
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
1463
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
1464
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
1465
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1466
+ transition-duration: 150ms;
1467
+ }
1468
+
1469
+ .dlr-text-caption-alt {
1470
+ font-family: var(--root-secondary-font);
1471
+ font-size: var(--text-caption-size);
1472
+ line-height: var(--text-caption-line-height);
1473
+ letter-spacing: var(--text-caption-letter-spacing);
1474
+ font-weight: var(--text-caption-weight);
1475
+ font-weight: 700;
1476
+ }
1477
+
1478
+ .last-of-type\\:pr-4:last-of-type {
1479
+ padding-right: 1rem;
1480
+ }
1481
+
1482
+ .hover\\:bg-indigo-100:hover {
1483
+ --tw-bg-opacity: 1;
1484
+ background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));
1485
+ }
1486
+
1487
+ @media (max-width: 640px) {
1488
+ .max-\\[640px\\]\\:w-screen {
1489
+ width: 100vw;
1490
+ }
1491
+ }
1492
+
1493
+ @media (min-width: 600px) {
1494
+ .sm\\:block {
1495
+ display: block;
1496
+ }
1497
+
1498
+ .sm\\:flex {
1499
+ display: flex;
1500
+ }
1501
+
1502
+ .sm\\:w-2\\/3 {
1503
+ width: 66.666667%;
1504
+ }
1505
+
1506
+ .sm\\:w-32 {
1507
+ width: 8rem;
1508
+ }
1509
+
1510
+ .sm\\:grid-cols-2 {
1511
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1512
+ }
1513
+
1514
+ .sm\\:flex-row {
1515
+ flex-direction: row;
1516
+ }
1517
+
1518
+ .sm\\:items-center {
1519
+ align-items: center;
1520
+ }
1521
+
1522
+ .sm\\:overflow-visible {
1523
+ overflow: visible;
1524
+ }
1525
+
1526
+ .md\\:relative {
1527
+ position: relative;
1528
+ }
1529
+
1530
+ .md\\:left-0 {
1531
+ left: 0px;
1532
+ }
1533
+
1534
+ .md\\:mx-4 {
1535
+ margin-left: 1rem;
1536
+ margin-right: 1rem;
1537
+ }
1538
+
1539
+ .md\\:block {
1540
+ display: block;
1541
+ }
1542
+
1543
+ .md\\:grid {
1544
+ display: grid;
1545
+ }
1546
+
1547
+ .md\\:hidden {
1548
+ display: none;
1549
+ }
1550
+
1551
+ .md\\:w-\\[560px\\] {
1552
+ width: 560px;
1553
+ }
1554
+
1555
+ .md\\:grid-cols-2 {
1556
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1557
+ }
1558
+
1559
+ .md\\:grid-rows-1 {
1560
+ grid-template-rows: repeat(1, minmax(0, 1fr));
1561
+ }
1562
+
1563
+ .md\\:overflow-auto {
1564
+ overflow: auto;
1565
+ }
1566
+
1567
+ .md\\:overflow-y-auto {
1568
+ overflow-y: auto;
1569
+ }
1570
+
1571
+ .md\\:overflow-x-hidden {
1572
+ overflow-x: hidden;
1573
+ }
1574
+
1575
+ .md\\:p-1 {
1576
+ padding: 0.25rem;
1577
+ }
1578
+ }
1579
+
1580
+ @media (min-width: 1200px) {
1581
+ .lg\\:static {
1582
+ position: static;
1583
+ }
1584
+
1585
+ .lg\\:sticky {
1586
+ position: sticky;
1587
+ }
1588
+
1589
+ .lg\\:right-0 {
1590
+ right: 0px;
1591
+ }
1592
+
1593
+ .lg\\:top-\\[--top-height\\] {
1594
+ top: var(--top-height);
1595
+ }
1596
+
1597
+ .lg\\:top-\\[34px\\] {
1598
+ top: 34px;
1599
+ }
1600
+
1601
+ .lg\\:mx-0 {
1602
+ margin-left: 0px;
1603
+ margin-right: 0px;
1604
+ }
1605
+
1606
+ .lg\\:flex {
1607
+ display: flex;
1608
+ }
1609
+
1610
+ .lg\\:hidden {
1611
+ display: none;
1612
+ }
1613
+
1614
+ .lg\\:h-\\[--content-height\\] {
1615
+ height: var(--content-height);
1616
+ }
1617
+
1618
+ .lg\\:h-auto {
1619
+ height: auto;
1620
+ }
1621
+
1622
+ .lg\\:max-h-none {
1623
+ max-height: none;
1624
+ }
1625
+
1626
+ .lg\\:w-1\\/3 {
1627
+ width: 33.333333%;
1628
+ }
1629
+
1630
+ .lg\\:w-1\\/4 {
1631
+ width: 25%;
1632
+ }
1633
+
1634
+ .lg\\:min-w-\\[400px\\] {
1635
+ min-width: 400px;
1636
+ }
1637
+
1638
+ .lg\\:min-w-fit {
1639
+ min-width: -moz-fit-content;
1640
+ min-width: fit-content;
1641
+ }
1642
+
1643
+ .lg\\:grow-0 {
1644
+ flex-grow: 0;
1645
+ }
1646
+
1647
+ .lg\\:flex-row {
1648
+ flex-direction: row;
1649
+ }
1650
+
1651
+ .lg\\:overflow-auto {
1652
+ overflow: auto;
1653
+ }
1654
+
1655
+ .lg\\:overflow-visible {
1656
+ overflow: visible;
1657
+ }
1658
+
1659
+ .lg\\:p-2 {
1660
+ padding: 0.5rem;
1661
+ }
1662
+
1663
+ .lg\\:p-4 {
1664
+ padding: 1rem;
1665
+ }
1666
+
1667
+ .lg\\:px-8 {
1668
+ padding-left: 2rem;
1669
+ padding-right: 2rem;
1670
+ }
1671
+
1672
+ .lg\\:pl-4 {
1673
+ padding-left: 1rem;
1674
+ }
1675
+
1676
+ .xl\\:grid-cols-1 {
1677
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1678
+ }
1679
+
1680
+ .xl\\:grid-cols-2 {
1681
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1682
+ }
1683
+ }
1684
+
1685
+ .\\[\\&\\:not\\(\\:last-of-type\\)\\]\\:w-full:not(:last-of-type) {
1686
+ width: 100%;
1687
+ }
1688
+
1689
+ .\\[\\&\\:not\\(\\:last-of-type\\)\\]\\:pr-8:not(:last-of-type) {
1690
+ padding-right: 2rem;
1691
+ } `,qe={digitalRealtyLogo:Le`
1692
+ <path d="M17.6281 26.4421V23.1369C20.6656 23.1369 23.1369 20.6657 23.1369 17.6281H26.4421C26.4421 22.4881 22.4881 26.4421 17.6281 26.4421ZM17.6281 0V3.30527C20.6656 3.30527 23.1369 5.77647 23.1369 8.81404H26.4421C26.4421 3.95398 22.4881 0 17.6281 0ZM8.81404 23.1369H3.30527V17.6281H0V26.4421H8.81404V23.1369ZM3.30527 3.30527H8.81404V0H0V8.81404H3.30527V3.30527Z"></path>
1693
+ `,digitalRealtyLogoWithText:Le`
1694
+ <path d="M174.823 18.1256V18.338H174.216V19.7581H173.986V18.338H173.379V18.1256H174.823ZM175.376 18.1256L176.025 19.4728L176.68 18.1256H177.002V19.7581H176.784V18.3865L176.116 19.7581H175.928L175.272 18.3865V19.7581H175.06V18.1256H175.376Z"></path>
1695
+ <path d="M166.533 6.68392L169.465 12.0444L172.547 6.68392H175.666L170.866 14.902V19.7581H168.064V14.902L163.264 6.68392H166.533ZM162.921 6.68392V9.0933H159.148V19.7581H156.347V9.0933H152.574V6.68392H162.921ZM149.268 6.68393H146.467V19.7581H154.836V17.3487H149.268V6.68393ZM137.482 6.68392H140.844L145.588 19.7581H142.581L141.573 16.9005H136.605L135.596 19.7581H132.701L137.482 6.68392ZM140.807 14.6406L139.07 9.67235L137.352 14.6406H140.807ZM131.744 6.68392V9.0933H125.767V12.0257H130.623V14.323H125.767V17.3488H131.949V19.7581H122.965V6.68392H131.744ZM119.015 7.21625C119.743 7.57117 120.307 8.07848 120.705 8.73847C121.104 9.39836 121.303 10.1642 121.303 11.0358C121.303 11.87 121.104 12.6078 120.705 13.249C120.307 13.8904 119.759 14.3791 119.062 14.7152L121.639 19.7581H118.539L116.353 15.369H113.981V19.7581H111.18V6.68392H116.503C117.449 6.68392 118.286 6.86143 119.015 7.21625ZM116.279 13.0343C116.939 13.0343 117.465 12.8537 117.857 12.4927C118.249 12.1315 118.445 11.6459 118.445 11.0358C118.445 10.4132 118.249 9.92141 117.857 9.56024C117.465 9.19916 116.939 9.01862 116.279 9.01862H113.981V13.0343H116.279ZM99.9176 17.3487V6.68398H97.1161V19.7581H105.485V17.3487H99.9176ZM88.1319 6.68397L91.4938 6.68398L96.2379 19.7581H93.2309L92.2222 16.9005H87.2541L86.2454 19.7581H83.3504L88.1319 6.68397ZM91.4564 14.6405L89.7195 9.67236L88.0012 14.6405H91.4564ZM84.9942 6.68397V9.09335H81.2213V19.7581H78.4198V9.09335H74.6469V6.68397H84.9942ZM73.5075 6.68397V19.7581H70.7059V6.68397H73.5075ZM59.5649 7.39371C60.5422 6.84584 61.691 6.5719 63.0109 6.5719C64.0443 6.5719 64.972 6.77111 65.7937 7.16957C66.6156 7.56799 67.2786 8.12833 67.7829 8.85053C68.2872 9.57269 68.5954 10.4008 68.7074 11.3346H65.9432C65.7688 10.6 65.4202 10.0179 64.8972 9.58829C64.3742 9.15869 63.7206 8.94393 62.9361 8.94393C62.2139 8.94393 61.5851 9.12448 61.0497 9.48556C60.5143 9.84664 60.1034 10.351 59.817 10.9984C59.5306 11.6459 59.3874 12.3868 59.3874 13.221C59.3874 14.5036 59.7018 15.5371 60.3306 16.3215C60.9594 17.106 61.8279 17.4982 62.9361 17.4982C63.7454 17.4982 64.4614 17.2772 65.084 16.8351C65.7066 16.3931 66.0801 15.7425 66.2047 14.8833V14.7152H62.9547V12.4926H68.8008V19.7581H66.8584L66.5595 18.1332C66.1736 18.6437 65.6568 19.0609 65.0093 19.3846C64.3618 19.7083 63.6085 19.8702 62.7494 19.8702C61.5166 19.8702 60.4302 19.5963 59.4901 19.0484C58.55 18.5005 57.8216 17.7223 57.3048 16.7137C56.7881 15.7051 56.5298 14.5409 56.5298 13.221C56.5298 11.8887 56.7913 10.7214 57.3142 9.71903C57.8372 8.71668 58.5874 7.94154 59.5649 7.39371ZM55.0729 6.68397V19.7581H52.2713V6.68397H55.0729ZM44.2028 6.68397C45.5101 6.68397 46.665 6.96099 47.6674 7.51512C48.6697 8.0692 49.4417 8.84121 49.9834 9.8311C50.5251 10.821 50.7958 11.951 50.7958 13.221C50.7958 14.4911 50.5251 15.6211 49.9834 16.611C49.4417 17.6009 48.6697 18.3729 47.6674 18.927C46.665 19.4811 45.5101 19.7581 44.2028 19.7581H39.6641V6.68397H44.2028ZM46.9577 16.2748C47.6113 15.509 47.9382 14.4911 47.9382 13.221C47.9382 11.951 47.6113 10.9331 46.9577 10.1673C46.304 9.4015 45.3856 9.01863 44.2028 9.01863H42.4657V17.4234H44.2028C45.3856 17.4234 46.304 17.0406 46.9577 16.2748Z"></path>
1696
+ <path d="M17.6281 26.4421V23.1369C20.6656 23.1369 23.1369 20.6657 23.1369 17.6281H26.4421C26.4421 22.4881 22.4881 26.4421 17.6281 26.4421ZM17.6281 0V3.30527C20.6656 3.30527 23.1369 5.77647 23.1369 8.81404H26.4421C26.4421 3.95398 22.4881 0 17.6281 0ZM8.81404 23.1369H3.30527V17.6281H0V26.4421H8.81404V23.1369ZM3.30527 3.30527H8.81404V0H0V8.81404H3.30527V3.30527Z"></path>
1697
+ `,userManagementIcon:Le`
1698
+ <path d="M3 3C1.897 3 1 3.897 1 5V21H11V19H3V5H13V12C13 10.37 13.792 8.93544 15 8.02344V5C15 3.897 14.103 3 13 3H3ZM5 7V9H7V7H5ZM9 7V9H11V7H9ZM18 9C16.318 9 15 10.317 15 12C15 13.683 16.318 15 18 15C19.682 15 21 13.683 21 12C21 10.317 19.682 9 18 9ZM5 11V13H7V11H5ZM9 11V13H11V11H9ZM18 11C18.58 11 19 11.421 19 12C19 12.579 18.58 13 18 13C17.42 13 17 12.579 17 12C17 11.421 17.42 11 18 11ZM5 15V17H7V15H5ZM9 15V17H11V15H9ZM18 16C15.149 16 13 17.4558 13 19.3848V21H23V19.3848C23 17.4558 20.851 16 18 16ZM18 18C19.47 18 20.4895 18.504 20.8535 19H15.1465C15.5095 18.504 16.53 18 18 18Z"></path>
1699
+ `,roleManagementIcon:Le`
1700
+ <path d="M12 3C9.80271 3 8 4.80271 8 7C8 9.19729 9.80271 11 12 11C14.1973 11 16 9.19729 16 7C16 4.80271 14.1973 3 12 3ZM12 5C13.1164 5 14 5.88359 14 7C14 8.11641 13.1164 9 12 9C10.8836 9 10 8.11641 10 7C10 5.88359 10.8836 5 12 5ZM18 12C16.1872 12 14.5593 12.8158 13.457 14.0957C12.9584 14.0389 12.4662 14 12 14C10.255 14 8.18716 14.4098 6.44922 15.0957C5.58025 15.4387 4.7947 15.846 4.16602 16.3691C3.53734 16.8922 3 17.5994 3 18.5V21H12.8145C13.8556 22.789 15.7903 24 18 24C21.3019 24 24 21.3019 24 18C24 14.6981 21.3019 12 18 12ZM18 14C19.0039 14 19.9057 14.377 20.6055 14.9805L18 17.5859L16.707 16.293L15.293 17.707L18 20.4141L21.7559 16.6582C21.9049 17.0789 22 17.5261 22 18C22 20.221 20.221 22 18 22C15.779 22 14 20.221 14 18C14 15.779 15.779 14 18 14ZM12 16C12.1083 16 12.2316 16.0115 12.3457 16.0156C12.1256 16.6382 12 17.3041 12 18C12 18.3415 12.0364 18.6738 12.0918 19H5V18.5C5 18.4346 5.06759 18.2205 5.44531 17.9062C5.82304 17.592 6.44549 17.2456 7.18164 16.9551C8.65395 16.374 10.586 16 12 16Z"></path>
1701
+ `};class fo{constructor(){this.error=void 0,this.loading=!0,this.permissions=[],this.email=void 0,this.accountNumber="",this.accounts=[],this.accountHierarchy=[],this.permissionAssignment=[],Gi(this)}setPermissions(t){this.permissions=structuredClone(t)}setError(t){this.error=t}set setLoading(t){this.loading=t}get getLoading(){return this.loading}clearError(){this.error=void 0}getMyPermissions(){return _e(this.permissionAssignment)}setMyPermissions(t){this.permissionAssignment=structuredClone(t)}getPermissions(){return _e(this.permissions)}setEmail(t){this.email=t}getEmail(){return this.email}setAccountNumber(t){this.accountNumber=t}getAccountNumber(){return this.accountNumber}setAccounts(t){this.accounts=t}getAccounts(){return _e(this.accounts)}setAccountHierarchy(t){this.accountHierarchy=t}getAccountHierarchy(){return _e(this.accountHierarchy)}}const U=new fo,k={user:"User",externalUser:"External User",internalUser:"Internal User",customRoles:"Custom Roles",internalRoles:"Internal Roles",defaultRoles:"Default System Roles",assignInternalRole:"Assign Internal Role"},A={read:"read",update:"update",create:"create",approve:"approve"};function yo(e){return bo(e)}function bo(e,t){return e==null?e:{account_number:f(e,"account_number")?e.account_number:void 0,parent_account_number:f(e,"parent_account_number")?e.parent_account_number:void 0,name:f(e,"name")?e.name:void 0,friendly_name:f(e,"friendly_name")?e.friendly_name:void 0}}function Qt(e){return xo(e)}function xo(e,t){return e}function st(e){return wo(e)}function wo(e,t){return e==null?e:{id:e.id,account_number:e.account_number,account_name:e.account_name,account_friendly_name:e.account_friendly_name,status:Qt(e.status),updated_at:e.updated_at,updated_by:e.updated_by,user_id:e.user_id}}function Ao(e){if(e!==void 0)return e===null?null:{user_id:e.user_id,account_number:e.account_number}}function Co(e){if(e!==void 0)return e===null?null:{status:e.status}}function To(e){if(e!==void 0)return e===null?null:{role_id:e.role_id,user_id:e.user_id,account_number:e.account_number,location_id:e.location_id}}function Io(e){if(e!==void 0)return e===null?null:{RoleAssignmentInput:e.RoleAssignmentInput===void 0?void 0:e.RoleAssignmentInput.map(To)}}function _o(e){return ko(e)}function ko(e,t){return e}function _r(e){return e}function Eo(e){if(e!==void 0)return e===null?null:{user_flag_type:e.user_flag_type,user_id:e.user_id,account_number:e.account_number,location_id:e.location_id}}function Ro(e){if(e!==void 0)return e===null?null:{UserFlagAssignmentInputs:e.UserFlagAssignmentInputs===void 0?void 0:e.UserFlagAssignmentInputs.map(Eo)}}function Ee(e){if(e!==void 0)return e===null?null:{permission_id:e.permission_id,privilege:e.privilege}}function So(e){if(e!==void 0)return e===null?null:{name:e.name,role_type:e.role_type,permissions:e.permissions.map(Ee),account_number:e.account_number}}function Uo(e){if(e!==void 0)return e===null?null:{name:e.name,role_type:e.role_type,permissions:e.permissions.map(Ee)}}function $o(e){if(e!==void 0)return e===null?null:{email_address:e.email_address}}function No(e){if(e!==void 0)return e===null?null:{name:e.name,role_type:e.role_type,permissions:e.permissions.map(Ee)}}function Fo(e){if(e!==void 0)return e===null?null:{name:e.name,role_type:e.role_type,permissions:e.permissions.map(Ee)}}function Do(e){return Po(e)}function Po(e,t){return e==null?e:{first_name:f(e,"first_name")?e.first_name:void 0,last_name:f(e,"last_name")?e.last_name:void 0,email:f(e,"email")?e.email:void 0,account_permission_group:f(e,"account_permission_group")?e.account_permission_group:void 0,account_associations:f(e,"account_associations")?e.account_associations:void 0}}function Mo(e){return Bo(e)}function Bo(e,t){return e==null?e:{items:f(e,"items")?e.items.map(Do):void 0}}function Lo(e){return Oo(e)}function Oo(e,t){return e==null?e:{id:e.id,name:e.name,is_non_location:e.is_non_location,category:f(e,"category")?e.category:void 0,privileges:e.privileges,internal_privileges:e.internal_privileges,is_internal:e.is_internal}}function zo(e){return qo(e)}function qo(e,t){return e==null?e:{account_number:e.account_number,permission_name:e.permission_name,privilege:e.privilege,privilege_is_internal:e.privilege_is_internal,is_non_location:f(e,"is_non_location")?e.is_non_location:void 0}}function Ho(e){return Vo(e)}function Vo(e,t){return e==null?e:{permission_id:e.permission_id,permission_name:e.permission_name,is_non_location:e.is_non_location,privilege:f(e,"privilege")?e.privilege:void 0}}function rt(e){return jo(e)}function jo(e,t){return e==null?e:{id:e.id,name:e.name,account_number:f(e,"account_number")?e.account_number:void 0,role_type:e.role_type,permissions:e.permissions.map(Ho)}}function lt(e){return Go(e)}function Go(e,t){return e==null?e:{role_id:e.role_id,user_id:e.user_id,account_number:e.account_number,location_id:f(e,"location_id")?e.location_id:void 0,id:e.id,is_active:e.is_active}}function Ko(e){if(e!==void 0){if(e===null)return null;switch(e.role_type){case"CUSTOM":return So(e);case"DEFAULT":return Uo(e);case"GLOBALACCESS":return No(e);case"INTERNAL":return Fo(e);default:throw new Error(`No variant of RoleCreate exists with 'role_type=${e.role_type}'`)}}}function Jo(e){if(e!==void 0)return e===null?null:{role_name:e.role_name,permissions:e.permissions.map(Ee)}}function Zo(e){return Wo(e)}function Wo(e,t){return e==null?e:{id:e.id,account_number:e.account_number,account_name:e.account_name,account_friendly_name:e.account_friendly_name,status:Qt(e.status),updated_at:e.updated_at,updated_by:e.updated_by}}function ct(e){return Qo(e)}function Qo(e,t){return e==null?e:{first_name:e.first_name,last_name:e.last_name,email:e.email,phone:e.phone,evacuation_assistance_required:f(e,"evacuation_assistance_required")?e.evacuation_assistance_required:void 0,id:e.id,is_active:f(e,"is_active")?e.is_active:void 0,account_associations:f(e,"account_associations")?e.account_associations.map(Zo):void 0}}function dt(e){return Yo(e)}function Yo(e,t){return e==null?e:{user_flag_type:_o(e.user_flag_type),user_id:e.user_id,account_number:e.account_number,location_id:e.location_id,id:e.id,is_active:f(e,"is_active")?e.is_active:void 0}}function Xo(e){if(e!==void 0)return e===null?null:{first_name:e.first_name,last_name:e.last_name,email:e.email,phone:e.phone,evacuation_assistance_required:e.evacuation_assistance_required,account_numbers:e.account_numbers}}function en(e){if(e!==void 0)return e===null?null:{first_name:e.first_name,last_name:e.last_name,email:e.email,phone:e.phone,evacuation_assistance_required:e.evacuation_assistance_required}}function tn(e){return on(e)}function on(e,t){return e==null?e:{number:f(e,"number")?e.number:void 0,total_pages:f(e,"total_pages")?e.total_pages:void 0,first:f(e,"first")?e.first:void 0,last:f(e,"last")?e.last:void 0,size:f(e,"size")?e.size:void 0,number_of_elements:f(e,"number_of_elements")?e.number_of_elements:void 0,total_elements:f(e,"total_elements")?e.total_elements:void 0}}function nn(e){return an(e)}function an(e,t){return e==null?e:{content:f(e,"content")?e.content.map(ct):void 0,pageable:f(e,"pageable")?tn(e.pageable):void 0}}function sn(e){return rn(e)}function rn(e,t){return e==null?e:{email_address:f(e,"email_address")?e.email_address:void 0,is_verified:f(e,"is_verified")?e.is_verified:void 0,reason:f(e,"reason")?e.reason:void 0}}class ln extends J{async createAccountAssociationRaw(t,i){if(t.accountAssociationInput===null||t.accountAssociationInput===void 0)throw new R("accountAssociationInput","Required parameter requestParameters.accountAssociationInput was null or undefined when calling createAccountAssociation.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/account-associations",method:"POST",headers:n,query:o,body:Ao(t.accountAssociationInput)},i);return new S(a,r=>st(r))}async createAccountAssociation(t,i){return await(await this.createAccountAssociationRaw(t,i)).value()}async getAccountAssociationsRaw(t,i){const o={};t.accountNumber!==void 0&&(o.account_number=t.accountNumber),t.userId!==void 0&&(o.user_id=t.userId),t.status!==void 0&&(o.status=t.status);const n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/account-associations",method:"GET",headers:n,query:o},i);return new S(a,r=>r.map(st))}async getAccountAssociations(t={},i){return await(await this.getAccountAssociationsRaw(t,i)).value()}async getUserAccountAssociationRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling getUserAccountAssociation.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/account-associations/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"GET",headers:n,query:o},i);return new S(a,r=>st(r))}async getUserAccountAssociation(t,i){return await(await this.getUserAccountAssociationRaw(t,i)).value()}async updateAccountAssociationStatusRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling updateAccountAssociationStatus.");if(t.accountAssociationStatusUpdate===null||t.accountAssociationStatusUpdate===void 0)throw new R("accountAssociationStatusUpdate","Required parameter requestParameters.accountAssociationStatusUpdate was null or undefined when calling updateAccountAssociationStatus.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/account-associations/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"PATCH",headers:n,query:o,body:Co(t.accountAssociationStatusUpdate)},i);return new he(a)}async updateAccountAssociationStatus(t,i){await this.updateAccountAssociationStatusRaw(t,i)}}class cn extends J{async getAccountsRaw(t){const i={},o={};this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/accounts",method:"GET",headers:o,query:i},t);return new S(n,a=>a.map(yo))}async getAccounts(t){return await(await this.getAccountsRaw(t)).value()}}class dn extends J{async getPermissionsRaw(t){const i={},o={};this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/permissions",method:"GET",headers:o,query:i},t);return new S(n,a=>a.map(Lo))}async getPermissions(t){return await(await this.getPermissionsRaw(t)).value()}async getUserPermissionsRaw(t,i){const o={};t.excludeSiblings!==void 0&&(o.exclude_siblings=t.excludeSiblings),t.excludeParents!==void 0&&(o.exclude_parents=t.excludeParents);const n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/my-permissions",method:"GET",headers:n,query:o},i);return new S(a,r=>r.map(zo))}async getUserPermissions(t={},i){return await(await this.getUserPermissionsRaw(t,i)).value()}}class un extends J{async createRoleAssignmentsRaw(t,i){if(t.createRoleAssignment===null||t.createRoleAssignment===void 0)throw new R("createRoleAssignment","Required parameter requestParameters.createRoleAssignment was null or undefined when calling createRoleAssignments.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/role-assignments",method:"POST",headers:n,query:o,body:Io(t.createRoleAssignment)},i);return new S(a,r=>r.map(lt))}async createRoleAssignments(t,i){return await(await this.createRoleAssignmentsRaw(t,i)).value()}async deleteRoleAssignmentRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling deleteRoleAssignment.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/role-assignments/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"DELETE",headers:n,query:o},i);return new he(a)}async deleteRoleAssignment(t,i){await this.deleteRoleAssignmentRaw(t,i)}async getRoleAssignmentRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling getRoleAssignment.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/role-assignments/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"GET",headers:n,query:o},i);return new S(a,r=>lt(r))}async getRoleAssignment(t,i){return await(await this.getRoleAssignmentRaw(t,i)).value()}async getRoleAssignmentsRaw(t,i){const o={};t.roleId!==void 0&&(o.role_id=t.roleId),t.userId!==void 0&&(o.user_id=t.userId),t.accountNumber!==void 0&&(o.account_number=t.accountNumber),t.locationId!==void 0&&(o.location_id=t.locationId),t.roleType!==void 0&&(o.role_type=t.roleType);const n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/role-assignments",method:"GET",headers:n,query:o},i);return new S(a,r=>r.map(lt))}async getRoleAssignments(t={},i){return await(await this.getRoleAssignmentsRaw(t,i)).value()}}class pn extends J{async createRoleRaw(t,i){if(t.roleCreate===null||t.roleCreate===void 0)throw new R("roleCreate","Required parameter requestParameters.roleCreate was null or undefined when calling createRole.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/roles",method:"POST",headers:n,query:o,body:Ko(t.roleCreate)},i);return new S(a,r=>rt(r))}async createRole(t,i){return await(await this.createRoleRaw(t,i)).value()}async deleteRoleRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling deleteRole.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/roles/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"DELETE",headers:n,query:o},i);return new he(a)}async deleteRole(t,i){await this.deleteRoleRaw(t,i)}async getRoleRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling getRole.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/roles/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"GET",headers:n,query:o},i);return new S(a,r=>rt(r))}async getRole(t,i){return await(await this.getRoleRaw(t,i)).value()}async getRolesRaw(t,i){const o={};t.roleType!==void 0&&(o.role_type=t.roleType);const n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/roles",method:"GET",headers:n,query:o},i);return new S(a,r=>r.map(rt))}async getRoles(t={},i){return await(await this.getRolesRaw(t,i)).value()}async updateRoleRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling updateRole.");if(t.roleUpdate===null||t.roleUpdate===void 0)throw new R("roleUpdate","Required parameter requestParameters.roleUpdate was null or undefined when calling updateRole.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/roles/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"PUT",headers:n,query:o,body:Jo(t.roleUpdate)},i);return new he(a)}async updateRole(t,i){await this.updateRoleRaw(t,i)}}class hn extends J{async createUserFlagsRaw(t,i){if(t.createUserFlagAssignment===null||t.createUserFlagAssignment===void 0)throw new R("createUserFlagAssignment","Required parameter requestParameters.createUserFlagAssignment was null or undefined when calling createUserFlags.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/user-flags",method:"POST",headers:n,query:o,body:Ro(t.createUserFlagAssignment)},i);return new S(a,r=>r.map(dt))}async createUserFlags(t,i){return await(await this.createUserFlagsRaw(t,i)).value()}async deleteUserFlagRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling deleteUserFlag.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/user-flags/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"DELETE",headers:n,query:o},i);return new he(a)}async deleteUserFlag(t,i){await this.deleteUserFlagRaw(t,i)}async getUserFlagRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling getUserFlag.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/user-flags/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"GET",headers:n,query:o},i);return new S(a,r=>dt(r))}async getUserFlag(t,i){return await(await this.getUserFlagRaw(t,i)).value()}async getUserFlagsRaw(t,i){const o={};t.userFlagType!==void 0&&(o.user_flag_type=t.userFlagType),t.userId!==void 0&&(o.user_id=t.userId),t.accountNumber!==void 0&&(o.account_number=t.accountNumber),t.locationId!==void 0&&(o.location_id=t.locationId);const n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/user-flags",method:"GET",headers:n,query:o},i);return new S(a,r=>r.map(dt))}async getUserFlags(t={},i){return await(await this.getUserFlagsRaw(t,i)).value()}}class mn extends J{async createUserRaw(t,i){if(t.userInput===null||t.userInput===void 0)throw new R("userInput","Required parameter requestParameters.userInput was null or undefined when calling createUser.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/users",method:"POST",headers:n,query:o,body:Xo(t.userInput)},i);return new S(a,r=>ct(r))}async createUser(t,i){return await(await this.createUserRaw(t,i)).value()}async getMyAccountsAdminsAndApproversRaw(t){const i={},o={};this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/users/admins-and-approvers",method:"GET",headers:o,query:i},t);return new S(n,a=>Mo(a))}async getMyAccountsAdminsAndApprovers(t){return await(await this.getMyAccountsAdminsAndApproversRaw(t)).value()}async getUserRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling getUser.");const o={},n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/users/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"GET",headers:n,query:o},i);return new S(a,r=>ct(r))}async getUser(t,i){return await(await this.getUserRaw(t,i)).value()}async getUsersRaw(t,i){const o={};t.accountNumber!==void 0&&(o.account_number=t.accountNumber),t.includeChildAccounts!==void 0&&(o.include_child_accounts=t.includeChildAccounts),t.page!==void 0&&(o.page=t.page),t.size!==void 0&&(o.size=t.size),t.firstName!==void 0&&(o.first_name=t.firstName),t.lastName!==void 0&&(o.last_name=t.lastName),t.email!==void 0&&(o.email=t.email),t.sort!==void 0&&(o.sort=t.sort),t.order!==void 0&&(o.order=t.order);const n={};this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/users",method:"GET",headers:n,query:o},i);return new S(a,r=>nn(r))}async getUsers(t={},i){return await(await this.getUsersRaw(t,i)).value()}async updateUserRaw(t,i){if(t.id===null||t.id===void 0)throw new R("id","Required parameter requestParameters.id was null or undefined when calling updateUser.");if(t.userProfile===null||t.userProfile===void 0)throw new R("userProfile","Required parameter requestParameters.userProfile was null or undefined when calling updateUser.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/users/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"PUT",headers:n,query:o,body:en(t.userProfile)},i);return new he(a)}async updateUser(t,i){await this.updateUserRaw(t,i)}}class gn extends J{async verifyEmailRaw(t,i){if(t.emailVerificationInput===null||t.emailVerificationInput===void 0)throw new R("emailVerificationInput","Required parameter requestParameters.emailVerificationInput was null or undefined when calling verifyEmail.");const o={},n={};n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(n.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/user-attr-verification/email",method:"POST",headers:n,query:o,body:$o(t.emailVerificationInput)},i);return new S(a,r=>sn(r))}async verifyEmail(t,i){return await(await this.verifyEmailRaw(t,i)).value()}}const vn=ke`
1702
+ fragment RoleFields on RoleInventory {
1703
+ id
1704
+ accountNumber
1705
+ roleId
1706
+ contactId
1707
+ label
1708
+ secondaryLabel
1709
+ type
1710
+ parentInventoryId
1711
+ customerKnownSpaceName
1712
+ permissionStatus
1713
+ childrenCount
1714
+ selected
1715
+ searched
1716
+ isAssignable
1717
+ inherited
1718
+ }
1719
+
1720
+ query GetRoleInventory(
1721
+ $contactId: String
1722
+ $accountId: String
1723
+ $roleId: String
1724
+ $startInventoryId: String
1725
+ $searchLocationText: String!
1726
+ $isInternal: Boolean
1727
+ $level1: Boolean!
1728
+ $level2: Boolean!
1729
+ $level3: Boolean!
1730
+ $level4: Boolean!
1731
+ $level5: Boolean!
1732
+ $level6: Boolean!
1733
+ $level7: Boolean!
1734
+ $level8: Boolean!
1735
+ $level9: Boolean!
1736
+ ) {
1737
+ getRoleTree(
1738
+ contactId: $contactId
1739
+ accountNumber: $accountId
1740
+ roleId: $roleId
1741
+ startInventoryId: $startInventoryId
1742
+ searchLocationText: $searchLocationText
1743
+ isInternal: $isInternal
1744
+ ) {
1745
+ ...RoleFields
1746
+ inventoryItems @include(if: $level1) {
1747
+ ...RoleFields
1748
+ inventoryItems @include(if: $level2) {
1749
+ ...RoleFields
1750
+ inventoryItems @include(if: $level3) {
1751
+ ...RoleFields
1752
+ inventoryItems @include(if: $level4) {
1753
+ ...RoleFields
1754
+ inventoryItems @include(if: $level5) {
1755
+ ...RoleFields
1756
+ inventoryItems @include(if: $level6) {
1757
+ ...RoleFields
1758
+ inventoryItems @include(if: $level7) {
1759
+ ...RoleFields
1760
+ inventoryItems @include(if: $level8) {
1761
+ ...RoleFields
1762
+ inventoryItems @include(if: $level9) {
1763
+ ...RoleFields
1764
+ }
1765
+ }
1766
+ }
1767
+ }
1768
+ }
1769
+ }
1770
+ }
1771
+ }
1772
+ }
1773
+ }
1774
+ }
1775
+ `,fn=ke`
1776
+ fragment FlagFields on FlagInventory {
1777
+ id
1778
+ accountNumber
1779
+ flag
1780
+ contactId
1781
+ label
1782
+ secondaryLabel
1783
+ type
1784
+ parentInventoryId
1785
+ customerKnownSpaceName
1786
+ permissionStatus
1787
+ childrenCount
1788
+ checkedChildrenCount
1789
+ selected
1790
+ isAssignable
1791
+ inherited
1792
+ }
1793
+
1794
+ query GetFlagInventory(
1795
+ $contactId: String
1796
+ $accountId: String
1797
+ $flag: String
1798
+ $startInventoryId: String
1799
+ $isInternal: Boolean
1800
+ $level1: Boolean!
1801
+ $level2: Boolean!
1802
+ $level3: Boolean!
1803
+ $level4: Boolean!
1804
+ $level5: Boolean!
1805
+ $level6: Boolean!
1806
+ $level7: Boolean!
1807
+ $level8: Boolean!
1808
+ $level9: Boolean!
1809
+ ) {
1810
+ getFlagTree(
1811
+ contactId: $contactId
1812
+ accountNumber: $accountId
1813
+ flag: $flag
1814
+ startInventoryId: $startInventoryId
1815
+ isInternal: $isInternal
1816
+ ) {
1817
+ ...FlagFields
1818
+ inventoryItems @include(if: $level1) {
1819
+ ...FlagFields
1820
+ inventoryItems @include(if: $level2) {
1821
+ ...FlagFields
1822
+ inventoryItems @include(if: $level3) {
1823
+ ...FlagFields
1824
+ inventoryItems @include(if: $level4) {
1825
+ ...FlagFields
1826
+ inventoryItems @include(if: $level5) {
1827
+ ...FlagFields
1828
+ inventoryItems @include(if: $level6) {
1829
+ ...FlagFields
1830
+ inventoryItems @include(if: $level7) {
1831
+ ...FlagFields
1832
+ inventoryItems @include(if: $level8) {
1833
+ ...FlagFields
1834
+ inventoryItems @include(if: $level9) {
1835
+ ...FlagFields
1836
+ }
1837
+ }
1838
+ }
1839
+ }
1840
+ }
1841
+ }
1842
+ }
1843
+ }
1844
+ }
1845
+ }
1846
+ }
1847
+ `,yn=ke`
1848
+ fragment AccountFields on AccountInventory {
1849
+ id
1850
+ accountNumber
1851
+ label
1852
+ secondaryLabel
1853
+ type
1854
+ parentInventoryId
1855
+ customerKnownSpaceName
1856
+ permissionStatus
1857
+ childrenCount
1858
+ isAssignable
1859
+ }
1860
+
1861
+ query GetAccountInventory(
1862
+ $accountId: String
1863
+ $isInternal: Boolean
1864
+ $level1: Boolean!
1865
+ $level2: Boolean!
1866
+ $level3: Boolean!
1867
+ $level4: Boolean!
1868
+ $level5: Boolean!
1869
+ $level6: Boolean!
1870
+ $level7: Boolean!
1871
+ $level8: Boolean!
1872
+ $level9: Boolean!
1873
+ ) {
1874
+ getAccountTree(accountNumber: $accountId, isInternal: $isInternal) {
1875
+ ...AccountFields
1876
+ inventoryItems @include(if: $level1) {
1877
+ ...AccountFields
1878
+ inventoryItems @include(if: $level2) {
1879
+ ...AccountFields
1880
+ inventoryItems @include(if: $level3) {
1881
+ ...AccountFields
1882
+ inventoryItems @include(if: $level4) {
1883
+ ...AccountFields
1884
+ inventoryItems @include(if: $level5) {
1885
+ ...AccountFields
1886
+ inventoryItems @include(if: $level6) {
1887
+ ...AccountFields
1888
+ inventoryItems @include(if: $level7) {
1889
+ ...AccountFields
1890
+ inventoryItems @include(if: $level8) {
1891
+ ...AccountFields
1892
+ inventoryItems @include(if: $level9) {
1893
+ ...AccountFields
1894
+ }
1895
+ }
1896
+ }
1897
+ }
1898
+ }
1899
+ }
1900
+ }
1901
+ }
1902
+ }
1903
+ }
1904
+ }
1905
+ `,bn=ke`
1906
+ fragment RoleFields on RoleInventory {
1907
+ id
1908
+ accountNumber
1909
+ roleId
1910
+ contactId
1911
+ label
1912
+ secondaryLabel
1913
+ type
1914
+ parentInventoryId
1915
+ customerKnownSpaceName
1916
+ permissionStatus
1917
+ childrenCount
1918
+ selected
1919
+ searched
1920
+ isAssignable
1921
+ inherited
1922
+ }
1923
+
1924
+ mutation SaveAccountRoleAssignments(
1925
+ $contactId: String
1926
+ $accountNumber: String
1927
+ $locations: [AccountRoleAssignmentsLocations]
1928
+ $isInternal: Boolean
1929
+ ) {
1930
+ saveAccountRoleAssignments(
1931
+ contactId: $contactId
1932
+ accountNumber: $accountNumber
1933
+ locations: $locations
1934
+ isInternal: $isInternal
1935
+ ) {
1936
+ ...RoleFields
1937
+ inventoryItems {
1938
+ ...RoleFields
1939
+ inventoryItems {
1940
+ ...RoleFields
1941
+ }
1942
+ }
1943
+ }
1944
+ }
1945
+ `,xn=ke`
1946
+ fragment FlagFields on FlagInventory {
1947
+ id
1948
+ accountNumber
1949
+ flag
1950
+ contactId
1951
+ label
1952
+ secondaryLabel
1953
+ type
1954
+ parentInventoryId
1955
+ customerKnownSpaceName
1956
+ permissionStatus
1957
+ childrenCount
1958
+ checkedChildrenCount
1959
+ selected
1960
+ isAssignable
1961
+ inherited
1962
+ }
1963
+
1964
+ mutation saveAccountUserFlagAssignments(
1965
+ $contactId: String
1966
+ $accountNumber: String
1967
+ $locations: [AccountUserFlagAssignmentsLocations]
1968
+ $isInternal: Boolean
1969
+ ) {
1970
+ saveAccountUserFlagAssignments(
1971
+ contactId: $contactId
1972
+ accountNumber: $accountNumber
1973
+ locations: $locations
1974
+ isInternal: $isInternal
1975
+ ) {
1976
+ ...FlagFields
1977
+ inventoryItems {
1978
+ ...FlagFields
1979
+ inventoryItems {
1980
+ ...FlagFields
1981
+ }
1982
+ }
1983
+ }
1984
+ }
1985
+ `;class wn{constructor(t){this.config=t,this.gqlClient=new Ji(this.config.url),this.config.accessToken&&this.gqlClient.setHeader("authorization",this.config.accessToken)}async GetRolesInventory(t){var i;return(i=this.gqlClient)===null||i===void 0?void 0:i.request(vn,{...t})}async GetFlagsInventory(t){var i;return(i=this.gqlClient)===null||i===void 0?void 0:i.request(fn,{...t})}async GetAccountInventory(t){var i;return(i=this.gqlClient)===null||i===void 0?void 0:i.request(yn,{...t})}async SaveAccountRoleAssignments(t){var i;return(i=this.gqlClient)===null||i===void 0?void 0:i.request(bn,{...t})}async SaveAccountFlagAssignments(t){var i;return(i=this.gqlClient)===null||i===void 0?void 0:i.request(xn,{...t})}}const An="http://localhost".replace(/\/+$/,"");class Yt{constructor(t={}){this.configuration=t}set config(t){this.configuration=t}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:An}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||Xt}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const t=this.configuration.apiKey;if(t)return typeof t=="function"?t:()=>t}get accessToken(){const t=this.configuration.accessToken;if(t)return typeof t=="function"?t:async()=>t}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const Cn=new Yt;class nt{constructor(t=Cn){this.configuration=t,this.fetchApi=async(i,o)=>{let n={url:i,init:o};for(const r of this.middleware)r.pre&&(n=await r.pre({fetch:this.fetchApi,...n})||n);let a;try{a=await(this.configuration.fetchApi||fetch)(n.url,n.init)}catch(r){for(const d of this.middleware)d.onError&&(a=await d.onError({fetch:this.fetchApi,url:n.url,init:n.init,error:r,response:a?a.clone():void 0})||a);if(a===void 0)throw r instanceof Error?new kn(r,"The request failed and the interceptors did not return an alternative response"):r}for(const r of this.middleware)r.post&&(a=await r.post({fetch:this.fetchApi,url:n.url,init:n.init,response:a.clone()})||a);return a},this.middleware=t.middleware}withMiddleware(...t){const i=this.clone();return i.middleware=i.middleware.concat(...t),i}withPreMiddleware(...t){const i=t.map(o=>({pre:o}));return this.withMiddleware(...i)}withPostMiddleware(...t){const i=t.map(o=>({post:o}));return this.withMiddleware(...i)}isJsonMime(t){return t?nt.jsonRegex.test(t):!1}async request(t,i){const{url:o,init:n}=await this.createFetchParams(t,i),a=await this.fetchApi(o,n);if(a&&a.status>=200&&a.status<300)return a;throw new _n(a,"Response returned an error code")}async createFetchParams(t,i){let o=this.configuration.basePath+t.path;t.query!==void 0&&Object.keys(t.query).length!==0&&(o+="?"+this.configuration.queryParamsStringify(t.query));const n=Object.assign({},this.configuration.headers,t.headers);Object.keys(n).forEach(v=>n[v]===void 0?delete n[v]:{});const a=typeof i=="function"?i:async()=>i,r={method:t.method,headers:n,body:t.body,credentials:this.configuration.credentials},d={...r,...await a({init:r,context:t})};let p;In(d.body)||d.body instanceof URLSearchParams||Tn(d.body)?p=d.body:this.isJsonMime(n["Content-Type"])?p=JSON.stringify(d.body):p=d.body;const h={...d,body:p};return{url:o,init:h}}clone(){const t=this.constructor,i=new t(this.configuration);return i.middleware=this.middleware.slice(),i}}nt.jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");function Tn(e){return typeof Blob<"u"&&e instanceof Blob}function In(e){return typeof FormData<"u"&&e instanceof FormData}class _n extends Error{constructor(t,i){super(i),this.response=t,this.name="ResponseError"}}class kn extends Error{constructor(t,i){super(i),this.cause=t,this.name="FetchError"}}class En extends Error{constructor(t,i){super(i),this.field=t,this.name="RequiredError"}}function te(e,t){return e[t]!=null}function Xt(e,t=""){return Object.keys(e).map(i=>ei(i,e[i],t)).filter(i=>i.length>0).join("&")}function ei(e,t,i=""){const o=i+(i.length?`[${e}]`:e);if(t instanceof Array){const n=t.map(a=>encodeURIComponent(String(a))).join(`&${encodeURIComponent(o)}=`);return`${encodeURIComponent(o)}=${n}`}if(t instanceof Set){const n=Array.from(t);return ei(e,n,i)}return t instanceof Date?`${encodeURIComponent(o)}=${encodeURIComponent(t.toISOString())}`:t instanceof Object?Xt(t,o):`${encodeURIComponent(o)}=${encodeURIComponent(String(t))}`}class ti{constructor(t,i=o=>o){this.raw=t,this.transformer=i}async value(){return this.transformer(await this.raw.json())}}function ii(e){return Rn(e)}function Rn(e,t){return e==null?e:{firstName:te(e,"firstName")?e.firstName:void 0,lastName:te(e,"lastName")?e.lastName:void 0,contactPhoneNumber:te(e,"contactPhoneNumber")?e.contactPhoneNumber:void 0,preferredLanguage:te(e,"preferredLanguage")?e.preferredLanguage:void 0,preferredTimezone:te(e,"preferredTimezone")?e.preferredTimezone:void 0,timezoneOverridden:te(e,"timezoneOverridden")?e.timezoneOverridden:void 0,preferredDateFormat:te(e,"preferredDateFormat")?e.preferredDateFormat:void 0,preferredTimeFormat:te(e,"preferredTimeFormat")?e.preferredTimeFormat:void 0,email:te(e,"email")?e.email:void 0}}function Sn(e){if(e!==void 0)return e===null?null:{firstName:e.firstName,lastName:e.lastName,contactPhoneNumber:e.contactPhoneNumber,preferredLanguage:e.preferredLanguage,preferredTimezone:e.preferredTimezone,timezoneOverridden:e.timezoneOverridden,preferredDateFormat:e.preferredDateFormat,preferredTimeFormat:e.preferredTimeFormat}}class Un extends nt{async getUserSettingsRaw(t){const i={},o={};if(this.configuration&&this.configuration.accessToken){const a=this.configuration.accessToken,r=await a("bearerToken",[]);r&&(o.Authorization=`Bearer ${r}`)}const n=await this.request({path:"/user-profile",method:"GET",headers:o,query:i},t);return new ti(n,a=>ii(a))}async getUserSettings(t){return await(await this.getUserSettingsRaw(t)).value()}async userProfilePatchRaw(t,i){if(t.profileSettingEditInput===null||t.profileSettingEditInput===void 0)throw new En("profileSettingEditInput","Required parameter requestParameters.profileSettingEditInput was null or undefined when calling userProfilePatch.");const o={},n={};if(n["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken){const r=this.configuration.accessToken,d=await r("bearerToken",[]);d&&(n.Authorization=`Bearer ${d}`)}const a=await this.request({path:"/user-profile",method:"PATCH",headers:n,query:o,body:Sn(t.profileSettingEditInput)},i);return new ti(a,r=>ii(r))}async userProfilePatch(t,i){return await(await this.userProfilePatchRaw(t,i)).value()}}class $n{constructor(t){this.configuration=t}get InventoryApi(){return new wn({url:this.configuration.userManagementAggregationApiUrl,accessToken:this.getToken()})}get UsersApi(){return new mn(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get AccountAssociationApi(){return new ln(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get AccountsApi(){return new cn(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get RolesApi(){return new pn(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get PermissionsApi(){return new dn(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get RoleAssignmentsApi(){return new un(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get UserFlagsApi(){return new hn(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get VerificationApi(){return new gn(new ee({basePath:this.configuration.userManagementApiUrl,accessToken:this.getToken()}))}get UserProfileSettingsApi(){var t;const i=((t=this.getToken())!==null&&t!==void 0?t:"").replace(/^Bearer\s+/i,""),o={};return new Un(new Yt({basePath:this.configuration.LoginAuthority,accessToken:i,headers:o}))}getToken(){return this.configuration.getTokenFn?this.configuration.getTokenFn():void 0}}class Nn extends Zi{constructor(t,i){super({...t}),this.hashed_identifier="",this.email="",this.account_number="",this.hashed_identifier=i}get getEmail(){var t;return(t=this.email)!==null&&t!==void 0?t:this.profile.email}get getAccount(){var t;return(t=this.account_number)!==null&&t!==void 0?t:this.profile.account_number}}class Be{constructor({loginAuthority:t,clientId:i,scope:o,postLogoutRedirectUri:n,userStorageKey:a=B.UserManagement.UI.UserManagementUIStorageKey,xauthStorageKey:r=B.UserManagement.UI.UserManagementXAuthUIStorageKey,redirectUrlKey:d="redirect-url",authPaths:p={authenticate:"authenticate",authCallback:"auth-callback",logout:"logout"}}){this.configuration={loginAuthority:t,clientId:i,scope:o,postLogoutRedirectUri:n,userStorageKey:a,xauthStorageKey:r,redirectUrlKey:d,authPaths:p};const{location:h}=window,v=`${h.protocol}//${h.hostname}${h.port?`:${h.port}`:""}`,Ce={authority:this.configuration.loginAuthority,client_id:this.configuration.clientId,redirect_uri:`${v}/${this.configuration.authPaths.authCallback}`,response_type:"code",scope:this.configuration.scope,post_logout_redirect_uri:this.configuration.postLogoutRedirectUri,loadUserInfo:!0};this.userManager=new Wi(Ce)}isLoggedIn(){const t=this.getUser();if(t===null)return!1;if(!t.expires_at)return!0;const i=new Date,o=new Date(t.expires_at*1e3);return i<o}redirectToAuth(t=!1){const i=this.isAuthenticating();(t||!i)&&(i||localStorage.setItem(this.configuration.redirectUrlKey,window.location.href),window.location.href=`/${this.configuration.authPaths.authenticate}`)}isAuthenticating(){const t=window.location.pathname.split("/");return t[t.length-1]===this.configuration.authPaths.authenticate?(this.userManager.signinRedirect(),!0):!1}isHandlingAuthCallback(){const t=window.location.pathname.split("/");return t[t.length-1]===this.configuration.authPaths.authCallback?(this.userManager.signinRedirectCallback().then(Be.ensureValidUser).then(Be.addHashedIdToUserProfile).then(i=>this.saveUser(i)).then(()=>this.authSuccessRedirect()).catch(()=>this.redirectToAuth()),!0):!1}authSuccessRedirect(){let t="/";const i=localStorage.getItem(this.configuration.redirectUrlKey);i&&(localStorage.removeItem(this.configuration.redirectUrlKey),t=i),window.location.href=t}redirectToLogout(){this.isHandlingLogout()||(window.location.href=`/${this.configuration.authPaths.logout}`)}isHandlingLogout(){const t=window.location.pathname.split("/");return t[t.length-1]===this.configuration.authPaths.logout?(this.clearUser(),window.localStorage.clear(),this.userManager.signoutRedirect({id_token_hint:this.getIdToken()}),!0):!1}isProcessing(){return this.isAuthenticating()||this.isHandlingAuthCallback()||this.isHandlingLogout()}saveUser(t){localStorage.setItem(this.configuration.userStorageKey,JSON.stringify(t))}clearUser(){localStorage.removeItem(this.configuration.userStorageKey)}getXAuthUser(){const t=localStorage.getItem(this.configuration.xauthStorageKey);if(t){const i=JSON.parse(t);if(i!=null&&i.email&&i!=null&&i.account_number)return i}}getTokenUser(){const t=localStorage.getItem(this.configuration.userStorageKey);if(t)return JSON.parse(t)}getUser(){const t=this.getTokenUser();return t?(t.profile.email||(t.profile.email=this.getXAuthUser().email),t!=null?t:null):null}getUserDetails(){const t={accountNumber:"",email:""},i=this.getUser();return i&&(t.accountNumber=i.profile.account_number,t.email=i.profile.email),t}getUserProfileSub(){var t;const i=this.getUser();return(t=i==null?void 0:i.profile)===null||t===void 0?void 0:t.sub}getUserLocale(){var t;const i=this.getUser();return(t=i==null?void 0:i.profile)===null||t===void 0?void 0:t.locale}getIdToken(){var t;return(t=this.getUser())===null||t===void 0?void 0:t.id_token}getAccessToken(){var t;return`Bearer ${(t=this.getUser())===null||t===void 0?void 0:t.access_token}`}static async hashValue(t){const i=new TextEncoder().encode(t),o=await crypto.subtle.digest("SHA-256",i);return Array.from(new Uint8Array(o)).map(n=>n.toString(16).padStart(2,"0")).join("")}static async addHashedIdToUserProfile(t){const i=`${t.profile.sub}-${t.profile.customer_id}`,o=await Be.hashValue(i);return new Nn(t,o)}static ensureValidUser(t){if(!t.id_token)throw new Error("Missing property:id_token");return t}}const me=new Be({loginAuthority:B.LoginAuthority,clientId:B.LoginService.UserManagementUIClientId,scope:B.LoginService.UserManagementUIScopes}),g=new $n({userManagementApiUrl:B.UserManagement.UI.UserManagementApiUrl,userManagementAggregationApiUrl:B.UserManagement.UI.UserManagementAggregationApiUrl,LoginAuthority:B.LoginAuthority,getTokenFn:()=>me.getAccessToken()});var Fn="Alerts",Dn="Content",Pn="DCIM",Mn="Invoices",Bn="Marketplace",Ln="Release",On="Security",zn={"Account Information":"Account Information",Alerts:Fn,"Cloud Connect":"Cloud Connect",Content:Dn,"Cross Connect":"Cross Connect","Custom Role":"Custom Role","Custom Roles":"Custom Roles","Customer Equipment Connection (CEC)":"Customer Equipment Connection (CEC)","Customer Support":"Customer Care","Customer Support Team":"Customer Support Team",DCIM:Pn,"DCIM-enabled location data":"DCIM-enabled location data","Default System Roles":"Default System Roles","EMEA MarketPlace":"EMEA MarketPlace","External User":"External User","Internal Roles":"Internal Roles","Internal User":"Internal User","Internet Exchange":"Internet Exchange","Intra-Customer Connectivity (ICC)":"Intra-Customer Connectivity (ICC)",Invoices:Mn,"IP Bandwidth":"IP Bandwidth",Marketplace:Bn,"OSP Access":"OSP Access","Permanent Badge":"Permanent Badge","Planned Site Maintenance":"Reports, Maintenance & Incident Notifications","PoP/POE Room Access":"PoP/POE Room Access",Release:Ln,"Remote Hands":"Remote Hands","Remote Hands Package":"Remote Hands Package",Security:On,"Service Exchange Cloud Router":"Service Exchange Cloud Router","Service Exchange Port":"Service Exchange Port","Shipping & Receiving":"Deliveries & Removals","Space & Power":"Space & Power","Trouble Ticket":"Trouble Ticket","Visitor Access":"Visitor Access"};Mt.use(Qi).init({resources:{en:{translation:{...zn}}},interpolation:{escapeValue:!1},lng:"en",debug:!1});const oi=e=>Mt.t(e),qn=e=>{const t=[];return e.forEach(i=>{t.push({id:i.id,name:oi(i.name),isNonLocation:i.is_non_location,category:i.category,privileges:i.privileges,internalPrivileges:i.internal_privileges,isInternal:i.is_internal})}),t},Hn=e=>{const t=[];return e.forEach(i=>{t.push({accountNumber:i.account_number,permissionName:oi(i.permission_name),privilege:i.privilege})}),t};class Vn{async get(){try{const t=await g.PermissionsApi.getPermissions();return qn(t)}catch(t){return m.handleError(t,"Could not get permissions."),[]}}async getMyPermissions(t){try{const i=await g.PermissionsApi.getUserPermissions(t);return Hn(i)}catch(i){return m.handleError(i,"Could not retrieve current user's permissions."),[]}}}const He=new Vn,jn=e=>{const t=[];return e.forEach(i=>{t.push({accountNumber:i.account_number,name:i.name,parentAccountNumber:i.parent_account_number,displayName:i.friendly_name})}),t};class Gn{async get(){try{const t=await g.AccountsApi.getAccounts();return jn(t)}catch(t){return m.handleError(t,"Failed to get accounts."),[]}}}const ni=new Gn;class Kn{constructor(){this.myPermissions=[]}isProfileOfLoggedInUser(t){var i;return((i=U==null?void 0:U.getEmail())===null||i===void 0?void 0:i.toLowerCase())===(t==null?void 0:t.toLowerCase())}hasUserRead(t){return this.hasPermission(k.user,A.read,t)}hasUserUpdate(t){return this.hasPermission(k.user,A.update,t)}hasExternalUserRead(t){return this.hasPermission(k.user,A.read,t)}hasExternalUserUpdate(t){return this.hasPermission(k.user,A.update,t)}hasExternalUserCreate(t){return this.hasPermission(k.user,A.create,t)}hasInternalUserRead(t){return this.hasPermission(k.user,A.read,t)}hasInternalUserUpdate(t){return this.hasPermission(k.user,A.update,t)}hasCustomRolesApprove(t){return this.hasPermission(k.customRoles,A.approve,t)}hasCustomRolesCreate(t){return this.hasPermission(k.customRoles,A.create,t)}hasCustomRolesUpdate(t){return this.hasPermission(k.customRoles,A.update,t)}hasCustomRolesRead(t){return this.hasPermission(k.customRoles,A.read,t)}hasInternalRolesCreate(t){return this.hasPermission(k.internalRoles,A.create,t)}hasInternalRolesUpdate(t){return this.hasPermission(k.internalRoles,A.update,t)}hasInternalRolesRead(t){return this.hasPermission(k.internalRoles,A.read,t)}hasDefaultSystemRolesCreate(t){return this.hasPermission(k.defaultRoles,A.create,t)}hasDefaultSystemRolesUpdate(t){return this.hasPermission(k.defaultRoles,A.update,t)}hasDefaultSystemRolesRead(t){return this.hasPermission(k.defaultRoles,A.read,t)}hasRoleManagementAccess(t){return this.hasPermission(k.defaultRoles,A.read,t)||this.hasPermission(k.customRoles,A.read,t)||this.hasPermission(k.internalRoles,A.read,t)||this.hasPermission(k.externalUser,A.read,t)}hasUserManagementAccess(){return this.hasUserRead()}hasAssignInternalRoleCreate(t){return this.hasPermission(k.assignInternalRole,A.create,t)}async refreshPermissions(){this.myPermissions=await He.getMyPermissions({excludeParents:!1,excludeSiblings:!0})}async refreshAccounts(){const t=await ni.get();U.setAccounts(t)}hasPrivilegeLevel(t,i){const o=[A.approve,A.create,A.update,A.read],n=o.findIndex(r=>r===t.toLowerCase()),a=o.findIndex(r=>r===i.toLowerCase());return n>=a}hasPermission(t,i,o){let{myPermissions:n}=this,a=!1;return o&&(n=n.filter(r=>r.accountNumber===o)),n.length&&i&&(a=n.some(r=>r.permissionName===t&&this.hasPrivilegeLevel(i,r.privilege))),a}}const L=new Kn,ai="uppercase font-bold tracking-wider",si={LocalStorage:{},SessionStorage:{HasOutstandingChanges:"hasOutstandingChanges"}};let ut=class extends T{constructor(){super(...arguments),this.routeName=null}return(){window.sessionStorage.getItem(si.SessionStorage.HasOutstandingChanges)!=="true"&&this.routeName&&je(this.routeName)}render(){return l` <ix-button appearance="text" has-icon @click="${this.return}" data-testid="um-back-button"> <md-icon slot="icon">arrow_back</md-icon> <span class="${ai}">Back</span> </ix-button>`}};s([c()],ut.prototype,"routeName",void 0),ut=s([y("um-back-button")],ut);const Re=(e,t,i)=>{e.dispatchEvent(new CustomEvent(t,{detail:i,bubbles:!0,composed:!0}))};let ri=class extends T{dispatchCreateUserEvent(){Re(this,I.CreateUserClicked)}render(){return l` <ix-button @click="${this.dispatchCreateUserEvent}" has-icon> <md-icon slot="icon">add</md-icon> <span class="${ai}">Create User</span> </ix-button>`}};ri=s([y("um-create-user-button")],ri);const O={Home:"Home",UserManagement:"User Management",RoleManagement:"Role Management",UserManagementDetails:"User Management Details"},li=[{name:O.Home,path:"(/?)",component:"home-view",action:()=>{import("./ui-user-management2.js")}},{name:O.UserManagement,path:"/user-management",component:"user-management-view",headerRight:l``,action:async()=>{L.hasUserManagementAccess()?import("./ui-user-management3.js"):ue.go("/")}},{name:O.RoleManagement,path:"/role-management",component:"role-management-view",action:async()=>{L.hasRoleManagementAccess()?import("./ui-user-management4.js"):ue.go("/")}},{name:O.UserManagementDetails,path:"/user-management-details",component:"user-management-details-view",hideAccountSwitcher:!0,headerLeft:l`<um-back-button routeName="${O.UserManagement}"></um-back-button>`,action:async()=>{L.hasUserManagementAccess()?import("./ui-user-management6.js"):ue.go("/")}}];let Z=null;function ci(){const{pathname:e,search:t,hash:i}=window.location;ue.go({pathname:e,search:t,hash:i})}function Jn(e,t,i){const o=i.map(n=>({...n,path:`${t}${n.path}`,redirect:n.redirect?`${t}${n.redirect}`:null}));o.push({path:"(.*)",component:"no-elem"}),Z=new ue(e),Z.setRoutes(o),window.addEventListener("shell-after-navigate",ci)}function Zn(){return Z}function Wn(){Z==null||Z.unsubscribe(),Z==null||Z.removeRoutes(),Z=null,window.removeEventListener("shell-after-navigate",ci)}function Ve(e,t){return Z&&Z.urlForName(e,t)}function je(e,t){const i=Ve(e);i&&ue.go({pathname:i,hash:t})}const Qn=e=>{var t,i,o,n,a,r;const d=li.find(h=>h.name===e),p=(r=(a=(n=(o=(i=(t=window.document.querySelector("gp-bootstrap"))===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.querySelector("global-portal-app"))===null||o===void 0?void 0:o.shadowRoot)===null||n===void 0?void 0:n.querySelector("ui-user-management"))===null||a===void 0?void 0:a.getAttribute("baseurl"))!==null&&r!==void 0?r:"";return window.location.pathname===`${p}${d==null?void 0:d.path}`};let pt=class extends Te{constructor(){super(...arguments),this.setNavigationItemsBinding=this.setNavigationItems.bind(this),this.navigationItems=[],this.compact=!1}static get styles(){return[Zt,w]}connectedCallback(){super.connectedCallback(),window.addEventListener(I.RouteChanged,this.setNavigationItemsBinding)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(I.RouteChanged,this.setNavigationItemsBinding)}setNavigationItems(){this.requestUpdate(),!this.navigationItems.length&&(this.navigationItems=[{href:Ve(O.UserManagement),title:"User Management",icon:l`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" fill="white"> ${qe.userManagementIcon} </svg>`},{href:Ve(O.RoleManagement),title:"Role Management",icon:l`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" fill="white"> ${qe.roleManagementIcon} </svg>`}])}toggleCompact(){Re(this,I.ToggleNavBar),setTimeout(()=>{window.dispatchEvent(new Event("resize"))},301)}renderNavigation(){return L.hasExternalUserRead()?l`${this.navigationItems.map(e=>l` <li class="relative m-1"> <div class="${e.href===window.location.pathname?"bg-white opacity-[.16] inset-0 rounded-md absolute":""}"></div> <a href="${e.href}" class="${e.href===window.location.pathname?"flex px-6 py-4 gap-4 rounded-md font-bold":"flex px-6 py-4 gap-4 rounded-md font-bold opacity-60"}"> <div class="w-6 shrink-0">${e.icon}</div> <div class="grow text-left"> <div class="${this.compact?"w-0":"w-full"} animate-width overflow-hidden"> ${e.title} </div> </div> </a> </li> `)}`:b}render(){return l` <ix-icon-button @click="${this.toggleCompact}" icon="chevron_right" class="drop-shadow-lg items-center expand-cta bg-white rounded-full text-slate-600 h-8 w-8 absolute z-20 lg:right-0 lg:top-[34px] hidden top-[27px] right-[-8px] sm:flex ${this.compact?"animate-spin-180-backwards":"animate-spin-180-forwards"}"> </ix-icon-button> <nav class="flex flex-col overflow-hidden min-h-full rounded-xl drop-shadow text-center nav-bar long text-white ${this.compact?"closed":""} whitespace-nowrap animate-width"> <div class="m-1 px-6 py-4 hidden sm:block"> <svg @click="${this.toggleCompact}" focusable="false" viewBox="0 0 178 27" fill="white" class="w-[200px]"> ${qe.digitalRealtyLogoWithText} </svg> </div> <hr class="divider hidden sm:block"> <ul class="grow"> ${this.renderNavigation()} </ul> <dev-clear-storage-button class="white-icon self-start p-5"></dev-clear-storage-button> </nav> `}};s([c({type:Boolean})],pt.prototype,"compact",void 0),pt=s([y("navigation-bar")],pt);const Yn=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.header-container{display:flex;align-items:center;margin-bottom:16px}.header-container-back-btn{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.back{padding-left:12px}.arrow-back-icon{font-size:22px;align-items:center;padding-right:1px}.header-rhs-actions{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.profile{background-color:#092241;height:35px;margin-right:30px;margin-left:30px;border-radius:10px;color:#fff;padding-left:20px;padding-right:20px;display:flex;align-items:center}.logout{height:35px;border-radius:10px;border:none;background-color:#1456e0;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding-left:15px;padding-right:15px}.logout svg{width:1em;height:1em;font-size:20px;margin-right:5px}.add-icon{font-size:20px;align-items:center}`;let ge=class extends Te{constructor(){super(...arguments),this.updateLayoutBinding=this.updateLayout.bind(this),this.pageTitle="",this.showCreateUserButton=!1,this.showHeader=!0}connectedCallback(){super.connectedCallback(),window.addEventListener(I.RouteChanged,this.updateLayoutBinding)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(I.RouteChanged,this.updateLayoutBinding)}updateLayout(e){switch(this.pageTitle=e.detail.location.route.name||"",this.pageTitle){case"User Management":this.showCreateUserButton=L.hasExternalUserCreate(),this.showHeader=!0;break;case"Role Management":this.showCreateUserButton=!1,this.showHeader=!0;break;case"User Management Details":this.showCreateUserButton=!1,this.showHeader=!1;break}}getRoute(){return this.pageTitle==="User Management Details"?O.UserManagement:O.Home}dispatchCreateUserEvent(){Re(this,I.CreateUser)}renderAppHeader(){return l` <div class="flex gap-2 items-center mt-4 mb-8 justify-between"> <div> ${this.showHeader?l`<h1 class="dlr-text-page-title">${this.pageTitle}</h1>`:l` <um-back-button .routeName="${this.getRoute()}"></um-back-button> `} </div> <div class="items-center flex gap-2 flex-wrap justify-end"> ${this.showCreateUserButton?l` <ix-button @click="${this.dispatchCreateUserEvent}" has-icon data-testid="create-user-button"> Create User <md-icon slot="icon">add</md-icon> </ix-button> `:b} </div> </div> `}render(){return l`${this.renderAppHeader()}`}};ge.styles=[w,Yn],s([c({type:String})],ge.prototype,"pageTitle",void 0),s([u()],ge.prototype,"showCreateUserButton",void 0),s([u()],ge.prototype,"showHeader",void 0),ge=s([y("app-header")],ge);const Xn=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}:host{--md-outlined-text-field-label-text-color:black}.input-group{display:flex;flex-direction:row;gap:20px;margin-bottom:20px}.input-group ix-phone-input,.input-group ix-textbox{flex:1}.textfield{width:100%}@media screen and (max-width:600px){.input-group{flex-direction:column}}`,z=e=>e?e.component.value:null,Ge=(e,t)=>{if(!e)return;const i=e.component;i.value=t},ve=e=>{if(!e)return null;const{input:t}=e;return t.value},ht=(e,t)=>{if(!e)return;const{input:i}=e;i.value=t},ea=e=>e?e.component.checked:null,ta=(e,t)=>{if(!e)return;const i=e.component;i.checked=t};function di(e){const t=JSON.stringify(e);return JSON.parse(t)}const ia=(e,t,i)=>e.sort((o,n)=>(o[t]<n[t]?-1:1)*(i?1:-1));function oa(e){const t={};for(const[i,o]of Object.entries(e))for(const n of i.split(" "))t[n]=o;return eo(t)}const na=e=>{try{const t=e.startsWith("+")?Bt(e):Bt(`+${e}`),i=`+${t.countryCallingCode} ${new Yi(t.country||"US").input(t.nationalNumber)}`;return i.endsWith(")")||i.endsWith("(")?e:i}catch(t){return e}},aa=()=>window.matchMedia("(min-width: 1024px)").matches,Se={phone:"^[+]?[(]?[0-9]{3}[)]?[-s.]?[0-9]{3}[-s.]?[0-9]{4,6}$",name:B.UserManagement.UI.ValidationRegexPatterns.name,alphabetOnly:"^[A-Za-z]+$"},Ue=(e,t)=>{const i=e;return"component"in i&&i.component.reportValidity(),t?(i.error=!1,i.errorText="",!0):(i.error=!0,i.errorText="This field is mandatory",!1)},ui=(e,t,i)=>{const o=e;return t!=null&&t.match(o.pattern)?(o.error=!1,o.errorText="",!0):(o.error=!0,o.errorText=i,!1)},pi=(e,t,i)=>{if(!t)return!1;const o=e;return to.isEmail(t)?(o.error=!1,o.errorText="",!0):(o.error=!0,o.errorText=i,!1)},sa=e=>e.error,ra=(e,t)=>{const i=t;return z(e)===i},mt=(e,t,i)=>{const o=z(e);return e.required&&!Ue(e,o)||e.pattern&&!ui(e,o,i)||e.type==="email"&&!pi(e,o,i)?!1:!(sa(e)||ra(e,t))},gt=(e,t)=>{const i=ve(e),o=e;return Xi(i)?(o.error=!1,!0):(o.error=!0,o.errorText=t,!1)},la=(e,t)=>{t.length>0&&t.forEach(i=>{const o=e.find(n=>n.id===i.field);o&&(o.error=!0,o.errorText=i.error,o.focus())})},x={CancelCreateUser:"cancel-create-user",CloseDrawer:"close-drawer",CreateContact:"create-contact",CreateNewContact:"create-new-contact",EvacAssistanceRequired:"evac-assistance-required",NextButtonToggle:"next-button-toggle",NextStep:"next-step",ResetSuccess:"reset-success",SetStep:"set-step",ToggleDialog:"toggle-dialog",ToggleDraft:"toggle-draft",ToggleDrawer:"toggle-drawer",UpdateAccounts:"update-accounts",UpdateContact:"update-contact",UpdateDFA:"update-dfa",UpdateFlags:"update-flags",ValidateStep:"validate-step"};let le=class extends T{constructor(){super(...arguments),this.validatingForm=!1,this._newContact={firstName:"",lastName:"",email:"",phone:"",accounts:[],evacAssistance:!1},this._nextButtonEnabled=!1}firstUpdated(){this._newContact=this.newContact,this.validateStep(),this.dispatchValidateStepEvent()}get firstName(){return this.renderRoot.querySelector("#first-name")}get lastName(){return this.renderRoot.querySelector("#last-name")}get email(){return this.renderRoot.querySelector("#email")}get phone(){return this.renderRoot.querySelector("#phone-number")}validateStep(){this._nextButtonEnabled=!(this.isInvalid()||this.isEmpty())}validateInput(e,t){const i=z(e);if(this.updateContactDetails(),e.required&&!Ue(e,i)){this._nextButtonEnabled=!1;return}e.pattern&&!ui(e,i,t)&&(this._nextButtonEnabled=!1),this.validateStep(),this.dispatchNextButtonToggleEvent()}async validateEmailInput(e,t){this._nextButtonEnabled=!1;const i=z(e);if(this.updateContactDetails(),e.required&&!Ue(e,i)){this._nextButtonEnabled=!1;return}if(!pi(e,i,t)){this._nextButtonEnabled=!1;return}clearTimeout(this.debounceTimeout),this.debounceTimeout=window.setTimeout(async()=>{const o={emailVerificationInput:{email_address:i!=null?i:""}};try{(await g.VerificationApi.verifyEmail(o)).is_verified?(e.error=!1,e.errorText="",this._nextButtonEnabled=!(this.isInvalid()||this.isEmpty())):(e.error=!0,e.errorText=`${t}`,this._nextButtonEnabled=!1)}catch(n){e.error=!0,e.errorText="An error occurred during email verification. Please try again later.",this._nextButtonEnabled=!1}},500),this.validateStep(),this.dispatchNextButtonToggleEvent()}validatePhoneInput(e,t){const i=ve(e);if(ht(e,i),this.updateContactDetails(),e.required&&!Ue(e,i)){this._nextButtonEnabled=!1;return}if(!gt(e,t)){this._nextButtonEnabled=!1;return}this.validateStep(),this.dispatchNextButtonToggleEvent()}updateContactDetails(){var e,t,i,o;this._newContact={firstName:(e=z(this.firstName))!==null&&e!==void 0?e:"",lastName:(t=z(this.lastName))!==null&&t!==void 0?t:"",email:(i=z(this.email))!==null&&i!==void 0?i:"",phone:(o=ve(this.phone))!==null&&o!==void 0?o:"",accounts:this._newContact.accounts,evacAssistance:this._newContact.evacAssistance},this.dispatchUpdateContactEvent()}clearTextFields(){this._newContact={firstName:"",lastName:"",email:"",phone:"",accounts:[],evacAssistance:!1},Ge(this.firstName,""),Ge(this.lastName,""),Ge(this.email,""),this.phone.reset(),ht(this.phone,"")}resetErrorStates(){this.firstName.error=!1,this.lastName.error=!1,this.email.error=!1,this.phone.error=!1}isInvalid(){return this.firstName.error||this.lastName.error||this.email.error||this.phone.error}isEmpty(){return!this._newContact.firstName||!this._newContact.lastName||!this._newContact.email||!this._newContact.phone}dispatchNextStepEvent(){this.dispatchEvent(new CustomEvent(x.NextStep,{bubbles:!0,composed:!0}))}dispatchUpdateContactEvent(){const e=new CustomEvent(x.UpdateContact,{detail:{newContact:this._newContact},bubbles:!0,composed:!0});this.dispatchEvent(e)}dispatchNextButtonToggleEvent(){this.dispatchEvent(new CustomEvent(x.NextButtonToggle,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}dispatchValidateStepEvent(){this.dispatchEvent(new CustomEvent(x.ValidateStep,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}render(){return l` <div class="input-group"> <ix-textbox required id="first-name" label="First name" name="first-name" type="text" value="${this._newContact.firstName}" @input="${()=>this.validateInput(this.firstName,"Invalid first name")}" pattern="${Se.name}" maxLength="50" data-testid="step-one-first-name"></ix-textbox> <ix-textbox required id="last-name" label="Last name" name="last-name" type="text" value="${this._newContact.lastName}" @input="${()=>this.validateInput(this.lastName,"Invalid last name")}" pattern="${Se.name}" maxLength="50" data-testid="step-one-last-name"></ix-textbox> </div> <div class="input-group"> <ix-textbox required id="email" label="Email Address" name="email" type="email" value="${this._newContact.email}" @input="${()=>this.validateEmailInput(this.email,"Invalid email address")}" data-testid="step-one-email"></ix-textbox> <ix-phone-input required id="phone-number" label="Phone Number" name="phone" value="${this._newContact.phone}" @input="${()=>this.validatePhoneInput(this.phone,"Invalid phone number")}" @country-change="${()=>this.phone.value?this.validatePhoneInput(this.phone,"Invalid phone number"):null}" data-testid="step-one-phone-number"></ix-phone-input> </div> <div style="display:flex;justify-content:flex-end;padding-top:8px"> <ix-button type="submit" ?disabled="${!this._nextButtonEnabled||this.validatingForm}" has-icon trailing-icon @click="${this.dispatchNextStepEvent}" data-testid="step-one-next-button"> Next <md-icon slot="icon">east</md-icon> </ix-button> </div> `}};le.styles=[Xn,w],s([c({type:Object})],le.prototype,"newContact",void 0),s([c({type:Boolean})],le.prototype,"validatingForm",void 0),s([u()],le.prototype,"_newContact",void 0),s([u()],le.prototype,"_nextButtonEnabled",void 0),le=s([y("create-user-step-one")],le);function hi(e){var t;for(const i of e)if(i.checked||!((t=i.children)===null||t===void 0)&&t.length&&hi(i.children))return!0;return!1}function ca(e){return e.some(t=>t.subaccounts.length)?"nested":"flat"}function mi(e,t){var i,o;if(t==="flat")return e.filter(a=>a.checked);const n=[];for(const a of e){a.checked&&n.push(a);const r=(i=a.children)===null||i===void 0?void 0:i.every(d=>d.checked);if(!((o=a.children)===null||o===void 0)&&o.length&&(a.indeterminate||!r)){const d=mi(a.children,t);n.push(...d)}}return n}let ce=class extends T{constructor(){super(...arguments),this._nextButtonEnabled=!1}connectedCallback(){super.connectedCallback(),this._accountTree=this.accountTree,this.validateStep(),this.dispatchValidateStepEvent()}renderAccounts(){var e,t;if(!this._accountTree)return b;const i=(t=(e=this._accountTree)===null||e===void 0?void 0:e.children)===null||t===void 0?void 0:t.some(o=>{var n;return(n=o.children)===null||n===void 0?void 0:n.length});return l` <div class="overflow-auto pb-[2px]"> <ix-tree checkboxesEnabled .rootNode="${this._accountTree}" .rollup="${!1}" .disableEndNodePointer="${!0}" .selectNodeOnClick="${!0}" ?removeChevron="${!i}" @on-tree-node-checked="${()=>this.toggleAccountChecked()}" data-testid="step-two-account-tree"></ix-tree> </div> `}validateStep(){!this._accountTree||!this.ixTree||(this._nextButtonEnabled=hi([this._accountTree]))}async toggleAccountChecked(){!this._accountTree||!this.ixTree||(await this.ixTree.updateComplete,this._accountTree=this.ixTree.rootNode,this.dispatchUpdateAccountsEvent(),this.validateStep(),this.dispatchNextButtonToggleEvent())}dispatchUpdateAccountsEvent(){this.dispatchEvent(new CustomEvent(x.UpdateAccounts,{detail:{rootNode:this._accountTree},bubbles:!0,composed:!0}))}dispatchNextStepEvent(){this.dispatchEvent(new CustomEvent(x.NextStep,{bubbles:!0,composed:!0}))}dispatchNextButtonToggleEvent(){this.dispatchEvent(new CustomEvent(x.NextButtonToggle,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}dispatchValidateStepEvent(){this.dispatchEvent(new CustomEvent(x.ValidateStep,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}render(){return l` <div class="flex flex-col overflow-hidden"> ${this.renderAccounts()} <div class="flex justify-end mt-6"> <ix-button type="submit" ?disabled="${!this._nextButtonEnabled}" has-icon trailing-icon @click="${this.dispatchNextStepEvent}" data-testid="step-two-next-button"> Next <md-icon slot="icon">east</md-icon> </ix-button> </div> </div> `}};ce.styles=[w,re],s([c({type:Object})],ce.prototype,"accountTree",void 0),s([u()],ce.prototype,"_accountTree",void 0),s([u()],ce.prototype,"_nextButtonEnabled",void 0),s([F("ix-tree")],ce.prototype,"ixTree",void 0),ce=s([y("create-user-step-two")],ce);const da=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}:host{--ix-chip-container-color:var(--md-sys-color-primary);--md-input-chip-outline-color:var(--md-sys-color-primary);--md-input-chip-label-text-color:white;--md-outlined-field-leading-content-color:black;--md-outlined-field-label-text-color:black}.accounts-roles-container{display:flex;flex-direction:column;margin-bottom:10px;padding-left:2px}.accounts-roles-container>*{padding-bottom:15px}.accounts-roles-container>:not(:first-child){padding-top:20px}.account-roles-name{padding-bottom:10px}.account-roles{display:flex;flex-direction:column;gap:8px;height:100%}`;function fe(e,t,i=void 0){const o=io[e.type]||(e.type==="Port"?"":"chevron_right"),n={id:e.id,label:e.label,children:[],secondaryLabel:e.secondaryLabel,parentId:e.parentId,childrenCount:e.childrenCount,disabled:e.isAssignable===!1,checkedChildrenCount:e.checkedChildrenCount,indeterminate:e.status==="INDETERMINATE",customerKnownSpaceName:e.customerKnownSpaceName,checked:i!=null?i:e.status==="CHECKED",originalCheckedStatus:i!=null?i:e.status==="CHECKED",inherited:e.inherited,icon:o};return t.children.push(n),e.inventoryItems&&e.inventoryItems.forEach(a=>{fe(a,n,i?n.checked:void 0)}),t}function gi(e){var t;const i=o=>{o.checked=!1};return e.children&&!((t=e.children)===null||t===void 0)&&t.length&&e.children.forEach(o=>gi(o)),i(e)}const ne=[{key:"ACCOUNTING_CONTACT",text:"Accounting flag",desc:"Authorized to discuss billing issues with DLR Accounts Receivable Group."},{key:"OPERATIONS_CONTACT",text:"Operations flag",desc:"Receives Planned Maintenance, Corrective Maintenance and Project Work notifications. Point of contact for DLR operations team."},{key:"EMERGENCY_CONTACT",text:"Emergency flag",desc:"Receives Incident Notifications. Point of contact during unplanned, emergency maintenance."},{key:"INTERCONNECTION_NOTIFICATIONS",text:"Interconnection Notifications",desc:"Receives notifications about interconnectivity orders."}],vt=e=>{var t;return(t=ne.find(i=>i.text===e))===null||t===void 0?void 0:t.key},ua=e=>{var t;return(t=ne.find(i=>i.key===e))===null||t===void 0?void 0:t.text};let G=class extends T{constructor(){super(...arguments),this.checkedAccounts=[],this.roles=[],this.dataForAccounts=[],this.treeData=[],this._dataForAccounts=[],this._treeData=[],this._nextButtonEnabled=!1,this.multiSelectOpen=!1}connectedCallback(){super.connectedCallback(),this._dataForAccounts=this.dataForAccounts,this._treeData=this.treeData,this.validateStep(),this.dispatchValidateStepEvent()}getRoles(e){return this.roles.filter(t=>t.accountId===e)[0].roles}getRolesData(e){const t=this.roles.filter(o=>o.accountId===e)[0],i=[];return t.roles.forEach(o=>{var n;o.removed=!0;const a={id:"root",label:"",children:[],customerKnownSpaceName:""},r=(n=this._treeData.find(p=>p.accountNumber===e))===null||n===void 0?void 0:n.data;r&&r.length&&fe(r[0],a);const d={accountId:e,role:o,locations:[],genericTreeView:a};i.push(d)}),i}getFlagsData(e){const t=[];return ne.forEach(i=>{const o={accountId:e,flag:i,locations:[],genericFlagsData:[]};t.push(o)}),t}renderMultiSelectRoles(){this._dataForAccounts.length===0&&(this._dataForAccounts=this.checkedAccounts.map(t=>({accountId:t.id,accountName:t.label,rolesData:this.getRolesData(t.id),flagsData:this.getFlagsData(t.id),flagData:[],active:!1})));const e={};return this._dataForAccounts.forEach(t=>{e[t.accountId]=t.rolesData.filter(i=>i.role.removed===!0).map(i=>i.role.name)}),this._dataForAccounts.map(t=>{const i=[...new Set(this.getRoles(t.accountId).map(o=>o.name))].map(o=>({label:o,selected:!e[t.accountId].includes(o)}));return l` <div> <div class="account-roles-name">${t.accountName}</div> <ix-multi-select data-testid="multi-select-roles-${t.accountId}" required id="${`${t.accountId}-multi-select`}" style="max-width:99%" class="multi-select" .menuPositioning="${"popover"}" .items="${i}" .label="${"Roles"}" @toggle-multi-select-item="${o=>this.handleMultiSelect(t.accountId,o.detail.label,o.detail.selected)}" @remove-multi-select-item="${o=>this.handleMultiSelect(t.accountId,o.detail,!1)}" @clear-multi-select="${()=>this.handleMultiSelectClear(t.accountId)}" @select-menu="${o=>this.handleSelectMenu(o)}"></ix-multi-select> </div> `})}handleSelectMenu(e){e.detail.value==="open"?this.multiSelectOpen=!0:this.multiSelectOpen=!1}handleMultiSelect(e,t,i){var o,n;const[a]=this._dataForAccounts.filter(h=>h.accountId===e),r=this.getRoles(a.accountId).find(h=>h.name===t);if(!r)return;const d=a.rolesData.findIndex(h=>h.role.id===r.id);if(r.permissions.every(h=>h.isNonLocation)){const h=(o=a.rolesData[d])===null||o===void 0?void 0:o.genericTreeView;if(!((n=h==null?void 0:h.children)===null||n===void 0)&&n.length){const v=h.children[0];v.checked=!0,pe(v,h),a.rolesData[d].locations.push(v)}}const p=a.rolesData.findIndex(h=>h.role.id===(r==null?void 0:r.id));a.rolesData[p].role.removed=!(i&&p>=0),this.validateStep(),this.dispatchUpdateDFAEvent(),this.dispatchNextButtonToggleEvent()}validateStep(){const e=this._dataForAccounts.every(i=>i.rolesData.filter(o=>o.role.removed===!1).length),t=this._dataForAccounts.length===this.checkedAccounts.length;this._nextButtonEnabled=e&&t}handleMultiSelectClear(e){const t=this._dataForAccounts.filter(i=>i.accountId===e)[0];this._dataForAccounts.find(i=>i.accountId===e).rolesData=this.getRolesData(t.accountId),this._nextButtonEnabled=!1,this.dispatchUpdateDFAEvent(),this.dispatchNextButtonToggleEvent()}dispatchUpdateDFAEvent(){const e=new CustomEvent(x.UpdateDFA,{detail:{dataForAccounts:this._dataForAccounts},bubbles:!0,composed:!0});this.dispatchEvent(e)}dispatchNextStepEvent(){this.dispatchEvent(new CustomEvent(x.NextStep,{bubbles:!0,composed:!0}))}dispatchNextButtonToggleEvent(){this.dispatchEvent(new CustomEvent(x.NextButtonToggle,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}dispatchValidateStepEvent(){this.dispatchEvent(new CustomEvent(x.ValidateStep,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}render(){const e=this.multiSelectOpen?"overflow-hidden":"overflow-auto";return l` <div class="wizard-step-content flex flex-col overflow-hidden"> <div class="p-1 dlr-text-default ${e}">${this.renderMultiSelectRoles()}</div> <div class="flex justify-end" style="padding-top:8px"> <ix-button class="pt-2" type="submit" ?disabled="${!this._nextButtonEnabled}" has-icon trailing-icon @click="${this.dispatchNextStepEvent}" data-testid="step-three-next-button"> Next <md-icon slot="icon">east</md-icon> </ix-button> </div> </div> `}};G.styles=[da,w,Ie],s([c({type:Array})],G.prototype,"checkedAccounts",void 0),s([c({type:Array})],G.prototype,"roles",void 0),s([c({type:Array})],G.prototype,"dataForAccounts",void 0),s([c({type:Array})],G.prototype,"treeData",void 0),s([u()],G.prototype,"_dataForAccounts",void 0),s([u()],G.prototype,"_treeData",void 0),s([u()],G.prototype,"_nextButtonEnabled",void 0),s([u()],G.prototype,"multiSelectOpen",void 0),G=s([y("create-user-step-three")],G);const Ke=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.permission-container{padding:1rem 1.5rem 0 1.5rem}ix-icon-button{--md-sys-color-on-surface-variant:black}.permission-dialog-container{padding:1rem 1rem 0 1rem;width:500px}.permission-container-row{display:block;padding:8px;margin-top:12px;margin-bottom:12px;box-shadow:#e1e4e8 0 0 0 1px inset;border-radius:8px}.permission-container-item{display:flex;flex-direction:row;width:100%}.permission-arrow{width:30px;cursor:pointer}.permission-name{line-height:24px;color:#092241}.permission-item{display:grid;grid-template-columns:1fr 20%;gap:16px;-webkit-box-align:center;align-items:center;-webkit-box-flex:1;flex-grow:1;padding-top:5px}.permission-item-privilege{margin:0;color:#333}.permission-container-row-create-user{display:flex;padding:12px;margin-top:10px;margin-bottom:10px;height:24px;width:475px;box-shadow:#e1e4e8 0 0 0 1px inset;border-radius:8px}.non-location{margin:10px 5px 5px 5px;background-color:#f5f7ff;padding:8px;border-radius:5px}.non-location-icon{padding-left:8px}.permissions-dialog-container{max-height:70vh;overflow-x:auto}`;class q{}q.ROW=e=>`permission-group-row-${e}`,q.CATEGORY=e=>`permission-group-category-${e}`,q.OVERALL_PERM=e=>`permission-group-overall-${e}`,q.BTN_EXPAND=e=>`permission-group-btn-expand-${e}`,q.PERM_NAME=e=>`permission-group-name-${e}`,q.PERM_PRIVILEGE=e=>`permission-group-privilege-${e}`;let $e=class extends T{constructor(){super(...arguments),this.permissionGroup=void 0,this.isOpen=!1}onClick(){this.isOpen=!this.isOpen,this.requestUpdate()}renderPermissionItemRow(e,t){return l` <div class="flex justify-between pl-11 items-center permission-item"> <p data-testid="${q.PERM_NAME(e)}">${e}</p> <p class="capitalize permission-item-privilege pr-4" data-testid="${q.PERM_PRIVILEGE(e)}"> <small>${t}</small> </p> </div> `}renderPermissionItems(e){return this.isOpen?l`<div class="permission-items-container"> ${e.filter(t=>!t.isNonLocation).map(t=>this.renderPermissionItemRow(t.name,t.privilege))} </div>`:b}render(){var e,t,i,o,n,a,r,d,p,h,v,Ce;return l`<div class="permission-container-row" data-testid="${q.ROW((t=(e=this.permissionGroup)===null||e===void 0?void 0:e.category)!==null&&t!==void 0?t:"")}"> <div class="flex items-center justify-between"> <div class="flex items-center"> <ix-icon-button icon="${this.isOpen?"arrow_drop_down":"arrow_right"}" @click="${this.onClick}" data-testid="${q.BTN_EXPAND((o=(i=this.permissionGroup)===null||i===void 0?void 0:i.category)!==null&&o!==void 0?o:"")}"> </ix-icon-button> <p class="m-0 permission-name permission-item-name pl-1" id="permission-item-name" data-testid="${q.CATEGORY((a=(n=this.permissionGroup)===null||n===void 0?void 0:n.category)!==null&&a!==void 0?a:"")}"> ${(r=this.permissionGroup)===null||r===void 0?void 0:r.category} </p> </div> <p class="m-0 pl-4 capitalize permission-overall-privilege mr-4" data-testid="${q.OVERALL_PERM((p=(d=this.permissionGroup)===null||d===void 0?void 0:d.category)!==null&&p!==void 0?p:"")}"> <small>${(h=this.permissionGroup)===null||h===void 0?void 0:h.overallPrivilege}</small> </p> </div> ${this.renderPermissionItems((Ce=(v=this.permissionGroup)===null||v===void 0?void 0:v.items)!==null&&Ce!==void 0?Ce:[])} </div>`}};$e.styles=[Ke,w],s([c({type:Object,attribute:!1})],$e.prototype,"permissionGroup",void 0),s([u()],$e.prototype,"isOpen",void 0),$e=s([y("permission-group")],$e);class ye{}ye.ROW=e=>`non-location-permission-row-${e}`,ye.NAME=e=>`non-location-permission-item-${e}`,ye.PRIVILEGE=e=>`non-location-permission-privilege-${e}`;let Je=class extends T{constructor(){super(...arguments),this.permission=void 0}render(){var e,t,i,o,n,a,r,d;return l`<div class="permission-container-row" data-testid="${ye.ROW((t=(e=this.permission)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"")}"> <div class="flex items-center justify-between"> <div class="flex items-center"> <p class="m-0 permission-name permission-item-name pl-1" data-testid="${ye.NAME((o=(i=this.permission)===null||i===void 0?void 0:i.name)!==null&&o!==void 0?o:"")}"> ${(n=this.permission)===null||n===void 0?void 0:n.name} </p> </div> <p class="m-0 pl-4 capitalize permission-overall-privilege mr-4" data-testid="${ye.PRIVILEGE((r=(a=this.permission)===null||a===void 0?void 0:a.name)!==null&&r!==void 0?r:"")}"> <small>${(d=this.permission)===null||d===void 0?void 0:d.privilege}</small> </p> </div> <div class="permission-items-container"> <div class="flex pl-13 items-center permission-item non-location"> <span class="non-location-icon"><md-icon slot="icon">info</md-icon></span> <p class="text-left dlr-text-caption"> You don't need to select location or assets for this permission </p> </div> </div> </div>`}};Je.styles=[Ke,w],s([c({type:Object,attribute:!1})],Je.prototype,"permission",void 0),Je=s([y("non-location-permission")],Je);let Ze=class extends T{constructor(){super(...arguments),this.permission=void 0}render(){var e,t;return l` <div class="permission-container-row"> <div class="flex items-center justify-between"> <div class="flex items-center"> <p class="m-0 permission-name pl-1">${(e=this.permission)===null||e===void 0?void 0:e.name}</p> </div> <p class="m-0 pl-4 capitalize permission-overall-privilege mr-4"> <small>${(t=this.permission)===null||t===void 0?void 0:t.privilege}</small> </p> </div> </div> `}};Ze.styles=[Ke,w],s([c({type:Object,attribute:!1})],Ze.prototype,"permission",void 0),Ze=s([y("non-category-permission")],Ze);const pa={AMER:"North America"},ft={Global:0,Continent:1,Country:2,City:3,Site:4,Floor:5,Room:6,Cage:7,Row:8,Cabinet:9},yt=e=>{var t,i;const o=ft[e.type];return o===ft.Continent&&e.label?(t=pa[e.label])!==null&&t!==void 0?t:e.label:e.label&&o>ft.Site&&/^[0-9]{1,3}$/.test(e.label)?`${e.type} ${e.label}`:(i=e.label)!==null&&i!==void 0?i:void 0},ha=e=>({id:e.id,accountNumber:e.accountNumber,roleId:e.roleId,parentId:e.parentInventoryId,customerKnownSpaceName:e.customerKnownSpaceName,type:e.type,label:yt(e),isAssignable:e.isAssignable,secondaryLabel:e.secondaryLabel,childrenCount:e.childrenCount,inventoryItems:We(e.inventoryItems),selected:e.selected,searched:e.searched,status:e.permissionStatus,inherited:e.inherited}),We=e=>{const t=[];return e==null||e.forEach(i=>{t.push(ha(i))}),t},ma=e=>{var t,i,o,n,a,r,d,p;return{contactId:e.id,accountId:e.accountNumber,roleId:e.roleId,isInternal:e.isInternal,startInventoryId:e.location,searchLocationText:(t=e.searchLocationText)!==null&&t!==void 0?t:"",level1:!0,level2:!0,level3:(i=e.allChildren)!==null&&i!==void 0?i:!1,level4:(o=e.allChildren)!==null&&o!==void 0?o:!1,level5:(n=e.allChildren)!==null&&n!==void 0?n:!1,level6:(a=e.allChildren)!==null&&a!==void 0?a:!1,level7:(r=e.allChildren)!==null&&r!==void 0?r:!1,level8:(d=e.allChildren)!==null&&d!==void 0?d:!1,level9:(p=e.allChildren)!==null&&p!==void 0?p:!1}},ga=e=>({contactId:e.id,accountId:e.accountNumber,flag:e.flag,isInternal:e.isInternal,startInventoryId:e.location,level1:!0,level2:!0,level3:!0,level4:!0,level5:!0,level6:!0,level7:!0,level8:!0,level9:!0}),va=e=>{var t,i,o,n,a,r,d;return{accountId:e.accountNumber,isInternal:e.isInternal,level1:!0,level2:!0,level3:(t=e.allChildren)!==null&&t!==void 0?t:!1,level4:(i=e.allChildren)!==null&&i!==void 0?i:!1,level5:(o=e.allChildren)!==null&&o!==void 0?o:!1,level6:(n=e.allChildren)!==null&&n!==void 0?n:!1,level7:(a=e.allChildren)!==null&&a!==void 0?a:!1,level8:(r=e.allChildren)!==null&&r!==void 0?r:!1,level9:(d=e.allChildren)!==null&&d!==void 0?d:!1}},fa=e=>({id:e.id,accountNumber:e.accountNumber,flag:e.flag,parentId:e.parentInventoryId,customerKnownSpaceName:e.customerKnownSpaceName,type:e.type,isAssignable:e.isAssignable,label:yt(e),secondaryLabel:e.secondaryLabel,childrenCount:e.childrenCount,checkedChildrenCount:e.checkedChildrenCount,inventoryItems:vi(e.inventoryItems),selected:e.selected,searched:!1,status:e.permissionStatus,inherited:e.inherited}),vi=e=>{const t=[];return e==null||e.forEach(i=>{t.push(fa(i))}),t},fi=e=>{const t=[];return e==null||e.forEach(i=>{t.push(ya(i))}),t},ya=e=>({id:e.id,accountNumber:e.accountNumber,parentId:e.parentInventoryId,customerKnownSpaceName:e.customerKnownSpaceName,type:e.type,isAssignable:e.isAssignable,label:yt(e),secondaryLabel:e.secondaryLabel,childrenCount:e.childrenCount,inventoryItems:fi(e.inventoryItems)}),yi=e=>{const t=[];return e==null||e.forEach(i=>{t.push({id:i.id,customerKnownName:i.customerKnownName,permissionStatus:i.permissionStatus})}),t},ba=e=>({roleId:e.roleId,roleLocations:yi(e.locations)}),xa=e=>{const t=[];return e==null||e.forEach(i=>{t.push(ba(i))}),t},wa=e=>({contactId:e.contactId,accountNumber:e.accountNumber,locations:xa(e.roleLocations),isInternal:e.isInternal}),Aa=e=>({flag:vt(e.flag),flagLocations:yi(e.locations)}),Ca=e=>{const t=[];return e==null||e.forEach(i=>{t.push(Aa(i))}),t},Ta=e=>({contactId:e.contactId,accountNumber:e.accountNumber,locations:Ca(e.flagLocations),isInternal:e.isInternal});class Ia{async getRoleInventory(t){try{const i=ma(t),o=await g.InventoryApi.GetRolesInventory(i);return o!=null&&o.getRoleTree?We([o.getRoleTree]):[]}catch(i){return m.handleError(i,"Failed to load the portal access tree."),[]}}async getFlagInventory(t){try{const i=ga(t),o=await g.InventoryApi.GetFlagsInventory(i);return o!=null&&o.getFlagTree?vi([o==null?void 0:o.getFlagTree]):[]}catch(i){return m.handleError(i,"Failed to load the portal access tree."),[]}}async getAccountInventory(t){try{const i=va(t),o=await g.InventoryApi.GetAccountInventory(i);return o!=null&&o.getAccountTree?fi([o==null?void 0:o.getAccountTree]):[]}catch(i){return m.handleError(i,"Failed to get account inventory."),[]}}async saveAccountRoleInventory(t){try{const i=wa(t),o=await g.InventoryApi.SaveAccountRoleAssignments(i);return We(o==null?void 0:o.saveAccountRoleAssignments)}catch(i){return null}}async saveAccountFlagInventory(t){try{const i=Ta(t),o=await g.InventoryApi.SaveAccountFlagAssignments(i);return We(o==null?void 0:o.saveAccountUserFlagAssignments)}catch(i){return null}}}const Ne=new Ia,_a=e=>({role_id:e.roleId,user_id:e.contactId,account_number:e.accountNumber,location_id:e.location}),bi=e=>({roleId:e.role_id,contactId:e.user_id,accountNumber:e.account_number,location:e.location_id,id:e.id,isActive:e.is_active}),ka=e=>{const t=[];return e.forEach(i=>t.push(_a(i))),t},xi=e=>{const t=[];return e.forEach(i=>t.push(bi(i))),t},Ea=e=>({userId:e.contactId,roleId:e.roleId,accountNumber:e.accountNumber,roleType:e.roleType}),Ra=e=>({id:e.id}),Sa=e=>({createRoleAssignment:{RoleAssignmentInput:ka(e.roleAssignmentInput)}}),Ua=e=>({id:e.id});class $a{async get(t){try{const i=Ea(t),o=await g.RoleAssignmentsApi.getRoleAssignments(i);return xi(o)}catch(i){return m.handleError(i,"Failed to get role assignments."),[]}}async getById(t){try{const i=Ra(t),o=await g.RoleAssignmentsApi.getRoleAssignment(i);return bi(o)}catch(i){return m.handleError(i,"Failed to get role assignment"),{}}}async create(t){try{const i=Sa(t),o=await g.RoleAssignmentsApi.createRoleAssignments(i);return xi(o)}catch(i){return m.handleError(i,"Failed to create role assignment."),[]}}async delete(t){try{const i=Ua(t);return g.RoleAssignmentsApi.deleteRoleAssignment(i)}catch(i){return m.handleError(i,"Failed to delete role assignment.")}}}const Fe=new $a,Na=async e=>{for(const t of e)await Promise.all(t.map(i=>i))},be=async e=>{const t=[];for(const i of e){const o=await Promise.all(i.map(n=>n));t.push(o)}return t},Fa=e=>({user_flag_type:e.userFlagType,user_id:e.contactId,account_number:e.accountNumber,location_id:e.location}),wi=e=>({userFlagType:e.user_flag_type,contactId:e.user_id,accountNumber:e.account_number,location:e.location_id,id:e.id}),Da=e=>{const t=[];return e.forEach(i=>t.push(Fa(i))),t},Ai=e=>{const t=[];return e.forEach(i=>t.push(wi(i))),t},Pa=e=>({userId:e.contactId,accountNumber:e.accountNumber,userFlagType:e.userFlagType,locationId:e.location}),Ma=e=>({id:e.id}),Ba=e=>({createUserFlagAssignment:{UserFlagAssignmentInputs:Da(e.userFlagAssignmentInput)}}),La=e=>({id:e.id});class Oa{async get(t){try{const i=Pa(t),o=await g.UserFlagsApi.getUserFlags(i);return Ai(o)}catch(i){return m.handleError(i,"Failed to get assigned user flags."),[]}}async getById(t){try{const i=Ma(t),o=await g.UserFlagsApi.getUserFlag(i);return wi(o)}catch(i){return m.handleError(i,"Failed to get user flag assignment."),{}}}async create(t){try{const i=Ba(t),o=await g.UserFlagsApi.createUserFlags(i);return Ai(o)}catch(i){return m.handleError(i,"Failed to create user flag assignment."),[]}}async delete(t){try{const i=La(t);return g.UserFlagsApi.deleteUserFlag(i)}catch(i){return m.handleError(i,"Failed to delete user flag assignment.")}}}const De=new Oa;class za{constructor(){this.deleteAssignmentsAndFlags=async(t,i)=>{const o=[],n=[],a=[];try{return t.forEach(r=>{o.push(Fe.delete({id:r}))}),i.forEach(r=>{n.push(De.delete({id:r}))}),o.length>0&&a.push(o),n.length>0&&a.push(n),Na(a)}catch(r){return m.handleError(r,"Failed to delete batch of role assignments and flags.")}},this.createAssignmentsAndFlags=async(t,i)=>{const o=[];try{if(t.length>0){const n=[Fe.create({roleAssignmentInput:t})];o.push(n)}if(i.length>0){const n=[De.create({userFlagAssignmentInput:i})];o.push(n)}return[...await be(o)]}catch(n){return m.handleError(n,"Failed to create batch of role assignments and flags."),[]}},this.upsertAssignmentAndFlags=async(t,i,o,n,a)=>{try{(t.length>0||i.length)&&await this.deleteAssignmentsAndFlags(t,i),(o.length>0||n.length)&&await this.createAssignmentsAndFlags(o.map(r=>({...r,isInternal:a})),n)}catch(r){m.handleError(r,"Failed to upsert role assignments and flags.")}},this.getAssignmentInventory=async(t,i,o,n)=>{const a=[],r=[];try{return o.forEach(d=>{r.push(Ne.getRoleInventory({id:t,accountNumber:i,roleId:d,location:"",isInternal:n,allChildren:!0}))}),a.push(r),[...(await be(a))[0]].flat()}catch(d){return m.handleError(d,"Failed to get inventory assignments."),[]}},this.getFlagInventory=async(t,i,o)=>{const n=[],a=[];try{return ne.forEach(r=>{a.push(Ne.getFlagInventory({id:t,flag:r.key,accountNumber:i,location:"",allChildren:!1,isInternal:o}))}),n.push(a),[...(await be(n))[0]].flat()}catch(r){return m.handleError(r,"Failed to get inventory flags."),[]}}}}const Ci=new za;async function qa(e,t,i,o,n,a,r){const d={id:t,roleId:e,accountNumber:i,location:o,searchLocationText:n,allChildren:a,isInternal:r};return await Ne.getRoleInventory(d)}async function Ti(e,t,i,o){const n=await Ci.getAssignmentInventory(t,i,e,o),a={id:"root",label:"",children:[],customerKnownSpaceName:""},r=[];for(const d of n){const p=fe(d,structuredClone(a));r.push({role:d.roleId,rootNode:p,isOpen:!1})}return r}async function Ha(e,t,i){const o=await Ci.getFlagInventory(e,t,i),n={id:"root",label:"",children:[],customerKnownSpaceName:""},a=[];for(const r of o){const d=fe(r,structuredClone(n));a.push({label:ua(r.flag),rootNode:d,isOpen:!1})}return a}const Ii=e=>{const t=[];return e?(e.forEach(i=>{const o=t.findIndex(r=>r.category===i.category),n={id:i.permissionId,name:i.permissionName,privilege:i.privilege,isNonLocation:i.isNonLocation};if(o===-1)return t.push({category:i.category||"Misc.",overallPrivilege:i.privilege,items:[n]});const a=r=>new Set(r.map(d=>d.privilege)).size===1?r[0].privilege:"MIXED";t[o].items.push(n),t[o].overallPrivilege=a(t[o].items)}),ia(t,"category",!0)):t},Va=async(e,t,i,o)=>{const n=await Ti(e,t,i,o),a=await Ha(t,i,o);return[n,a]},H={Default:"DEFAULT",Internal:"INTERNAL",Custom:"CUSTOM",GlobalAccess:"GLOBALACCESS"};Object.values(H);const ja=e=>({permissionId:e.permission_id,isNonLocation:e.is_non_location,privilege:e.privilege}),bt=e=>{const t=[];return e.permissions.forEach(i=>t.push(ja(i))),{name:e.name,accountNumber:e.account_number,roleType:e.role_type,permissions:t,removed:!1,id:e.id}},_i=e=>{const t=[];return e.forEach(i=>{t.push(bt(i))}),t},Ga=e=>({permission_id:e.permissionId,privilege:e.privilege}),ki=e=>{const t=[];return e.forEach(i=>{t.push(Ga(i))}),t},Ka=e=>({role_name:e.name,permissions:ki(e.permissions)}),Ja=e=>{const t={name:e.name,role_type:e.roleType,permissions:ki(e.permissions)};switch(e.roleType){case H.Internal:case H.Default:case H.GlobalAccess:return t;case H.Custom:{if(!e.accountNumber)throw new Error("Account number is required for custom roles.");return{...t,account_number:e.accountNumber}}default:throw new Error(`Unknown role type; ${e.roleType} provided`)}},Za=e=>({roleType:e.roleType}),Wa=e=>({id:e.id}),Qa=e=>({roleCreate:Ja(e.roleCreate)}),Ya=e=>({id:e.id,roleUpdate:Ka(e.roleUpdate)}),Xa=e=>({id:e.id});class es{async get(t){try{let i;if(!(t!=null&&t.roleType)){const a=await g.RolesApi.getRoles();return i=_i(a),i}const o=Za(t),n=await g.RolesApi.getRoles(o);return i=_i(n),i}catch(i){return m.handleError(i,"Failed to get roles."),[]}}async getById(t){try{const i=Wa(t),o=await g.RolesApi.getRole(i);return bt(o)}catch(i){return m.handleError(i,"Failed to get role."),{}}}async update(t){try{const i=Ya(t);return g.RolesApi.updateRole(i)}catch(i){return m.handleError(i,"Failed to update role.")}}async create(t){try{const i=Qa(t),o=await g.RolesApi.createRole(i);return bt(o)}catch(i){return m.handleError(i,`Failed to create the role '${t.roleCreate.name}'.`),{}}}async delete(t){try{const i=Xa(t);return g.RolesApi.deleteRole(i)}catch(i){return m.handleError(i,"Failed to delete role.")}}}const xt=new es,wt=e=>({id:e.id,accountNumber:e.account_number,accountName:e.account_name,displayName:e.account_friendly_name,status:e.status,updatedAt:e.updated_at,updatedBy:e.updated_by,userId:e.user_id}),ts=e=>{const t=[];return e.forEach(i=>{t.push(wt(i))}),t},is=e=>({user_id:e.contactId,account_number:e.accountNumber}),os=e=>({accountNumber:e.accountNumber,userId:e.contactId,status:e.status}),ns=e=>({accountAssociationInput:is(e.accountAssociationInput)}),as=e=>({id:e.id}),ss=e=>({id:e.id,accountAssociationStatusUpdate:e.accountAssociationStatusUpdate});class rs{async create(t){try{const i=ns(t),o=await g.AccountAssociationApi.createAccountAssociation(i);return wt(o)}catch(i){return m.handleError(i,"Failed to create account association."),null}}async get(t){try{const i=os(t),o=await g.AccountAssociationApi.getAccountAssociations(i);return ts(o)}catch(i){return m.handleError(i,"Failed to get associated accounts."),[]}}async getById(t){try{const i=as(t),o=await g.AccountAssociationApi.getUserAccountAssociation(i);return wt(o)}catch(i){return m.handleError(i,"Failed to get account association"),{}}}async update(t){try{const i=ss(t);await g.AccountAssociationApi.updateAccountAssociationStatus(i)}catch(i){m.handleError(i,"Failed to update account association status.")}}}const Ei=new rs;class ls{constructor(){this.getRoles=async t=>{try{let i=[];return t?i=await xt.get({roleType:t}):i=await xt.get({}),[...new Map(i.map(o=>[o.id,o])).values()]}catch(i){return m.handleError(i,"Failed to get all roles."),[]}},this.getRolesAndPermissions=async t=>{const i=await Promise.allSettled([He.get(),this.getRoles(t)]);i.forEach(r=>{if(r.status==="rejected")throw new Error});const o=[i[0].value,i[1].value],[n,a]=o;try{return a.forEach(r=>{r.permissions.forEach(d=>{const p=n.find(h=>h.id===d.permissionId);p&&(d.permissionName=p.name,d.category=p.category)})}),a}catch(r){return m.handleError(r,"Failed to get roles with permissions."),[]}},this.getUserData=async(t,i)=>{const o=[];try{const n=[Fe.get({contactId:t}),De.get({contactId:t,accountNumber:i}),Ei.get({contactId:t,accountNumber:i})];return o.push(n),[...(await be(o))[0]]}catch(n){return m.handleError(n,"Failed to get user data."),[]}},this.getState=async()=>{const t=[];try{const i=[He.getMyPermissions({excludeParents:!1,excludeSiblings:!0}),He.get(),this.getRolesAndPermissions(),ni.get()];return t.push(i),[...(await be(t))[0]]}catch(i){return m.handleError(i,"Failed to get user state."),[]}},this.getAccountData=async t=>{const i=[],o=[];try{for(const n of t)o.push(Ne.getAccountInventory({accountNumber:n,allChildren:!0}));return i.push(o),[...(await be(i))[0]]}catch(n){return m.handleError(n,"Failed to get account data."),[]}}}}const At=new ls;class xe{constructor(t){this._state=t,this._hydrating=!1,Ki(this)}get(){return this.state}set(t){this._state=t}update(t){this._state={...this.get(),...t}}clear(){this.isObject(this._state)&&(this._state={}),this.isArray(this._state)&&(this._state=[])}isHydrating(){return this.hydrating}requestHydration(){this._hydrating=!0}completeHydration(){this._hydrating=!1}get state(){return _e(this._state)}get hydrating(){return this._hydrating}isArray(t){return Array.isArray(t)}isObject(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}}s([Pt],xe.prototype,"_state",void 0),s([Pt],xe.prototype,"_hydrating",void 0);class cs extends xe{async refresh(){this.requestHydration();const t=await At.getRolesAndPermissions();this.set(t),this.completeHydration()}}const de=new cs([]);let we=class extends T{constructor(){super(...arguments),this.inPermissionsDialog=!1,this.permissionData=[]}updated(e){e.has("activeRoleId")&&this.hydratePermissions()}hydratePermissions(){const e=de.get().find(t=>t.id===this.activeRoleId);e!=null&&e.permissions&&(this.permissionData=Ii(e.permissions))}render(){const e=this.permissionData.filter(o=>o.category!=="Misc.").flatMap(o=>o.items).filter(o=>o.isNonLocation),t=structuredClone(this.permissionData).filter(o=>o.category!=="Misc.").filter(o=>o.items.some(n=>!n.isNonLocation)).map(o=>({...o,items:o.items.filter(n=>!n.isNonLocation)})),i=this.permissionData.filter(o=>!o.category||o.category==="Misc.").flatMap(o=>o.items);return l` <div data-testid="permissions-container" class="${this.inPermissionsDialog?"permissions-dialog-container":""}"> ${this.inPermissionsDialog?b:l`<h3 class="dlr-text-heading">Permissions</h3>`} ${at(e,o=>o.id,o=>l` <non-location-permission .permission="${o}"></non-location-permission> `)} ${at(t,o=>o.items,o=>l` <permission-group .permissionGroup="${o}"></permission-group> `)} ${at(i,o=>o.id,o=>l` <non-category-permission .permission="${o}"></non-category-permission> `)} </div> `}};we.styles=[Ke,w],s([c()],we.prototype,"activeRoleId",void 0),s([c({type:Boolean})],we.prototype,"inPermissionsDialog",void 0),s([u()],we.prototype,"permissionData",void 0),we=s([y("user-details-permission")],we);const Qe=E`@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf) format('truetype')}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}.flex{display:flex}.flex-1{flex:1}.border-top-solid-gray{border-top:solid 1px #ddd}.red{background-color:#db0028}.blue{background-color:#1456e0}.white{background-color:#fff;color:#1456e0;border:solid 1px #1456e0}.right{float:right}.margin-top-20{margin-top:20px}.padding-2{padding:2px}.padding-20{padding:20px}.padding-right-10{padding:10px}`,Ye=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}:host{--md-sys-color-on-surface-variant:rgba(9, 34, 65, 0.7);--md-primary-tab-hover-label-text-color:#1456e0}.remove{background-color:#fff;color:#db0028;border:1px solid #db0028}.remove-disabled{background-color:#fff;color:rgba(0,0,0,.26);border:1px solid rgba(0,0,0,.26)}.remove-role-container{padding:1rem 0 0 1rem}ix-textbox,md-textfield{--md-outlined-text-field-width:100%;--md-outlined-text-field-focus-width:100%;width:inherit}.option{display:block;width:100%}.option-disabled{display:block;width:100%;color:#ddd}.check_circle{color:#4caf50}.mail{color:#ff9800}.warning{color:#db0028}.delete_forever{color:#6d758c}.active-icon-section{display:flex;align-items:center;padding-right:16px}.panel-status{display:flex;-webkit-box-align:center;align-items:center;gap:4px;padding-right:8px}.panel-button-container{display:flex;flex-direction:row;column-gap:12px}.suspend-button{padding:8.5px 20px}.account-status-suspend{width:100px;padding-left:2px}.btn-disabled{color:rgba(0,0,0,.26);box-shadow:none;background-color:rgba(0,0,0,.12)}.confirmation-content{flex:1 1 auto;padding-right:24px;padding-bottom:20px;padding-left:24px;overflow:hidden;padding-top:8px!important}.role-add-icon{vertical-align:text-bottom;padding-right:5px}.role-add-text{vertical-align:text-top;text-transform:uppercase}.confirmation-content{max-width:550px}.add-roles-dialog-actions{display:flex;justify-content:flex-end;padding:24px 15px 8px 20px}.user-detail-navigation{border-top:1.5px solid #bec9c8;position:relative;top:-1px}.flag-text{text-align:right;margin-right:1.5rem}#flag-text-link{color:#1456e0}.mobile-options{display:none}.email{text-decoration:underline}@media only screen and (max-width:600px){.user-details-controls>ix-button{display:none}div>.user-details-controls{padding-right:0}.mobile-options{display:flex;align-items:center;color:var(--md-sys-color-primary,#1456e0);font-size:24px}ix-menu-item{min-width:200px}h1{margin-bottom:.75rem}.tree-view{overflow-x:auto;overflow-y:hidden;max-width:100%}.flag-text{text-align:center;margin-right:0}.user-details-panel{margin:0 -.5rem;overflow:hidden}}@media only screen and (min-width:601px) and (max-width:1200px){.tree-view{overflow-x:auto;overflow-y:hidden;max-width:100%}}@media only screen and (max-width:1200px){.flex.user-status{flex-direction:column;align-items:flex-start}.user-status-header{width:100%;justify-content:space-between;padding-bottom:12px}}`;class Xe{}Xe.BTN_CANCEL=e=>`changes-dialog-${e}-btn-cancel`,Xe.BTN_CONFIRM=e=>`changes-dialog-${e}-btn-confirm`;let ie=class extends T{constructor(){super(...arguments),this.handleEscapeKeyBinding=this.handleEscapeKey.bind(this),this.headerText="",this.bodyText="",this.cancelButtonText="Cancel",this.confirmationButtonText="Confirm",this.isOpen=!1,this.submitting=!1}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",this.handleEscapeKeyBinding)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keydown",this.handleEscapeKeyBinding)}handleEscapeKey(e){return e.which===27&&this.handleCancelChanges(),null}handleConfirmChanges(){this.dispatchEvent(new CustomEvent("confirm"))}handleCancelChanges(){this.dispatchEvent(new CustomEvent("cancel"))}renderHeader(){return this.headerText.length?l`<div slot="headline"> <h1 class="dlr-text-heading">${this.headerText}</h1> </div>`:b}renderContent(){return this.bodyText?l`<div class="confirmation-content" slot="content" method="dialog"> <p>${this.bodyText}</p> </div>`:b}renderFooter(){return l` <div class="dialog-actions" slot="actions"> <ix-button form="confirm-updates" appearance="text" text="${this.cancelButtonText}" ?disabled="${this.submitting}" @click="${()=>this.handleCancelChanges()}" data-testid="${Xe.BTN_CANCEL(this.id)}"> ${this.cancelButtonText} </ix-button> <ix-button id="add-account-button" form="confirm-updates" appearance="text" text="${this.confirmationButtonText}" ?submitting="${this.submitting}" @click="${()=>this.handleConfirmChanges()}" data-testid="${Xe.BTN_CONFIRM(this.id)}"> ${this.confirmationButtonText} </ix-button> </div> `}render(){return l`<ix-dialog class="z-50 relative" id="add-role-to-account" ?open="${this.isOpen}" @closed="${()=>this.handleCancelChanges()}"> ${this.renderHeader()} ${this.renderContent()} ${this.renderFooter()} </ix-dialog>`}};ie.styles=[Qe,Ye,w],s([c({type:String})],ie.prototype,"headerText",void 0),s([c({type:String})],ie.prototype,"bodyText",void 0),s([c({type:String})],ie.prototype,"cancelButtonText",void 0),s([c({type:String})],ie.prototype,"confirmationButtonText",void 0),s([c({type:Boolean,reflect:!0})],ie.prototype,"isOpen",void 0),s([c({type:Boolean})],ie.prototype,"submitting",void 0),ie=s([y("changes-confirmation")],ie);const ds=E`
1986
+ .tab-container {
1987
+ container-type: inline-size;
1988
+ }
1989
+ .tab-outer-wrapper {
1990
+ flex-wrap: nowrap;
1991
+ }
1992
+ @container (width <= 670px) {
1993
+ .tab-outer-wrapper {
1994
+ flex-wrap: wrap;
1995
+ }
1996
+ .tab-outer-wrapper > .tab-inner-wrapper {
1997
+ min-width: 100%;
1998
+ width: 100%;
1999
+ }
2000
+ }
2001
+ `;class et{}et.BTN_ADD_ROLE="user-details-tab-roles-btn-add-role",et.BTN_REMOVE_ROLE="user-details-tab-roles-btn-remove-role";const Ct={RoleSelect:"role-select",OpenRoleMenu:"open-role-menu",RemoveRoleMenu:"open-remove-role-menu"};let W=class extends T{constructor(){super(...arguments),this.disableEscapeKeyBinding=this.disableEscapeKey.bind(this),this.assignedRoles=[],this.activeRoleId="",this.canAddRoles=!1,this.addRolesDisabled=!1,this.canRemoveRoles=!1,this.removeRolesDisabled=!1}connectedCallback(){super.connectedCallback(),this.tabs&&this.tabs.addEventListener("keydown",this.disableEscapeKeyBinding)}disconnectedCallback(){super.disconnectedCallback(),this.tabs&&this.tabs.removeEventListener("keydown",this.disableEscapeKeyBinding)}disableEscapeKey(e){return e.which===27?!1:null}handleRoleClick(e,t){this.dispatchEvent(new CustomEvent(Ct.RoleSelect,{detail:{roleId:t},bubbles:!0,composed:!0})),e.target.scrollIntoView({inline:"center",behavior:"smooth",block:"nearest"})}dispatchOpenRoleMenu(){this.dispatchEvent(new CustomEvent(Ct.OpenRoleMenu,{bubbles:!0,composed:!0}))}dispatchOpenRemoveRoleMeu(){this.dispatchEvent(new CustomEvent(Ct.RemoveRoleMenu,{bubbles:!0,composed:!0}))}setActiveRole(e){this.tabs&&(this.tabs.activeTabIndex=this.assignedRoles.findIndex(t=>t.id===e))}renderAddRoleButton(){return this.canAddRoles?l` <ix-button data-testid="${et.BTN_ADD_ROLE}" appearance="text" @click="${()=>this.dispatchOpenRoleMenu()}" class="primary" aria-label="Add Role" ?disabled="${this.addRolesDisabled}" has-icon> <md-icon slot="icon">add</md-icon> Add Role </ix-button> `:b}renderRemoveRoleButton(){return this.canRemoveRoles?l` <ix-button data-testid="${et.BTN_REMOVE_ROLE}" appearance="outlined" .disabled="${this.removeRolesDisabled}" @click="${()=>this.dispatchOpenRemoveRoleMeu()}" class="cancel"> <span>REMOVE ROLE</span> </ix-button> `:b}renderRole(e){return e?l`<ix-primary-tab data-testid="ix-tab-role-${e.id}" @click="${t=>this.handleRoleClick(t,e.id)}" ?activeDisabled="${e.id===this.activeRoleId}"><span id="${`role-tab-${e.id}`}" class="font-bold flex items-center uppercase">${e.name}</span> </ix-primary-tab>`:b}render(){return l` <div class="tab-container"> <div class="flex gap-4 max-w-full overflow-hidden tab-outer-wrapper"> <div class="flex-1 overflow-auto tab-inner-wrapper"> <ix-tabs data-testid="ix-tabs-roles" id="roles-tabs" .scrollButtons="${this.assignedRoles.length>1}" hideScrollBar left-align="true"> ${this.assignedRoles.map(e=>this.renderRole(e))} </ix-tabs> </div> <div class="flex items-center gap-4 shrink-0 tab-inner-wrapper"> ${this.renderAddRoleButton()} ${this.renderRemoveRoleButton()} </div> </div> </div> `}};W.styles=[Qe,Ye,w,re,ds],s([c({type:Array,attribute:!1})],W.prototype,"assignedRoles",void 0),s([c({type:String,attribute:!1})],W.prototype,"activeRoleId",void 0),s([c({type:Boolean})],W.prototype,"canAddRoles",void 0),s([c({type:Boolean})],W.prototype,"addRolesDisabled",void 0),s([c({type:Boolean})],W.prototype,"canRemoveRoles",void 0),s([c({type:Boolean})],W.prototype,"removeRolesDisabled",void 0),s([F("#roles-tabs")],W.prototype,"tabs",void 0),W=s([y("user-details-tab-roles")],W);const us=e=>U.getAccounts().find(t=>t.accountNumber===e),Ri=(e,t)=>{const i=e.filter(o=>o.parentAccountNumber===t);return i.length?i.flatMap(o=>({id:o.accountNumber,name:o.name,displayName:o.displayName,subaccounts:Ri(e,o.accountNumber)})):[]},Tt=e=>{try{const t=e.map(o=>o.accountNumber),i=e.filter(o=>!t.includes(o.parentAccountNumber||""));if(!i)throw new Error("Failed to get nested account structure");return i.map(o=>({id:o.accountNumber,name:o.name,displayName:o.displayName,subaccounts:Ri(e,o.accountNumber)}))}catch(t){return console.error("Could not get nested account structure",t),[]}},It=()=>U.getAccounts().sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:"base"})),Si=e=>de.get().find(t=>t.id===e)||null,ps=e=>{const t=[],i=[...new Set(e.map(o=>o.roleId))];for(const o of i){const n=Si(o);n&&t.push(n)}return t},Ui=e=>{var t;return{label:(t=e.displayName)!==null&&t!==void 0?t:e.name,id:e.id,children:e.subaccounts.map(i=>Ui(i))}},$i=(e,t)=>{e.children&&e.children.length&&e.children.forEach(o=>$i(o,t));const i=t.filter(o=>e.id===o.accountNumber).map(o=>({label:o.name,id:o.id,children:void 0}));e.children&&(e.children=i.concat(e.children))},hs=e=>{const t=[],i=It().filter(r=>L.hasCustomRolesRead(r.accountNumber)),o=Tt(i);o.forEach(r=>t.push(Ui(r)));const n=de.get().filter(r=>r.roleType===H.Custom);t.forEach(r=>{$i(r,n),r.expanded=e.includes(r.id)});const a=o.some(r=>!!r.subaccounts.length);return{tree:{label:"root",id:"root",children:t},isEndChild:!a&&i.length<=1}},_t=(e,t,i=!1)=>{let o=t.filter(n=>n.accountNumber===e||n.roleType===H.Default||n.roleType===H.Internal||n.roleType===H.GlobalAccess);return i||(o=o.filter(n=>n.roleType!==H.Internal&&n.roleType!==H.GlobalAccess)),o};class K{}K.HEADING="add-account-role-dialog-heading",K.ROLE_SELECTOR="add-account-role-dialog-role-selector",K.ROLE_OPTION=e=>`add-account-role-dialog-role-option-${e}`,K.BTN_CANCEL="add-account-role-dialog-cancel-button",K.BTN_ADD="add-account-role-dialog-add-role-button",K.SUCCESS_MESSAGE="add-account-role-dialog-success-message";function Pe(e){return B.InternalUserDomainWhitelist.split(",").some(t=>e==null?void 0:e.includes(t))}let V=class extends T{constructor(){super(...arguments),this.roles=[],this.assignedRoles=[],this.isOpen=!1,this.loading=!1,this.roleId="",this.disabled=!0,this.handleEscapeKeyBinding=this.handleEscapeKey.bind(this),this.handleCancelChangesBinding=this.handleCancelChanges.bind(this)}get name(){var e,t;return`${(e=this.contact)===null||e===void 0?void 0:e.firstName} ${(t=this.contact)===null||t===void 0?void 0:t.lastName}`}get addableRoles(){var e,t,i;if(!(!((e=this.account)===null||e===void 0)&&e.accountNumber))return[];const o=Pe((t=this.contact)===null||t===void 0?void 0:t.email)&&L.hasAssignInternalRoleCreate((i=this.account)===null||i===void 0?void 0:i.accountNumber);return _t(this.account.accountNumber,this.roles,o)}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",this.handleEscapeKeyBinding),this.addEventListener("blur",this.handleCancelChangesBinding)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keydown",this.handleEscapeKeyBinding),this.removeEventListener("blur",this.handleCancelChangesBinding)}handleEscapeKey(e){return e.which===27&&(this.isOpen=!1),null}async handleOpenDialog(){this.isOpen=!0;const e=await this.rolesMenu;e==null||e.reset(),this.disabled=!0}async handleConfirmChanges(){this.dispatchEvent(new CustomEvent(I.AddRole,{detail:{roleId:this.roleId}}))}async handleCancelChanges(){this.isOpen=!1}handleRoleSelect(e){e&&(this.disabled=!1)}renderRoleOptions(){return l` ${this.addableRoles.map((e,t)=>l` <ix-select-option class="option" value="${t}" ?disabled="${this.assignedRoles.some(i=>i.id===e.id)}" @click="${()=>{this.roleId=this.addableRoles[t].id}}" data-testid="${K.ROLE_OPTION(e.name)}"> <div slot="headline">${e.name}</div> </ix-select-option>`)} `}renderHeader(){var e;return l` <div id="confirmation-header" slot="headline" style="max-width:560px" data-testid="${K.HEADING}"> <h1 class="dlr-text-heading break-words"> Add Role to ${this.name} for ${(e=this.account)===null||e===void 0?void 0:e.name} </h1> </div>`}renderContent(){return l` <div slot="content" method="dialog"> <form slot="content" style="padding-top:0" id="add-role-to-roles" method="dialog"> <ix-select quick menu-below class="thick" id="roles-menu" menu-positioning="fixed" @input="${e=>this.handleRoleSelect(e.target.value)}" data-testid="${K.ROLE_SELECTOR}"> ${this.renderRoleOptions()} </ix-select> </form> </div>`}renderFooter(){return l` <div class="add-roles-dialog-actions" slot="actions"> <ix-button form="confirm-updates" appearance="text" text="Cancel" ?disabled="${this.loading}" @click="${()=>this.handleCancelChanges()}" data-testid="${K.BTN_CANCEL}"> Cancel </ix-button> <ix-button id="add-account-button" form="confirm-updates" appearance="text" text="Add Role" ?disabled="${this.disabled}" ?submitting="${this.loading}" @click="${this.handleConfirmChanges}" data-testid="${K.BTN_ADD}">Add Role </ix-button> </div> `}render(){return l` <ix-dialog class="z-50 relative" id="add-role-to-account" ?open="${this.isOpen}"> ${this.renderHeader()} ${this.renderContent()} ${this.renderFooter()} </ix-dialog>`}};V.styles=[Qe,Ye,w],s([c({type:Object})],V.prototype,"contact",void 0),s([c({type:Object})],V.prototype,"account",void 0),s([c({type:Array})],V.prototype,"roles",void 0),s([c({type:Array})],V.prototype,"assignedRoles",void 0),s([c({type:Boolean,reflect:!0})],V.prototype,"isOpen",void 0),s([u()],V.prototype,"loading",void 0),s([u()],V.prototype,"roleId",void 0),s([u()],V.prototype,"disabled",void 0),s([Vi("#roles-menu")],V.prototype,"rolesMenu",void 0),V=s([y("add-account-role")],V);const Ni=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.cards-container{display:flex;flex-wrap:wrap}.cards-container>:first-child{padding:8px 8px 8px 0}.cards-container>:not(:first-child){padding:8px}.tree-role-locations-count{margin:0;color:rgba(9,34,65,.3);padding-right:20px;text-transform:uppercase;font-weight:700}.tree-role-locations-count-active{margin:0;padding-right:40px;text-transform:uppercase;font-weight:700}.remove{color:#db0028}.permissions-content{width:800px}.dismiss-btn{color:#1456e0}@media only screen and (max-width:600px){#next-button{display:inline-block}.next-control{text-align:center}.tree-view-container-footer{padding-bottom:1rem}.permissions-content{width:auto}.cards-container{display:flex;flex-wrap:nowrap;max-width:100%;overflow-x:auto}}@media only screen and (min-width:601px){.permissions-locations{display:flex;justify-content:space-between;align-items:center;width:100%}.controls{display:flex;justify-content:space-between;align-items:center}}@media only screen and (max-width:600px){.cards-container{flex-wrap:unset;overflow-x:auto}.tree-role-locations{margin-top:-3px!important}.tree-role-locations-count,.tree-role-locations-count-active{font-size:.875rem!important}}`,ms={ToggleActiveCard:"toggle-active-card"};let Ae=class extends T{constructor(){super(...arguments),this.dataForAccounts=[],this.isRoles=!1}dispatchToggleActiveCard(e){this.dispatchEvent(new CustomEvent(ms.ToggleActiveCard,{detail:{accountId:e},bubbles:!0,composed:!0}))}renderCards(){return this.dataForAccounts.map(e=>{if(this.isRoles){const i=e.rolesData.filter(o=>o.role.removed===!1).map(o=>o.role.name);return l` <ix-card data-testid="ix-card-${e.accountId}" .itemId="${e.accountId}" .name="${e.accountName}" .names="${i}" .type="${"roles"}" ?isActive="${this.selectedAccountId===e.accountId}" @toggle-card="${o=>{this.dispatchToggleActiveCard(o.detail)}}"></ix-card> `}const t=ne.map(i=>i.text);return l` <ix-card data-testid="ix-card-${e.accountId}" .itemId="${e.accountId}" .name="${e.accountName}" .names="${t}" .type="${"flags"}" .isActive="${this.selectedAccountId===e.accountId}" @toggle-card="${i=>{this.dispatchToggleActiveCard(i.detail)}}"></ix-card> `})}render(){return l`<div class="cards-container">${this.renderCards()}</div> `}};Ae.styles=[Ni,w,Ie,re],s([c({type:Array})],Ae.prototype,"dataForAccounts",void 0),s([c({type:String})],Ae.prototype,"selectedAccountId",void 0),s([c({type:Boolean})],Ae.prototype,"isRoles",void 0),Ae=s([y("account-tabbing-card")],Ae);class tt{constructor(){this.updates=[]}get nodeUpdates(){return this.updates}update(t){this.updates=[];let i=[];t&&(i=oo(t));for(const o of i)o.originalCheckedStatus!==o.checked&&this.updates.push(o)}}class Fi{constructor(){this._nodeUpdates=[]}create(t){if(this._nodeUpdates.find(o=>o.key===t))return;const i=new tt;this._nodeUpdates.push({key:t,item:i})}update(t,i){const o=this._nodeUpdates.find(n=>n.key===t);o==null||o.item.update(i)}get nodeUpdates(){return this._nodeUpdates}get isDirty(){let t=0;return this._nodeUpdates.forEach(i=>{t+=i.item.nodeUpdates.length}),t>0}get nodeChanges(){const t=[];return this._nodeUpdates.forEach(i=>{i.item.nodeUpdates.length>0&&i.item.nodeUpdates.forEach(o=>{const n=t.find(a=>a.key===i.key);n?n.items.push(o):t.push({key:i.key,items:[o]})})}),t}reset(){this._nodeUpdates=[]}remove(t){this._nodeUpdates=this._nodeUpdates.filter(i=>i.key!==t)}}function kt(e,t){var i,o;const n=[],a=t.toLowerCase().trim();if(a.length<2||((!((i=e.label)===null||i===void 0)&&i.toLowerCase().includes(a)||!((o=e.secondaryLabel)===null||o===void 0)&&o.toLowerCase().includes(a))&&n.push(e),!e.children))return n;for(const r of e.children){const d=kt(r,t);n.push(...d)}return n}function Di(e,t,i){if(e==="previous"){const o=i.indexOf(t)-1,n=o<0?i.length-1:o;return i[n]}if(e==="next"){const o=i.indexOf(t)+1,n=o>=i.length?0:o;return i[n]}}function Pi(e,t){const i=[];for(const o of t){i.push(o.id),o.selected=!0;let n=Oe(e,o.id);for(;n!=null&&n.parentId;)n=Oe(e,n.parentId),n&&(n.expanded=!0)}return i}function Et(e){e.selected=!1,e.children&&e.children.forEach(t=>{Et(t)})}class gs{constructor(){this._dataCollection=new Map}capture(t){var i;let o;const n=this._dataCollection.get(t);return n&&(o=di(n.data),!((i=n.options)===null||i===void 0)&&i.consume&&this._dataCollection.delete(t)),o}emit(t,i){i.options={lock:!1,consume:!0,...i.options},this._store(t,i)}lock(t){const i=this._dataCollection.get(t);i&&(i.options.lock=!0)}remove(t){this._dataCollection.delete(t)}_store(t,i){var o;const n=this._dataCollection.get(t);return n&&!((o=n.options)===null||o===void 0)&&o.lock?!1:(this._dataCollection.set(t,di(i)),!0)}}const it=new gs;class vs extends xe{}const Rt=new vs({});let $=class extends T{constructor(){super(...arguments),this.searching=!1,this.disableTree=!1,this.readonly=!1,this.activeRoleId="",this.searchResultCount=0,this.searchResultIndex=0,this.selectedIds=[],this.loadingNodes=!1,this.assignmentUpdateManagers=[],this.searchText="",this.onSearchTextChange=Ht(async e=>{var t;this.searchText=e.detail.searchText;const i=(t=this.assignment)===null||t===void 0?void 0:t.rootNode;Et(i);const o=kt(i,this.searchText);o.length&&ze(i),this.searchResultCount=o.length;const n=Pi(i,o);[this.selectedId]=n,this.selectedIds=[...n],this.searchResultIndex=n.indexOf(this.selectedId)+1,this.requestUpdate()},500)}updated(e){super.updated(e),e.has("activeRoleId")&&this.handleNonLocationTrees()}disconnectedCallback(){super.disconnectedCallback(),this.emitUpdates()}emitUpdates(){var e,t;const i=Rt.get(),o=(e=this.assignmentUpdateManagers.find(d=>d.accountId===i.accountNumber))===null||e===void 0?void 0:e.nodeManager,n=o==null?void 0:o.nodeUpdates.flatMap(d=>d.item.nodeUpdates);if(!(i!=null&&i.accountNumber)&&!o)return;const a={data:n||[],options:{consume:!1}},r=`${i.accountNumber}:${(t=this.contact)===null||t===void 0?void 0:t.id}`;it.emit(r,a)}dispatchCheckToggleEvent(e){this.dispatchEvent(new CustomEvent(I.CheckToggle,{detail:{message:{updates:structuredClone(e)}}}))}handleNonLocationTrees(){const e=de.get().find(n=>{var a;return n.id===((a=this.assignment)===null||a===void 0?void 0:a.role)});if(!e||!this.assignment)return;if(!e.permissions.every(n=>n.isNonLocation)){this.disableTree=!1;return}const t=this.assignment.rootNode.children[0];t.checked=!0,this.disableTree=!0,pe(t,this.assignment.rootNode);const i=this.getOrCreateNodeManager();if(!i)return;const o=i.nodeUpdates.find(n=>{var a;return n.key===((a=this.assignment)===null||a===void 0?void 0:a.role)});o&&(o.item.update(this.assignment.rootNode),this.dispatchCheckToggleEvent(i.nodeChanges))}onTreeCheckToggle(e){var t;try{const i=this.getOrCreateNodeManager();if(!i)throw new Error("Node manager is missing.");const o=i.nodeUpdates.find(n=>{var a;return n.key===((a=this.assignment)===null||a===void 0?void 0:a.role)});o&&o.item.update(e.detail.message.rootNode),!((t=this.assignment)===null||t===void 0)&&t.rootNode&&(this.assignment.rootNode=structuredClone(e.detail.message.rootNode)),this.dispatchCheckToggleEvent(i.nodeChanges)}catch(i){m.handleError(i,"Failed to toggle tree check.")}}async onTreeExpandToggle(e){var t,i;try{const o=e.detail.message.update,n=e.detail.message.node;if(n.children&&n.children.length)return;if(!this.contact.id||!this.accountNumber)throw new Error("Contact ID or Account Number is missing.");n.loading=!0;const a=await qa((t=this.assignment)===null||t===void 0?void 0:t.role,this.contact.id,this.accountNumber,n.id,void 0,!0,Pe((i=this.contact)===null||i===void 0?void 0:i.email));n.loading=!1,a[0].inventoryItems&&a[0].inventoryItems.length&&(a[0].inventoryItems.forEach(r=>{fe(r,n),n.originalCheckedStatus!==n.checked&&pe(n,n)}),o())}catch(o){m.handleError(o,"Failed to expand tree node.")}}destroyRoleManager(){const e=this.assignmentUpdateManagers.find(t=>t.accountId===this.accountNumber);e&&(e.nodeManager.reset(),this.assignmentUpdateManagers=this.assignmentUpdateManagers.filter(t=>t.accountId!==this.accountNumber))}getOrCreateNodeManager(){var e;let t;try{if(!this.accountNumber)throw new Error("Account number is missing.");t=(e=this.assignmentUpdateManagers.find(i=>i.accountId===this.accountNumber))===null||e===void 0?void 0:e.nodeManager,t||(this.assignmentUpdateManagers.push({accountId:this.accountNumber,nodeManager:new Fi}),t=this.assignmentUpdateManagers.find(i=>i.accountId===this.accountNumber).nodeManager)}catch(i){m.handleError(i,"Failed to get or create node manager.")}return t}disableCheckboxes(){return this.readonly?!0:this.disableTree}onSearchNavigation(e){if(!this.selectedIds.length)return;const t=Di(e.detail.direction,this.selectedId,this.selectedIds);this.selectedId=t!=null?t:this.selectedId,this.searchResultIndex=this.selectedIds.indexOf(this.selectedId)+1,this.requestUpdate()}render(){var e;const t=this.getOrCreateNodeManager();return t&&this.assignment&&t.create(this.assignment.role),l` <div class="flex items-center py-[0.75rem]"> <h1 class="dlr-text-heading">Portal Access</h1> <ix-progress .linear="${!1}" .indeterminate="${!0}" style="visibility:${this.searching?"visible":"hidden"}"></ix-progress> </div> <ix-generic-tree data-testid="location-treeview" .rootNode="${(e=this.assignment)===null||e===void 0?void 0:e.rootNode}" .searchText="${this.searchText}" .selectedId="${this.selectedId}" .showCheckboxes="${!0}" .disableCheckboxes="${this.disableCheckboxes()}" @search-text-change="${this.onSearchTextChange}" @search-navigation="${i=>this.onSearchNavigation(i)}" @check-toggle="${i=>this.onTreeCheckToggle(i)}" @expand-toggle="${i=>this.onTreeExpandToggle(i)}" searchEnabled .searchResultCount="${this.searchResultCount}" .searchResultIndex="${this.searchResultIndex}" searchPlaceholder="Search by Site or Asset Name.."></ix-generic-tree> `}};$.styles=[w,E`:host{--md-circular-progress-size:28px}`],s([c({type:Object,attribute:!1})],$.prototype,"assignment",void 0),s([c({type:Object})],$.prototype,"contact",void 0),s([c({type:String})],$.prototype,"accountNumber",void 0),s([c({type:String})],$.prototype,"selectedId",void 0),s([c({type:Boolean})],$.prototype,"searching",void 0),s([c({type:Boolean})],$.prototype,"disableTree",void 0),s([c({type:Boolean})],$.prototype,"readonly",void 0),s([c({type:String})],$.prototype,"activeRoleId",void 0),s([u()],$.prototype,"searchResultCount",void 0),s([u()],$.prototype,"searchResultIndex",void 0),s([u()],$.prototype,"selectedIds",void 0),s([u()],$.prototype,"loadingNodes",void 0),s([u()],$.prototype,"assignmentUpdateManagers",void 0),s([u()],$.prototype,"searchText",void 0),$=s([y("user-details-assignments")],$);let N=class extends T{constructor(){super(...arguments),this.dataForAccounts=[],this.permissions=[],this._dataForAccounts=[],this.showPermissionsDialog=!1,this.removeRoleDialogOpen=!1,this._nextButtonEnabled=!1}connectedCallback(){super.connectedCallback(),this._dataForAccounts=this.dataForAccounts,this._selectedAccountId=this.selectedAccountId,this._selectedRoleId=this.selectedRoleId,this.validateStep(),this.dispatchValidateStepEvent(),this.setInitialRole()}get noOfLocations(){var e;return Lt((e=this.selectedRoleData)===null||e===void 0?void 0:e.genericTreeView)}get canAddRolesDisabled(){return this.unAvailableRoles&&this.unAvailableRoles.length<=0}get availableRoles(){const e=this._dataForAccounts.find(i=>i.accountId===this._selectedAccountId),t=e==null?void 0:e.rolesData.filter(i=>i.role.removed===!1);return t==null?void 0:t.flatMap(i=>i.role)}get unAvailableRoles(){const e=this._dataForAccounts.find(i=>i.accountId===this._selectedAccountId),t=e==null?void 0:e.rolesData.filter(i=>i.role.removed===!0);return t==null?void 0:t.flatMap(i=>i.role)}get roles(){const e=this._dataForAccounts.find(t=>t.accountId===this._selectedAccountId);return e==null?void 0:e.rolesData.flatMap(t=>t.role)}get selectedAccount(){return this._dataForAccounts.find(e=>e.accountId===this._selectedAccountId)}get selectedRole(){return this.selectedAccount.rolesData.find(e=>e.role.id===this._selectedRoleId).role}get selectedRolePermissions(){var e,t;return(t=(e=this._dataForAccounts.find(i=>i.accountId===this._selectedAccountId))===null||e===void 0?void 0:e.rolesData.find(i=>i.role.id===this._selectedRoleId))===null||t===void 0?void 0:t.role.permissions}get selectedRoleData(){return this.selectedAccount.rolesData.find(e=>e.role.id===this._selectedRoleId)}toggleActiveCard(e){var t;this._selectedAccountId=e,this._selectedRoleId=(t=this._dataForAccounts.find(i=>i.accountId===e))===null||t===void 0?void 0:t.rolesData[0].role.id,this._dataForAccounts.forEach(i=>{i.accountId!==e?i.active=!1:i.active=!0}),this.roleTabComponent.setActiveRole(this._selectedRoleId),this.setInitialRole(),this.requestUpdate()}setInitialRole(){this.availableRoles&&this.availableRoles.length>0&&(this._selectedRoleId=this.availableRoles[0].id)}dispatchOpenAddAccountRole(){this.addRoleDialog.handleOpenDialog()}dispatchTabControl(e){this._selectedRoleId=this.roles[e].id,this.roleTabComponent.setActiveRole(this._selectedRoleId)}addRole(e){var t;const i=this.selectedAccount.rolesData.findIndex(o=>o.role.id===e);if(this.selectedAccount.rolesData[i].role.permissions.every(o=>o.isNonLocation)){const o=this.selectedAccount.rolesData[i].genericTreeView;if(!(!((t=o==null?void 0:o.children)===null||t===void 0)&&t.length))return;const n=o.children[0];n.checked=!0,pe(n,o),this.selectedAccount.rolesData[i].locations.push(n)}else this.selectedAccount.rolesData[i].locations=[];this.selectedAccount.rolesData[i].role.removed=!1,this.requestUpdate(),this.dispatchTabControl(i),this.addRoleDialog.handleCancelChanges()}dispatchRemoveRoleEvent(){const e=this.roles.findIndex(i=>i.id===this._selectedRoleId);this.roles[e].removed=!0;const t=this.selectedAccount.rolesData.findIndex(i=>i.role.id===this._selectedRoleId);this.selectedAccount.rolesData[t].locations=[],this.selectedAccount.rolesData[t].role.removed=!0,this.selectedAccount.rolesData[t].genericTreeView&&gi(this.selectedAccount.rolesData[t].genericTreeView),this.validateStep(),this.setInitialRole(),this.requestUpdate()}renderTree(){const e=this._dataForAccounts.find(n=>n.accountId===this._selectedAccountId),t=e==null?void 0:e.rolesData.find(n=>n.role.id===this._selectedRoleId);if(!t)return b;const i={role:t.role.id,rootNode:t.genericTreeView},o=n=>{this.requestUpdate();const{updates:a}=n.detail.message,r=a.find(d=>d.key===t.role.id);r!=null&&r.items?t.locations=r.items.filter(d=>d.checked):t.locations=[],this.validateStep(),this.dispatchUpdateDFAEvent(),this.dispatchNextButtonToggleEvent()};if(i&&i.rootNode){const n=t==null?void 0:t.role.permissions.every(a=>a.isNonLocation);return l`<user-details-assignments .assignment="${i}" .contact="${this.contact}" .accountNumber="${e==null?void 0:e.accountId}" @check-toggle="${o}" ?disableTree="${n}"></user-details-assignments>`}return b}validateStep(){let e=!0;for(const t of this._dataForAccounts)if(!t.rolesData.filter(i=>i.role.removed===!1).every(i=>i.locations.length)){e=!1;break}this._nextButtonEnabled=e}renderRoles(){var e,t;return l` <user-details-tab-roles id="role-data-element" .assignedRoles="${this.availableRoles}" .activeRoleId="${(e=this._selectedRoleId)!==null&&e!==void 0?e:""}" .canRemoveRoles="${!0}" .removeRolesDisabled="${((t=this.availableRoles)===null||t===void 0?void 0:t.length)<=1}" .canAddRoles="${!0}" .addRolesDisabled="${this.canAddRolesDisabled}" @role-select="${i=>this._selectedRoleId=i.detail.roleId}" @open-role-menu="${()=>this.dispatchOpenAddAccountRole()}" @open-remove-role-menu="${()=>this.removeRoleDialogOpen=!0}"></user-details-tab-roles> `}renderAddAccountRoleConfirmation(){var e;return l`<add-account-role id="add-role-dialog" .contact="${this.contact}" .account="${us((e=this.selectedAccount)===null||e===void 0?void 0:e.accountId)||""}" .assignedRoles="${this.availableRoles}" .roles="${this.roles}" @add-role="${t=>this.addRole(t.detail.roleId)}"> </add-account-role>`}renderRemoveRoleConfirmation(){return l`<changes-confirmation id="remove-role-dialog" ?isOpen="${this.removeRoleDialogOpen}" .headerText="${"Are you sure you want to remove this role?"}" .bodyText="${"The user will no longer be able to perform the permissions of this role for this account."}" .confirmationButtonText="${"Remove Role"}" @confirm="${()=>{this.dispatchRemoveRoleEvent(),this.validateStep(),this.removeRoleDialogOpen=!1}}" @cancel="${()=>this.removeRoleDialogOpen=!1}"> </changes-confirmation>`}renderControls(){return l` <div class="controls"> <div class="flex justify-between py-2 items-center permissions-locations"> ${this.renderViewPermissionsButton()} <div class="flex items-center">${this.renderLocationsCount()}</div> </div> <div class="next-control"> <ix-button id="next-button" type="submit" has-icon trailing-icon ?disabled="${!this._nextButtonEnabled}" @click="${()=>{this.dispatchNextStepEvent()}}" data-testid="step-four-next-button"> Next <md-icon slot="icon">east</md-icon> </ix-button> </div> </div> `}renderPermissionsDialog(){var e,t;return l` <ix-dialog ?open="${this.showPermissionsDialog}" @close="${()=>this.showPermissionsDialog=!1}"> <div class="dlr-text-heading" slot="headline">${this.selectedRole.name}</div> <div class="permissions-content" slot="content"> <user-details-permission inPermissionsDialog .permissionData="${(t=Ii((e=this.selectedRolePermissions)!==null&&e!==void 0?e:[]))!==null&&t!==void 0?t:[]}"> </user-details-permission> </div> <div class="dialog-actions" slot="actions"> <ix-button appearance="text" @click="${this.togglePermissionsDialog}" slot="secondary"><span class="dismiss-btn">Dismiss</span></ix-button> </div> </ix-dialog> `}togglePermissionsDialog(){this.showPermissionsDialog=!this.showPermissionsDialog}renderViewPermissionsButton(){return l` <div class="tree-view-permissions"> <ix-button class="temp-button view-permissions" appearance="text" @click="${this.togglePermissionsDialog}"> View Permissions </ix-button> </div> `}renderLocationsCount(){const e=`dlr-text-default font-bold uppercase ${this.noOfLocations?"tree-role-locations-count-active":"tree-role-locations-count"}`;return l`<div class="tree-role-locations"> <span class="${e}"> ${this.noOfLocations?l`${this.noOfLocations} locations`:l`Select Locations`} </span> </div>`}dispatchNextStepEvent(){this.dispatchEvent(new CustomEvent(x.NextStep,{bubbles:!0,composed:!0}))}dispatchNextButtonToggleEvent(){this.dispatchEvent(new CustomEvent(x.NextButtonToggle,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}dispatchValidateStepEvent(){this.dispatchEvent(new CustomEvent(x.ValidateStep,{detail:this._nextButtonEnabled,bubbles:!0,composed:!0}))}dispatchUpdateDFAEvent(){const e=new CustomEvent(x.UpdateDFA,{detail:{dataForAccounts:this._dataForAccounts},bubbles:!0,composed:!0});this.dispatchEvent(e)}renderAccountTabbingCard(){return l` <account-tabbing-card data-testid="step-four-account-cards" isRoles .dataForAccounts="${this._dataForAccounts}" .selectedAccountId="${this._selectedAccountId}" @toggle-active-card="${e=>this.toggleActiveCard(e.detail.accountId)}"> </account-tabbing-card> `}render(){return l` <div class="wizard-step-content overflow-y-auto h-full max-h-screen md:p-1"> ${this.renderAccountTabbingCard()} <div class="tree-view-container-content">${this.renderRoles()}</div> <div class="controls-container">${this.renderControls()}</div> <div class="tree-view-container-footer">${this.renderTree()}</div> </div> ${this.renderAddAccountRoleConfirmation()} ${this.renderRemoveRoleConfirmation()} ${this.renderPermissionsDialog()} `}};N.styles=[Ni,w,re],s([c({type:Array})],N.prototype,"dataForAccounts",void 0),s([c({type:Array})],N.prototype,"permissions",void 0),s([c({type:String})],N.prototype,"selectedAccountId",void 0),s([c({type:String})],N.prototype,"selectedRoleId",void 0),s([c({type:Object})],N.prototype,"contact",void 0),s([u()],N.prototype,"_dataForAccounts",void 0),s([u()],N.prototype,"_selectedAccountId",void 0),s([u()],N.prototype,"_selectedRoleId",void 0),s([u()],N.prototype,"showPermissionsDialog",void 0),s([u()],N.prototype,"removeRoleDialogOpen",void 0),s([u()],N.prototype,"_nextButtonEnabled",void 0),s([F("#add-role-dialog")],N.prototype,"addRoleDialog",void 0),s([F("#role-data-element")],N.prototype,"roleTabComponent",void 0),s([F("user-details-assignments")],N.prototype,"assignmentTreeComponent",void 0),N=s([y("create-user-step-four")],N);const Mi=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}ix-icon-button{--md-sys-color-on-surface-variant:black}`;class oe{}oe.ACCORDION=e=>`user-flags-accordion-${e}`,oe.COMPONENT=e=>`user-flags-${e}`,oe.TREE=e=>`user-flags-tree-${e}`,oe.ASSIGNMENT_COUNT=e=>`user-flags-assignment-count-${e}`,oe.SEARCH_BOX=()=>"search-box";let D=class extends T{constructor(){super(...arguments),this.searchEnabled=!1,this.showCheckboxes=!1,this.disableCheckboxes=!1,this.filledIcons=!1,this.searching=!1,this.searchText="",this.selectedIds=[],this.searchResultCount=0,this.searchResultIndex=0,this.onSearchTextChange=Ht(async e=>{Et(this.flagTree.rootNode),this.searchText=e.detail.searchText;const t=kt(this.flagTree.rootNode,e.detail.searchText);t.length&&ze(this.flagTree.rootNode),this.searchResultCount=t.length;const i=Pi(this.flagTree.rootNode,t);[this.selectedId]=i,this.selectedIds=[...i],this.searchResultIndex=i.indexOf(this.selectedId)+1,this.requestUpdate()},500)}onTreeCheckToggle(e){var t;this.flagTree.updateService&&this.flagTree.updateService.update(e.detail.message.rootNode);const i=this.flagUpdateManager.nodeUpdates.find(o=>o.key===this.flagTree.label);i&&i.item.update(e.detail.message.rootNode),this.dispatchEvent(new CustomEvent(I.CheckToggle,{detail:{message:{...e.detail.message,flagLabel:this.flagTree.label,updates:this.flagUpdateManager.nodeChanges,rootNode:(t=this.flagTree.updateService)===null||t===void 0?void 0:t.nodeUpdates[0]}}})),this.flagTree.rootNode=structuredClone(e.detail.message.rootNode),this.requestUpdate("flagTree")}onSearchNavigation(e){if(!this.selectedIds.length)return;const t=Di(e.detail.direction,this.selectedId,this.selectedIds);this.selectedId=t!=null?t:this.selectedId,this.searchResultIndex=this.selectedIds.indexOf(this.selectedId)+1,this.requestUpdate()}render(){var e;return l` <ix-generic-tree data-testid="${oe.TREE(this.flagTree.label)}" ?showCheckboxes="${this.showCheckboxes}" ?filledIcons="${this.filledIcons}" ?disableCheckboxes="${this.disableCheckboxes}" .rootNode="${this.flagTree.rootNode}" .selectedId="${this.selectedId}" .searchText="${this.searchText}" @check-toggle="${t=>this.onTreeCheckToggle(t)}" @search-text-change="${t=>this.onSearchTextChange(t)}" @search-navigation="${t=>this.onSearchNavigation(t)}" ?searchEnabled="${this.searchEnabled&&(((e=this.flagTree.rootNode.children)===null||e===void 0?void 0:e.length)||0)>0}" .searchResultCount="${this.searchResultCount}" .searchResultIndex="${this.searchResultIndex}" searchPlaceholder="Search by Site or Asset Name.."></ix-generic-tree> `}};D.styles=[Mi,w],s([c({type:Object,attribute:!1})],D.prototype,"flagTree",void 0),s([c({type:Boolean})],D.prototype,"searchEnabled",void 0),s([c({type:Boolean})],D.prototype,"showCheckboxes",void 0),s([c({type:Boolean})],D.prototype,"disableCheckboxes",void 0),s([c({type:Boolean})],D.prototype,"filledIcons",void 0),s([c({type:Boolean})],D.prototype,"searching",void 0),s([c({type:String})],D.prototype,"selectedId",void 0),s([c({type:Object})],D.prototype,"flagUpdateManager",void 0),s([u()],D.prototype,"searchText",void 0),s([u()],D.prototype,"selectedIds",void 0),s([u()],D.prototype,"searchResultCount",void 0),s([u()],D.prototype,"searchResultIndex",void 0),D=s([y("user-flag")],D);let j=class extends T{constructor(){super(...arguments),this.searchEnabled=!1,this.showCheckboxes=!1,this.disableCheckboxes=!1,this.filledIcons=!1,this.searching=!1,this.flags=[],this.flagUpdateManager=new Fi,this._defaultUpdates=[]}reset(){this._defaultUpdates=[],this.flagUpdateManager.reset()}onAccordionToggle(e){!e.detail.isOpen||!this.flags.length||(this.flags.forEach(t=>{t.label!==e.detail.accordionId?t.isOpen=!1:t.isOpen=!0}),this.requestUpdate())}connectedCallback(){var e;if(super.connectedCallback(),this._defaultUpdates=[],!this.contact)return;const t=Rt.get();if(!(!((e=this._defaultUpdates)===null||e===void 0)&&e.length)&&t!=null&&t.accountNumber){const i=`${t.accountNumber}:${this.contact.id}`,o=it.capture(i);o&&it.lock(i),this._defaultUpdates=o}}disconnectedCallback(){this.reset()}onTreeCheckToggle(e){this.dispatchEvent(new CustomEvent(I.CheckToggle,{detail:{message:{...e.detail.message,flagLabel:e.detail.message.flagLabel,updates:e.detail.message.updates,rootNode:e.detail.message.rootNode}}}))}getUserFlagAssignmentCount(e){var t;const i=(t=e.rootNode.children)===null||t===void 0?void 0:t.at(0);i&&(i.checkedChildrenCount=Lt(i),this.renderAssignmentCount(e))}renderAssignmentCount(e){var t;const i=(t=e.rootNode.children)===null||t===void 0?void 0:t.at(0);return i!=null&&i.checkedChildrenCount?l` <span style="color:#53657a;margin-left:8px" data-testid="${oe.ASSIGNMENT_COUNT(e.label)}">${i.checkedChildrenCount}</span> `:b}renderUserFlag(e){var t,i;this.flagUpdateManager.create(e.label);const o=this.flagUpdateManager.nodeUpdates.find(n=>n.key===e.label);return!((t=this._defaultUpdates)===null||t===void 0)&&t.length&&!e.defaultsApplied&&(this._defaultUpdates.forEach(n=>{const a=Oe(e.rootNode,n.id);a&&(a.checked=!0,pe(a,e.rootNode),o==null||o.item.update(e.rootNode))}),e.defaultsApplied=!0),this.getUserFlagAssignmentCount(e),l` <div class="mb-2"> <ix-accordion ?isOpen="${e.isOpen}" .accordionId="${e.label}" @toggle="${this.onAccordionToggle}" data-testid="${oe.ACCORDION(e.label)}"> <p slot="title" class="m-0 pl-1"> ${e.label} ${this.renderAssignmentCount(e)} </p> <div style="padding-left:30px"> <div class="flex items-center"> <p class="dlr-text-small"> ${((i=ne.find(n=>n.text===e.label))===null||i===void 0?void 0:i.desc)||""} </p> <ix-progress .linear="${!1}" .indeterminate="${!0}" style="visibility:${this.searching?"visible":"hidden"}"></ix-progress> </div> <user-flag data-testid="${oe.COMPONENT(e.label)}" ?showCheckboxes="${this.showCheckboxes}" ?filledIcons="${this.filledIcons}" ?disableCheckboxes="${this.disableCheckboxes}" ?searchEnabled="${this.searchEnabled}" .flagTree="${e}" .flagUpdateManager="${this.flagUpdateManager}" @check-toggle="${n=>this.onTreeCheckToggle(n)}"></user-flag> </div> </ix-accordion> </div> `}render(){return l` ${this.flags.map(e=>this.renderUserFlag(e))}`}};j.styles=[Mi,w],s([c({type:Boolean})],j.prototype,"searchEnabled",void 0),s([c({type:Boolean})],j.prototype,"showCheckboxes",void 0),s([c({type:Boolean})],j.prototype,"disableCheckboxes",void 0),s([c({type:Boolean})],j.prototype,"filledIcons",void 0),s([c({type:Boolean})],j.prototype,"searching",void 0),s([c({type:Array,attribute:!1})],j.prototype,"flags",void 0),s([c({type:Object})],j.prototype,"contact",void 0),s([u()],j.prototype,"flagUpdateManager",void 0),s([u()],j.prototype,"_defaultUpdates",void 0),j=s([y("user-flags")],j);const Bi=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.user-details-header-text{margin-bottom:10px}.user-details-row{display:grid;grid-template-columns:1fr 1fr}.row-label{color:rgba(9,34,65,.7);word-break:break-word;width:192px}.row-value{color:#092241;overflow-wrap:anywhere}.user-details-body{display:flex;gap:10px;flex-direction:column}.arrow-forward-icon{padding-left:6px}.access-summary-header,.user-details-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between}ix-divider{margin-top:30px;margin-bottom:30px}.user-flag-information{margin-left:5px}.user-flag-learn-text{padding-bottom:20px}.user-flag-learn-text-link{color:#1456e0}.user-flag-evacuation{vertical-align:top;line-height:18px}.evacuation-label{padding-left:8px;vertical-align:top}.evacuation-text{text-align:justify;padding-left:5px;padding-top:10px;padding-bottom:30px;color:#5d6d82;margin-right:40px}.flags-description ix-button{margin-top:.5rem;width:112px}@media only screen and (max-width:600px){.flags-description{flex-direction:column-reverse;text-align:center}.flags-description p{text-align:left}.evacuation-text{margin-right:0}.flags-description ix-button{display:block}.subheading-container{flex-direction:column;align-items:start;gap:.75rem}.submit-btn{width:100%}.user-details-row{grid-template-columns:1fr}.step-five-next-container{display:flex;justify-content:center}}ix-phone-number{--ix-phone-number-font-size:16px;--ix-phone-number-text-color:#092241}`;let Q=class extends T{constructor(){super(...arguments),this.dataForAccounts=[],this.evacAssistanceRequired=!1,this._dataForAccounts=[]}get selectedAccount(){return this._dataForAccounts.find(e=>e.accountId===this._selectedAccountId)}connectedCallback(){super.connectedCallback(),this._dataForAccounts=this.dataForAccounts,this._selectedAccountId=this.selectedAccountId}setSelectedFlag(e){this._selectedFlagId=e}setInitialFlag(){this._selectedFlagId=ne[0].key}toggleActiveCard(e){this._selectedAccountId=e;const t=this._dataForAccounts.find(i=>i.accountId===e);t&&t.genericFlagsData&&(this._selectedFlagId=vt(t.genericFlagsData[0].label)),this.setSelectedFlag(this._selectedFlagId),this.setInitialFlag(),this.requestUpdate()}dispatchNextStepEvent(){this.dispatchEvent(new CustomEvent(x.NextStep,{bubbles:!0,composed:!0}))}renderAccountTabbingCard(){return l` <account-tabbing-card data-testid="step-five-account-cards" .dataForAccounts="${this._dataForAccounts}" .selectedAccountId="${this._selectedAccountId}" @toggle-active-card="${e=>this.toggleActiveCard(e.detail.accountId)}"> </account-tabbing-card> `}renderElevatedNextButton(){return l` <div class="flex justify-between flags-description"> <p style="max-width:550px" class="dlr-text-caption evacuation-text"> The locations chosen for this account's Portal access will automatically default selections for the user flags listed below. You have the flexibility to modify these selections by deselecting specific locations and choosing others as needed. </p> <div class="step-five-next-container"> <ix-button type="submit" has-icon trailing-icon @click="${this.dispatchNextStepEvent}" data-testid="step-five-next-button"> <span class="uppercase font-bold tracking-wider">Next</span> <md-icon slot="icon">east</md-icon> </ix-button> </div> </div> `}renderUserFlags(){var e,t;const i=o=>{var n;const a=(n=structuredClone(o.detail.message.updates))!==null&&n!==void 0?n:[];this.selectedAccount&&a.forEach(r=>{const d=this.selectedAccount.flagData.findIndex(p=>p.key===r.key);d>-1?this.selectedAccount.flagData[d]=structuredClone(r):this.selectedAccount.flagData.push(r)}),this.dispatchEvent(new CustomEvent(x.UpdateFlags,{bubbles:!0}))};return l` <user-flags class="grid grid-cols-1 gap-3" showCheckboxes filledIcons searchEnabled .flags="${(t=(e=this.selectedAccount)===null||e===void 0?void 0:e.genericFlagsData)!==null&&t!==void 0?t:[]}" @check-toggle="${i}" data-testid="step-five-user-flags"></user-flags> `}render(){return l` <div class="wizard-step-content"> ${this.renderAccountTabbingCard()} ${this.renderElevatedNextButton()} ${this.renderUserFlags()} </div> `}};Q.styles=[Bi,w,re],s([c({type:Object})],Q.prototype,"newContact",void 0),s([c({type:Array})],Q.prototype,"dataForAccounts",void 0),s([c({type:String})],Q.prototype,"selectedAccountId",void 0),s([c({type:Boolean,reflect:!0})],Q.prototype,"evacAssistanceRequired",void 0),s([u()],Q.prototype,"_dataForAccounts",void 0),s([u()],Q.prototype,"_selectedAccountId",void 0),s([u()],Q.prototype,"_selectedFlagId",void 0),Q=s([y("create-user-step-five")],Q);class _{}_.SUCCESS_CREATED="create-user-success",_.SUCCESS_ICON="create-user-success-icon",_.USER_DETAILS="create-user-success-details",_.SUCCESS_MESSAGE="create-user-success-message",_.VIEW_USER="view-user-button",_.BACK_TO_USERS="back-to-users-button",_.S6={DETAILS_HEADER:"s6-details-header",DETAILS_BODY:"s6-details-body",DETAILS_FIRST_NAME:"s6-details-first-name",DETAILS_LAST_NAME:"s6-details-last-name",DETAILS_EMAIL:"s6-details-email",DETAILS_PHONE:"s6-details-phone",PORTAL_TREE:"s6-portal-tree",FLAG_TREE:"s6-flag-tree",TAB_PORTAL:"s6-tab-portal",TAB_FLAGS:"s6-tab-flags"};let Y=class extends T{constructor(){super(...arguments),this.newContact={},this.dataForAccounts=[],this.submitting=!1,this._readonlyTreeViews=[],this._readonlyUserFlags=[],this._selectedTab="roles-and-portal-access",this._isFirstLoad=!0}connectedCallback(){super.connectedCallback(),this._readonlyTreeViews=this.generateReadOnlyTreeViews(),this._readonlyUserFlags=this.generateReadOnlyUserFlags()}isTabActive(e){return this._isFirstLoad?b:this._selectedTab===e}generateReadOnlyTreeViews(){const e=[];return this.dataForAccounts.forEach(t=>{let i=[];t.rolesData.forEach(o=>{if(!o.role.removed){const n=Ot(o.genericTreeView),a=zt(structuredClone(n));qt(a),i.push({role:o.role.name,tree:a})}}),e.push({accountName:t.accountName,roleTrees:i}),i=[]}),e}generateReadOnlyUserFlags(){const e=[];return this.dataForAccounts.forEach(t=>{let i=[];t.genericFlagsData&&(t.genericFlagsData.forEach(o=>{const n=Ot(o.rootNode),a=zt(structuredClone(n));qt(a),i.push({label:o.label,rootNode:a,isOpen:!1})}),e.push({accountName:t.accountName,flagTrees:i}),i=[])}),e}renderUserDetails(){return l` <div class="user-details"> <div class="user-details-header" data-testid="${_.S6.DETAILS_HEADER}"> <div class="user-details-header-text">User Details</div> <ix-icon-button class="icon-btn_primary" filledIcon icon="edit" ?disabled="${this.submitting}" @click="${()=>this.dispatchSetStepEvent(1)}"></ix-icon-button> </div> <div class="user-details-body" data-testid="${_.S6.DETAILS_BODY}"> <div class="user-details-row"> <div class="dlr-text-default row-label">First Name</div> <div class="dlr-text-default row-value" data-testid="${_.S6.DETAILS_FIRST_NAME}"> ${this.newContact.firstName} </div> </div> <div class="user-details-row"> <div class="dlr-text-default row-label">Last Name</div> <div class="dlr-text-default row-value" data-testid="${_.S6.DETAILS_LAST_NAME}"> ${this.newContact.lastName} </div> </div> <div class="user-details-row"> <div class="dlr-text-default row-label">Email Address</div> <div class="dlr-text-default row-value" data-testid="${_.S6.DETAILS_EMAIL}"> ${this.newContact.email} </div> </div> <div class="user-details-row"> <div class="dlr-text-default row-label">Phone</div> <ix-phone-number data-testid="${_.S6.DETAILS_PHONE}" .number="${this.newContact.phone}"></ix-phone-number> </div> </div> </div> `}renderTabs(){return l` <ix-tabs> <ix-primary-tab @click="${()=>{this._selectedTab="roles-and-portal-access",this._isFirstLoad=!1}}" ?active="${this.isTabActive("roles-and-portal-access")}" data-testid="${_.S6.TAB_PORTAL}"> <span style="${this._selectedTab==="roles-and-portal-access"?"":"color: #092241; opacity: 60%;"}" class="flex items-center uppercase font-bold tracking-wide"> Roles and Portal Access </span> </ix-primary-tab> <ix-primary-tab @click="${()=>{this._selectedTab="user-flags",this._isFirstLoad=!1}}" ?active="${this.isTabActive("user-flags")}" data-testid="${_.S6.TAB_FLAGS}"> <span style="${this._selectedTab==="user-flags"?"":"color: #092241; opacity: 60%;"}" class="flex items-center uppercase font-bold tracking-wide">User Flags</span></ix-primary-tab> </ix-tabs> `}renderRolesAndPortalAccessSummary(){return this._selectedTab!=="roles-and-portal-access"?b:l` <div class="py-4"> ${this._readonlyTreeViews.map(e=>l` <div> <h4 style="color:#092241;opacity:60%" class="pt-1 pb-3">${e.accountName}</h4> ${e.roleTrees.map(t=>l` <div class="pb-2"> <div class="pb-1">${t.role}</div> <ix-generic-tree filledIcons .rootNode="${t.tree}" data-testid="${_.S6.PORTAL_TREE}"></ix-generic-tree> </div> `)} </div>`)} </div> `}renderUserFlagsSummary(){return this._selectedTab!=="user-flags"?b:l`<div> ${this._readonlyUserFlags.map(e=>l` <div class="py-2"> <h4 class="font-bold pb-2">${e.accountName}</h4> <user-flags filledIcons disableCheckboxes .flags="${e.flagTrees}" data-testid="${_.S6.FLAG_TREE}"></user-flags> </div>`)} </div>`}renderLearnMoreText(){return this._selectedTab==="user-flags"?l` <div style="padding-top:15px"> Learn more about user flags <a class="user-flag-learn-text-link" href="#">here.</a> </div> `:l` <div style="padding-top:15px" class="text-black roles-and-portal-access-text"> Learn more about roles and portal access <a class="user-flag-learn-text-link" href="#">here.</a> </div> `}dispatchSetStepEvent(e){this.dispatchEvent(new CustomEvent(x.SetStep,{detail:{step:e},bubbles:!0,composed:!0}))}render(){return l` <div class="wizard-step-content overflow-y-auto overflow-x-hidden md:p-1"> ${this.renderUserDetails()} <ix-divider></ix-divider> ${this.renderTabs()} ${this.renderLearnMoreText()} ${this.renderRolesAndPortalAccessSummary()} ${this.renderUserFlagsSummary()} </div> `}};Y.styles=[Bi,w,re],s([c({type:Object})],Y.prototype,"newContact",void 0),s([c({type:Array})],Y.prototype,"dataForAccounts",void 0),s([c({type:Boolean})],Y.prototype,"submitting",void 0),s([u()],Y.prototype,"_readonlyTreeViews",void 0),s([u()],Y.prototype,"_readonlyUserFlags",void 0),s([u()],Y.prototype,"_selectedTab",void 0),s([u()],Y.prototype,"_isFirstLoad",void 0),Y=s([y("create-user-step-six")],Y);const fs=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.hover-layer-active{width:24px;height:24px;border-radius:9999px;float:right}.hover-layer-active:hover{transition:.15s;background-color:#d3d3d3}.hover-layer-disabled{width:24px;height:24px;border-radius:9999px;float:right}.drawer-container{z-index:100;display:flex;flex-direction:row;position:fixed;width:100%;height:100%;top:var(--intraportal-nav-height,0);right:0;background-color:rgba(0,0,0,.5);animation-duration:.25s;animation-name:fadeIn;animation-timing-function:ease-out}.drawer-container-hide{z-index:100;display:flex;flex-direction:row;flex:0 0 auto;position:fixed;width:100vw;height:100vh;top:0;right:0;background-color:rgba(0,0,0,.5);animation-duration:.25s;animation-name:fadeOut;animation-timing-function:ease-out}.drawer-filler{flex:1}aside{padding:32px 40px 40px;border-radius:1rem 0 0 1rem}.drawer-slide-in{width:100vw;max-width:816px;height:calc(100% - var(--intraportal-nav-height,0px));float:right;display:flex;flex-direction:column;background-color:#fff;box-sizing:border-box;animation-duration:.25s;animation-name:slideInFromRight}.drawer-slide-out{width:100vw;max-width:810px;height:100vh;float:right;background-color:#fff;box-sizing:border-box;animation-duration:.25s;animation-name:slideOutToRight}@media screen and (min-width:1024px){.drawer{width:45%}}.drawer-header{display:flex;justify-content:space-between;align-items:center}.drawer-body{flex-grow:1;overflow:hidden}.drawer-header__hide-btn{flex:1}.drawer-header__title{flex:1;text-align:center;flex-grow:1;flex-shrink:0}.drawer-header__close-btn{flex:1}.hide-text{cursor:pointer;user-select:none}.hide-icon{font-weight:700}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideOutToRight{from{transform:translateX(0)}to{transform:translateX(100%)}}@media screen and (max-width:600px){aside{border-radius:0;padding:1rem}}`,ot={ToggleDialog:"toggle-dialog",ToggleDraft:"toggle-draft",CloseSuccess:"close-success",BlurDrawer:"blur-drawer"};let ae=class extends T{constructor(){super(...arguments),this.isVisible=!1,this.summaryScreen=!1,this.submitting=!1,this.showMinimiseButton=!1}static get styles(){return[fs,w]}dispatchDialogToggleEvent(){this.submitting||this.dispatchEvent(new CustomEvent(ot.ToggleDialog,{composed:!0,bubbles:!0}))}dispatchDraftToggleEvent(){var e,t;(e=this.drawer)===null||e===void 0||e.setAttribute("class","drawer-slide-out"),(t=this.drawerContainer)===null||t===void 0||t.setAttribute("class","drawer-container-hide"),setTimeout(()=>{this.dispatchEvent(new CustomEvent(ot.ToggleDraft,{bubbles:!0,composed:!0}))},250)}dispatchBlurEvent(){this.dispatchEvent(new CustomEvent(ot.BlurDrawer,{bubbles:!0,composed:!0}))}dispatchDrawerCloseEvent(){this.dispatchEvent(new CustomEvent(ot.CloseSuccess,{bubbles:!0,composed:!0}))}render(){const e=this.isVisible?"slide-in":"slide-out",t=this.submitting?"hover-layer-disabled":"hover-layer-active";return this.isVisible?(document.body.style.overflow="hidden",document.documentElement.style.overflow="hidden",l` <div class="drawer-container" data-testid="ui-um-drawer-container"> <div class="drawer-filler" @click="${this.dispatchBlurEvent}" @keypress="${this.dispatchBlurEvent}"></div> <aside class="drawer-${e}"> <div class="drawer-header"> <div class="drawer-header__hide-btn"> ${!this.summaryScreen&&this.showMinimiseButton?l` <ix-button class="flex w-24" appearance="text" has-icon @click="${this.dispatchDraftToggleEvent}" ?disabled="${this.submitting}" data-testid="hide-drawer-button"> <md-icon class="hide-icon" slot="icon">fullscreen_exit</md-icon> <p class="dlr-text-small hide-text font-bold uppercase">Hide</p> </ix-button> `:b} </div> <div> <slot name="centre-top"></slot> </div> <div class="drawer-header__close-btn"> <div class="${t}"> <md-icon class="font-extralight" @click="${this.summaryScreen?this.dispatchDrawerCloseEvent:this.dispatchDialogToggleEvent}" data-testid="close-drawer-icon">Close</md-icon> </div> </div> </div> <div class="drawer-body"> <slot name="content"></slot> </div> </aside> </div> `):(document.body.style.overflow="auto",document.documentElement.style.overflow="initial",b)}};s([c({type:Boolean})],ae.prototype,"isVisible",void 0),s([c({type:Boolean})],ae.prototype,"summaryScreen",void 0),s([c({type:Boolean})],ae.prototype,"submitting",void 0),s([c({type:Boolean})],ae.prototype,"showMinimiseButton",void 0),s([F("aside")],ae.prototype,"drawer",void 0),s([F(".drawer-container")],ae.prototype,"drawerContainer",void 0),ae=s([y("ui-um-drawer")],ae);const ys=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.wizard-body{overflow:hidden;height:100%}.wizard-footer{float:right}.form{height:100%}`,St={UpdateForm:"update-form",NextStepWizard:"next-step-wizard",PrevStep:"prev-step-wizard",ButtonToggle:"button-toggle"};let Ut=class extends T{constructor(){super(...arguments),this.updateFormBinding=this.updateForm.bind(this),this.handleSlotChangeBinding=this.handleSlotChange.bind(this),this.wizardForm=new FormData}static get styles(){return[ys,w]}connectedCallback(){super.connectedCallback(),window.addEventListener(St.UpdateForm,this.updateFormBinding)}disconnectedCallback(){var e;super.disconnectedCallback(),window.removeEventListener(St.UpdateForm,this.updateFormBinding);const t=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot");t&&t.removeEventListener("slotchange",this.handleSlotChangeBinding)}firstUpdated(){var e;const t=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot");t&&t.addEventListener("slotchange",this.handleSlotChangeBinding)}updateForm(e){e.detail.forEach((t,i)=>this.wizardForm.set(i,t))}handleSlotChange(){var e;const t=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot");t&&t.assignedElements().forEach(i=>{i.wizardForm=this.wizardForm})}dispatchButtonToggleEvent(e){this.dispatchEvent(new CustomEvent(St.ButtonToggle,{detail:e,bubbles:!0,composed:!0}))}render(){return l` <div class="wizard-body"> <form class="form"> <slot name="wizard-content"></slot> </form> </div> `}};s([c({type:Object})],Ut.prototype,"wizardForm",void 0),Ut=s([y("ui-um-wizard")],Ut);const bs=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.wizard-step-form{display:flex;flex-direction:column;height:100%}.step{overflow:auto}.wizard-step__btn-group{padding:20px 0;float:right}.input-group{display:flex;flex-direction:row;gap:20px;margin-bottom:20px}.input-group ix-phone-input,.input-group ix-textbox{flex:1}.textfield{width:100%}.subheading-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:36px;margin-top:24px}.submit-btn{width:167.44px}.submit-btn-content{display:flex;align-items:center;flex-direction:row;justify-content:space-between}@media screen and (max-width:600px){.input-group{display:block;flex-direction:row;gap:20px;margin-bottom:20px}.input-group ix-phone-input,.input-group ix-textbox{flex:1}}`;let se=class extends T{constructor(){super(...arguments),this.handleSlotChangeBinding=this.handleSlotChange.bind(this),this.stepTitle="",this.stepSubTitle="",this.isRequired=!1,this.isLastStep=!1,this.submitting=!1}static get styles(){return[bs,Ie,w]}disconnectedCallback(){var e;super.disconnectedCallback();const t=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot");t&&t.removeEventListener("slotchange",this.handleSlotChangeBinding)}firstUpdated(){var e;const t=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot");t&&t.addEventListener("slotchange",this.handleSlotChangeBinding)}handleSlotChange(){var e,t;const i=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot");for(const o of i.assignedNodes())(t=this.form)===null||t===void 0||t.insertBefore(o,i)}dispatchSubmitEvent(e){e.preventDefault(),this.dispatchEvent(new CustomEvent(x.CreateContact,{bubbles:!0,composed:!0}))}render(){return l` <form class="wizard-step-form"> <div class="wizard-step-heading pt-6"> <span class="dlr-text-page-title" data-testid="dlr-text-page-title">${this.stepTitle}</span> <div class="subheading-container"> <span class="dlr-text-heading" data-testid="dlr-text-heading">${this.stepSubTitle}</span> ${this.isRequired?l` <span class="dlr-text-small italic required-field">*denotes required field</span> `:b} ${this.isLastStep?l` <ix-button class="submit-btn" has-icon ?submitting="${this.submitting}" @click="${e=>this.dispatchSubmitEvent(e)}" data-testid="wizard-submit-button"> <div class="submit-btn-content"> Yes, Submit <md-icon class="arrow-forward-icon" slot="icon">arrow_forward</md-icon> </div> </ix-button> `:b} </div> </div> <slot></slot> </form> `}};s([c({type:String})],se.prototype,"stepTitle",void 0),s([c({type:String})],se.prototype,"stepSubTitle",void 0),s([c({type:Boolean})],se.prototype,"isRequired",void 0),s([c({type:Boolean})],se.prototype,"isLastStep",void 0),s([c({type:Boolean})],se.prototype,"submitting",void 0),s([F("form")],se.prototype,"form",void 0),se=s([y("ui-um-wizard-step")],se);const xs=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}ix-dialog{position:absolute;z-index:101}.create-user-wizard{height:100%;display:flex;flex-direction:column}.dlr-text-small.step-progress{letter-spacing:1.25px}@media only screen and (max-width:600px){.success-actions{flex-direction:column;width:100%}.success-actions ix-button{display:block;width:100%}}`;function ws(e,t){const i={id:"root",label:"",children:[],customerKnownSpaceName:""},o=new tt,n=structuredClone(e.rolesData.filter(h=>h.locations.length>0).filter(h=>!h.role.removed).flatMap(h=>h.locations)),a=t.data;a&&a.length&&fe(a[0],i),n.forEach(h=>{const v=Oe(i,h.id);v&&(v.checked=!0,pe(v,i),o.update(i))});const r={label:"",isOpen:!1,rootNode:i},d=[],p=ne.map(h=>{const v=structuredClone(r);return v.updateService=new tt,v.updateService.updates=structuredClone(o.nodeUpdates),v.label=h.text,d.push({key:h.text,items:[]}),v});e.genericFlagsData=[...p],e.flagData=d}const As=e=>({id:e.id,name:e.account_name,status:e.status,accountNumber:e.account_number,displayName:e.account_friendly_name,statusUpdateAt:e.updated_at,statusUpdateBy:e.updated_by}),$t=e=>{var t;const i=[];return(t=e.account_associations)===null||t===void 0||t.forEach(o=>{i.push(As(o))}),{id:e.id,firstName:e.first_name,lastName:e.last_name,email:e.email,phone:e.phone,evacAssistance:e.evacuation_assistance_required,accounts:i,status:"Active"}},Cs=e=>{var t;const i=[];return(t=e.accounts)===null||t===void 0||t.forEach(o=>{i.includes(o.accountNumber)||i.push(o.accountNumber)}),{first_name:e.firstName,last_name:e.lastName,email:e.email,phone:e.phone,account_numbers:i,evacuation_assistance_required:e.evacAssistance}},Ts=e=>({id:e.id,first_name:e.firstName,last_name:e.lastName,email:e.email,phone:e.phone,evacuation_assistance_required:e.evacAssistance}),Is=e=>({accountNumber:e.accountNumber,includeChildAccounts:!0,page:e.page,size:e.size,firstName:e.firstName,lastName:e.lastName,email:e.email,sort:e.sort,order:e.order}),_s=e=>{var t,i;const o=[];return(t=e.content)===null||t===void 0||t.forEach(n=>{o.push($t(n))}),{contacts:o,recordCount:(i=e.pageable)===null||i===void 0?void 0:i.total_elements}},ks=e=>({id:e.id}),Es=e=>({id:e.id,userProfile:Ts(e.contactInput)}),Rs=e=>({userInput:Cs(e.contactInput)});class Ss{async update(t){try{const i=Es(t);return g.UsersApi.updateUser(i)}catch(i){return m.handleError("Failed to update user.")}}async create(t){try{const i=Rs(t),o=await g.UsersApi.createUser(i);return $t(o)}catch(i){return m.handleError(i,`Failed to create user for ${t.contactInput.email}`),{}}}async search(t){try{const i=Is(t),o=await g.UsersApi.getUsers(i);return _s(o)}catch(i){return m.handleError(i,"Failed to get users."),{}}}async get(t){try{const i=ks(t),o=await g.UsersApi.getUser(i);return $t(o)}catch(i){return m.handleError(i,"Failed to get user."),{}}}}const Nt=new Ss,Li=(e,t)=>{var i;const o={expanded:!1,id:e.id,label:(i=e.displayName)!==null&&i!==void 0?i:e.name,parentId:t.id};return e.subaccounts&&(o.children=e.subaccounts.map(n=>Li(n,o))),o},Us=e=>{const t={expanded:!1,id:"root",label:"",parentId:"",children:[],disabled:!1};return t.children=e.map(i=>Li(i,t)),t};function Oi(e,t){var i;const o={id:e.id,label:(i=e.displayName)!==null&&i!==void 0?i:e.name,parentId:t.id,expanded:!1,checked:!1,indeterminate:!1,children:[]};return e.subaccounts&&(o.children=e.subaccounts.map(n=>Oi(n,o))),o}function $s(e){const t={id:"root",parentId:"",label:"",expanded:!1,checked:!1,children:[]};return e.forEach(i=>t.children.push(Oi(i,t))),t}const Ns=e=>{const t=Tt(e);return Us(t)};let C=class extends T{constructor(){super(...arguments),this.showDrawer=!1,this.success=!1,this.submitting=!1,this.newUserId="",this.permissions=[],this.roles=[],this.treeData=[],this.loading=!1,this.selectedAccountId="",this.selectedRoleId="",this.step=1,this.validatingStepOne=!1,this.newContact={firstName:"",lastName:"",email:"",phone:"",accounts:[],evacAssistance:!1},this.dataForAccounts=[],this.showManageUserDialog=!1,this.userId="",this.stepTitle="Add New User",this.isNextButtonEnabled=!1,this.canQuickNavigateSteps={1:!1,2:!1,3:!1,4:!1,5:!1},this.maxQuickStep=1}connectedCallback(){super.connectedCallback(),this.setupAccountSelector()}get stepOne(){var e,t;return(t=(e=this.renderRoot.querySelector("#step-1"))===null||e===void 0?void 0:e.shadowRoot)===null||t===void 0?void 0:t.querySelector("create-user-step-one")}setupAccountSelector(){const e=It().filter(t=>L.hasExternalUserCreate(t.accountNumber));this.accounts=Tt(e),this.accountTree=$s(this.accounts),this.permissions=U.getPermissions()}resetStep(){this.handleDialogReset("close")}setStep(e){this.step=e,this.canQuickNavigateSteps={1:!0,2:!0,3:!0,4:!0,5:!0}}resetSteps(e){Object.keys(this.canQuickNavigateSteps).forEach(t=>{e.includes(t)||(this.canQuickNavigateSteps={...this.canQuickNavigateSteps,[t]:!1})})}onNextButtonToggle(e){this.isNextButtonEnabled=e.detail,this.step===1?this.canQuickNavigateSteps={...this.canQuickNavigateSteps,1:!1}:this.step===2?this.resetSteps(["1"]):this.step===3?this.resetSteps(["1","2"]):this.step===4?this.resetSteps(["1","2","3"]):this.canQuickNavigateSteps={...this.canQuickNavigateSteps,[this.step]:!1},this.maxQuickStep=this.step}onPrevStep(){this.step!==1&&(this.step===3&&this.collapseAccountTree(),(this.step===5||this.step===6)&&this.collapseLocationTrees(),this.step===6&&(this.isNextButtonEnabled=!0),this.canQuickNavigateSteps[(this.step-1).toString()]=!0,this.maxQuickStep=Math.max(this.maxQuickStep,this.step),this.step-=1)}onQuickNextStep(){this.canQuickNavigateSteps[this.step]&&this.onNextStep()}async onNextStep(){var e;if(this.isNextButtonEnabled){if(this.loading=!0,this.step===1){if(this.collapseAccountTree(),!this.canQuickNavigateSteps[1]){this.validatingStepOne=!0;const t=await this.validateEmail();if(this.validatingStepOne=!1,!t){this.loading=!1;return}}}else if(this.step===2&&!this.canQuickNavigateSteps[2]){if(!this.accountTree)return;const t=((e=this.checkedAccounts)===null||e===void 0?void 0:e.map(a=>a.id))||[],i=await At.getAccountData(t),o=de.get(),n=Pe(this.newContact.email)&&L.hasAssignInternalRoleCreate(U.getAccountNumber());this.roles=[],this.treeData=[];for(let a=0;a<t.length;a+=1){const r=_t(t[a],o,n),d=t[a];this.roles.push({accountId:d,roles:structuredClone(r)}),this.treeData.push({contactId:"",accountNumber:d,roleId:"",data:i[a]})}}else if(this.step===3)this.selectedAccountId=this.dataForAccounts[0].accountId,this.selectedRoleId=this.dataForAccounts[0].rolesData[0].role.id;else if(this.step===4){for(const t of this.dataForAccounts){const i=this.treeData.find(o=>o.accountNumber===t.accountId);i&&ws(t,i)}this.collapseLocationTrees()}else this.step===5&&this.collapseLocationTrees();this.step!==4&&(this.isNextButtonEnabled=!1),this.step+1===this.maxQuickStep&&(this.canQuickNavigateSteps[this.step]=!1),this.loading=!1,this.step+=1}}collapseAccountTree(){this.accountTree&&(this.accountTree.expanded=!1,this.accountTree.children&&this.accountTree.children.forEach(e=>{e.expanded=!1,e.children&&e.children.forEach(t=>{t.expanded=!1})}))}collapseLocationTrees(){this.dataForAccounts.forEach(e=>{var t;e.rolesData.forEach(i=>{ze(i.genericTreeView)}),(t=e.genericFlagsData)===null||t===void 0||t.forEach(i=>{ze(i.rootNode)})})}async validateEmail(){const e=await Nt.search({email:this.newContact.email.split("@")[0]});return e.contacts.find(t=>t.email===this.newContact.email)?(this.userId=e.contacts[0].id,this.toggleManageUserDialog(),!1):!0}handleDialogReset(e){this.step=1,this.newContact={id:"",firstName:"",lastName:"",email:"",phone:"",accounts:[],evacAssistance:!1},this.setupAccountSelector(),this.stepOne&&(this.stepOne.clearTextFields(),this.stepOne.resetErrorStates(),this.stepOne._nextButtonEnabled=!1),this.dataForAccounts=[],this.selectedAccountId="",this.selectedRoleId="",this.canQuickNavigateSteps={1:!1,2:!1,3:!1,4:!1,5:!1},this.maxQuickStep=1,this.isNextButtonEnabled=!1,this.dispatchResetSuccessEvent(),e==="toggle"?this.dispatchToggleDrawerEvent():this.dispatchDrawerCloseEvent()}updateAccounts(e){var t;this.accountTree=e.detail.rootNode,!((t=this.accountTree)===null||t===void 0)&&t.children&&(this.checkedAccounts=mi(this.accountTree.children,ca(this.accounts||[])),this.dataForAccounts=[])}onUpdateContact(e){const t=e.detail.newContact;this.newContact.email!==t.email&&this.newContact.email!==""&&(this.resetSteps(["1"]),this.dataForAccounts=[]),this.newContact=t}renderWizardStep(){switch(this.step){case 1:return l` <ui-um-wizard-step id="step-1" slot="wizard-content" isRequired .stepTitle="${this.stepTitle}" .stepSubTitle="${"User Information"}" data-testid="create-user-step-one"> <create-user-step-one .newContact="${this.newContact}" .validatingForm="${this.validatingStepOne}" @update-contact="${e=>this.onUpdateContact(e)}" @next-step="${this.onNextStep}" @validate-step="${e=>this.isNextButtonEnabled=e.detail}" @next-button-toggle="${e=>this.onNextButtonToggle(e)}"></create-user-step-one> </ui-um-wizard-step> `;case 2:return l` <ui-um-wizard-step slot="wizard-content" isRequired .stepTitle="${this.stepTitle}" .stepSubTitle="${"Accounts*"}" data-testid="create-user-step-two"> <create-user-step-two class="flex flex-col overflow-auto grow" .accountTree="${this.accountTree}" @update-accounts="${e=>this.updateAccounts(e)}" @next-step="${this.onNextStep}" @validate-step="${e=>this.isNextButtonEnabled=e.detail}" @next-button-toggle="${e=>this.onNextButtonToggle(e)}"></create-user-step-two> </ui-um-wizard-step> `;case 3:return l` <ui-um-wizard-step slot="wizard-content" isRequired .stepTitle="${this.stepTitle}" .stepSubTitle="${"Roles"}" data-testid="create-user-step-three"> <create-user-step-three class="flex flex-col overflow-auto grow" .checkedAccounts="${this.checkedAccounts||[]}" .roles="${this.roles}" .dataForAccounts="${this.dataForAccounts}" .treeData="${this.treeData}" @update-dfa="${e=>{this.dataForAccounts=e.detail.dataForAccounts}}" @next-step="${this.onNextStep}" @validate-step="${e=>this.isNextButtonEnabled=e.detail}" @next-button-toggle="${e=>this.onNextButtonToggle(e)}"></create-user-step-three> </ui-um-wizard-step> `;case 4:return l` <ui-um-wizard-step slot="wizard-content" isRequired .stepTitle="${this.stepTitle}" .stepSubTitle="${"Portal Access"}" data-testid="create-user-step-four"> <create-user-step-four class="step" .dataForAccounts="${this.dataForAccounts}" .selectedAccountId="${this.selectedAccountId}" .selectedRoleId="${this.selectedRoleId}" .permissions="${this.permissions}" .contact="${this.newContact}" @update-dfa="${e=>this.dataForAccounts=e.detail.dataForAccounts}" @next-step="${this.onNextStep}" @validate-step="${e=>this.isNextButtonEnabled=e.detail}" @next-button-toggle="${e=>this.onNextButtonToggle(e)}"></create-user-step-four> </ui-um-wizard-step> `;case 5:return l` <ui-um-wizard-step slot="wizard-content" .stepTitle="${this.stepTitle}" .stepSubTitle="${"User Flags"}" data-testid="create-user-step-five"> <create-user-step-five class="step" .dataForAccounts="${this.dataForAccounts}" .selectedAccountId="${this.selectedAccountId}" .evacAssistanceRequired="${this.newContact.evacAssistance}" @evac-assistance-required="${e=>this.newContact.evacAssistance=e.detail}" @update-flags="${()=>this.canQuickNavigateSteps={...this.canQuickNavigateSteps,5:!1}}" @next-step="${this.onNextStep}"> </create-user-step-five> </ui-um-wizard-step> `;case 6:return l` <ui-um-wizard-step isLastStep slot="wizard-content" .stepTitle="${this.stepTitle}" .stepSubTitle="${"Are these details correct?"}" ?submitting="${this.submitting}" @create-contact="${this.dispatchCreateNewContactEvent}" data-testid="create-user-step-six"> <create-user-step-six class="step" .dataForAccounts="${this.dataForAccounts}" .newContact="${this.newContact}" ?submitting="${this.submitting}" @set-step="${e=>this.setStep(e.detail.step)}"></create-user-step-six> </ui-um-wizard-step> `}return b}renderProgress(){return l`<ix-progress slot="wizard-content" indeterminate></ix-progress>`}renderSuccessMessage(){return l` <div data-testid="${_.SUCCESS_CREATED}" slot="content" class="flex flex-col justify-between items-center pt-40 h-96"> <ix-icon data-testid="${_.SUCCESS_ICON}" style="color:#4caf50;font-size:75px;font-weight:700">check_circle</ix-icon> <span data-testid="${_.USER_DETAILS}" class="text-2xl font-bold pb-5">${this.newContact.firstName} ${this.newContact.lastName} Created</span> <div data-testid="${_.SUCCESS_MESSAGE}" class="pb-5"> ${this.newContact.firstName} ${this.newContact.lastName} has been successfully created. </div> <div class="flex justify-between w-400 success-actions"> <ix-button data-testid="${_.VIEW_USER}" appearance="outlined" @click="${this.handleViewUserRedirect}" class="p-1"><span class="font-bold text-sm tracking-wider uppercase">View user</span></ix-button> <ix-button data-testid="${_.BACK_TO_USERS}" appearance="filled" class="p-1" @click="${()=>this.handleDialogReset("close")}"><span class="font-bold uppercase text-sm tracking-wider">Back to users</span></ix-button> </div> </div> `}handleViewUserRedirect(){this.handleDialogReset("close"),je(O.UserManagementDetails,`?id=${this.newUserId}`),this.newUserId=""}renderManageUserDialog(){return l` <ix-dialog ?open="${this.showManageUserDialog}"> <div class="dlr-text-heading" slot="headline"> This user already exists for your Master Account </div> <div class="dialog-actions" slot="actions"> <ix-button appearance="text" @click="${this.handleManageUserDialogClose}" slot="secondary"> Cancel </ix-button> <ix-button appearance="text" @click="${this.handleManageUserRedirect}" slot="primary"> Manage User </ix-button> </div> </ix-dialog> `}toggleManageUserDialog(){this.showManageUserDialog=!this.showManageUserDialog}handleManageUserDialogClose(){this.toggleManageUserDialog(),this.handleDialogReset("close")}handleManageUserRedirect(){this.toggleManageUserDialog(),this.handleDialogReset("close"),je(O.UserManagementDetails,`?id=${this.userId}`),this.userId=""}dispatchToggleDrawerEvent(){this.dispatchEvent(new CustomEvent(x.ToggleDrawer,{bubbles:!0,composed:!0}))}dispatchDrawerCloseEvent(){this.dispatchEvent(new CustomEvent(x.CloseDrawer,{bubbles:!0,composed:!0}))}dispatchResetSuccessEvent(){this.dispatchEvent(new CustomEvent(x.ResetSuccess,{bubbles:!0,composed:!0}))}dispatchCreateNewContactEvent(){this.dispatchEvent(new CustomEvent(x.CreateNewContact,{detail:{newContact:this.newContact,dataForAccounts:this.dataForAccounts},bubbles:!0,composed:!0}))}renderDrawerControls(){return l` <div slot="centre-top"> <div class="flex"> ${this.success?b:l` <ix-icon-button class="icon-btn_primary" ?disabled="${this.step===1||this.loading}" @click="${()=>this.onPrevStep()}" icon="chevron_left" data-testid="prev-step-icon"> </ix-icon-button> <span class="dlr-text-small uppercase font-bold pt-[10px] px-2 step-progress" data-testid="step-progress"> ${this.step} of 6 </span> <ix-icon-button style="${this.step===6?"visibility: hidden":""}" class="icon-btn_primary ${this.step===6||!this.isNextButtonEnabled||this.loading?"disabled":""}" ?disabled="${!this.canQuickNavigateSteps[this.step]||this.loading}" @click="${()=>this.onQuickNextStep()}" icon="chevron_right" data-testid="next-step-icon"> </ix-icon-button> `} </div> </div> `}render(){return l` <ui-um-drawer ?isVisible="${this.showDrawer}" ?summaryScreen="${this.success}" ?submitting="${this.submitting}" @close-success="${()=>this.handleDialogReset("close")}" data-testid="ui-um-drawer"> ${this.renderDrawerControls()} ${this.success?this.renderSuccessMessage():l` <ui-um-wizard class="create-user-wizard" slot="content" data-testid="create-user-wizard"> ${this.loading?this.renderProgress():this.renderWizardStep()} </ui-um-wizard> `} </ui-um-drawer> ${this.renderManageUserDialog()} `}};C.styles=[xs,w,Ie],s([c({type:Boolean})],C.prototype,"showDrawer",void 0),s([c({type:Boolean})],C.prototype,"success",void 0),s([c({type:Boolean})],C.prototype,"submitting",void 0),s([c({type:String})],C.prototype,"newUserId",void 0),s([u()],C.prototype,"accounts",void 0),s([u()],C.prototype,"accountTree",void 0),s([u()],C.prototype,"permissions",void 0),s([u()],C.prototype,"roles",void 0),s([u()],C.prototype,"treeData",void 0),s([u()],C.prototype,"loading",void 0),s([u()],C.prototype,"selectedAccountId",void 0),s([u()],C.prototype,"selectedRoleId",void 0),s([u()],C.prototype,"step",void 0),s([u()],C.prototype,"validatingStepOne",void 0),s([u()],C.prototype,"newContact",void 0),s([u()],C.prototype,"dataForAccounts",void 0),s([u()],C.prototype,"showManageUserDialog",void 0),s([u()],C.prototype,"userId",void 0),s([u()],C.prototype,"stepTitle",void 0),s([u()],C.prototype,"isNextButtonEnabled",void 0),s([u()],C.prototype,"canQuickNavigateSteps",void 0),s([u()],C.prototype,"maxQuickStep",void 0),s([u()],C.prototype,"checkedAccounts",void 0),C=s([y("create-user")],C);const Fs=E`.draft-container{display:flex;flex-direction:row;justify-content:space-between;bottom:24px;position:fixed;right:24px;z-index:1200;gap:8px;background-color:#fff;border-radius:16px;box-shadow:rgba(0,0,0,.12) 0 12px 20px -12px,#e1e4e8 0 0 0 1px inset;align-items:center;padding:16px 24px;width:250px}`;let Me=class extends T{constructor(){super(...arguments),this.header="",this.subText="",this.isVisible=!1}static get styles(){return[Fs]}dispatchDraftToggleEvent(){this.dispatchEvent(new CustomEvent(I.ToggleDraft,{bubbles:!0,composed:!0}))}dispatchDialogToggleEvent(){this.dispatchEvent(new CustomEvent(I.ToggleDialog,{composed:!0}))}render(){return this.isVisible?(document.body.style.overflow="hidden",l` <div class="draft-container"> <div class="draft-text"> <p class="dlr-text-caption text-on-surface-variant">${this.header}</p> <p class="dlr-text-small font-bold">${this.subText}</p> </div> <div class="draft-buttons"> <ix-icon-button filledIcon @click="${this.dispatchDialogToggleEvent}"> <ix-icon filled slot="default" style="color:red">delete</ix-icon> </ix-icon-button> <ix-icon-button appearance="filled" @click="${this.dispatchDraftToggleEvent}"> <ix-icon slot="default">fullscreen</ix-icon> </ix-icon-button> </div> </div> `):(document.body.style.overflow="auto",b)}};s([c({type:String})],Me.prototype,"header",void 0),s([c({type:String})],Me.prototype,"subText",void 0),s([c({type:Boolean})],Me.prototype,"isVisible",void 0),Me=s([y("ix-draft")],Me);const Ds=E`ix-dialog .dialog-content{max-width:560px}`;let X=class extends Te{constructor(){super(...arguments),this.showDrawer=!1,this.showDraft=!1,this.showCancelDialog=!1,this.success=!1,this.newUserId="",this.submittingNewUser=!1,this.cancellingCreateUser=!1}static get styles(){return[Ds,re,w]}async createNewContact(e){this.submittingNewUser=!0;const t=e.detail.newContact,i=e.detail.dataForAccounts;i.forEach(({accountId:o})=>{t.accounts.some(({accountNumber:n})=>n===o)||t.accounts.push({accountNumber:o})});try{this.newUserId=await this.createContact(t);const o=[this.createRoleAssignments(i,t.email),this.createUserFlags(i)];(await Promise.allSettled(o)).forEach(n=>{if(n.status==="rejected")throw new Error(n.reason)}),this.dispatchTableRefreshEvent(),this.success=!0}catch(o){this.success=!1}finally{this.submittingNewUser=!1}}async createContact(e){const t=await Nt.create({contactInput:e});if(!(t!=null&&t.id))throw new Error("Failed to create the new user.");return t.id}async createRoleAssignments(e,t){const i=[],o=Pe(t);if(e.forEach(({rolesData:n})=>{n.forEach(a=>{a.locations.forEach(r=>{i.push({roleId:a.role.id,location:r.customerKnownSpaceName,accountNumber:a.accountId,contactId:this.newUserId,isInternal:o})})})}),i.length&&!(await Fe.create({roleAssignmentInput:i})).length)throw new Error("Failed to assign role(s) to the new user.")}async createUserFlags(e){var t;const i=[];for(const o of e)o.flagData&&((t=o.genericFlagsData)===null||t===void 0||t.forEach(n=>{n.updateService&&n.updateService.updates.forEach(a=>{const r={accountNumber:o.accountId,contactId:this.newUserId,userFlagType:vt(n.label),location:a.customerKnownSpaceName||""};i.push(r)})}));if(i.length&&!(await De.create({userFlagAssignmentInput:i})).length)throw new Error("We could not assign the selected flags to the new user.")}dispatchDraftToggleEvent(){this.dispatchEvent(new CustomEvent(x.ToggleDraft,{composed:!0})),this.dispatchDrawerToggleEvent()}dispatchDrawerToggleEvent(){this.dispatchEvent(new CustomEvent(x.ToggleDrawer,{composed:!0}))}dispatchTableRefreshEvent(){document.dispatchEvent(new CustomEvent(I.RefreshTable,{composed:!0}))}toggleDialog(){this.dispatchEvent(new CustomEvent(x.ToggleDialog,{composed:!0,bubbles:!0}))}toggleSuccess(){this.success=!this.success}resetSuccess(){this.success=!1}cancelCreateUser(){this.cancellingCreateUser=!0,setTimeout(()=>{var e;(e=this.createUser)===null||e===void 0||e.resetStep(),this.dispatchEvent(new CustomEvent(x.CancelCreateUser,{composed:!0})),this.cancellingCreateUser=!1},50)}renderCancelDialog(){return l` <ix-dialog ?open="${this.showCancelDialog}" @cancel="${this.toggleDialog}" data-testid="dialog-cancel-add-user"> <div class="dlr-text-heading md:w-[560px]" slot="headline"> Are you sure you want to cancel? </div> <div class="dialog-content" slot="content"> <p>All the details provided will be lost.</p> </div> <div class="dialog-actions" slot="actions"> <ix-button appearance="text" ?disabled="${this.cancellingCreateUser}" @click="${this.toggleDialog}" slot="secondary" data-testid="dismiss-close-create-user-button"> Dismiss </ix-button> <ix-button appearance="text" ?submitting="${this.cancellingCreateUser}" @click="${this.cancelCreateUser}" slot="primary" data-testid="cancel-create-user-button"> Cancel adding user </ix-button> </div> </ix-dialog> `}render(){return l` <create-user .newUserId="${this.newUserId}" ?showDrawer="${this.showDrawer}" ?submitting="${this.submittingNewUser}" ?success="${this.success}" @toggle-drawer="${this.dispatchDrawerToggleEvent}" @create-new-contact="${e=>this.createNewContact(e)}" @toggle-success="${this.toggleSuccess}" @reset-success="${this.resetSuccess}" data-testid="um-create-user"></create-user> <ix-draft header="Draft" subText="Add New User" ?isVisible="${this.showDraft}" @toggle-dialog="${this.toggleDialog}"></ix-draft> ${this.renderCancelDialog()} `}};s([c({type:Boolean})],X.prototype,"showDrawer",void 0),s([c({type:Boolean})],X.prototype,"showDraft",void 0),s([c({type:Boolean})],X.prototype,"showCancelDialog",void 0),s([u()],X.prototype,"success",void 0),s([u()],X.prototype,"newUserId",void 0),s([u()],X.prototype,"submittingNewUser",void 0),s([u()],X.prototype,"cancellingCreateUser",void 0),s([F("create-user")],X.prototype,"createUser",void 0),X=s([y("create-user-container")],X);const zi=E`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.user-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.edit-icon{font-size:22px;align-items:center;padding-right:1px}.email,.first-name,.last-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#edit-profile-id{display:flex;flex-direction:column}.single-row-textbox{width:100%}#edit-profile-id>*{margin:5px 0}ix-textbox,md-textfield{--md-outlined-text-field-width:100%;--md-outlined-text-field-focus-width:100%;width:inherit}.user-profile-name-input-group{display:flex;justify-content:space-between;gap:10px}.user-profile-input{padding-bottom:10px;width:100%}ix-phone-number{--ix-phone-number-font-size:16px;--ix-phone-number-text-color:#092241}`;class Ps{async getUserProfile(){try{return await g.UserProfileSettingsApi.getUserSettings()}catch(t){m.handleError(t,"Failed to get user profile.");return}}async updateUserProfile(t){try{return await g.UserProfileSettingsApi.userProfilePatch(t)}catch(i){m.handleError(i,"Failed to update user profile.");return}}}const qi=new Ps;class Ms{constructor(t){(this._host=t).addController(this)}hostConnected(){}hostDisconnected(){}hostUpdate(){}getUserProfile(){return qi.getUserProfile()}updateUserProfile(t){return qi.updateUserProfile(t)}}var Bs=[{key:"Etc/GMT+12",value:"(UTC-12:00) International Date Line West"},{key:"Etc/GMT+11",value:"(UTC-11:00) Coordinated Universal Time-11"},{key:"America/Adak",value:"(UTC-10:00) Aleutian Islands"},{key:"Pacific/Honolulu",value:"(UTC-10:00) Hawaii"},{key:"Pacific/Marquesas",value:"(UTC-09:30) Marquesas Islands"},{key:"America/Anchorage",value:"(UTC-09:00) Alaska"},{key:"Etc/GMT+9",value:"(UTC-09:00) Coordinated Universal Time-09"},{key:"America/Tijuana",value:"(UTC-08:00) Baja California"},{key:"Etc/GMT+8",value:"(UTC-08:00) Coordinated Universal Time-08"},{key:"America/Los_Angeles",value:"(UTC-08:00) Pacific Time (US, Canada)"},{key:"America/Phoenix",value:"(UTC-07:00) Arizona"},{key:"America/Chihuahua",value:"(UTC-07:00) Chihuahua, La Paz, Mazatlan"},{key:"America/Denver",value:"(UTC-07:00) Mountain Time (US, Canada)"},{key:"America/Whitehorse",value:"(UTC-07:00) Yukon"},{key:"America/Guatemala",value:"(UTC-06:00) Central America"},{key:"America/Chicago",value:"(UTC-06:00) Central Time (US, Canada)"},{key:"Pacific/Easter",value:"(UTC-06:00) Easter Island"},{key:"America/Mexico_City",value:"(UTC-06:00) Guadalajara, Mexico City, Monterrey"},{key:"America/Regina",value:"(UTC-06:00) Saskatchewan"},{key:"America/Bogota",value:"(UTC-05:00) Bogota, Lima, Quito, Rio Branco"},{key:"America/Cancun",value:"(UTC-05:00) Chetumal"},{key:"America/New_York",value:"(UTC-05:00) Eastern Time (US, Canada)"},{key:"America/Port-au-Prince",value:"(UTC-05:00) Haiti"},{key:"America/Havana",value:"(UTC-05:00) Havana"},{key:"America/Indiana/Indianapolis",value:"(UTC-05:00) Indiana (East)"},{key:"America/Grand_Turk",value:"(UTC-05:00) Turks and Caicos"},{key:"America/Asuncion",value:"(UTC-04:00) Asuncion"},{key:"America/Halifax",value:"(UTC-04:00) Atlantic Time (Canada)"},{key:"America/Caracas",value:"(UTC-04:00) Caracas"},{key:"America/Cuiaba",value:"(UTC-04:00) Cuiaba"},{key:"America/La_Paz",value:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan"},{key:"America/Santiago",value:"(UTC-04:00) Santiago"},{key:"America/St_Johns",value:"(UTC-03:30) Newfoundland"},{key:"America/Araguaina",value:"(UTC-03:00) Araguaina"},{key:"America/Sao_Paulo",value:"(UTC-03:00) Brasilia"},{key:"America/Cayenne",value:"(UTC-03:00) Cayenne, Fortaleza"},{key:"America/Argentina/Buenos_Aires",value:"(UTC-03:00) City of Buenos Aires"},{key:"America/Nuuk",value:"(UTC-03:00) Greenland"},{key:"America/Montevideo",value:"(UTC-03:00) Montevideo"},{key:"America/Punta_Arenas",value:"(UTC-03:00) Punta Arenas"},{key:"America/Miquelon",value:"(UTC-03:00) Saint Pierre and Miquelon"},{key:"America/Bahia",value:"(UTC-03:00) Salvador"},{key:"Etc/GMT+2",value:"(UTC-02:00) Coordinated Universal Time-02"},{key:"Atlantic/Azores",value:"(UTC-01:00) Azores"},{key:"Atlantic/Cape_Verde",value:"(UTC-01:00) Cabo Verde Is."},{key:"Etc/UTC",value:"(UTC) Coordinated Universal Time"},{key:"Europe/London",value:"(UTC+00:00) Dublin, Edinburgh, Lisbon, London"},{key:"Atlantic/Reykjavik",value:"(UTC+00:00) Monrovia, Reykjavik"},{key:"Africa/Sao_Tome",value:"(UTC+00:00) Sao Tome"},{key:"Africa/Casablanca",value:"(UTC+01:00) Casablanca"},{key:"Europe/Berlin",value:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"},{key:"Europe/Budapest",value:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"},{key:"Europe/Paris",value:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris"},{key:"Europe/Warsaw",value:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb"},{key:"Africa/Lagos",value:"(UTC+01:00) West Central Africa"},{key:"Asia/Amman",value:"(UTC+02:00) Amman"},{key:"Europe/Bucharest",value:"(UTC+02:00) Athens, Bucharest"},{key:"Asia/Beirut",value:"(UTC+02:00) Beirut"},{key:"Africa/Cairo",value:"(UTC+02:00) Cairo"},{key:"Europe/Chisinau",value:"(UTC+02:00) Chisinau"},{key:"Asia/Damascus",value:"(UTC+02:00) Damascus"},{key:"Asia/Hebron",value:"(UTC+02:00) Gaza, Hebron"},{key:"Africa/Johannesburg",value:"(UTC+02:00) Harare, Pretoria"},{key:"Europe/Kiev",value:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"},{key:"Asia/Jerusalem",value:"(UTC+02:00) Jerusalem"},{key:"Africa/Juba",value:"(UTC+02:00) Juba"},{key:"Europe/Kaliningrad",value:"(UTC+02:00) Kaliningrad"},{key:"Africa/Khartoum",value:"(UTC+02:00) Khartoum"},{key:"Africa/Tripoli",value:"(UTC+02:00) Tripoli"},{key:"Africa/Windhoek",value:"(UTC+02:00) Windhoek"},{key:"Asia/Baghdad",value:"(UTC+03:00) Baghdad"},{key:"Europe/Istanbul",value:"(UTC+03:00) Istanbul"},{key:"Asia/Riyadh",value:"(UTC+03:00) Kuwait, Riyadh"},{key:"Europe/Minsk",value:"(UTC+03:00) Minsk"},{key:"Europe/Moscow",value:"(UTC+03:00) Moscow, St. Petersburg"},{key:"Africa/Nairobi",value:"(UTC+03:00) Nairobi"},{key:"Europe/Volgograd",value:"(UTC+04:00) Volgograd"},{key:"Asia/Tehran",value:"(UTC+03:30) Tehran"},{key:"Asia/Dubai",value:"(UTC+04:00) Abu Dhabi, Muscat"},{key:"Europe/Astrakhan",value:"(UTC+04:00) Astrakhan, Ulyanovsk"},{key:"Asia/Baku",value:"(UTC+04:00) Baku"},{key:"Europe/Samara",value:"(UTC+04:00) Izhevsk, Samara"},{key:"Indian/Mauritius",value:"(UTC+04:00) Port Louis"},{key:"Europe/Saratov",value:"(UTC+04:00) Saratov"},{key:"Asia/Tbilisi",value:"(UTC+04:00) Tbilisi"},{key:"Asia/Yerevan",value:"(UTC+04:00) Yerevan"},{key:"Asia/Kabul",value:"(UTC+04:30) Kabul"},{key:"Asia/Tashkent",value:"(UTC+05:00) Ashgabat, Tashkent"},{key:"Asia/Yekaterinburg",value:"(UTC+05:00) Ekaterinburg"},{key:"Asia/Karachi",value:"(UTC+05:00) Islamabad, Karachi"},{key:"Asia/Qyzylorda",value:"(UTC+05:00) Qyzylorda"},{key:"Asia/Kolkata",value:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi"},{key:"Asia/Colombo",value:"(UTC+05:30) Sri Jayawardenepura"},{key:"Asia/Kathmandu",value:"(UTC+05:45) Kathmandu"},{key:"Asia/Almaty",value:"(UTC+06:00) Astana"},{key:"Asia/Dhaka",value:"(UTC+06:00) Dhaka"},{key:"Asia/Omsk",value:"(UTC+06:00) Omsk"},{key:"Asia/Yangon",value:"(UTC+06:30) Yangon (Rangoon)"},{key:"Asia/Bangkok",value:"(UTC+07:00) Bangkok, Hanoi, Jakarta"},{key:"Asia/Barnaul",value:"(UTC+07:00) Barnaul, Gorno-Altaysk"},{key:"Asia/Hovd",value:"(UTC+07:00) Hovd"},{key:"Asia/Krasnoyarsk",value:"(UTC+07:00) Krasnoyarsk"},{key:"Asia/Novosibirsk",value:"(UTC+07:00) Novosibirsk"},{key:"Asia/Tomsk",value:"(UTC+07:00) Tomsk"},{key:"Asia/Shanghai",value:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi"},{key:"Asia/Irkutsk",value:"(UTC+08:00) Irkutsk"},{key:"Asia/Singapore",value:"(UTC+08:00) Kuala Lumpur, Singapore"},{key:"Australia/Perth",value:"(UTC+08:00) Perth"},{key:"Asia/Taipei",value:"(UTC+08:00) Taipei"},{key:"Asia/Ulaanbaatar",value:"(UTC+08:00) Ulaanbaatar"},{key:"Australia/Eucla",value:"(UTC+08:45) Eucla"},{key:"Asia/Chita",value:"(UTC+09:00) Chita"},{key:"Asia/Tokyo",value:"(UTC+09:00) Osaka, Sapporo, Tokyo"},{key:"Asia/Pyongyang",value:"(UTC+09:00) Pyongyang"},{key:"Asia/Seoul",value:"(UTC+09:00) Seoul"},{key:"Asia/Yakutsk",value:"(UTC+09:00) Yakutsk"},{key:"Australia/Adelaide",value:"(UTC+09:30) Adelaide"},{key:"Australia/Darwin",value:"(UTC+09:30) Darwin"},{key:"Australia/Brisbane",value:"(UTC+10:00) Brisbane"},{key:"Australia/Sydney",value:"(UTC+10:00) Canberra, Melbourne, Sydney"},{key:"Pacific/Port_Moresby",value:"(UTC+10:00) Guam, Port Moresby"},{key:"Australia/Hobart",value:"(UTC+10:00) Hobart"},{key:"Asia/Vladivostok",value:"(UTC+10:00) Vladivostok"},{key:"Australia/Lord_Howe",value:"(UTC+10:30) Lord Howe Island"},{key:"Pacific/Bougainville",value:"(UTC+11:00) Bougainville Island"},{key:"Asia/Srednekolymsk",value:"(UTC+11:00) Chokurdakh"},{key:"Asia/Magadan",value:"(UTC+11:00) Magadan"},{key:"Pacific/Norfolk",value:"(UTC+11:00) Norfolk Island"},{key:"Asia/Sakhalin",value:"(UTC+11:00) Sakhalin"},{key:"Pacific/Guadalcanal",value:"(UTC+11:00) Solomon Is., New Caledonia"},{key:"Asia/Kamchatka",value:"(UTC+12:00) Anadyr, Petropavlovsk-Kamchatsky"},{key:"Pacific/Auckland",value:"(UTC+12:00) Auckland, Wellington"},{key:"Etc/GMT-12",value:"(UTC+12:00) Coordinated Universal Time+12"},{key:"Pacific/Fiji",value:"(UTC+12:00) Fiji"},{key:"Pacific/Chatham",value:"(UTC+12:45) Chatham Islands"},{key:"Etc/GMT-13",value:"(UTC+13:00) Coordinated Universal Time+13"},{key:"Pacific/Tongatapu",value:"(UTC+13:00) Nuku'alofa"},{key:"Pacific/Apia",value:"(UTC+13:00) Samoa"},{key:"Pacific/Kiritimati",value:"(UTC+14:00) Kiritimati Island"}];const Ls=()=>Bs.map(({key:e,value:t})=>({timeZone:e,displayName:t}));let P=class extends Te{constructor(){super(...arguments),this.userProfileController=new Ms(this),this.supportedDateFormat={"MM/dd/yyyy":"mm/dd/yyyy (e.g.: 04/24/2023)","dd/MM/yyyy":"dd/mm/yyyy (e.g.: 24/04/2023)","yyyy/MM/dd":"yyyy/mm/dd (e.g.: 2023/04/24)"},this.supportedTimeFormat={"h:mm a":"12-hour clock (e.g. 1:00 PM)","HH:mm":"24-hour clock (e.g. 13:00)"},this.isDialogVisible=!1,this.allowSave=!0,this.isLoading=!1,this.timezones=Ls()}async firstUpdated(){await this.retrieveUserProfile(),this.shouldDisableSaveButton()}async retrieveUserProfile(){this.isLoading=!0,this.userProfile=await this.userProfileController.getUserProfile(),this.isLoading=!1}closeDialog(){this.isDialogVisible=!1,this.dispatchEvent(new CustomEvent("closeEditProfileDialog",{bubbles:!0,composed:!0}))}async saveUserProfileChanges(){var e,t,i,o;const n={profileSettingEditInput:{firstName:(e=z(this.firstName))!==null&&e!==void 0?e:this.firstName.value,lastName:(t=z(this.lastName))!==null&&t!==void 0?t:this.lastName.value,contactPhoneNumber:(i=ve(this.phoneNumber))!==null&&i!==void 0?i:this.phoneNumber.value,preferredTimezone:this.preferredTimezone.value,preferredDateFormat:this.preferredDateFormat.value,preferredTimeFormat:this.preferredTimeFormat.value}};((o=this.userProfile)===null||o===void 0?void 0:o.preferredTimezone)!==n.profileSettingEditInput.preferredTimezone&&(n.profileSettingEditInput.timezoneOverridden=!0),this.isLoading=!0,await this.userProfileController.updateUserProfile(n).then(()=>{Kt("Your profile info has been successfully updated",3e3,"center")}),this.saveDateTimeFormatToLocalStorage(n),this.isLoading=!1,this.closeDialog()}validatePhoneInput(e,t){const i=ve(e);if(i==="000-000-0000"){e.error=!1,e.errorText="",this.shouldDisableSaveButton();return}if(this.userProfile.contactPhoneNumber=i!=null?i:"",e.required&&!Ue(e,i)){this.allowSave=!1;return}if(!gt(e,t)){this.allowSave=!1;return}e.error=!1,e.errorText="",this.shouldDisableSaveButton()}saveDateTimeFormatToLocalStorage(e){localStorage.setItem("date-format",JSON.stringify({preferredDateFormat:e.profileSettingEditInput.preferredDateFormat,preferredTimeFormat:e.profileSettingEditInput.preferredTimeFormat,preferredTimezone:e.profileSettingEditInput.preferredTimezone})),this.dispatchEvent(new CustomEvent("dateFormatChanged",{bubbles:!0,composed:!0}))}shouldDisableSaveButton(){this.allowSave=!(this.isInvalid()||this.isEmpty())}isInvalid(){return this.firstName.error||this.lastName.error||this.phoneNumber.error}isEmpty(){var e,t,i;return!(!((e=this.userProfile)===null||e===void 0)&&e.firstName)||!(!((t=this.userProfile)===null||t===void 0)&&t.lastName)||!(!((i=this.userProfile)===null||i===void 0)&&i.contactPhoneNumber)}render(){var e,t,i,o,n,a,r,d;return l`<ix-dialog class="dialog z-50 relative" ?open="${this.isDialogVisible}" @close="${()=>this.closeDialog()}"> ${this.isLoading?l`<ix-progress indeterminate slot="content"></ix-progress>`:""} <div class="dlr-text-heading flex p-6" slot="headline"> <span>Edit Profile</span> </div> <form class="dialog-form min-w-0 max-w-full max-[640px]:w-screen px-6 pb-5 pt-[0px]" slot="content" id="edit-profile-id" method="dialog"> <div class="user-profile-name-input-group grid grid-cols-1 sm:grid-cols-2 gap-3"> <div class="user-profile-input"> <ix-textbox required id="first-name" class="textbox" type="text" pattern="${Se.name}" label="First Name" placeholder="i.e. First Name" value="${(t=(e=this.userProfile)===null||e===void 0?void 0:e.firstName)!==null&&t!==void 0?t:""}" @input="${()=>{var p;this.allowSave=mt(this.firstName,this.firstName.value,"Invalid first name"),this.userProfile.firstName=(p=z(this.firstName))!==null&&p!==void 0?p:"",this.shouldDisableSaveButton()}}"></ix-textbox> </div> <div class="user-profile-input"> <ix-textbox required id="last-name" class="textbox" type="text" pattern="${Se.name}" label="Last Name" placeholder="i.e. Last Name" value="${(o=(i=this.userProfile)===null||i===void 0?void 0:i.lastName)!==null&&o!==void 0?o:""}" @input="${()=>{var p;this.allowSave=mt(this.lastName,this.lastName.value,"Invalid last name"),this.userProfile.lastName=(p=z(this.lastName))!==null&&p!==void 0?p:"",this.shouldDisableSaveButton()}}"></ix-textbox> </div> </div> <div class="user-profile-input mb-4"> <ix-phone-input required id="phone-number" class="single-row-textbox w-full" label="Phone Number" value="${(a=(n=this.userProfile)===null||n===void 0?void 0:n.contactPhoneNumber)!==null&&a!==void 0?a:""}" @input="${()=>{this.validatePhoneInput(this.phoneNumber,"Invalid phone number")}}"></ix-phone-input> </div> <div class="user-profile-input"> <ix-textbox id="email" class="single-row-textbox" type="email" label="Email Address" readOnly="true" disabled="true" value="${(d=(r=this.userProfile)===null||r===void 0?void 0:r.email)!==null&&d!==void 0?d:""}"></ix-textbox> </div> <div class="user-profile-input"> <ix-select appearance="outlined" id="preferredTimezone" label="Time Zone" menu-positioning="fixed"> ${this.timezones.map(p=>{var h;return l` <ix-select-option value="${p.timeZone}" ?selected="${p.timeZone===((h=this.userProfile)===null||h===void 0?void 0:h.preferredTimezone)}"> <div slot="headline">${p.displayName}</div> </ix-select-option> `})} </ix-select> </div> <div class="user-profile-input"> <ix-select menu-positioning="fixed" appearance="outlined" id="preferredDateFormat" label="Date format"> ${Object.entries(this.supportedDateFormat).map(([p,h])=>{var v;return l` <ix-select-option value="${p}" ?selected="${p===((v=this.userProfile)===null||v===void 0?void 0:v.preferredDateFormat)}"> <div slot="headline">${h}</div> </ix-select-option> `})} </ix-select> </div> <div class="user-profile-input"> <ix-select menu-positioning="fixed" appearance="outlined" id="preferredTimeFormat" label="Time Format"> ${Object.entries(this.supportedTimeFormat).map(([p,h])=>{var v;return l` <ix-select-option value="${p}" ?selected="${p===((v=this.userProfile)===null||v===void 0?void 0:v.preferredTimeFormat)}"> <div slot="headline">${h}</div> </ix-select-option> `})} </ix-select> </div> </form> <div class="dialog-actions p-2" slot="actions"> <ix-button form="edit-profile-id" appearance="text" text="Cancel" @click="${()=>this.closeDialog()}"> Cancel </ix-button> <ix-button id="save-user-button" appearance="text" text="Save Changes" ?disabled="${!this.allowSave||this.isLoading}" @click="${()=>{this.saveUserProfileChanges()}}"> Save Changes </ix-button> </div> </ix-dialog>`}};P.styles=[zi,w],s([c({type:Boolean})],P.prototype,"isDialogVisible",void 0),s([u()],P.prototype,"allowSave",void 0),s([u()],P.prototype,"userProfile",void 0),s([u()],P.prototype,"isLoading",void 0),s([u()],P.prototype,"timezones",void 0),s([F("#first-name")],P.prototype,"firstName",void 0),s([F("#last-name")],P.prototype,"lastName",void 0),s([F("#phone-number")],P.prototype,"phoneNumber",void 0),s([F("#preferredTimezone")],P.prototype,"preferredTimezone",void 0),s([F("#preferredDateFormat")],P.prototype,"preferredDateFormat",void 0),s([F("#preferredTimeFormat")],P.prototype,"preferredTimeFormat",void 0),P=s([y("ui-um-user-profile")],P);class Os{async getAuthorisation(){const t=await At.getState(),[i,o,n,a]=t;return[i,o,n,a]}}const zs=new Os;class qs extends xe{constructor(){super(...arguments),this.expandedNodes=[]}toggleNodeExpanded(t){this.expandedNodes.includes(t)?this.expandedNodes=this.expandedNodes.filter(i=>i!==t):this.expandedNodes.push(t)}async refresh(){this.requestHydration(),this.set(hs(this.expandedNodes)),this.completeHydration()}}const Hi=new qs({});let M=class extends Te{constructor(){super(),this.errorService=m,this.routes=[],this.baseUrl="",this.isStandalone=!1,this.disableAuthentication=!1,this.compact=localStorage.getItem("compact")==="true",this.showDrawer=!1,this.showDraft=!1,this.showCancelDialog=!1,this.isEditUserProfileDialogOpen=!1,this.handleDrawerEventBinding=this.handleDrawerEvent.bind(this),this.handleCloseEditProfileDialogBinding=this.handleCloseEditProfileDialog.bind(this),this.handleAccountSwitchBinding=this.handleAccountSwitch.bind(this),this.handleEditProfileEventBinding=this.handleEditProfileEvent.bind(this),U.setLoading=!0}connectedCallback(){super.connectedCallback(),window.addEventListener(I.CreateUserClicked,this.handleDrawerEventBinding),document.addEventListener(I.AccountSwitched,this.handleAccountSwitchBinding),window.addEventListener(I.EditProfile,this.handleEditProfileEventBinding)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(I.CreateUserClicked,this.handleDrawerEventBinding),document.removeEventListener(I.AccountSwitched,this.handleAccountSwitchBinding),window.removeEventListener(I.EditProfile,this.handleEditProfileEventBinding),Wn(),m.destroyErrorHandler()}async handleAccountSwitch(e){const t=e.detail;U.setAccountNumber(t),await this.fetchData();const i=window.location.href.split("?")[0];window.history.replaceState({},document.title,i)}handleDrawerEvent(){this.toggleDrawer()}async firstUpdated(){await this.configureAuthentication(),await this.fetchData(),this.init(),U.setLoading=!1}updated(e){e.has("routes")&&this.routes.length&&Zn().setRoutes(this.routes)}async fetchData(){const e=me.getUserDetails(),{email:t}=e;return zs.getAuthorisation().then(i=>{const[o,n,a,r]=i;return U.setMyPermissions(o),L.myPermissions=U.getMyPermissions(),U.setEmail(t),U.setPermissions(n),U.setAccounts(r),de.set(a),Hi.refresh(),i})}async configureAuthentication(){this.disableAuthentication||B.UserManagement.UI.DisableUserManagementUIAuth||!this.isStandalone?await this.configureAuthorisation():me.isProcessing()||(me.isLoggedIn()?await this.configureAuthorisation():me.redirectToAuth())}async configureAuthorisation(){const e=me.getUserDetails(),{accountNumber:t}=e;U.setAccountNumber(t)}init(){setTimeout(()=>{this.mainApp&&(Jn(this.mainApp,this.baseUrl,li),Re(window,I.AuthenticationComplete,{accountNumber:U.getAccountNumber()}))})}toggleDrawer(){this.showDraft&&(this.showDraft=!this.showDraft),this.showDrawer=!this.showDrawer}closeDrawer(){this.showDrawer=!1}toggleCompact(){this.compact=!this.compact,localStorage.setItem("compact",`${this.compact}`)}toggleDraft(){this.showDrawer=!this.showDrawer,this.showDraft=!this.showDraft}cancelCreateUser(){this.showDrawer=!1,this.showDraft=!1,this.showCancelDialog=!1}toggleCancelDialog(){this.showCancelDialog=!this.showCancelDialog}renderCreateUser(){return L.hasExternalUserCreate()?l` <create-user-container ?showDrawer="${this.showDrawer}" ?showDraft="${this.showDraft}" ?showCancelDialog="${this.showCancelDialog}" @blur-drawer="${this.toggleCancelDialog}" @toggle-drawer="${this.toggleDrawer}" @toggle-draft="${this.toggleDraft}" @toggle-dialog="${this.toggleCancelDialog}" @close-drawer="${this.closeDrawer}" @cancel-create-user="${this.cancelCreateUser}"></create-user-container> `:b}renderLoading(){return U.getLoading?l` <main> <error-dialog></error-dialog> <ix-progress id="application-loading-bar" aria-label="Application loading bar" indeterminate></ix-progress> </main> `:b}handleEditProfileEvent(){this.isEditUserProfileDialogOpen=!0}handleCloseEditProfileDialog(){this.isEditUserProfileDialogOpen=!1}renderEditProfileForm(){return l` <ui-um-user-profile ?isDialogVisible="${this.isEditUserProfileDialogOpen}" @closeEditProfileDialog="${this.handleCloseEditProfileDialogBinding}"></ui-um-user-profile>`}render(){return l` ${this.renderCreateUser()} <div class="flex flex-col"> <div class="animate-width absolute inset-0 bg-black opacity-50 z-20 ${this.compact?"hidden":"block"} lg:hidden" @click="${this.toggleCompact}" @keypress="${this.toggleCompact}"></div> ${this.isStandalone?l` <nav class="nav-bar wide p-4 m-2 rounded-xl flex items-center relative z-1 md:hidden"> <div class="flex-1"> <ix-icon-button @click="${this.toggleCompact}" icon="menu" class="white-icon"></ix-icon-button> </div> <div class="w-[178px]"> <svg focusable="false" viewBox="0 0 178 27" fill="white" class="w-full"> ${qe.digitalRealtyLogoWithText} </svg> </div> <div class="flex-1"></div> </nav> `:b} <div class="w-full h-full flex relative ${this.showDrawer?"drawer-visible":""}"> ${this.isStandalone?l` <div class="${this.compact?"left-[-200px]":"left-0"} min-w-[96px] absolute z-1 md:relative lg:min-w-fit md:left-0 animate-width h-screen"> <navigation-bar @toggle-menu="${this.toggleCompact}" ?compact="${this.compact}" class="h-full p-2 block absolute drop-shadow-lg overflow-auto sm:overflow-visible lg:static lg:p-4"></navigation-bar> </div> `:b} <div class="grow w-full h-full"> <div class="flex flex-col grow h-full ${this.isStandalone?"p-2 lg:p-4":""}"> ${this.isStandalone?l`<app-header @create-user="${this.toggleDrawer}"></app-header>`:b} <main class="h-full">${this.renderLoading()}</main> </div> </div> </div> </div> ${this.renderEditProfileForm()}`}};M.styles=[Zt,Ie,w],s([c({type:Array})],M.prototype,"routes",void 0),s([c({type:String})],M.prototype,"baseUrl",void 0),s([c({type:Boolean})],M.prototype,"isStandalone",void 0),s([c({type:Boolean,attribute:!0})],M.prototype,"disableAuthentication",void 0),s([c({type:Boolean,attribute:!1})],M.prototype,"compact",void 0),s([u()],M.prototype,"showDrawer",void 0),s([u()],M.prototype,"showDraft",void 0),s([u()],M.prototype,"showCancelDialog",void 0),s([u()],M.prototype,"isEditUserProfileDialogOpen",void 0),s([F("main")],M.prototype,"mainApp",void 0),M=s([y("ui-user-management")],M);export{I as A,xe as B,Rt as C,it as D,ps as E,tt as F,_t as G,Pe as H,Va as I,Si as J,Ti as K,zi as L,ht as M,ta as N,mt as O,gt as P,ve as Q,O as R,ea as S,w as T,Ye as U,la as V,Se as W,na as X,Qn as a,H as b,de as c,Nt as d,Jt as e,Hi as f,Ve as g,U as h,aa as i,z as j,m as k,It as l,oa as m,je as n,Ns as o,xt as p,Kt as q,Re as r,Ge as s,Fe as t,L as u,si as v,Qe as w,Ei as x,Ne as y,De as z};