@anzusystems/common-admin 2.0.0-rc.1 → 2.0.0-rc.11

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 (1597) hide show
  1. package/README.md +5 -1
  2. package/dist/AnzuSystemsCommonAdmin.d.ts +51 -32
  3. package/dist/AnzuSystemsCommonAdmin.js +7 -8
  4. package/dist/AnzuSystemsCommonAdmin.js.map +1 -1
  5. package/dist/_virtual/_plugin-vue_export-helper.js +1 -2
  6. package/dist/_virtual/_rolldown/runtime.js +1 -2
  7. package/dist/assets/dam-meta-icons/2k.js +1 -2
  8. package/dist/assets/dam-meta-icons/4k.js +1 -2
  9. package/dist/assets/dam-meta-icons/8k.js +1 -2
  10. package/dist/assets/dam-meta-icons/fhd.js +1 -2
  11. package/dist/assets/dam-meta-icons/low.js +1 -2
  12. package/dist/assets/dam-meta-icons/qhd.js +1 -2
  13. package/dist/assets/dam-meta-icons/rss.js +1 -2
  14. package/dist/assets/dam-meta-icons/slot.js +1 -2
  15. package/dist/assets/dam-meta-icons/tts.js +1 -2
  16. package/dist/assets/image/placeholder16x9.js +1 -2
  17. package/dist/common-admin.css +1 -1
  18. package/dist/common-admin.js +299 -297
  19. package/dist/domains/anzuUser/api/anzuUserApi.d.ts +9 -12
  20. package/dist/domains/anzuUser/api/anzuUserApi.js +9 -10
  21. package/dist/domains/anzuUser/api/anzuUserApi.js.map +1 -1
  22. package/dist/domains/anzuUser/components/AAnzuUserDatatable.js +1 -2
  23. package/dist/domains/anzuUser/components/AAnzuUserDatatable.js.map +1 -1
  24. package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue.d.ts +38 -44
  25. package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue_vue_type_script_setup_true_lang.js +46 -47
  26. package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  27. package/dist/domains/anzuUser/components/AAnzuUserFilter.js +1 -2
  28. package/dist/domains/anzuUser/components/AAnzuUserFilter.js.map +1 -1
  29. package/dist/domains/anzuUser/components/AAnzuUserFilter.vue.d.ts +12 -13
  30. package/dist/domains/anzuUser/components/AAnzuUserFilter.vue_vue_type_script_setup_true_lang.js +16 -17
  31. package/dist/domains/anzuUser/components/AAnzuUserFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  32. package/dist/domains/anzuUser/components/AAnzuUserForm.js +1 -2
  33. package/dist/domains/anzuUser/components/AAnzuUserForm.js.map +1 -1
  34. package/dist/domains/anzuUser/components/AAnzuUserForm.vue.d.ts +18 -20
  35. package/dist/domains/anzuUser/components/AAnzuUserForm.vue_vue_type_script_setup_true_lang.js +45 -46
  36. package/dist/domains/anzuUser/components/AAnzuUserForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.js +1 -2
  38. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.js.map +1 -1
  39. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.vue_vue_type_script_setup_true_lang.js +1 -2
  40. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  41. package/dist/domains/anzuUser/components/AUserBulkActionDialog.js +1 -2
  42. package/dist/domains/anzuUser/components/AUserBulkActionDialog.js.map +1 -1
  43. package/dist/domains/anzuUser/components/AUserBulkActionDialog.vue_vue_type_script_setup_true_lang.js +88 -89
  44. package/dist/domains/anzuUser/components/AUserBulkActionDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  45. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.js +1 -2
  46. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.js.map +1 -1
  47. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue.d.ts +2 -3
  48. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue_vue_type_script_setup_true_lang.js +13 -14
  49. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  50. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.js +1 -2
  51. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.js.map +1 -1
  52. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue.d.ts +9 -15
  53. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue_vue_type_script_setup_true_lang.js +19 -20
  54. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  55. package/dist/domains/anzuUser/components/AUserEnabledSwitch.js +1 -2
  56. package/dist/domains/anzuUser/components/AUserEnabledSwitch.js.map +1 -1
  57. package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue.d.ts +8 -7
  58. package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue_vue_type_script_setup_true_lang.js +1 -2
  59. package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  60. package/dist/domains/anzuUser/components/AUserManageButton.js +1 -2
  61. package/dist/domains/anzuUser/components/AUserManageButton.js.map +1 -1
  62. package/dist/domains/anzuUser/components/AUserManageButton.vue.d.ts +0 -1
  63. package/dist/domains/anzuUser/components/AUserManageButton.vue_vue_type_script_setup_true_lang.js +1 -2
  64. package/dist/domains/anzuUser/components/AUserManageButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  65. package/dist/domains/anzuUser/components/AUserMetadataForm.js +1 -2
  66. package/dist/domains/anzuUser/components/AUserMetadataForm.js.map +1 -1
  67. package/dist/domains/anzuUser/components/AUserMetadataForm.vue.d.ts +8 -9
  68. package/dist/domains/anzuUser/components/AUserMetadataForm.vue_vue_type_script_setup_true_lang.js +21 -22
  69. package/dist/domains/anzuUser/components/AUserMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  70. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.js +1 -2
  71. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.js.map +1 -1
  72. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.vue_vue_type_script_setup_true_lang.js +59 -60
  73. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  74. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.js +1 -2
  75. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.js.map +1 -1
  76. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.vue.d.ts +1 -2
  77. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.vue_vue_type_script_setup_true_lang.js +1 -2
  78. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  79. package/dist/domains/anzuUser/components/AUserSystemOverview.js +1 -2
  80. package/dist/domains/anzuUser/components/AUserSystemOverview.js.map +1 -1
  81. package/dist/domains/anzuUser/components/AUserSystemOverview.vue_vue_type_script_setup_true_lang.js +231 -232
  82. package/dist/domains/anzuUser/components/AUserSystemOverview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  83. package/dist/domains/anzuUser/components/AUserSystemPanel.js +1 -2
  84. package/dist/domains/anzuUser/components/AUserSystemPanel.js.map +1 -1
  85. package/dist/domains/anzuUser/components/AUserSystemPanel.vue.d.ts +2 -2
  86. package/dist/domains/anzuUser/components/AUserSystemPanel.vue_vue_type_script_setup_true_lang.js +16 -17
  87. package/dist/domains/anzuUser/components/AUserSystemPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/domains/anzuUser/components/AUserSystemStatusChip.js +1 -2
  89. package/dist/domains/anzuUser/components/AUserSystemStatusChip.js.map +1 -1
  90. package/dist/domains/anzuUser/components/AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js +1 -2
  91. package/dist/domains/anzuUser/components/AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  92. package/dist/domains/anzuUser/components/AUserTabsShell.js +1 -2
  93. package/dist/domains/anzuUser/components/AUserTabsShell.js.map +1 -1
  94. package/dist/domains/anzuUser/components/AUserTabsShell.vue.d.ts +17 -22
  95. package/dist/domains/anzuUser/components/AUserTabsShell.vue_vue_type_script_setup_true_lang.js +67 -68
  96. package/dist/domains/anzuUser/components/AUserTabsShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  97. package/dist/domains/anzuUser/composables/anzuUserActions.d.ts +11 -9
  98. package/dist/domains/anzuUser/composables/anzuUserActions.js +26 -23
  99. package/dist/domains/anzuUser/composables/anzuUserActions.js.map +1 -1
  100. package/dist/domains/anzuUser/composables/anzuUserValidations.d.ts +4 -6
  101. package/dist/domains/anzuUser/composables/anzuUserValidations.js +1 -2
  102. package/dist/domains/anzuUser/composables/anzuUserValidations.js.map +1 -1
  103. package/dist/domains/anzuUser/composables/cachedAnzuUsers.d.ts +3 -3
  104. package/dist/domains/anzuUser/composables/cachedAnzuUsers.js +1 -2
  105. package/dist/domains/anzuUser/composables/cachedAnzuUsers.js.map +1 -1
  106. package/dist/domains/anzuUser/composables/userCrossSystemSearch.d.ts +2 -4
  107. package/dist/domains/anzuUser/composables/userCrossSystemSearch.js +21 -22
  108. package/dist/domains/anzuUser/composables/userCrossSystemSearch.js.map +1 -1
  109. package/dist/domains/anzuUser/composables/userCrossSystemWrites.d.ts +5 -11
  110. package/dist/domains/anzuUser/composables/userCrossSystemWrites.js +46 -47
  111. package/dist/domains/anzuUser/composables/userCrossSystemWrites.js.map +1 -1
  112. package/dist/domains/anzuUser/composables/userSystemDescriptor.d.ts +33 -57
  113. package/dist/domains/anzuUser/composables/userSystemDescriptor.js +1 -2
  114. package/dist/domains/anzuUser/composables/userSystemDescriptor.js.map +1 -1
  115. package/dist/domains/anzuUser/composables/userSystemProbe.d.ts +7 -27
  116. package/dist/domains/anzuUser/composables/userSystemProbe.js +22 -23
  117. package/dist/domains/anzuUser/composables/userSystemProbe.js.map +1 -1
  118. package/dist/domains/anzuUser/factory/AnzuUserFactory.js +6 -7
  119. package/dist/domains/anzuUser/filter/anzuUserFilter.d.ts +6 -16
  120. package/dist/domains/anzuUser/filter/anzuUserFilter.js +1 -2
  121. package/dist/domains/anzuUser/filter/anzuUserFilter.js.map +1 -1
  122. package/dist/domains/anzuUser/store/anzuUserStore.d.ts +1 -5
  123. package/dist/domains/anzuUser/store/anzuUserStore.js +1 -2
  124. package/dist/domains/anzuUser/store/anzuUserStore.js.map +1 -1
  125. package/dist/domains/anzuUser/store/userCrossSystemStore.d.ts +3 -14
  126. package/dist/domains/anzuUser/store/userCrossSystemStore.js +1 -2
  127. package/dist/domains/anzuUser/store/userCrossSystemStore.js.map +1 -1
  128. package/dist/domains/anzuUser/utils/userMetadataDiff.d.ts +7 -19
  129. package/dist/domains/anzuUser/utils/userMetadataDiff.js +1 -2
  130. package/dist/domains/anzuUser/utils/userMetadataDiff.js.map +1 -1
  131. package/dist/domains/anzuUser/utils/userSystemState.d.ts +12 -30
  132. package/dist/domains/anzuUser/utils/userSystemState.js +1 -2
  133. package/dist/domains/anzuUser/utils/userSystemState.js.map +1 -1
  134. package/dist/domains/anzuUser/utils/userTabs.d.ts +1 -3
  135. package/dist/domains/anzuUser/utils/userTabs.js +1 -2
  136. package/dist/domains/anzuUser/utils/userTabs.js.map +1 -1
  137. package/dist/domains/api/composables/defineApiClient.d.ts +4 -8
  138. package/dist/domains/api/composables/defineApiClient.js +1 -2
  139. package/dist/domains/api/composables/defineApiClient.js.map +1 -1
  140. package/dist/domains/api/composables/pagination.js +10 -11
  141. package/dist/domains/api/composables/request.d.ts +18 -48
  142. package/dist/domains/api/composables/request.js +1 -2
  143. package/dist/domains/api/composables/request.js.map +1 -1
  144. package/dist/domains/api/composables/useApiFetchByIds.d.ts +7 -21
  145. package/dist/domains/api/composables/useApiFetchByIds.js +29 -30
  146. package/dist/domains/api/composables/useApiFetchByIds.js.map +1 -1
  147. package/dist/domains/api/composables/useApiFetchItems.d.ts +18 -57
  148. package/dist/domains/api/composables/useApiFetchItems.js +15 -16
  149. package/dist/domains/api/composables/useApiFetchItems.js.map +1 -1
  150. package/dist/domains/api/composables/useApiFetchList.d.ts +7 -23
  151. package/dist/domains/api/composables/useApiFetchList.js +35 -36
  152. package/dist/domains/api/composables/useApiFetchList.js.map +1 -1
  153. package/dist/domains/api/composables/useApiFetchListBatch.d.ts +5 -22
  154. package/dist/domains/api/composables/useApiFetchListBatch.js +36 -37
  155. package/dist/domains/api/composables/useApiFetchListBatch.js.map +1 -1
  156. package/dist/domains/api/composables/useApiQueryBuilder.js +12 -13
  157. package/dist/domains/api/composables/useApiQueryBuilder.js.map +1 -1
  158. package/dist/domains/api/composables/useApiRequest.d.ts +16 -39
  159. package/dist/domains/api/composables/useApiRequest.js +21 -22
  160. package/dist/domains/api/composables/useApiRequest.js.map +1 -1
  161. package/dist/domains/api/types/SortOrder.js +1 -2
  162. package/dist/domains/api/utils/apiErrors.d.ts +28 -55
  163. package/dist/domains/api/utils/apiErrors.js +20 -21
  164. package/dist/domains/api/utils/apiErrors.js.map +1 -1
  165. package/dist/domains/api/utils/apiHelper.js +4 -5
  166. package/dist/domains/api/utils/listBody.d.ts +22 -43
  167. package/dist/domains/api/utils/listBody.js +9 -10
  168. package/dist/domains/api/utils/listBody.js.map +1 -1
  169. package/dist/domains/api/utils/response.js +1 -2
  170. package/dist/domains/auth/components/Acl.js +1 -2
  171. package/dist/domains/auth/components/Acl.js.map +1 -1
  172. package/dist/domains/auth/components/Acl.vue_vue_type_script_setup_true_lang.js +1 -2
  173. package/dist/domains/auth/components/Acl.vue_vue_type_script_setup_true_lang.js.map +1 -1
  174. package/dist/domains/auth/composables/aclAllowed.d.ts +2 -3
  175. package/dist/domains/auth/composables/aclAllowed.js +6 -7
  176. package/dist/domains/auth/composables/aclAllowed.js.map +1 -1
  177. package/dist/domains/auth/composables/defineAuth.js +40 -41
  178. package/dist/domains/auth/composables/defineAuth.js.map +1 -1
  179. package/dist/domains/auth/composables/refreshSession.d.ts +10 -13
  180. package/dist/domains/auth/composables/refreshSession.js +14 -15
  181. package/dist/domains/auth/composables/refreshSession.js.map +1 -1
  182. package/dist/domains/auth/store/authStore.js +1 -2
  183. package/dist/domains/auth/valueObject/Grant.js +1 -2
  184. package/dist/domains/cached/components/ACachedChip.js +1 -2
  185. package/dist/domains/cached/components/ACachedChip.js.map +1 -1
  186. package/dist/domains/cached/components/ACachedChip.vue.d.ts +13 -11
  187. package/dist/domains/cached/components/ACachedChip.vue_vue_type_script_setup_true_lang.js +7 -8
  188. package/dist/domains/cached/components/ACachedChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  189. package/dist/domains/cached/components/ACachedUserChip.js +4 -5
  190. package/dist/domains/cached/components/ACachedUserChip.js.map +1 -1
  191. package/dist/domains/cached/components/ACachedUserChip.vue.d.ts +3 -3
  192. package/dist/domains/cached/components/ACachedUserChip.vue_vue_type_script_setup_true_lang.js +8 -9
  193. package/dist/domains/cached/components/ACachedUserChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  194. package/dist/domains/cached/composables/createCachedChip.js +1 -2
  195. package/dist/domains/cached/composables/createUserAndTimeTrackingFields.d.ts +9 -9
  196. package/dist/domains/cached/composables/createUserAndTimeTrackingFields.js +1 -2
  197. package/dist/domains/cached/composables/createUserAndTimeTrackingFields.js.map +1 -1
  198. package/dist/domains/cached/composables/defineCached.d.ts +13 -11
  199. package/dist/domains/cached/composables/defineCached.js +19 -20
  200. package/dist/domains/cached/composables/defineCached.js.map +1 -1
  201. package/dist/domains/cached/composables/useCachedItem.d.ts +7 -8
  202. package/dist/domains/cached/composables/useCachedItem.js +1 -2
  203. package/dist/domains/cached/composables/useCachedItem.js.map +1 -1
  204. package/dist/domains/collab/components/ACollabCountdown.js +1 -2
  205. package/dist/domains/collab/components/ACollabCountdown.vue_vue_type_script_setup_true_lang.js +1 -2
  206. package/dist/domains/collab/components/ACollabLockedByUser.js +1 -2
  207. package/dist/domains/collab/components/ACollabLockedByUser.js.map +1 -1
  208. package/dist/domains/collab/components/ACollabLockedByUser.vue_vue_type_script_setup_true_lang.js +8 -9
  209. package/dist/domains/collab/components/ACollabLockedByUser.vue_vue_type_script_setup_true_lang.js.map +1 -1
  210. package/dist/domains/collab/components/ACollabManagement.js +1 -2
  211. package/dist/domains/collab/components/ACollabManagement.vue_vue_type_script_setup_true_lang.js +168 -169
  212. package/dist/domains/collab/components/ACollabManagement.vue_vue_type_script_setup_true_lang.js.map +1 -1
  213. package/dist/domains/collab/composables/collabAnyDataChange.js +38 -39
  214. package/dist/domains/collab/composables/collabAnyDataChange.js.map +1 -1
  215. package/dist/domains/collab/composables/collabCurrentUserId.js +1 -2
  216. package/dist/domains/collab/composables/collabEventBus.js +1 -2
  217. package/dist/domains/collab/composables/collabField.d.ts +5 -3
  218. package/dist/domains/collab/composables/collabField.js +37 -38
  219. package/dist/domains/collab/composables/collabField.js.map +1 -1
  220. package/dist/domains/collab/composables/collabHelpers.js +1 -2
  221. package/dist/domains/collab/composables/collabInit.js +65 -62
  222. package/dist/domains/collab/composables/collabInit.js.map +1 -1
  223. package/dist/domains/collab/composables/collabRecovery.d.ts +49 -0
  224. package/dist/domains/collab/composables/collabRecovery.js +99 -0
  225. package/dist/domains/collab/composables/collabRecovery.js.map +1 -0
  226. package/dist/domains/collab/composables/collabRoom.js +125 -126
  227. package/dist/domains/collab/composables/collabRoom.js.map +1 -1
  228. package/dist/domains/collab/composables/collabState.d.ts +11 -4
  229. package/dist/domains/collab/composables/collabState.js +38 -30
  230. package/dist/domains/collab/composables/collabState.js.map +1 -1
  231. package/dist/domains/collab/composables/commonAdminCollabOptions.d.ts +4 -2
  232. package/dist/domains/collab/composables/commonAdminCollabOptions.js +5 -6
  233. package/dist/domains/collab/types/Collab.d.ts +31 -5
  234. package/dist/domains/collab/types/Collab.js +24 -13
  235. package/dist/domains/collab/types/Collab.js.map +1 -1
  236. package/dist/domains/customDataForm/components/ACustomDataForm.js +1 -2
  237. package/dist/domains/customDataForm/components/ACustomDataForm.js.map +1 -1
  238. package/dist/domains/customDataForm/components/ACustomDataForm.vue.d.ts +7 -5
  239. package/dist/domains/customDataForm/components/ACustomDataForm.vue_vue_type_script_setup_true_lang.js +26 -27
  240. package/dist/domains/customDataForm/components/ACustomDataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/domains/customDataForm/components/ACustomDataFormElement.js +1 -2
  242. package/dist/domains/customDataForm/components/ACustomDataFormElement.js.map +1 -1
  243. package/dist/domains/customDataForm/components/ACustomDataFormElement.vue_vue_type_script_setup_true_lang.js +25 -26
  244. package/dist/domains/customDataForm/components/ACustomDataFormElement.vue_vue_type_script_setup_true_lang.js.map +1 -1
  245. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.js +1 -2
  246. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.js.map +1 -1
  247. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.vue.d.ts +5 -3
  248. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.vue_vue_type_script_setup_true_lang.js +1 -2
  249. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  250. package/dist/domains/customDataForm/composables/useCustomDataForm.js +1 -2
  251. package/dist/domains/customDataForm/composables/useCustomDataForm.js.map +1 -1
  252. package/dist/domains/customDataForm/types/CustomDataForm.d.ts +4 -1
  253. package/dist/domains/customDataForm/types/CustomDataFormElementTypes.js +1 -2
  254. package/dist/domains/dam/api/damAssetApi.d.ts +7 -7
  255. package/dist/domains/dam/api/damAssetApi.js +36 -37
  256. package/dist/domains/dam/api/damAssetApi.js.map +1 -1
  257. package/dist/domains/dam/api/damAssetLicenceApi.d.ts +1 -1
  258. package/dist/domains/dam/api/damAssetLicenceApi.js +1 -2
  259. package/dist/domains/dam/api/damAssetLicenceApi.js.map +1 -1
  260. package/dist/domains/dam/api/damConstants.js +1 -2
  261. package/dist/domains/dam/api/damConstants.js.map +1 -1
  262. package/dist/domains/dam/api/damEndPoints.js +1 -2
  263. package/dist/domains/dam/api/damEndPoints.js.map +1 -1
  264. package/dist/domains/dam/api/damImageApi.js +60 -61
  265. package/dist/domains/dam/api/damImageApi.js.map +1 -1
  266. package/dist/domains/dam/api/damImageRoiApi.js +15 -16
  267. package/dist/domains/dam/api/damfetchAssetListByFileIdsMultipleLicences.js +10 -11
  268. package/dist/domains/dam/api/uploadApi.js +1 -2
  269. package/dist/domains/dam/api/uploadApi.js.map +1 -1
  270. package/dist/domains/dam/assetDetail/components/AColorBox.js +1 -2
  271. package/dist/domains/dam/assetDetail/components/AColorBox.vue_vue_type_script_setup_true_lang.js +1 -2
  272. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.js +1 -2
  273. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.js.map +1 -1
  274. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue.d.ts +7 -5
  275. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js +18 -19
  276. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  277. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.js +1 -2
  278. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.js.map +1 -1
  279. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.vue_vue_type_script_setup_true_lang.js +20 -21
  280. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  281. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.js +1 -2
  282. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.js.map +1 -1
  283. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue.d.ts +1 -1
  284. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js +26 -27
  285. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  286. package/dist/domains/dam/assetDetail/components/AssetDetailDialogLoader.js +1 -2
  287. package/dist/domains/dam/assetDetail/components/AssetDetailDialogLoader.vue_vue_type_script_setup_true_lang.js +1 -2
  288. package/dist/domains/dam/assetDetail/components/AssetDetailDialogSidebar.js +1 -2
  289. package/dist/domains/dam/assetDetail/components/AssetDetailDialogSidebar.vue_vue_type_script_setup_true_lang.js +10 -11
  290. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.js +1 -2
  291. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.vue_vue_type_script_setup_true_lang.js +1 -2
  292. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.js +1 -2
  293. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue.d.ts +5 -3
  294. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue_vue_type_script_setup_true_lang.js +1 -2
  295. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.js +1 -2
  296. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.js.map +1 -1
  297. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js +14 -15
  298. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  299. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.js +1 -2
  300. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.js.map +1 -1
  301. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js +26 -27
  302. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  303. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.js +1 -2
  304. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.js.map +1 -1
  305. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue_vue_type_script_setup_true_lang.js +25 -26
  306. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue_vue_type_script_setup_true_lang.js.map +1 -1
  307. package/dist/domains/dam/assetDetail/components/AssetFileFailReasonChip.js +1 -2
  308. package/dist/domains/dam/assetDetail/components/AssetFileFailReasonChip.vue_vue_type_script_setup_true_lang.js +5 -6
  309. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.js +1 -2
  310. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.js.map +1 -1
  311. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue.d.ts +6 -2
  312. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js +96 -70
  313. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  314. package/dist/domains/dam/assetDetail/components/AssetFileRotate.js +1 -2
  315. package/dist/domains/dam/assetDetail/components/AssetFileRotate.vue_vue_type_script_setup_true_lang.js +5 -6
  316. package/dist/domains/dam/assetDetail/components/AssetImage.js +1 -2
  317. package/dist/domains/dam/assetDetail/components/AssetImage.js.map +1 -1
  318. package/dist/domains/dam/assetDetail/components/AssetImage.vue.d.ts +8 -1
  319. package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js +30 -17
  320. package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  321. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.js +1 -2
  322. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.js.map +1 -1
  323. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue.d.ts +9 -2
  324. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js +56 -29
  325. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js.map +1 -1
  326. package/dist/domains/dam/assetDetail/components/AssetInfobox.js +1 -2
  327. package/dist/domains/dam/assetDetail/components/AssetInfobox.js.map +1 -1
  328. package/dist/domains/dam/assetDetail/components/AssetInfobox.vue_vue_type_script_setup_true_lang.js +8 -9
  329. package/dist/domains/dam/assetDetail/components/AssetInfobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  330. package/dist/domains/dam/assetDetail/components/AssetMetadata.js +1 -2
  331. package/dist/domains/dam/assetDetail/components/AssetMetadata.js.map +1 -1
  332. package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js +88 -71
  333. package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  334. package/dist/domains/dam/assetDetail/components/AssetMetadataImageAttributes.js +1 -2
  335. package/dist/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue_vue_type_script_setup_true_lang.js +5 -6
  336. package/dist/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue_vue_type_script_setup_true_lang.js.map +1 -1
  337. package/dist/domains/dam/assetDetail/composables/assetDetailExtSystem.d.ts +5 -6
  338. package/dist/domains/dam/assetDetail/composables/assetDetailExtSystem.js +6 -7
  339. package/dist/domains/dam/assetDetail/composables/assetDetailExtSystem.js.map +1 -1
  340. package/dist/domains/dam/assetDetail/composables/assetDetailSidebarActionbar.js +1 -2
  341. package/dist/domains/dam/assetDetail/composables/assetDetailView.d.ts +10 -10
  342. package/dist/domains/dam/assetDetail/composables/assetDetailView.js +1 -2
  343. package/dist/domains/dam/assetDetail/composables/assetDetailView.js.map +1 -1
  344. package/dist/domains/dam/assetDetail/composables/assetFileFailReason.js +1 -2
  345. package/dist/domains/dam/assetDetail/composables/autoDeleteTimeLeft.d.ts +9 -0
  346. package/dist/domains/dam/assetDetail/composables/autoDeleteTimeLeft.js +18 -0
  347. package/dist/domains/dam/assetDetail/composables/autoDeleteTimeLeft.js.map +1 -0
  348. package/dist/domains/dam/assetDetail/store/assetDetailStore.d.ts +4 -2
  349. package/dist/domains/dam/assetDetail/store/assetDetailStore.js +1 -2
  350. package/dist/domains/dam/assetDetail/store/assetDetailStore.js.map +1 -1
  351. package/dist/domains/dam/assetDetail/utils/assetImageIconsConfig.js +1 -2
  352. package/dist/domains/dam/assetDetail/utils/assetMetadataMayStillChange.d.ts +4 -3
  353. package/dist/domains/dam/assetDetail/utils/assetMetadataMayStillChange.js +1 -2
  354. package/dist/domains/dam/assetDetail/utils/assetMetadataMayStillChange.js.map +1 -1
  355. package/dist/domains/dam/assetSelect/api/damPodcastApi.js +9 -10
  356. package/dist/domains/dam/assetSelect/api/damPodcastApi.js.map +1 -1
  357. package/dist/domains/dam/assetSelect/components/AAssetListInner.js +1 -2
  358. package/dist/domains/dam/assetSelect/components/AAssetListInner.js.map +1 -1
  359. package/dist/domains/dam/assetSelect/components/AAssetListInner.vue.d.ts +791 -787
  360. package/dist/domains/dam/assetSelect/components/AAssetListInner.vue_vue_type_script_setup_true_lang.js +148 -149
  361. package/dist/domains/dam/assetSelect/components/AAssetListInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  362. package/dist/domains/dam/assetSelect/components/AAssetSelect.js +1 -2
  363. package/dist/domains/dam/assetSelect/components/AAssetSelect.js.map +1 -1
  364. package/dist/domains/dam/assetSelect/components/AAssetSelect.vue.d.ts +396 -393
  365. package/dist/domains/dam/assetSelect/components/AAssetSelect.vue_vue_type_script_setup_true_lang.js +88 -89
  366. package/dist/domains/dam/assetSelect/components/AAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  367. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.js +1 -2
  368. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.js.map +1 -1
  369. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue.d.ts +14 -12
  370. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue_vue_type_script_setup_true_lang.js +110 -111
  371. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue_vue_type_script_setup_true_lang.js.map +1 -1
  372. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.js +1 -2
  373. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.js.map +1 -1
  374. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.vue_vue_type_script_setup_true_lang.js +8 -9
  375. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  376. package/dist/domains/dam/assetSelect/components/AssetImagePreview.js +1 -2
  377. package/dist/domains/dam/assetSelect/components/AssetImagePreview.js.map +1 -1
  378. package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue.d.ts +3 -0
  379. package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue_vue_type_script_setup_true_lang.js +29 -19
  380. package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  381. package/dist/domains/dam/assetSelect/components/AssetSelectFilter.js +1 -2
  382. package/dist/domains/dam/assetSelect/components/AssetSelectFilter.vue_vue_type_script_setup_true_lang.js +16 -17
  383. package/dist/domains/dam/assetSelect/components/AssetSelectFilterForm.js +1 -2
  384. package/dist/domains/dam/assetSelect/components/AssetSelectFilterForm.vue_vue_type_script_setup_true_lang.js +30 -31
  385. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.js +1 -2
  386. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.js.map +1 -1
  387. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue.d.ts +9 -7
  388. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue_vue_type_script_setup_true_lang.js +40 -41
  389. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  390. package/dist/domains/dam/assetSelect/components/AssetSelectListTable.js +1 -2
  391. package/dist/domains/dam/assetSelect/components/AssetSelectListTable.vue_vue_type_script_setup_true_lang.js +10 -11
  392. package/dist/domains/dam/assetSelect/components/AssetSelectListTiles.js +1 -2
  393. package/dist/domains/dam/assetSelect/components/AssetSelectListTiles.vue_vue_type_script_setup_true_lang.js +11 -12
  394. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.js +1 -2
  395. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.js.map +1 -1
  396. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js +19 -15
  397. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  398. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.js +1 -2
  399. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.js.map +1 -1
  400. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.vue_vue_type_script_setup_true_lang.js +6 -5
  401. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  402. package/dist/domains/dam/assetSelect/components/FilterPodcastRemoteAutocomplete.js +1 -2
  403. package/dist/domains/dam/assetSelect/components/FilterPodcastRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +6 -7
  404. package/dist/domains/dam/assetSelect/composables/assetSelectFilterSidebar.js +1 -2
  405. package/dist/domains/dam/assetSelect/composables/assetSelectGridView.js +1 -2
  406. package/dist/domains/dam/assetSelect/composables/assetSelectItemActions.d.ts +2 -0
  407. package/dist/domains/dam/assetSelect/composables/assetSelectItemActions.js +38 -33
  408. package/dist/domains/dam/assetSelect/composables/assetSelectItemActions.js.map +1 -1
  409. package/dist/domains/dam/assetSelect/composables/assetSelectListActions.d.ts +4 -2
  410. package/dist/domains/dam/assetSelect/composables/assetSelectListActions.js +41 -42
  411. package/dist/domains/dam/assetSelect/composables/assetSelectListActions.js.map +1 -1
  412. package/dist/domains/dam/assetSelect/composables/podcastFilterAndActions.js +1 -2
  413. package/dist/domains/dam/assetSelect/filter/AssetFilter.js +5 -6
  414. package/dist/domains/dam/assetSelect/store/assetSelectStore.d.ts +8 -4
  415. package/dist/domains/dam/assetSelect/store/assetSelectStore.js +30 -31
  416. package/dist/domains/dam/assetSelect/store/assetSelectStore.js.map +1 -1
  417. package/dist/domains/dam/author/api/authorApi.js +18 -19
  418. package/dist/domains/dam/author/api/authorApi.js.map +1 -1
  419. package/dist/domains/dam/author/components/AuthorCreateButton.js +1 -2
  420. package/dist/domains/dam/author/components/AuthorCreateButton.js.map +1 -1
  421. package/dist/domains/dam/author/components/AuthorCreateButton.vue.d.ts +1 -1
  422. package/dist/domains/dam/author/components/AuthorCreateButton.vue_vue_type_script_setup_true_lang.js +86 -87
  423. package/dist/domains/dam/author/components/AuthorCreateButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  424. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.js +1 -2
  425. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.js.map +1 -1
  426. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue.d.ts +9 -6
  427. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue_vue_type_script_setup_true_lang.js +8 -9
  428. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  429. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.js +1 -2
  430. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.js.map +1 -1
  431. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.vue_vue_type_script_setup_true_lang.js +5 -6
  432. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.vue_vue_type_script_setup_true_lang.js.map +1 -1
  433. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js +4 -5
  434. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js.map +1 -1
  435. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue.d.ts +2 -2
  436. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js +89 -90
  437. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  438. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.js +1 -2
  439. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.js.map +1 -1
  440. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue.d.ts +1 -1
  441. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +9 -10
  442. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  443. package/dist/domains/dam/author/composables/authorActions.js +6 -7
  444. package/dist/domains/dam/author/composables/authorValidation.js +1 -2
  445. package/dist/domains/dam/author/composables/cachedAuthors.d.ts +5 -4
  446. package/dist/domains/dam/author/composables/cachedAuthors.js +13 -14
  447. package/dist/domains/dam/author/composables/cachedAuthors.js.map +1 -1
  448. package/dist/domains/dam/author/composables/cachedUsers.d.ts +5 -4
  449. package/dist/domains/dam/author/composables/cachedUsers.js +13 -14
  450. package/dist/domains/dam/author/composables/cachedUsers.js.map +1 -1
  451. package/dist/domains/dam/author/composables/damAuthorConfig.d.ts +2 -2
  452. package/dist/domains/dam/author/composables/damAuthorConfig.js +5 -6
  453. package/dist/domains/dam/author/composables/damAuthorConfig.js.map +1 -1
  454. package/dist/domains/dam/author/factory/AuthorFactory.js +8 -9
  455. package/dist/domains/dam/author/filter/AuthorFilter.js +5 -6
  456. package/dist/domains/dam/author/types/DamAuthorType.js +1 -2
  457. package/dist/domains/dam/components/DamAdminAssetLink.js +1 -2
  458. package/dist/domains/dam/components/DamAdminAssetLink.js.map +1 -1
  459. package/dist/domains/dam/components/DamAdminAssetLink.vue_vue_type_script_setup_true_lang.js +1 -2
  460. package/dist/domains/dam/components/DamAdminAssetLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  461. package/dist/domains/dam/composables/commonAdminCoreDamOptions.d.ts +13 -8
  462. package/dist/domains/dam/composables/commonAdminCoreDamOptions.js +59 -57
  463. package/dist/domains/dam/composables/commonAdminCoreDamOptions.js.map +1 -1
  464. package/dist/domains/dam/composables/damConfigName.d.ts +8 -9
  465. package/dist/domains/dam/composables/damConfigName.js +5 -6
  466. package/dist/domains/dam/composables/damConfigName.js.map +1 -1
  467. package/dist/domains/dam/composables/damNotifications.d.ts +9 -9
  468. package/dist/domains/dam/composables/damNotifications.js +9 -10
  469. package/dist/domains/dam/composables/damNotifications.js.map +1 -1
  470. package/dist/domains/dam/composables/damNotificationsConnection.d.ts +4 -4
  471. package/dist/domains/dam/composables/damNotificationsConnection.js +1 -2
  472. package/dist/domains/dam/composables/damNotificationsConnection.js.map +1 -1
  473. package/dist/domains/dam/composables/damNotificationsEventBus.d.ts +2 -2
  474. package/dist/domains/dam/composables/damNotificationsEventBus.js +1 -2
  475. package/dist/domains/dam/composables/damNotificationsEventBus.js.map +1 -1
  476. package/dist/domains/dam/composables/extSystemIdForCached.d.ts +5 -4
  477. package/dist/domains/dam/composables/extSystemIdForCached.js +1 -2
  478. package/dist/domains/dam/composables/extSystemIdForCached.js.map +1 -1
  479. package/dist/domains/dam/composables/uploadValidations.js +4 -5
  480. package/dist/domains/dam/config/api/damAssetCustomFormApi.js +7 -8
  481. package/dist/domains/dam/config/api/damAssetCustomFormApi.js.map +1 -1
  482. package/dist/domains/dam/config/api/damConfigApi.js +9 -10
  483. package/dist/domains/dam/config/api/damConfigApi.js.map +1 -1
  484. package/dist/domains/dam/config/composables/acceptTypeAndSizeHelper.js +1 -2
  485. package/dist/domains/dam/config/composables/damConfigState.d.ts +5 -5
  486. package/dist/domains/dam/config/composables/damConfigState.js +58 -59
  487. package/dist/domains/dam/config/composables/damConfigState.js.map +1 -1
  488. package/dist/domains/dam/config/store/damConfigStore.d.ts +5 -4
  489. package/dist/domains/dam/config/store/damConfigStore.js +1 -2
  490. package/dist/domains/dam/config/store/damConfigStore.js.map +1 -1
  491. package/dist/domains/dam/config/utils/damFilterUserAllowedUploadConfigs.d.ts +3 -1
  492. package/dist/domains/dam/config/utils/damFilterUserAllowedUploadConfigs.js +1 -2
  493. package/dist/domains/dam/config/utils/damFilterUserAllowedUploadConfigs.js.map +1 -1
  494. package/dist/domains/dam/cropper/components/ACropper.js +1 -2
  495. package/dist/domains/dam/cropper/components/ACropper.js.map +1 -1
  496. package/dist/domains/dam/cropper/components/ACropper.vue.d.ts +8 -16
  497. package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js +3 -4
  498. package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  499. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.js +1 -2
  500. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.js.map +1 -1
  501. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.vue_vue_type_script_setup_true_lang.js +23 -24
  502. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  503. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.js +1 -2
  504. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.vue_vue_type_script_setup_true_lang.js +5 -6
  505. package/dist/domains/dam/cropper/store/imageRoiStore.d.ts +11 -14
  506. package/dist/domains/dam/cropper/store/imageRoiStore.js +1 -2
  507. package/dist/domains/dam/cropper/store/imageRoiStore.js.map +1 -1
  508. package/dist/domains/dam/cropper/utils/cropperGeometry.d.ts +24 -38
  509. package/dist/domains/dam/cropper/utils/cropperGeometry.js +2 -3
  510. package/dist/domains/dam/cropper/utils/cropperGeometry.js.map +1 -1
  511. package/dist/domains/dam/cropper/utils/cropperJsService.d.ts +3 -7
  512. package/dist/domains/dam/cropper/utils/cropperJsService.js +11 -5
  513. package/dist/domains/dam/cropper/utils/cropperJsService.js.map +1 -1
  514. package/dist/domains/dam/cropper/utils/cropperTypes.d.ts +3 -6
  515. package/dist/domains/dam/cropper/utils/damAssetImageRoiSelectLoader.d.ts +5 -5
  516. package/dist/domains/dam/cropper/utils/damAssetImageRoiSelectLoader.js +1 -2
  517. package/dist/domains/dam/cropper/utils/damAssetImageRoiSelectLoader.js.map +1 -1
  518. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.js +1 -2
  519. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.js.map +1 -1
  520. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.vue_vue_type_script_setup_true_lang.js +46 -47
  521. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  522. package/dist/domains/dam/imageWidget/components/AImagePublicInput.js +1 -2
  523. package/dist/domains/dam/imageWidget/components/AImagePublicInput.js.map +1 -1
  524. package/dist/domains/dam/imageWidget/components/AImagePublicInput.vue_vue_type_script_setup_true_lang.js +74 -75
  525. package/dist/domains/dam/imageWidget/components/AImagePublicInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  526. package/dist/domains/dam/imageWidget/components/AImageWidget.js +1 -2
  527. package/dist/domains/dam/imageWidget/components/AImageWidget.js.map +1 -1
  528. package/dist/domains/dam/imageWidget/components/AImageWidget.vue_vue_type_script_setup_true_lang.js +39 -40
  529. package/dist/domains/dam/imageWidget/components/AImageWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  530. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.js +1 -2
  531. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.js.map +1 -1
  532. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.vue_vue_type_script_setup_true_lang.js +25 -26
  533. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  534. package/dist/domains/dam/imageWidget/components/AImageWidgetMultipleSimple.js +1 -2
  535. package/dist/domains/dam/imageWidget/components/AImageWidgetMultipleSimple.vue_vue_type_script_setup_true_lang.js +13 -14
  536. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.js +4 -5
  537. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.js.map +1 -1
  538. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.vue.d.ts +43 -41
  539. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.vue_vue_type_script_setup_true_lang.js +17 -18
  540. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.js +4 -5
  541. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.js.map +1 -1
  542. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.vue.d.ts +31 -29
  543. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.vue_vue_type_script_setup_true_lang.js +21 -22
  544. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.js +1 -2
  545. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.js.map +1 -1
  546. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue.d.ts +29 -27
  547. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue_vue_type_script_setup_true_lang.js +59 -60
  548. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  549. package/dist/domains/dam/imageWidget/components/ImageMassOperations.js +1 -2
  550. package/dist/domains/dam/imageWidget/components/ImageMassOperations.js.map +1 -1
  551. package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue.d.ts +1 -1
  552. package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue_vue_type_script_setup_true_lang.js +35 -36
  553. package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  554. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.js +1 -2
  555. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.js.map +1 -1
  556. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue.d.ts +68 -66
  557. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue_vue_type_script_setup_true_lang.js +379 -380
  558. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  559. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.js +1 -2
  560. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.js.map +1 -1
  561. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue.d.ts +403 -400
  562. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue_vue_type_script_setup_true_lang.js +149 -150
  563. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  564. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.js +1 -2
  565. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.js.map +1 -1
  566. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue.d.ts +385 -382
  567. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue_vue_type_script_setup_true_lang.js +79 -80
  568. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  569. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.js +1 -2
  570. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.js.map +1 -1
  571. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.vue_vue_type_script_setup_true_lang.js +23 -24
  572. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  573. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.js +1 -2
  574. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.js.map +1 -1
  575. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.vue_vue_type_script_setup_true_lang.js +14 -15
  576. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  577. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.js +1 -2
  578. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.vue.d.ts +7 -5
  579. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.vue_vue_type_script_setup_true_lang.js +1 -2
  580. package/dist/domains/dam/imageWidget/composables/commonAdminImageOptions.js +10 -11
  581. package/dist/domains/dam/imageWidget/composables/commonAdminImageOptions.js.map +1 -1
  582. package/dist/domains/dam/imageWidget/composables/imageActions.js +1 -2
  583. package/dist/domains/dam/imageWidget/composables/imageApiCms.js +19 -20
  584. package/dist/domains/dam/imageWidget/composables/imageApiCms.js.map +1 -1
  585. package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.d.ts +13 -14
  586. package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.js +53 -54
  587. package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.js.map +1 -1
  588. package/dist/domains/dam/imageWidget/composables/useImageMassOperations.js +15 -16
  589. package/dist/domains/dam/imageWidget/composables/useImageMassOperations.js.map +1 -1
  590. package/dist/domains/dam/imageWidget/store/imageMediaWidgetStore.js +1 -2
  591. package/dist/domains/dam/imageWidget/store/imageMediaWidgetStore.js.map +1 -1
  592. package/dist/domains/dam/imageWidget/store/imageStore.js +1 -2
  593. package/dist/domains/dam/imageWidget/store/imageStore.js.map +1 -1
  594. package/dist/domains/dam/imageWidget/utils/damImage.d.ts +5 -6
  595. package/dist/domains/dam/imageWidget/utils/damImage.js +1 -2
  596. package/dist/domains/dam/imageWidget/utils/damImage.js.map +1 -1
  597. package/dist/domains/dam/imageWidget/utils/fieldLockTurns.d.ts +1 -2
  598. package/dist/domains/dam/imageWidget/utils/fieldLockTurns.js +1 -2
  599. package/dist/domains/dam/imageWidget/utils/fieldLockTurns.js.map +1 -1
  600. package/dist/domains/dam/imageWidget/utils/imageSaves.d.ts +10 -14
  601. package/dist/domains/dam/imageWidget/utils/imageSaves.js +1 -2
  602. package/dist/domains/dam/imageWidget/utils/imageSaves.js.map +1 -1
  603. package/dist/domains/dam/imageWidget/utils/imageWidgetInkectionKeys.js +1 -2
  604. package/dist/domains/dam/imageWidget/utils/metadataToImageMap.js +1 -2
  605. package/dist/domains/dam/imageWidget/utils/metadataToImageMap.js.map +1 -1
  606. package/dist/domains/dam/imageWidget/utils/waitLimit.d.ts +4 -6
  607. package/dist/domains/dam/imageWidget/utils/waitLimit.js +4 -5
  608. package/dist/domains/dam/imageWidget/utils/waitLimit.js.map +1 -1
  609. package/dist/domains/dam/keyword/api/keywordApi.js +18 -19
  610. package/dist/domains/dam/keyword/api/keywordApi.js.map +1 -1
  611. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.js +1 -2
  612. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.js.map +1 -1
  613. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.vue.d.ts +1 -1
  614. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +8 -9
  615. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  616. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.js +1 -2
  617. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.js.map +1 -1
  618. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue.d.ts +8 -5
  619. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js +8 -9
  620. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  621. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js +4 -5
  622. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js.map +1 -1
  623. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue.d.ts +2 -2
  624. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js +93 -94
  625. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  626. package/dist/domains/dam/keyword/composables/cachedKeywords.d.ts +5 -4
  627. package/dist/domains/dam/keyword/composables/cachedKeywords.js +13 -14
  628. package/dist/domains/dam/keyword/composables/cachedKeywords.js.map +1 -1
  629. package/dist/domains/dam/keyword/composables/damKeywordConfig.d.ts +2 -2
  630. package/dist/domains/dam/keyword/composables/damKeywordConfig.js +5 -6
  631. package/dist/domains/dam/keyword/composables/damKeywordConfig.js.map +1 -1
  632. package/dist/domains/dam/keyword/composables/keywordActions.js +6 -7
  633. package/dist/domains/dam/keyword/factory/KeywordFactory.js +7 -8
  634. package/dist/domains/dam/keyword/factory/KeywordFactory.js.map +1 -1
  635. package/dist/domains/dam/keyword/filter/KeywordFilter.js +7 -8
  636. package/dist/domains/dam/types/Asset.d.ts +4 -2
  637. package/dist/domains/dam/types/Asset.js +1 -2
  638. package/dist/domains/dam/types/Asset.js.map +1 -1
  639. package/dist/domains/dam/types/AssetFile.d.ts +1 -1
  640. package/dist/domains/dam/types/AssetFile.js +1 -2
  641. package/dist/domains/dam/types/AssetFile.js.map +1 -1
  642. package/dist/domains/dam/types/AssetLicence.d.ts +7 -0
  643. package/dist/domains/dam/types/AssetSelect.js +1 -2
  644. package/dist/domains/dam/types/DamConfig.js +1 -2
  645. package/dist/domains/dam/types/MediaAware.js +1 -2
  646. package/dist/domains/dam/types/UploadQueue.d.ts +5 -4
  647. package/dist/domains/dam/types/UploadQueue.js +1 -2
  648. package/dist/domains/dam/types/UploadQueue.js.map +1 -1
  649. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.js +1 -2
  650. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.js.map +1 -1
  651. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js +10 -11
  652. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  653. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.js +1 -2
  654. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.js.map +1 -1
  655. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue.d.ts +2 -2
  656. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue_vue_type_script_setup_true_lang.js +84 -85
  657. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  658. package/dist/domains/dam/uploadQueue/components/UploadQueueButtonStop.js +1 -2
  659. package/dist/domains/dam/uploadQueue/components/UploadQueueButtonStop.vue_vue_type_script_setup_true_lang.js +7 -8
  660. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.js +1 -2
  661. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.js.map +1 -1
  662. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.vue_vue_type_script_setup_true_lang.js +84 -85
  663. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  664. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.js +1 -2
  665. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.js.map +1 -1
  666. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.vue_vue_type_script_setup_true_lang.js +60 -61
  667. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  668. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.js +1 -2
  669. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.js.map +1 -1
  670. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.vue.d.ts +6 -4
  671. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.vue_vue_type_script_setup_true_lang.js +17 -18
  672. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  673. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.js +1 -2
  674. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.js.map +1 -1
  675. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue.d.ts +1 -1
  676. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue_vue_type_script_setup_true_lang.js +14 -15
  677. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  678. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.js +1 -2
  679. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.js.map +1 -1
  680. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.vue_vue_type_script_setup_true_lang.js +30 -31
  681. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  682. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.js +1 -2
  683. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.js.map +1 -1
  684. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue.d.ts +6 -6
  685. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue_vue_type_script_setup_true_lang.js +28 -29
  686. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  687. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.js +1 -2
  688. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.js.map +1 -1
  689. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue.d.ts +13 -13
  690. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue_vue_type_script_setup_true_lang.js +109 -110
  691. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  692. package/dist/domains/dam/uploadQueue/components/UploadQueueItemErrorOverlay.js +1 -2
  693. package/dist/domains/dam/uploadQueue/components/UploadQueueItemErrorOverlay.vue_vue_type_script_setup_true_lang.js +1 -2
  694. package/dist/domains/dam/uploadQueue/components/uploadQueueBindings.d.ts +13 -13
  695. package/dist/domains/dam/uploadQueue/components/uploadQueueBindings.js +18 -19
  696. package/dist/domains/dam/uploadQueue/components/uploadQueueBindings.js.map +1 -1
  697. package/dist/domains/dam/uploadQueue/composables/assetSuggestions.js +1 -2
  698. package/dist/domains/dam/uploadQueue/composables/damUploadChunkSize.d.ts +2 -2
  699. package/dist/domains/dam/uploadQueue/composables/damUploadChunkSize.js +1 -2
  700. package/dist/domains/dam/uploadQueue/composables/damUploadChunkSize.js.map +1 -1
  701. package/dist/domains/dam/uploadQueue/composables/uploadMeter.d.ts +12 -12
  702. package/dist/domains/dam/uploadQueue/composables/uploadMeter.js +1 -2
  703. package/dist/domains/dam/uploadQueue/composables/uploadMeter.js.map +1 -1
  704. package/dist/domains/dam/uploadQueue/composables/uploadQueueItemRefresh.d.ts +5 -5
  705. package/dist/domains/dam/uploadQueue/composables/uploadQueueItemRefresh.js +21 -22
  706. package/dist/domains/dam/uploadQueue/composables/uploadQueueItemRefresh.js.map +1 -1
  707. package/dist/domains/dam/uploadQueue/composables/uploadQueueMassOperations.js +1 -2
  708. package/dist/domains/dam/uploadQueue/composables/uploadService.d.ts +2 -3
  709. package/dist/domains/dam/uploadQueue/composables/uploadService.js +40 -41
  710. package/dist/domains/dam/uploadQueue/composables/uploadService.js.map +1 -1
  711. package/dist/domains/dam/uploadQueue/composables/useUploadQueueDialog.d.ts +5 -4
  712. package/dist/domains/dam/uploadQueue/composables/useUploadQueueDialog.js +1 -2
  713. package/dist/domains/dam/uploadQueue/composables/useUploadQueueDialog.js.map +1 -1
  714. package/dist/domains/dam/uploadQueue/core/uploadQueueCore.d.ts +3 -2
  715. package/dist/domains/dam/uploadQueue/core/uploadQueueCore.js +55 -56
  716. package/dist/domains/dam/uploadQueue/core/uploadQueueCore.js.map +1 -1
  717. package/dist/domains/dam/uploadQueue/core/uploadQueueCoreTypes.d.ts +8 -5
  718. package/dist/domains/dam/uploadQueue/core/uploadQueueCoreTypes.js +1 -2
  719. package/dist/domains/dam/uploadQueue/core/uploadQueueCoreTypes.js.map +1 -1
  720. package/dist/domains/dam/uploadQueue/core/uploadQueueFill.d.ts +3 -3
  721. package/dist/domains/dam/uploadQueue/core/uploadQueueFill.js +1 -2
  722. package/dist/domains/dam/uploadQueue/core/uploadQueueFill.js.map +1 -1
  723. package/dist/domains/dam/uploadQueue/factory/UploadQueueItemFactory.js +1 -2
  724. package/dist/domains/dam/uploadQueue/presets/queuePresets.d.ts +8 -5
  725. package/dist/domains/dam/uploadQueue/presets/queuePresets.js +16 -17
  726. package/dist/domains/dam/uploadQueue/presets/queuePresets.js.map +1 -1
  727. package/dist/domains/dam/uploadQueue/presets/uploadPresets.d.ts +15 -13
  728. package/dist/domains/dam/uploadQueue/presets/uploadPresets.js +9 -10
  729. package/dist/domains/dam/uploadQueue/presets/uploadPresets.js.map +1 -1
  730. package/dist/domains/dam/uploadQueue/settlement/uploadPollSchedule.d.ts +7 -7
  731. package/dist/domains/dam/uploadQueue/settlement/uploadPollSchedule.js +1 -2
  732. package/dist/domains/dam/uploadQueue/settlement/uploadPollSchedule.js.map +1 -1
  733. package/dist/domains/dam/uploadQueue/settlement/uploadPoller.d.ts +4 -4
  734. package/dist/domains/dam/uploadQueue/settlement/uploadPoller.js +3 -4
  735. package/dist/domains/dam/uploadQueue/settlement/uploadPoller.js.map +1 -1
  736. package/dist/domains/dam/uploadQueue/settlement/uploadSettle.d.ts +28 -30
  737. package/dist/domains/dam/uploadQueue/settlement/uploadSettle.js +130 -131
  738. package/dist/domains/dam/uploadQueue/settlement/uploadSettle.js.map +1 -1
  739. package/dist/domains/dam/uploadQueue/settlement/uploadSettlement.d.ts +2 -2
  740. package/dist/domains/dam/uploadQueue/settlement/uploadSettlement.js +94 -95
  741. package/dist/domains/dam/uploadQueue/settlement/uploadSettlement.js.map +1 -1
  742. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementRuntime.d.ts +2 -2
  743. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementRuntime.js +1 -2
  744. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementRuntime.js.map +1 -1
  745. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementTypes.d.ts +63 -73
  746. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementTypes.js +1 -2
  747. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementTypes.js.map +1 -1
  748. package/dist/domains/dam/uploadQueue/store/uploadQueuesStore.d.ts +8 -9
  749. package/dist/domains/dam/uploadQueue/store/uploadQueuesStore.js +167 -168
  750. package/dist/domains/dam/uploadQueue/store/uploadQueuesStore.js.map +1 -1
  751. package/dist/domains/dam/uploadQueue/utils/mimeTypeHelper.js +1 -2
  752. package/dist/domains/dam/user/api/assetLicenceApi.d.ts +2 -1
  753. package/dist/domains/dam/user/api/assetLicenceApi.js +5 -6
  754. package/dist/domains/dam/user/api/assetLicenceApi.js.map +1 -1
  755. package/dist/domains/dam/user/api/assetLicenceGroupApi.js +1 -2
  756. package/dist/domains/dam/user/api/extSystemApi.js +1 -2
  757. package/dist/domains/dam/user/api/userApi.d.ts +2 -2
  758. package/dist/domains/dam/user/api/userApi.js +26 -27
  759. package/dist/domains/dam/user/api/userApi.js.map +1 -1
  760. package/dist/domains/dam/user/components/DamAssetLicenceGroupRemoteAutocomplete.js +1 -2
  761. package/dist/domains/dam/user/components/DamAssetLicenceGroupRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +9 -10
  762. package/dist/domains/dam/user/components/DamAssetLicenceRemoteAutocomplete.js +1 -2
  763. package/dist/domains/dam/user/components/DamAssetLicenceRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +10 -11
  764. package/dist/domains/dam/user/components/DamDistributionServiceSelect.js +1 -2
  765. package/dist/domains/dam/user/components/DamDistributionServiceSelect.js.map +1 -1
  766. package/dist/domains/dam/user/components/DamDistributionServiceSelect.vue.d.ts +1 -1
  767. package/dist/domains/dam/user/components/DamDistributionServiceSelect.vue_vue_type_script_setup_true_lang.js +4 -5
  768. package/dist/domains/dam/user/components/DamDistributionServiceSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  769. package/dist/domains/dam/user/components/DamExtSystemRemoteAutocomplete.js +1 -2
  770. package/dist/domains/dam/user/components/DamExtSystemRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +8 -9
  771. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.js +1 -2
  772. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.js.map +1 -1
  773. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.vue.d.ts +1 -1
  774. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.vue_vue_type_script_setup_true_lang.js +4 -5
  775. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  776. package/dist/domains/dam/user/components/DamUserFilterRemoteAutocomplete.js +1 -2
  777. package/dist/domains/dam/user/components/DamUserFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +9 -10
  778. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.js +1 -2
  779. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.js.map +1 -1
  780. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.vue.d.ts +1 -1
  781. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +11 -12
  782. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  783. package/dist/domains/dam/user/composables/assetLicenceActions.js +1 -2
  784. package/dist/domains/dam/user/composables/assetLicenceGroupActions.js +1 -2
  785. package/dist/domains/dam/user/composables/cachedAssetLicences.d.ts +17 -0
  786. package/dist/domains/dam/user/composables/cachedAssetLicences.js +35 -0
  787. package/dist/domains/dam/user/composables/cachedAssetLicences.js.map +1 -0
  788. package/dist/domains/dam/user/composables/damUserSelectActions.d.ts +1 -1
  789. package/dist/domains/dam/user/composables/damUserSelectActions.js +1 -2
  790. package/dist/domains/dam/user/composables/damUserSelectActions.js.map +1 -1
  791. package/dist/domains/dam/user/composables/extSystemActions.js +1 -2
  792. package/dist/domains/dam/user/filter/AssetLicenceFilter.js +7 -8
  793. package/dist/domains/dam/user/filter/AssetLicenceGroupFilter.js +7 -8
  794. package/dist/domains/dam/user/filter/DamUserFilter.js +1 -2
  795. package/dist/domains/dam/user/filter/ExtSystemFilter.js +7 -8
  796. package/dist/domains/dam/user/types/DamDistributionServiceType.d.ts +2 -2
  797. package/dist/domains/dam/user/types/DamDistributionServiceType.js +1 -2
  798. package/dist/domains/dam/user/types/DamDistributionServiceType.js.map +1 -1
  799. package/dist/domains/dam/user/types/DamExternalProviderAssetType.d.ts +1 -1
  800. package/dist/domains/dam/user/types/DamExternalProviderAssetType.js +1 -2
  801. package/dist/domains/dam/user/types/DamExternalProviderAssetType.js.map +1 -1
  802. package/dist/domains/filters/bookmarks/api/userAdminConfigApi.d.ts +1 -3
  803. package/dist/domains/filters/bookmarks/api/userAdminConfigApi.js +14 -15
  804. package/dist/domains/filters/bookmarks/api/userAdminConfigApi.js.map +1 -1
  805. package/dist/domains/filters/bookmarks/components/AFilterBookmarkButton.js +1 -2
  806. package/dist/domains/filters/bookmarks/components/AFilterBookmarkButton.vue_vue_type_script_setup_true_lang.js +1 -2
  807. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.js +1 -2
  808. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.js.map +1 -1
  809. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.vue_vue_type_script_setup_true_lang.js +108 -109
  810. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  811. package/dist/domains/filters/bookmarks/components/FilterBookmarks.js +1 -2
  812. package/dist/domains/filters/bookmarks/components/FilterBookmarks.vue_vue_type_script_setup_true_lang.js +65 -66
  813. package/dist/domains/filters/bookmarks/components/FilterBookmarks.vue_vue_type_script_setup_true_lang.js.map +1 -1
  814. package/dist/domains/filters/bookmarks/factory/UserAdminConfigFactory.js +7 -8
  815. package/dist/domains/filters/bookmarks/filter/UserAdminConfigFilter.js +1 -2
  816. package/dist/domains/filters/bookmarks/store/bookmarksStore.d.ts +3 -3
  817. package/dist/domains/filters/bookmarks/store/bookmarksStore.js +9 -10
  818. package/dist/domains/filters/bookmarks/store/bookmarksStore.js.map +1 -1
  819. package/dist/domains/filters/bookmarks/types/UserAdminConfig.js +1 -2
  820. package/dist/domains/filters/components/AFilterAdvancedButton.js +1 -2
  821. package/dist/domains/filters/components/AFilterAdvancedButton.vue_vue_type_script_setup_true_lang.js +1 -2
  822. package/dist/domains/filters/components/AFilterBooleanSelect.js +1 -2
  823. package/dist/domains/filters/components/AFilterBooleanSelect.vue_vue_type_script_setup_true_lang.js +1 -2
  824. package/dist/domains/filters/components/AFilterDatetimePicker.js +1 -2
  825. package/dist/domains/filters/components/AFilterDatetimePicker.js.map +1 -1
  826. package/dist/domains/filters/components/AFilterDatetimePicker.vue_vue_type_script_setup_true_lang.js +14 -15
  827. package/dist/domains/filters/components/AFilterDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  828. package/dist/domains/filters/components/AFilterEmpty.js +1 -2
  829. package/dist/domains/filters/components/AFilterEmpty.vue_vue_type_script_setup_true_lang.js +1 -2
  830. package/dist/domains/filters/components/AFilterInteger.js +1 -2
  831. package/dist/domains/filters/components/AFilterInteger.js.map +1 -1
  832. package/dist/domains/filters/components/AFilterInteger.vue_vue_type_script_setup_true_lang.js +11 -12
  833. package/dist/domains/filters/components/AFilterInteger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  834. package/dist/domains/filters/components/AFilterResetButton.js +1 -2
  835. package/dist/domains/filters/components/AFilterResetButton.vue_vue_type_script_setup_true_lang.js +1 -2
  836. package/dist/domains/filters/components/AFilterString.js +1 -2
  837. package/dist/domains/filters/components/AFilterString.js.map +1 -1
  838. package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js +5 -6
  839. package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js.map +1 -1
  840. package/dist/domains/filters/components/AFilterSubmitButton.js +1 -2
  841. package/dist/domains/filters/components/AFilterSubmitButton.vue_vue_type_script_setup_true_lang.js +1 -2
  842. package/dist/domains/filters/components/AFilterTimeInterval.js +4 -5
  843. package/dist/domains/filters/components/AFilterTimeInterval.js.map +1 -1
  844. package/dist/domains/filters/components/AFilterTimeInterval.vue.d.ts +5 -3
  845. package/dist/domains/filters/components/AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js +91 -92
  846. package/dist/domains/filters/components/AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js.map +1 -1
  847. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.js +1 -2
  848. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.js.map +1 -1
  849. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js +16 -17
  850. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  851. package/dist/domains/filters/components/AFilterWrapper.js +1 -2
  852. package/dist/domains/filters/components/AFilterWrapper.js.map +1 -1
  853. package/dist/domains/filters/components/AFilterWrapper.vue.d.ts +17 -15
  854. package/dist/domains/filters/components/AFilterWrapper.vue_vue_type_script_setup_true_lang.js +95 -95
  855. package/dist/domains/filters/components/AFilterWrapper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  856. package/dist/domains/filters/components/AFilterWrapperSidebar.js +1 -2
  857. package/dist/domains/filters/components/AFilterWrapperSidebar.vue.d.ts +5 -3
  858. package/dist/domains/filters/components/AFilterWrapperSidebar.vue_vue_type_script_setup_true_lang.js +7 -8
  859. package/dist/domains/filters/components/FilterDetailItem.js +1 -2
  860. package/dist/domains/filters/components/FilterDetailItem.vue_vue_type_script_setup_true_lang.js +10 -11
  861. package/dist/domains/filters/components/FilterDetailItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  862. package/dist/domains/filters/components/FiltersSelected.js +1 -2
  863. package/dist/domains/filters/components/FiltersSelected.js.map +1 -1
  864. package/dist/domains/filters/components/FiltersSelected.vue_vue_type_script_setup_true_lang.js +13 -14
  865. package/dist/domains/filters/components/FiltersSelected.vue_vue_type_script_setup_true_lang.js.map +1 -1
  866. package/dist/domains/filters/composables/filterFactory.d.ts +28 -9
  867. package/dist/domains/filters/composables/filterFactory.js +179 -162
  868. package/dist/domains/filters/composables/filterFactory.js.map +1 -1
  869. package/dist/domains/filters/composables/filterTimeIntervalTools.js +1 -2
  870. package/dist/domains/filters/datatable/components/ADatatableConfigButton.js +1 -2
  871. package/dist/domains/filters/datatable/components/ADatatableConfigButton.vue_vue_type_script_setup_true_lang.js +1 -2
  872. package/dist/domains/filters/datatable/components/ADatatableOrdering.js +1 -2
  873. package/dist/domains/filters/datatable/components/ADatatableOrdering.js.map +1 -1
  874. package/dist/domains/filters/datatable/components/ADatatableOrdering.vue_vue_type_script_setup_true_lang.js +25 -24
  875. package/dist/domains/filters/datatable/components/ADatatableOrdering.vue_vue_type_script_setup_true_lang.js.map +1 -1
  876. package/dist/domains/filters/datatable/components/ADatatablePagination.js +1 -2
  877. package/dist/domains/filters/datatable/components/ADatatablePagination.js.map +1 -1
  878. package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js +7 -10
  879. package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  880. package/dist/domains/filters/datatable/composables/createDatatableColumnsConfig.js +13 -14
  881. package/dist/domains/filters/datatable/utils/datatable.js +1 -2
  882. package/dist/domains/filters/datatable/utils/datatableColumns.js +1 -2
  883. package/dist/domains/filters/utils/filterInjectionKeys.js +1 -2
  884. package/dist/domains/filters/utils/filterInjectionKeys.js.map +1 -1
  885. package/dist/domains/form/components/AFormDatetimePicker.js +1 -2
  886. package/dist/domains/form/components/AFormDatetimePicker.js.map +1 -1
  887. package/dist/domains/form/components/AFormDatetimePicker.vue.d.ts +7 -5
  888. package/dist/domains/form/components/AFormDatetimePicker.vue_vue_type_script_setup_true_lang.js +19 -20
  889. package/dist/domains/form/components/AFormDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  890. package/dist/domains/form/components/AFormFlagDatetimePicker.js +1 -2
  891. package/dist/domains/form/components/AFormFlagDatetimePicker.js.map +1 -1
  892. package/dist/domains/form/components/AFormFlagDatetimePicker.vue.d.ts +7 -5
  893. package/dist/domains/form/components/AFormFlagDatetimePicker.vue_vue_type_script_setup_true_lang.js +23 -24
  894. package/dist/domains/form/components/AFormFlagDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  895. package/dist/domains/form/components/AFormRemoteCheckbox.js +1 -2
  896. package/dist/domains/form/components/AFormRemoteCheckbox.vue_vue_type_script_setup_true_lang.js +9 -10
  897. package/dist/domains/form/components/AFormRemoteSwitch.js +1 -2
  898. package/dist/domains/form/components/AFormRemoteSwitch.vue_vue_type_script_setup_true_lang.js +9 -10
  899. package/dist/domains/form/components/AFormSwitch.js +1 -2
  900. package/dist/domains/form/components/AFormSwitch.vue.d.ts +7 -5
  901. package/dist/domains/form/components/AFormSwitch.vue_vue_type_script_setup_true_lang.js +12 -13
  902. package/dist/domains/form/components/AFormTextField.js +1 -2
  903. package/dist/domains/form/components/AFormTextField.js.map +1 -1
  904. package/dist/domains/form/components/AFormTextField.vue.d.ts +9 -7
  905. package/dist/domains/form/components/AFormTextField.vue_vue_type_script_setup_true_lang.js +14 -15
  906. package/dist/domains/form/components/AFormTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  907. package/dist/domains/form/components/AFormTextarea.js +1 -2
  908. package/dist/domains/form/components/AFormTextarea.vue.d.ts +13 -11
  909. package/dist/domains/form/components/AFormTextarea.vue_vue_type_script_setup_true_lang.js +21 -22
  910. package/dist/domains/form/components/AFormTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  911. package/dist/domains/form/components/AFormValueObjectOptionsSelect.js +1 -2
  912. package/dist/domains/form/components/AFormValueObjectOptionsSelect.vue.d.ts +7 -5
  913. package/dist/domains/form/components/AFormValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js +17 -18
  914. package/dist/domains/form/components/ASystemEntityScope.js +1 -2
  915. package/dist/domains/form/components/ASystemEntityScope.vue.d.ts +5 -3
  916. package/dist/domains/form/components/ASystemEntityScope.vue_vue_type_script_setup_true_lang.js +1 -2
  917. package/dist/domains/job/api/jobApi.js +9 -10
  918. package/dist/domains/job/api/jobApi.js.map +1 -1
  919. package/dist/domains/job/components/AJobBaseCreateForm.js +1 -2
  920. package/dist/domains/job/components/AJobBaseCreateForm.vue_vue_type_script_setup_true_lang.js +8 -9
  921. package/dist/domains/job/components/AJobDetailCommon.js +1 -2
  922. package/dist/domains/job/components/AJobDetailCommon.vue.d.ts +5 -3
  923. package/dist/domains/job/components/AJobDetailCommon.vue_vue_type_script_setup_true_lang.js +9 -10
  924. package/dist/domains/job/components/AJobDetailCommon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  925. package/dist/domains/job/components/AJobPriorityChip.js +1 -2
  926. package/dist/domains/job/components/AJobPriorityChip.vue_vue_type_script_setup_true_lang.js +5 -6
  927. package/dist/domains/job/components/AJobStatusChip.js +1 -2
  928. package/dist/domains/job/components/AJobStatusChip.vue_vue_type_script_setup_true_lang.js +1 -2
  929. package/dist/domains/job/composables/jobPriority.js +1 -2
  930. package/dist/domains/job/factory/JobFactory.js +7 -8
  931. package/dist/domains/job/valueObject/JobBaseResource.js +1 -2
  932. package/dist/domains/job/valueObject/JobStatus.js +1 -2
  933. package/dist/domains/listEditor/components/AListEditor.js +1 -2
  934. package/dist/domains/listEditor/components/AListEditor.js.map +1 -1
  935. package/dist/domains/listEditor/components/AListEditor.vue_vue_type_script_setup_true_lang.js +10 -11
  936. package/dist/domains/listEditor/components/AListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  937. package/dist/domains/listEditor/components/ANestedSortableListEditor.js +1 -2
  938. package/dist/domains/listEditor/components/ANestedSortableListEditor.js.map +1 -1
  939. package/dist/domains/listEditor/components/ANestedSortableListEditor.vue.d.ts +2 -3
  940. package/dist/domains/listEditor/components/ANestedSortableListEditor.vue_vue_type_script_setup_true_lang.js +49 -50
  941. package/dist/domains/listEditor/components/ANestedSortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  942. package/dist/domains/listEditor/components/ASortableListEditor.js +1 -2
  943. package/dist/domains/listEditor/components/ASortableListEditor.js.map +1 -1
  944. package/dist/domains/listEditor/components/ASortableListEditor.vue.d.ts +2 -3
  945. package/dist/domains/listEditor/components/ASortableListEditor.vue_vue_type_script_setup_true_lang.js +51 -52
  946. package/dist/domains/listEditor/components/ASortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  947. package/dist/domains/listEditor/components/internal/LeChangeParentDialog.js +4 -5
  948. package/dist/domains/listEditor/components/internal/LeChangeParentDialog.js.map +1 -1
  949. package/dist/domains/listEditor/components/internal/LeChangeParentDialog.vue_vue_type_script_setup_true_lang.js +1 -2
  950. package/dist/domains/listEditor/components/internal/LeDeleteDialog.js +1 -2
  951. package/dist/domains/listEditor/components/internal/LeDeleteDialog.vue_vue_type_script_setup_true_lang.js +1 -2
  952. package/dist/domains/listEditor/components/internal/LeDragHandle.js +1 -2
  953. package/dist/domains/listEditor/components/internal/LeDragHandle.vue_vue_type_script_setup_true_lang.js +1 -2
  954. package/dist/domains/listEditor/components/internal/LeEmptyState.js +1 -2
  955. package/dist/domains/listEditor/components/internal/LeEmptyState.vue_vue_type_script_setup_true_lang.js +1 -2
  956. package/dist/domains/listEditor/components/internal/LeMoveToPositionDialog.js +1 -2
  957. package/dist/domains/listEditor/components/internal/LeMoveToPositionDialog.vue_vue_type_script_setup_true_lang.js +1 -2
  958. package/dist/domains/listEditor/components/internal/LeNestedRow.js +1 -2
  959. package/dist/domains/listEditor/components/internal/LeNestedRow.vue_vue_type_script_setup_true_lang.js +24 -25
  960. package/dist/domains/listEditor/components/internal/LeNestedRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  961. package/dist/domains/listEditor/components/internal/LeStatus.js +1 -2
  962. package/dist/domains/listEditor/components/internal/LeStatus.vue_vue_type_script_setup_true_lang.js +1 -2
  963. package/dist/domains/listEditor/components/internal/LeUnsavedLabel.js +1 -2
  964. package/dist/domains/listEditor/components/internal/LeUnsavedLabel.vue_vue_type_script_setup_true_lang.js +1 -2
  965. package/dist/domains/listEditor/components/internal/constants.js +1 -2
  966. package/dist/domains/listEditor/composables/useContainerWidth.js +1 -2
  967. package/dist/domains/listEditor/composables/useDeleteDialog.js +1 -2
  968. package/dist/domains/listEditor/composables/useDragInstruction.js +1 -2
  969. package/dist/domains/listEditor/composables/useInlineEditing.js +1 -2
  970. package/dist/domains/listEditor/composables/useIsTouchDevice.js +1 -2
  971. package/dist/domains/listEditor/composables/useKeyboardNav.js +2 -3
  972. package/dist/domains/listEditor/composables/useKeyboardNav.js.map +1 -1
  973. package/dist/domains/listEditor/composables/useListEditorController.d.ts +4 -5
  974. package/dist/domains/listEditor/composables/useListEditorController.js +16 -17
  975. package/dist/domains/listEditor/composables/useListEditorController.js.map +1 -1
  976. package/dist/domains/listEditor/composables/useListEditorScopeValidity.js +1 -2
  977. package/dist/domains/listEditor/composables/useListEditorStateScope.js +1 -2
  978. package/dist/domains/listEditor/composables/useNestedListEditor.d.ts +3 -4
  979. package/dist/domains/listEditor/composables/useNestedListEditor.js +1 -2
  980. package/dist/domains/listEditor/composables/useNestedListEditor.js.map +1 -1
  981. package/dist/domains/listEditor/composables/useNestedListEditorController.d.ts +5 -4
  982. package/dist/domains/listEditor/composables/useNestedListEditorController.js +19 -20
  983. package/dist/domains/listEditor/composables/useNestedListEditorController.js.map +1 -1
  984. package/dist/domains/listEditor/composables/useReorderMode.js +1 -2
  985. package/dist/domains/listEditor/composables/useReorderMode.js.map +1 -1
  986. package/dist/domains/listEditor/types/listEditorTypes.d.ts +2 -2
  987. package/dist/domains/listEditor/utils/listEditorLoader.d.ts +5 -5
  988. package/dist/domains/listEditor/utils/listEditorLoader.js +1 -2
  989. package/dist/domains/listEditor/utils/listEditorLoader.js.map +1 -1
  990. package/dist/domains/listEditor/utils/positions.js +1 -2
  991. package/dist/domains/listEditor/utils/resolveCompactText.js +1 -2
  992. package/dist/domains/listEditor/utils/resolveCompactText.js.map +1 -1
  993. package/dist/domains/listEditor/utils/revealInvalidRows.js +1 -2
  994. package/dist/domains/listEditor/utils/tempId.js +1 -2
  995. package/dist/domains/log/api/logApi.d.ts +2 -3
  996. package/dist/domains/log/api/logApi.js +6 -7
  997. package/dist/domains/log/api/logApi.js.map +1 -1
  998. package/dist/domains/log/components/ALogDatatable.js +1 -2
  999. package/dist/domains/log/components/ALogDatatable.js.map +1 -1
  1000. package/dist/domains/log/components/ALogDatatable.vue_vue_type_script_setup_true_lang.js +28 -29
  1001. package/dist/domains/log/components/ALogDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1002. package/dist/domains/log/components/ALogDetail.js +4 -5
  1003. package/dist/domains/log/components/ALogDetail.js.map +1 -1
  1004. package/dist/domains/log/components/ALogDetail.vue_vue_type_script_setup_true_lang.js +5 -6
  1005. package/dist/domains/log/components/ALogDetailView.js +1 -2
  1006. package/dist/domains/log/components/ALogDetailView.js.map +1 -1
  1007. package/dist/domains/log/components/ALogDetailView.vue.d.ts +1 -1
  1008. package/dist/domains/log/components/ALogDetailView.vue_vue_type_script_setup_true_lang.js +10 -11
  1009. package/dist/domains/log/components/ALogDetailView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1010. package/dist/domains/log/components/ALogFilter.js +1 -2
  1011. package/dist/domains/log/components/ALogFilter.js.map +1 -1
  1012. package/dist/domains/log/components/ALogFilter.vue_vue_type_script_setup_true_lang.js +8 -9
  1013. package/dist/domains/log/components/ALogFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1014. package/dist/domains/log/components/ALogLevelChip.js +1 -2
  1015. package/dist/domains/log/components/ALogLevelChip.vue_vue_type_script_setup_true_lang.js +1 -2
  1016. package/dist/domains/log/components/ALogListView.js +1 -2
  1017. package/dist/domains/log/components/ALogListView.js.map +1 -1
  1018. package/dist/domains/log/components/ALogListView.vue.d.ts +1 -1
  1019. package/dist/domains/log/components/ALogListView.vue_vue_type_script_setup_true_lang.js +1 -2
  1020. package/dist/domains/log/components/ALogListView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1021. package/dist/domains/log/composables/logActions.d.ts +4 -5
  1022. package/dist/domains/log/composables/logActions.js +1 -2
  1023. package/dist/domains/log/composables/logActions.js.map +1 -1
  1024. package/dist/domains/log/composables/logType.d.ts +6 -7
  1025. package/dist/domains/log/composables/logType.js +1 -2
  1026. package/dist/domains/log/composables/logType.js.map +1 -1
  1027. package/dist/domains/log/filter/logFilter.d.ts +8 -11
  1028. package/dist/domains/log/filter/logFilter.js +16 -17
  1029. package/dist/domains/log/filter/logFilter.js.map +1 -1
  1030. package/dist/domains/log/valueObject/LogLevel.js +6 -7
  1031. package/dist/domains/log/valueObject/LogLevel.js.map +1 -1
  1032. package/dist/domains/permission/components/APermissionEditor.js +1 -2
  1033. package/dist/domains/permission/components/APermissionEditor.js.map +1 -1
  1034. package/dist/domains/permission/components/APermissionEditor.vue.d.ts +4 -4
  1035. package/dist/domains/permission/components/APermissionEditor.vue_vue_type_script_setup_true_lang.js +28 -29
  1036. package/dist/domains/permission/components/APermissionEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1037. package/dist/domains/permission/components/APermissionGrantEditor.js +1 -2
  1038. package/dist/domains/permission/components/APermissionGrantEditor.vue_vue_type_script_setup_true_lang.js +1 -2
  1039. package/dist/domains/permission/components/APermissionValueChip.js +1 -2
  1040. package/dist/domains/permission/components/APermissionValueChip.vue_vue_type_script_setup_true_lang.js +1 -2
  1041. package/dist/domains/permission/composables/permissionActions.d.ts +3 -6
  1042. package/dist/domains/permission/composables/permissionActions.js +9 -10
  1043. package/dist/domains/permission/composables/permissionActions.js.map +1 -1
  1044. package/dist/domains/permission/config/api/permissionConfigApi.d.ts +2 -2
  1045. package/dist/domains/permission/config/api/permissionConfigApi.js +1 -2
  1046. package/dist/domains/permission/config/api/permissionConfigApi.js.map +1 -1
  1047. package/dist/domains/permission/config/composables/permissionConfigActions.d.ts +3 -7
  1048. package/dist/domains/permission/config/composables/permissionConfigActions.js +9 -10
  1049. package/dist/domains/permission/config/composables/permissionConfigActions.js.map +1 -1
  1050. package/dist/domains/permission/config/factory/PermissionConfigFactory.js +1 -2
  1051. package/dist/domains/permission/config/store/permissionConfigStore.d.ts +2 -4
  1052. package/dist/domains/permission/config/store/permissionConfigStore.js +1 -2
  1053. package/dist/domains/permission/config/store/permissionConfigStore.js.map +1 -1
  1054. package/dist/domains/permission/group/api/permissionGroupApi.d.ts +8 -10
  1055. package/dist/domains/permission/group/api/permissionGroupApi.js +5 -6
  1056. package/dist/domains/permission/group/api/permissionGroupApi.js.map +1 -1
  1057. package/dist/domains/permission/group/components/APermissionGroupDatatable.js +1 -2
  1058. package/dist/domains/permission/group/components/APermissionGroupDatatable.js.map +1 -1
  1059. package/dist/domains/permission/group/components/APermissionGroupDatatable.vue.d.ts +12 -10
  1060. package/dist/domains/permission/group/components/APermissionGroupDatatable.vue_vue_type_script_setup_true_lang.js +41 -42
  1061. package/dist/domains/permission/group/components/APermissionGroupDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1062. package/dist/domains/permission/group/components/APermissionGroupDetail.js +1 -2
  1063. package/dist/domains/permission/group/components/APermissionGroupDetail.js.map +1 -1
  1064. package/dist/domains/permission/group/components/APermissionGroupDetail.vue.d.ts +21 -22
  1065. package/dist/domains/permission/group/components/APermissionGroupDetail.vue_vue_type_script_setup_true_lang.js +13 -14
  1066. package/dist/domains/permission/group/components/APermissionGroupDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1067. package/dist/domains/permission/group/components/APermissionGroupFilter.js +1 -2
  1068. package/dist/domains/permission/group/components/APermissionGroupFilter.vue_vue_type_script_setup_true_lang.js +11 -12
  1069. package/dist/domains/permission/group/components/APermissionGroupManage.js +1 -2
  1070. package/dist/domains/permission/group/components/APermissionGroupManage.js.map +1 -1
  1071. package/dist/domains/permission/group/components/APermissionGroupManage.vue.d.ts +21 -22
  1072. package/dist/domains/permission/group/components/APermissionGroupManage.vue_vue_type_script_setup_true_lang.js +8 -9
  1073. package/dist/domains/permission/group/components/APermissionGroupManage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1074. package/dist/domains/permission/group/components/APermissionGroupRemoteAutocomplete.js +1 -2
  1075. package/dist/domains/permission/group/components/APermissionGroupRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +7 -8
  1076. package/dist/domains/permission/group/composables/cachedPermissionGroups.js +1 -2
  1077. package/dist/domains/permission/group/composables/cachedPermissionGroups.js.map +1 -1
  1078. package/dist/domains/permission/group/composables/permissionGroupActions.d.ts +6 -8
  1079. package/dist/domains/permission/group/composables/permissionGroupActions.js +15 -16
  1080. package/dist/domains/permission/group/composables/permissionGroupActions.js.map +1 -1
  1081. package/dist/domains/permission/group/composables/permissionGroupValidations.d.ts +2 -3
  1082. package/dist/domains/permission/group/composables/permissionGroupValidations.js +1 -2
  1083. package/dist/domains/permission/group/composables/permissionGroupValidations.js.map +1 -1
  1084. package/dist/domains/permission/group/factory/PermissionGroupFactory.js +1 -2
  1085. package/dist/domains/permission/group/filter/permissionGroupFilter.d.ts +2 -3
  1086. package/dist/domains/permission/group/filter/permissionGroupFilter.js +1 -2
  1087. package/dist/domains/permission/group/filter/permissionGroupFilter.js.map +1 -1
  1088. package/dist/domains/permission/group/store/permissionGroupStore.d.ts +3 -6
  1089. package/dist/domains/permission/group/store/permissionGroupStore.js +1 -2
  1090. package/dist/domains/permission/group/store/permissionGroupStore.js.map +1 -1
  1091. package/dist/domains/permission/valueObject/GrantOrigin.js +1 -2
  1092. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.js +1 -2
  1093. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.js.map +1 -1
  1094. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +7 -8
  1095. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1096. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.js +1 -2
  1097. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.js.map +1 -1
  1098. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.vue_vue_type_script_setup_true_lang.js +9 -10
  1099. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1100. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.js +1 -2
  1101. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.js.map +1 -1
  1102. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js +15 -16
  1103. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1104. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.js +1 -2
  1105. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue.d.ts +5 -3
  1106. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js +27 -28
  1107. package/dist/domains/remoteAutocomplete/composables/createRemoteAutocomplete.d.ts +11 -13
  1108. package/dist/domains/remoteAutocomplete/composables/createRemoteAutocomplete.js +27 -28
  1109. package/dist/domains/remoteAutocomplete/composables/createRemoteAutocomplete.js.map +1 -1
  1110. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.js +1 -2
  1111. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.vue.d.ts +13 -11
  1112. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.vue_vue_type_script_setup_true_lang.js +56 -57
  1113. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1114. package/dist/domains/subjectSelect/components/ASubjectSelect.js +1 -2
  1115. package/dist/domains/subjectSelect/components/ASubjectSelect.js.map +1 -1
  1116. package/dist/domains/subjectSelect/components/ASubjectSelect.vue_vue_type_script_setup_true_lang.js +82 -83
  1117. package/dist/domains/subjectSelect/components/ASubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1118. package/dist/domains/subjectSelect/composables/useSubjectSelect.js +55 -54
  1119. package/dist/domains/subjectSelect/composables/useSubjectSelect.js.map +1 -1
  1120. package/dist/domains/subjectSelect/utils/selectStrategies.js +1 -2
  1121. package/dist/domains/system/appShell/components/AActionbar.js +1 -2
  1122. package/dist/domains/system/appShell/components/AActionbar.vue.d.ts +7 -5
  1123. package/dist/domains/system/appShell/components/AActionbar.vue_vue_type_script_setup_true_lang.js +1 -2
  1124. package/dist/domains/system/appShell/components/AActionbarTarget.js +1 -2
  1125. package/dist/domains/system/appShell/components/AActionbarTarget.vue_vue_type_script_setup_true_lang.js +1 -2
  1126. package/dist/domains/system/appShell/components/ALayoutLoader.js +1 -2
  1127. package/dist/domains/system/appShell/components/ALayoutLoader.vue_vue_type_script_setup_true_lang.js +1 -2
  1128. package/dist/domains/system/appShell/components/ALayoutSwitch.js +1 -2
  1129. package/dist/domains/system/appShell/components/ALayoutSwitch.js.map +1 -1
  1130. package/dist/domains/system/appShell/components/ALayoutSwitch.vue.d.ts +7 -5
  1131. package/dist/domains/system/appShell/components/ALayoutSwitch.vue_vue_type_script_setup_true_lang.js +1 -2
  1132. package/dist/domains/system/appShell/components/ALayoutSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1133. package/dist/domains/system/appShell/composables/teleportSlot.d.ts +0 -1
  1134. package/dist/domains/system/appShell/composables/teleportSlot.js +1 -2
  1135. package/dist/domains/system/appShell/composables/teleportSlot.js.map +1 -1
  1136. package/dist/domains/system/components/AAdminSwitcher.js +1 -2
  1137. package/dist/domains/system/components/AAdminSwitcher.vue_vue_type_script_setup_true_lang.js +1 -2
  1138. package/dist/domains/system/components/AAlerts.js +1 -2
  1139. package/dist/domains/system/components/AAlerts.js.map +1 -1
  1140. package/dist/domains/system/components/AAlerts.vue_vue_type_script_setup_true_lang.js +1 -2
  1141. package/dist/domains/system/components/AAlerts.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1142. package/dist/domains/system/components/ALanguageSelect.js +4 -5
  1143. package/dist/domains/system/components/ALanguageSelect.js.map +1 -1
  1144. package/dist/domains/system/components/ALanguageSelect.vue_vue_type_script_setup_true_lang.js +11 -12
  1145. package/dist/domains/system/components/AThemeSelect.js +1 -2
  1146. package/dist/domains/system/components/AThemeSelect.vue_vue_type_script_setup_true_lang.js +1 -2
  1147. package/dist/domains/system/composables/alerts.js +1 -2
  1148. package/dist/domains/system/composables/alerts.js.map +1 -1
  1149. package/dist/domains/system/composables/alertsQueue.js +1 -2
  1150. package/dist/domains/system/composables/breadcrumbs.d.ts +6 -6
  1151. package/dist/domains/system/composables/breadcrumbs.js +8 -9
  1152. package/dist/domains/system/composables/breadcrumbs.js.map +1 -1
  1153. package/dist/domains/system/composables/languageSettings.js +1 -2
  1154. package/dist/domains/system/composables/languageSettings.js.map +1 -1
  1155. package/dist/domains/system/composables/loginStatus.js +1 -2
  1156. package/dist/domains/system/composables/loginStatus.js.map +1 -1
  1157. package/dist/domains/system/composables/navigationError.d.ts +6 -8
  1158. package/dist/domains/system/composables/navigationError.js +1 -2
  1159. package/dist/domains/system/composables/navigationError.js.map +1 -1
  1160. package/dist/domains/system/composables/pageNavigation.d.ts +9 -10
  1161. package/dist/domains/system/composables/pageNavigation.js +1 -2
  1162. package/dist/domains/system/composables/pageNavigation.js.map +1 -1
  1163. package/dist/domains/system/composables/recordActions.d.ts +33 -0
  1164. package/dist/domains/system/composables/recordActions.js +32 -0
  1165. package/dist/domains/system/composables/recordActions.js.map +1 -0
  1166. package/dist/domains/system/composables/recordPage.d.ts +26 -31
  1167. package/dist/domains/system/composables/recordPage.js +71 -70
  1168. package/dist/domains/system/composables/recordPage.js.map +1 -1
  1169. package/dist/domains/system/composables/routeHistory.d.ts +4 -5
  1170. package/dist/domains/system/composables/routeHistory.js +34 -28
  1171. package/dist/domains/system/composables/routeHistory.js.map +1 -1
  1172. package/dist/domains/system/composables/sentry.js +1 -2
  1173. package/dist/domains/system/composables/sentry.js.map +1 -1
  1174. package/dist/domains/system/composables/themeSettings.js +1 -2
  1175. package/dist/domains/system/composables/useDebugFeatures.d.ts +3 -6
  1176. package/dist/domains/system/composables/useDebugFeatures.js +1 -2
  1177. package/dist/domains/system/composables/useDebugFeatures.js.map +1 -1
  1178. package/dist/domains/system/composables/useUnreleasedFeatures.js +1 -2
  1179. package/dist/domains/system/composables/useUserActivity.js +1 -2
  1180. package/dist/domains/system/flags/components/FlagCountry.js +1 -2
  1181. package/dist/domains/system/flags/components/FlagCountry.vue_vue_type_script_setup_true_lang.js +1 -2
  1182. package/dist/domains/system/flags/components/FlagEmpty.js +1 -2
  1183. package/dist/domains/system/flags/components/FlagEn.js +1 -2
  1184. package/dist/domains/system/flags/components/FlagSk.js +1 -2
  1185. package/dist/domains/system/store/datatablePageStore.d.ts +8 -1
  1186. package/dist/domains/system/store/datatablePageStore.js +11 -5
  1187. package/dist/domains/system/store/datatablePageStore.js.map +1 -1
  1188. package/dist/domains/system/systemBar/components/ASystemBar.js +1 -2
  1189. package/dist/domains/system/systemBar/components/ASystemBar.js.map +1 -1
  1190. package/dist/domains/system/systemBar/components/ASystemBar.vue_vue_type_script_setup_true_lang.js +13 -14
  1191. package/dist/domains/system/systemBar/components/ASystemBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1192. package/dist/domains/system/systemBar/components/ASystemBarNewVersion.js +1 -2
  1193. package/dist/domains/system/systemBar/components/ASystemBarNewVersion.vue_vue_type_script_setup_true_lang.js +1 -2
  1194. package/dist/domains/system/systemBar/composables/systemBar.js +1 -2
  1195. package/dist/domains/system/systemBar/utils/appReload.d.ts +5 -5
  1196. package/dist/domains/system/systemBar/utils/appReload.js +7 -8
  1197. package/dist/domains/system/systemBar/utils/appReload.js.map +1 -1
  1198. package/dist/domains/system/systemBar/utils/pageReload.js +1 -2
  1199. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.js +1 -2
  1200. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.js.map +1 -1
  1201. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue.d.ts +2 -3
  1202. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue_vue_type_script_setup_true_lang.js +1 -2
  1203. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1204. package/dist/domains/ui/buttons/action/components/AActionCreateButton.js +1 -2
  1205. package/dist/domains/ui/buttons/action/components/AActionCreateButton.vue_vue_type_script_setup_true_lang.js +1 -2
  1206. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.js +1 -2
  1207. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.js.map +1 -1
  1208. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.vue_vue_type_script_setup_true_lang.js +7 -8
  1209. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1210. package/dist/domains/ui/buttons/action/components/AActionEditButton.js +1 -2
  1211. package/dist/domains/ui/buttons/action/components/AActionEditButton.vue_vue_type_script_setup_true_lang.js +5 -6
  1212. package/dist/domains/ui/buttons/action/components/AActionSaveAndCloseButton.js +1 -2
  1213. package/dist/domains/ui/buttons/action/components/AActionSaveAndCloseButton.vue_vue_type_script_setup_true_lang.js +8 -9
  1214. package/dist/domains/ui/buttons/action/components/AActionSaveButton.js +1 -2
  1215. package/dist/domains/ui/buttons/action/components/AActionSaveButton.vue_vue_type_script_setup_true_lang.js +5 -6
  1216. package/dist/domains/ui/buttons/components/ABtnSplit.js +1 -2
  1217. package/dist/domains/ui/buttons/components/ABtnSplit.vue.d.ts +9 -7
  1218. package/dist/domains/ui/buttons/components/ABtnSplit.vue_vue_type_script_setup_true_lang.js +1 -2
  1219. package/dist/domains/ui/buttons/table/components/ATableCopyIdButton.js +1 -2
  1220. package/dist/domains/ui/buttons/table/components/ATableCopyIdButton.vue_vue_type_script_setup_true_lang.js +8 -9
  1221. package/dist/domains/ui/buttons/table/components/ATableDetailButton.js +1 -2
  1222. package/dist/domains/ui/buttons/table/components/ATableDetailButton.vue_vue_type_script_setup_true_lang.js +4 -5
  1223. package/dist/domains/ui/buttons/table/components/ATableEditButton.js +1 -2
  1224. package/dist/domains/ui/buttons/table/components/ATableEditButton.vue_vue_type_script_setup_true_lang.js +4 -5
  1225. package/dist/domains/ui/components/AAnzuUserAvatar.js +1 -2
  1226. package/dist/domains/ui/components/AAnzuUserAvatar.vue_vue_type_script_setup_true_lang.js +1 -2
  1227. package/dist/domains/ui/components/AAvatarColorPicker.js +1 -2
  1228. package/dist/domains/ui/components/AAvatarColorPicker.js.map +1 -1
  1229. package/dist/domains/ui/components/AAvatarColorPicker.vue_vue_type_script_setup_true_lang.js +1 -2
  1230. package/dist/domains/ui/components/AAvatarColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1231. package/dist/domains/ui/components/ABooleanSelect.js +1 -2
  1232. package/dist/domains/ui/components/ABooleanSelect.vue_vue_type_script_setup_true_lang.js +1 -2
  1233. package/dist/domains/ui/components/ABooleanValue.js +1 -2
  1234. package/dist/domains/ui/components/ABooleanValue.vue_vue_type_script_setup_true_lang.js +1 -2
  1235. package/dist/domains/ui/components/ACard.js +1 -2
  1236. package/dist/domains/ui/components/ACard.js.map +1 -1
  1237. package/dist/domains/ui/components/ACard.vue.d.ts +7 -3
  1238. package/dist/domains/ui/components/ACard.vue_vue_type_script_setup_true_lang.js +7 -4
  1239. package/dist/domains/ui/components/ACard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1240. package/dist/domains/ui/components/ACardLoader.js +1 -2
  1241. package/dist/domains/ui/components/ACardLoader.js.map +1 -1
  1242. package/dist/domains/ui/components/ACardLoader.vue.d.ts +1 -0
  1243. package/dist/domains/ui/components/ACardLoader.vue_vue_type_script_setup_true_lang.js +14 -9
  1244. package/dist/domains/ui/components/ACardLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1245. package/dist/domains/ui/components/AChipNoLink.js +1 -2
  1246. package/dist/domains/ui/components/AChipNoLink.vue.d.ts +5 -3
  1247. package/dist/domains/ui/components/AChipNoLink.vue_vue_type_script_setup_true_lang.js +1 -2
  1248. package/dist/domains/ui/components/ACopyText.js +1 -2
  1249. package/dist/domains/ui/components/ACopyText.vue.d.ts +9 -7
  1250. package/dist/domains/ui/components/ACopyText.vue_vue_type_script_setup_true_lang.js +7 -8
  1251. package/dist/domains/ui/components/ACreateDialog.js +1 -2
  1252. package/dist/domains/ui/components/ACreateDialog.js.map +1 -1
  1253. package/dist/domains/ui/components/ACreateDialog.vue.d.ts +11 -9
  1254. package/dist/domains/ui/components/ACreateDialog.vue_vue_type_script_setup_true_lang.js +16 -17
  1255. package/dist/domains/ui/components/ACreateDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1256. package/dist/domains/ui/components/ACurrentUserDropdown.js +1 -2
  1257. package/dist/domains/ui/components/ACurrentUserDropdown.vue_vue_type_script_setup_true_lang.js +1 -2
  1258. package/dist/domains/ui/components/ADialogToolbar.js +1 -2
  1259. package/dist/domains/ui/components/ADialogToolbar.vue.d.ts +5 -3
  1260. package/dist/domains/ui/components/ADialogToolbar.vue_vue_type_script_setup_true_lang.js +1 -2
  1261. package/dist/domains/ui/components/AIconGroup.js +1 -2
  1262. package/dist/domains/ui/components/AIconGroup.vue_vue_type_script_setup_true_lang.js +1 -2
  1263. package/dist/domains/ui/components/AProgress.js +1 -2
  1264. package/dist/domains/ui/components/AProgress.vue_vue_type_script_setup_true_lang.js +1 -2
  1265. package/dist/domains/ui/components/ARow.js +1 -2
  1266. package/dist/domains/ui/components/ARow.vue.d.ts +5 -3
  1267. package/dist/domains/ui/components/ARow.vue_vue_type_script_setup_true_lang.js +1 -2
  1268. package/dist/domains/ui/components/ATimeTrackingFields.js +1 -2
  1269. package/dist/domains/ui/components/ATimeTrackingFields.js.map +1 -1
  1270. package/dist/domains/ui/components/ATimeTrackingFields.vue_vue_type_script_setup_true_lang.js +6 -7
  1271. package/dist/domains/ui/components/ATimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1272. package/dist/domains/ui/components/AUserAndTimeTrackingFields.js +1 -2
  1273. package/dist/domains/ui/components/AUserAndTimeTrackingFields.js.map +1 -1
  1274. package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue.d.ts +3 -5
  1275. package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue_vue_type_script_setup_true_lang.js +12 -13
  1276. package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1277. package/dist/domains/ui/datetime/components/ADatetime.js +1 -2
  1278. package/dist/domains/ui/datetime/components/ADatetime.vue_vue_type_script_setup_true_lang.js +1 -2
  1279. package/dist/domains/ui/datetime/components/ADatetimePicker.js +4 -5
  1280. package/dist/domains/ui/datetime/components/ADatetimePicker.js.map +1 -1
  1281. package/dist/domains/ui/datetime/components/ADatetimePicker.vue.d.ts +5 -3
  1282. package/dist/domains/ui/datetime/components/ADatetimePicker.vue_vue_type_script_setup_true_lang.js +2 -3
  1283. package/dist/domains/ui/datetime/components/ADatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1284. package/dist/domains/ui/datetime/components/TimePicker.js +4 -5
  1285. package/dist/domains/ui/datetime/components/TimePicker.js.map +1 -1
  1286. package/dist/domains/ui/datetime/components/TimePicker.vue_vue_type_script_setup_true_lang.js +1 -2
  1287. package/dist/domains/ui/datetime/composables/remainingTime.js +1 -2
  1288. package/dist/domains/ui/file/components/AFileDropzone.js +1 -2
  1289. package/dist/domains/ui/file/components/AFileDropzone.js.map +1 -1
  1290. package/dist/domains/ui/file/components/AFileDropzone.vue.d.ts +1 -1
  1291. package/dist/domains/ui/file/components/AFileDropzone.vue_vue_type_script_setup_true_lang.js +6 -7
  1292. package/dist/domains/ui/file/components/AFileDropzone.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1293. package/dist/domains/ui/file/components/AFileInput.js +1 -2
  1294. package/dist/domains/ui/file/components/AFileInput.js.map +1 -1
  1295. package/dist/domains/ui/file/components/AFileInput.vue.d.ts +9 -7
  1296. package/dist/domains/ui/file/components/AFileInput.vue_vue_type_script_setup_true_lang.js +5 -6
  1297. package/dist/domains/ui/file/components/AFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1298. package/dist/domains/ui/file/components/AFileInputDialog.js +1 -2
  1299. package/dist/domains/ui/file/components/AFileInputDialog.js.map +1 -1
  1300. package/dist/domains/ui/file/components/AFileInputDialog.vue.d.ts +9 -7
  1301. package/dist/domains/ui/file/components/AFileInputDialog.vue_vue_type_script_setup_true_lang.js +7 -8
  1302. package/dist/domains/ui/file/components/AFileInputDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1303. package/dist/domains/ui/file/composables/dropzone.js +1 -2
  1304. package/dist/domains/ui/file/composables/dropzone.js.map +1 -1
  1305. package/dist/domains/ui/file/composables/formatAndSizeCheck.js +25 -26
  1306. package/dist/domains/ui/file/composables/formatAndSizeCheck.js.map +1 -1
  1307. package/dist/domains/ui/file/utils/fileType.js +1 -2
  1308. package/dist/domains/ui/view/components/AGenericView.js +1 -2
  1309. package/dist/domains/ui/view/components/AGenericView.vue.d.ts +7 -5
  1310. package/dist/domains/ui/view/components/AGenericView.vue_vue_type_script_setup_true_lang.js +1 -2
  1311. package/dist/domains/ui/view/components/ALoginView.js +4 -5
  1312. package/dist/domains/ui/view/components/ALoginView.js.map +1 -1
  1313. package/dist/domains/ui/view/components/ALoginView.vue.d.ts +5 -3
  1314. package/dist/domains/ui/view/components/ALoginView.vue_vue_type_script_setup_true_lang.js +1 -2
  1315. package/dist/domains/ui/view/components/ALoginView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1316. package/dist/domains/ui/view/components/ALogoutView.js +1 -2
  1317. package/dist/domains/ui/view/components/ALogoutView.js.map +1 -1
  1318. package/dist/domains/ui/view/components/ALogoutView.vue_vue_type_script_setup_true_lang.js +1 -2
  1319. package/dist/domains/ui/view/components/ALogoutView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1320. package/dist/domains/ui/view/components/ANotFoundView.js +1 -2
  1321. package/dist/domains/ui/view/components/ANotFoundView.js.map +1 -1
  1322. package/dist/domains/ui/view/components/ANotFoundView.vue_vue_type_script_setup_true_lang.js +1 -2
  1323. package/dist/domains/ui/view/components/ANotFoundView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  1324. package/dist/domains/ui/view/components/AUnauthorizedView.js +1 -2
  1325. package/dist/domains/ui/view/components/AUnauthorizedView.vue_vue_type_script_setup_true_lang.js +1 -2
  1326. package/dist/domains/unsavedGuard/components/AUnsavedConfirmDialog.js +4 -5
  1327. package/dist/domains/unsavedGuard/components/AUnsavedConfirmDialog.js.map +1 -1
  1328. package/dist/domains/unsavedGuard/components/AUnsavedConfirmDialog.vue_vue_type_script_setup_true_lang.js +1 -2
  1329. package/dist/domains/unsavedGuard/composables/useUnsavedChangesGuard.d.ts +6 -7
  1330. package/dist/domains/unsavedGuard/composables/useUnsavedChangesGuard.js +1 -2
  1331. package/dist/domains/unsavedGuard/composables/useUnsavedChangesGuard.js.map +1 -1
  1332. package/dist/domains/unsavedGuard/composables/useUnsavedSection.js +1 -2
  1333. package/dist/lib.d.ts +6 -4
  1334. package/dist/locales/cs/common/alert.js +1 -2
  1335. package/dist/locales/cs/common/anzuUser.js +1 -2
  1336. package/dist/locales/cs/common/assetSelect.js +1 -2
  1337. package/dist/locales/cs/common/button.js +1 -2
  1338. package/dist/locales/cs/common/collab.js +1 -2
  1339. package/dist/locales/cs/common/confirmDialog.js +1 -2
  1340. package/dist/locales/cs/common/customForm.js +1 -2
  1341. package/dist/locales/cs/common/customFormElement.js +1 -2
  1342. package/dist/locales/cs/common/damImage.js +30 -2
  1343. package/dist/locales/cs/common/damImage.js.map +1 -1
  1344. package/dist/locales/cs/common/dayOfWeek.js +1 -2
  1345. package/dist/locales/cs/common/filter.js +1 -2
  1346. package/dist/locales/cs/common/job.js +1 -2
  1347. package/dist/locales/cs/common/linkDto.js +1 -2
  1348. package/dist/locales/cs/common/listItemDto.js +1 -2
  1349. package/dist/locales/cs/common/log.js +1 -2
  1350. package/dist/locales/cs/common/model.js +1 -2
  1351. package/dist/locales/cs/common/permission.js +1 -2
  1352. package/dist/locales/cs/common/permissionEditor.js +1 -2
  1353. package/dist/locales/cs/common/permissionGroup.js +1 -2
  1354. package/dist/locales/cs/common/routeSettings.js +1 -2
  1355. package/dist/locales/cs/common/sortable.js +1 -2
  1356. package/dist/locales/cs/common/subjectSelect.js +1 -2
  1357. package/dist/locales/cs/common/system.js +1 -2
  1358. package/dist/locales/cs/common/time.js +1 -2
  1359. package/dist/locales/cs/common/userSystem.js +1 -2
  1360. package/dist/locales/cs/error/apiDependencyExists.js +1 -2
  1361. package/dist/locales/cs/error/apiForbiddenOperation.js +1 -2
  1362. package/dist/locales/cs/error/apiTimedOut.js +1 -2
  1363. package/dist/locales/cs/error/apiValidation.js +1 -2
  1364. package/dist/locales/cs/error/jsValidation.js +1 -2
  1365. package/dist/locales/cs/vuetify.js +1 -2
  1366. package/dist/locales/cs.d.ts +3 -0
  1367. package/dist/locales/cs.js +1 -2
  1368. package/dist/locales/en/common/alert.js +1 -2
  1369. package/dist/locales/en/common/anzuUser.js +1 -2
  1370. package/dist/locales/en/common/assetSelect.js +1 -2
  1371. package/dist/locales/en/common/button.js +1 -2
  1372. package/dist/locales/en/common/collab.js +1 -2
  1373. package/dist/locales/en/common/confirmDialog.js +1 -2
  1374. package/dist/locales/en/common/customForm.js +1 -2
  1375. package/dist/locales/en/common/customFormElement.js +1 -2
  1376. package/dist/locales/en/common/damImage.js +30 -2
  1377. package/dist/locales/en/common/damImage.js.map +1 -1
  1378. package/dist/locales/en/common/dayOfWeek.js +1 -2
  1379. package/dist/locales/en/common/filter.js +1 -2
  1380. package/dist/locales/en/common/job.js +1 -2
  1381. package/dist/locales/en/common/linkDto.js +1 -2
  1382. package/dist/locales/en/common/listItemDto.js +1 -2
  1383. package/dist/locales/en/common/log.js +1 -2
  1384. package/dist/locales/en/common/model.js +1 -2
  1385. package/dist/locales/en/common/permission.js +1 -2
  1386. package/dist/locales/en/common/permissionEditor.js +1 -2
  1387. package/dist/locales/en/common/permissionGroup.js +1 -2
  1388. package/dist/locales/en/common/routeSettings.js +1 -2
  1389. package/dist/locales/en/common/sortable.js +1 -2
  1390. package/dist/locales/en/common/subjectSelect.js +1 -2
  1391. package/dist/locales/en/common/system.js +1 -2
  1392. package/dist/locales/en/common/time.js +1 -2
  1393. package/dist/locales/en/common/userSystem.js +1 -2
  1394. package/dist/locales/en/error/apiDependencyExists.js +1 -2
  1395. package/dist/locales/en/error/apiForbiddenOperation.js +1 -2
  1396. package/dist/locales/en/error/apiTimedOut.js +1 -2
  1397. package/dist/locales/en/error/apiValidation.js +1 -2
  1398. package/dist/locales/en/error/jsValidation.js +1 -2
  1399. package/dist/locales/en/vuetify.js +1 -2
  1400. package/dist/locales/en.d.ts +3 -0
  1401. package/dist/locales/en.js +1 -2
  1402. package/dist/locales/sk/common/alert.js +1 -2
  1403. package/dist/locales/sk/common/anzuUser.js +1 -2
  1404. package/dist/locales/sk/common/assetSelect.js +1 -2
  1405. package/dist/locales/sk/common/button.js +1 -2
  1406. package/dist/locales/sk/common/collab.js +1 -2
  1407. package/dist/locales/sk/common/confirmDialog.js +1 -2
  1408. package/dist/locales/sk/common/customForm.js +1 -2
  1409. package/dist/locales/sk/common/customFormElement.js +1 -2
  1410. package/dist/locales/sk/common/damImage.js +30 -2
  1411. package/dist/locales/sk/common/damImage.js.map +1 -1
  1412. package/dist/locales/sk/common/dayOfWeek.js +1 -2
  1413. package/dist/locales/sk/common/filter.js +1 -2
  1414. package/dist/locales/sk/common/job.js +1 -2
  1415. package/dist/locales/sk/common/linkDto.js +1 -2
  1416. package/dist/locales/sk/common/listItemDto.js +1 -2
  1417. package/dist/locales/sk/common/log.js +1 -2
  1418. package/dist/locales/sk/common/model.js +1 -2
  1419. package/dist/locales/sk/common/permission.js +1 -2
  1420. package/dist/locales/sk/common/permissionEditor.js +1 -2
  1421. package/dist/locales/sk/common/permissionGroup.js +1 -2
  1422. package/dist/locales/sk/common/routeSettings.js +1 -2
  1423. package/dist/locales/sk/common/sortable.js +1 -2
  1424. package/dist/locales/sk/common/subjectSelect.js +1 -2
  1425. package/dist/locales/sk/common/system.js +1 -2
  1426. package/dist/locales/sk/common/time.js +1 -2
  1427. package/dist/locales/sk/common/userSystem.js +1 -2
  1428. package/dist/locales/sk/error/apiDependencyExists.js +1 -2
  1429. package/dist/locales/sk/error/apiForbiddenOperation.js +1 -2
  1430. package/dist/locales/sk/error/apiTimedOut.js +1 -2
  1431. package/dist/locales/sk/error/apiValidation.js +1 -2
  1432. package/dist/locales/sk/error/jsValidation.js +1 -2
  1433. package/dist/locales/sk/vuetify.js +1 -2
  1434. package/dist/locales/sk.d.ts +3 -0
  1435. package/dist/locales/sk.js +1 -2
  1436. package/dist/plugins/commonVuetifyConfig.d.ts +4 -49
  1437. package/dist/plugins/commonVuetifyConfig.js +1 -2
  1438. package/dist/plugins/commonVuetifyConfig.js.map +1 -1
  1439. package/dist/plugins/i18n.d.ts +7 -5
  1440. package/dist/plugins/i18n.js +1 -2
  1441. package/dist/plugins/i18n.js.map +1 -1
  1442. package/dist/plugins/pluginOptions.d.ts +4 -2
  1443. package/dist/plugins/pluginOptions.js +1 -2
  1444. package/dist/plugins/pluginOptions.js.map +1 -1
  1445. package/dist/plugins/webfontloader.js +0 -1
  1446. package/dist/plugins/webfontloader.js.map +1 -1
  1447. package/dist/shared/commonConfig.js +0 -1
  1448. package/dist/shared/error/AnzuApiAxiosError.js +1 -2
  1449. package/dist/shared/error/AnzuApiCancelledError.d.ts +5 -8
  1450. package/dist/shared/error/AnzuApiCancelledError.js +1 -2
  1451. package/dist/shared/error/AnzuApiCancelledError.js.map +1 -1
  1452. package/dist/shared/error/AnzuApiDependencyExistsError.js +1 -2
  1453. package/dist/shared/error/AnzuApiForbiddenError.js +1 -2
  1454. package/dist/shared/error/AnzuApiForbiddenOperationError.js +1 -2
  1455. package/dist/shared/error/AnzuApiResponseCodeError.js +1 -2
  1456. package/dist/shared/error/AnzuApiTimeoutError.js +1 -2
  1457. package/dist/shared/error/AnzuApiValidationError.js +1 -2
  1458. package/dist/shared/error/AnzuError.d.ts +3 -5
  1459. package/dist/shared/error/AnzuError.js +1 -2
  1460. package/dist/shared/error/AnzuError.js.map +1 -1
  1461. package/dist/shared/error/AnzuFatalError.js +1 -2
  1462. package/dist/shared/error/AnzuNewVersionFetchError.js +1 -2
  1463. package/dist/shared/error/AuthUnavailableError.d.ts +3 -3
  1464. package/dist/shared/error/AuthUnavailableError.js +1 -2
  1465. package/dist/shared/error/AuthUnavailableError.js.map +1 -1
  1466. package/dist/shared/error/SessionExpiredError.js +1 -2
  1467. package/dist/shared/error/isInCauseChain.d.ts +2 -2
  1468. package/dist/shared/error/isInCauseChain.js +1 -2
  1469. package/dist/shared/error/isInCauseChain.js.map +1 -1
  1470. package/dist/shared/injectionKeys.js +1 -2
  1471. package/dist/shared/statusCodes.js +1 -2
  1472. package/dist/shared/types/CreatedByAware.js +1 -2
  1473. package/dist/shared/types/OwnerAware.js +1 -2
  1474. package/dist/shared/types/UserAndTimeTracking.d.ts +5 -5
  1475. package/dist/shared/types/Validation.d.ts +4 -5
  1476. package/dist/shared/types/common.d.ts +1 -3
  1477. package/dist/shared/types/globalComponents.d.ts +5 -6
  1478. package/dist/shared/types/utils.js +1 -2
  1479. package/dist/shared/utils/array.js +1 -2
  1480. package/dist/shared/utils/boolean.js +1 -2
  1481. package/dist/shared/utils/common.js +1 -2
  1482. package/dist/shared/utils/common.js.map +1 -1
  1483. package/dist/shared/utils/datetime.d.ts +0 -1
  1484. package/dist/shared/utils/datetime.js +0 -1
  1485. package/dist/shared/utils/datetime.js.map +1 -1
  1486. package/dist/shared/utils/datetimePickerValue.d.ts +4 -7
  1487. package/dist/shared/utils/datetimePickerValue.js +0 -1
  1488. package/dist/shared/utils/datetimePickerValue.js.map +1 -1
  1489. package/dist/shared/utils/development.d.ts +3 -3
  1490. package/dist/shared/utils/development.js +1 -2
  1491. package/dist/shared/utils/development.js.map +1 -1
  1492. package/dist/shared/utils/enum.js +1 -2
  1493. package/dist/shared/utils/envConfig.d.ts +4 -4
  1494. package/dist/shared/utils/envConfig.js +1 -2
  1495. package/dist/shared/utils/envConfig.js.map +1 -1
  1496. package/dist/shared/utils/event.js +1 -2
  1497. package/dist/shared/utils/file.js +1 -2
  1498. package/dist/shared/utils/generator.js +1 -2
  1499. package/dist/shared/utils/history.js +1 -2
  1500. package/dist/shared/utils/json.d.ts +1 -1
  1501. package/dist/shared/utils/json.js +1 -2
  1502. package/dist/shared/utils/json.js.map +1 -1
  1503. package/dist/shared/utils/number.js +1 -2
  1504. package/dist/shared/utils/object.js +1 -2
  1505. package/dist/shared/utils/string.js +1 -2
  1506. package/dist/shared/utils/userAndTimeTracking.d.ts +5 -7
  1507. package/dist/shared/utils/userAndTimeTracking.js +1 -2
  1508. package/dist/shared/utils/userAndTimeTracking.js.map +1 -1
  1509. package/dist/shared/validators/vuelidate/common/useValidateBetween.js +1 -2
  1510. package/dist/shared/validators/vuelidate/common/useValidateCompareDates.js +1 -2
  1511. package/dist/shared/validators/vuelidate/common/useValidateEmail.js +1 -2
  1512. package/dist/shared/validators/vuelidate/common/useValidateHexColor.d.ts +3 -5
  1513. package/dist/shared/validators/vuelidate/common/useValidateHexColor.js +1 -2
  1514. package/dist/shared/validators/vuelidate/common/useValidateHexColor.js.map +1 -1
  1515. package/dist/shared/validators/vuelidate/common/useValidateMaxLength.js +1 -2
  1516. package/dist/shared/validators/vuelidate/common/useValidateMaxValue.js +1 -2
  1517. package/dist/shared/validators/vuelidate/common/useValidateMinLength.js +1 -2
  1518. package/dist/shared/validators/vuelidate/common/useValidateMinValue.js +1 -2
  1519. package/dist/shared/validators/vuelidate/common/useValidateNumeric.js +1 -2
  1520. package/dist/shared/validators/vuelidate/common/useValidateRequired.js +1 -2
  1521. package/dist/shared/validators/vuelidate/common/useValidateRequiredIf.js +1 -2
  1522. package/dist/shared/validators/vuelidate/common/useValidateSlug.js +1 -2
  1523. package/dist/shared/validators/vuelidate/common/useValidateStringArrayItemLength.js +1 -2
  1524. package/dist/shared/validators/vuelidate/common/useValidateUrl.js +1 -2
  1525. package/dist/shared/validators/vuelidate/useValidate.js +1 -2
  1526. package/dist/testing/appShell.d.ts +11 -11
  1527. package/dist/testing/appShell.js +1 -2
  1528. package/dist/testing/appShell.js.map +1 -1
  1529. package/dist/testing/closeButtons.d.ts +9 -11
  1530. package/dist/testing/closeButtons.js +1 -2
  1531. package/dist/testing/closeButtons.js.map +1 -1
  1532. package/dist/testing/declaredDependencies.d.ts +7 -7
  1533. package/dist/testing/declaredDependencies.js +1 -2
  1534. package/dist/testing/declaredDependencies.js.map +1 -1
  1535. package/dist/testing/generatedRoutes.d.ts +6 -11
  1536. package/dist/testing/generatedRoutes.js +1 -2
  1537. package/dist/testing/generatedRoutes.js.map +1 -1
  1538. package/dist/testing/routeHistory.d.ts +5 -12
  1539. package/dist/testing/routeHistory.js +1 -2
  1540. package/dist/testing/routeHistory.js.map +1 -1
  1541. package/dist/testing/sortableLists.d.ts +16 -21
  1542. package/dist/testing/sortableLists.js +1 -2
  1543. package/dist/testing/sortableLists.js.map +1 -1
  1544. package/dist/testing/typedRouter.d.ts +0 -1
  1545. package/dist/testing/typedRouter.js +1 -2
  1546. package/dist/testing/typedRouter.js.map +1 -1
  1547. package/dist/vendor/@cropper/element/dist/element.esm.raw.js +2 -3
  1548. package/dist/vendor/@cropper/element/dist/element.esm.raw.js.map +1 -1
  1549. package/dist/vendor/@cropper/element-canvas/dist/element-canvas.esm.raw.js +51 -52
  1550. package/dist/vendor/@cropper/element-canvas/dist/element-canvas.esm.raw.js.map +1 -1
  1551. package/dist/vendor/@cropper/element-crosshair/dist/element-crosshair.esm.raw.js +5 -6
  1552. package/dist/vendor/@cropper/element-crosshair/dist/element-crosshair.esm.raw.js.map +1 -1
  1553. package/dist/vendor/@cropper/element-grid/dist/element-grid.esm.raw.js +5 -6
  1554. package/dist/vendor/@cropper/element-grid/dist/element-grid.esm.raw.js.map +1 -1
  1555. package/dist/vendor/@cropper/element-handle/dist/element-handle.esm.raw.js +6 -7
  1556. package/dist/vendor/@cropper/element-handle/dist/element-handle.esm.raw.js.map +1 -1
  1557. package/dist/vendor/@cropper/element-image/dist/element-image.esm.raw.js +119 -104
  1558. package/dist/vendor/@cropper/element-image/dist/element-image.esm.raw.js.map +1 -1
  1559. package/dist/vendor/@cropper/element-selection/dist/element-selection.esm.raw.js +231 -86
  1560. package/dist/vendor/@cropper/element-selection/dist/element-selection.esm.raw.js.map +1 -1
  1561. package/dist/vendor/@cropper/element-shade/dist/element-shade.esm.raw.js +29 -23
  1562. package/dist/vendor/@cropper/element-shade/dist/element-shade.esm.raw.js.map +1 -1
  1563. package/dist/vendor/@cropper/element-viewer/dist/element-viewer.esm.raw.js +21 -22
  1564. package/dist/vendor/@cropper/element-viewer/dist/element-viewer.esm.raw.js.map +1 -1
  1565. package/dist/vendor/@cropper/utils/dist/utils.esm.raw.js +90 -48
  1566. package/dist/vendor/@cropper/utils/dist/utils.esm.raw.js.map +1 -1
  1567. package/dist/vendor/{cropperjs2 → cropperjs}/dist/cropper.esm.raw.js +11 -12
  1568. package/dist/vendor/cropperjs/dist/cropper.esm.raw.js.map +1 -0
  1569. package/dist/vendor/rusha/dist/rusha.js +1 -2
  1570. package/dist/vendor/uuid/dist/rng.js +1 -2
  1571. package/dist/vendor/uuid/dist/stringify.js +1 -2
  1572. package/dist/vendor/uuid/dist/v1.js +7 -8
  1573. package/dist/vendor/uuid/dist/v4.js +5 -6
  1574. package/package.json +53 -43
  1575. package/src/e2e/conventions.d.mts +4 -0
  1576. package/src/e2e/conventions.mjs +15 -0
  1577. package/src/e2e/env.d.mts +46 -0
  1578. package/src/e2e/env.mjs +78 -0
  1579. package/src/e2e/index.d.mts +11 -0
  1580. package/src/e2e/index.mjs +3 -0
  1581. package/src/e2e/routeWalk.d.mts +44 -0
  1582. package/src/e2e/routeWalk.mjs +618 -0
  1583. package/src/e2e/routeWalkConfig.d.mts +16 -0
  1584. package/src/e2e/routeWalkConfig.mjs +52 -0
  1585. package/src/e2e/types.d.mts +166 -0
  1586. package/src/eslint/adminConfig.mjs +21 -28
  1587. package/src/eslint/globalComponentNames.mjs +3 -4
  1588. package/src/eslint/oxlint-admin.json +3 -0
  1589. package/src/eslint/oxlint.mjs +7 -20
  1590. package/src/eslint/plugin.d.mts +2 -4
  1591. package/src/eslint/plugin.mjs +18 -34
  1592. package/src/eslint/validRouteName.mjs +6 -7
  1593. package/src/vite/devWatch.mjs +30 -43
  1594. package/src/vite/index.d.mts +5 -5
  1595. package/src/vite/sentry.mjs +7 -12
  1596. package/src/vite/sourcemaps.mjs +4 -8
  1597. package/dist/vendor/cropperjs2/dist/cropper.esm.raw.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AUserSystemOverview.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_createVNode","_component_VCard","_withCtx","_component_VCardText","_createElementVNode","_component_VTextField","_unref","_withKeys","_withModifiers","_createTextVNode","_toDisplayString","_createCommentVNode","_createBlock","_component_VAlert","_Fragment","_renderList","AUserSystemStatusChip","_component_VChip","_component_VSpacer","_component_VBtn","AUserManageButton","AUserCreateInSystemButton","AUserBulkActionDialog","AUserMetadataRepairDialog","_component_VDialog","ADialogToolbar","_component_VSelect","AUserMetadataForm","_component_VCardActions","ADialogToolbar_default","AUserMetadataForm_default","AUserCreateInSystemButton_default","AUserManageButton_default","AUserSystemStatusChip_default","AUserBulkActionDialog_default","AUserMetadataRepairDialog_default","useVuelidate","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","AUserSystemOverview_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","useI18n","useAlerts","store","useUserCrossSystemStore","useAnzuUserFactory","writes","useUserCrossSystemWrites","v$","useUserCrossSystemSearch","term","ref","rowBusy","runSearch","value","search","records","computed","map","descriptor","user","differences","findMetadataDifferences","foundAnywhere","anyFoundWritable","item","descriptorMayWrite","searchDone","CrossSystemPhase","searchedByEmail","isEmailTerm","canOfferCreateAnywhere","unresolvedSystems","blockedByConflict","labelFor","manageTargetFor","isUndefined","isNull","extraStateFor","EXTRA_STATE_COLOR","reportOutcome","outcome","BulkOutcome","showError","label","t","detailFor","fields","withRowBusy","system","run","next","toggleOne","id","result","enabled","refreshSystem","createFromSource","sourceSystem","source","sourceEnabled","body","createAnzuUser","metadata","cloneDeep","prefillSource","first","bulkOpen","bulkAction","BulkAction","repairOpen","openBulk","action","writableSystems","systems","runBulk","requested","runRepair","payload","seenBefore","createAnywhereOpen","createAnywhereSystem","createAnywhereUser","createAnywhereChecking","createAnywhereConflict","createAnywhereError","left","openCreateAnywhere","confirmCreateAnywhere","createAnywhereRequiredMetadata","createAnywhereNote","createSystemOptions","onBeforeUnmount","cancel","_component_ABtnPrimary","resolveComponent","_component_ABtnTertiary","openBlock","createElementBlock","createVNode","VCard","withCtx","VCardText","createElementVNode","VTextField","_cache","$event","unref","withKeys","withModifiers","createTextVNode","toDisplayString","createCommentVNode","createBlock","VAlert","Fragment","renderList","VChip","VSpacer","isActionable","VBtn","difference","systemValue","VDialog","VSelect","VCardActions"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemOverview.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, onBeforeUnmount, ref } from 'vue'\nimport useVuelidate from '@vuelidate/core'\nimport { useI18n } from 'vue-i18n'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useAnzuUserFactory } from '@/domains/anzuUser/factory/AnzuUserFactory'\nimport AUserBulkActionDialog from '@/domains/anzuUser/components/AUserBulkActionDialog.vue'\nimport AUserCreateInSystemButton from '@/domains/anzuUser/components/AUserCreateInSystemButton.vue'\nimport AUserManageButton from '@/domains/anzuUser/components/AUserManageButton.vue'\nimport AUserMetadataForm from '@/domains/anzuUser/components/AUserMetadataForm.vue'\nimport AUserMetadataRepairDialog from '@/domains/anzuUser/components/AUserMetadataRepairDialog.vue'\nimport AUserSystemStatusChip from '@/domains/anzuUser/components/AUserSystemStatusChip.vue'\nimport {\n BulkAction,\n BulkOutcome,\n CrossSystemPhase,\n useUserCrossSystemStore,\n type BulkActionType,\n type BulkOutcomeType,\n} from '@/domains/anzuUser/store/userCrossSystemStore'\nimport { isEmailTerm, useUserCrossSystemSearch } from '@/domains/anzuUser/composables/userCrossSystemSearch'\nimport { useUserCrossSystemWrites } from '@/domains/anzuUser/composables/userCrossSystemWrites'\nimport { findMetadataDifferences, type UserMetadataField } from '@/domains/anzuUser/utils/userMetadataDiff'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport type { UserSystemRefreshHook } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { isActionable } from '@/domains/anzuUser/utils/userSystemState'\nimport type { AnzuUser, BaseUser } from '@/shared/types/AnzuUser'\nimport { cloneDeep, isNull, isUndefined } from '@/shared/utils/common'\n\nconst props = defineProps<{\n /** Order matters twice: the order of the rows, and the priority when pre-filling. */\n descriptors: AnyUserSystemDescriptor[]\n refreshHook?: UserSystemRefreshHook | undefined\n}>()\n\nconst emit = defineEmits<{\n (e: 'searched', term: string): void\n}>()\n\nconst { t } = useI18n()\nconst { showError } = useAlerts()\nconst store = useUserCrossSystemStore()\nconst { createAnzuUser } = useAnzuUserFactory()\nconst writes = useUserCrossSystemWrites()\n\n// A collector for the metadata form inside the create dialog. Without one its rules register\n// against whatever ancestor happens to have an instance, and the dialog's confirm could not ask\n// whether the fields it is about to send are valid.\nconst v$ = useVuelidate()\n\n/* eslint-disable vue/no-setup-props-reactivity-loss */\nconst { search, refreshSystem, unresolvedSystems, cancel } = useUserCrossSystemSearch({\n descriptors: props.descriptors,\n refreshHook: props.refreshHook,\n})\n/* eslint-enable vue/no-setup-props-reactivity-loss */\n\nconst term = ref('')\nconst rowBusy = ref(new Set<string>())\n\nconst runSearch = async () => {\n const value = term.value.trim()\n if (value.length === 0) return\n emit('searched', value)\n await search(value)\n}\n\nconst records = computed(() => {\n const map = new Map<string, BaseUser>()\n for (const descriptor of props.descriptors) {\n const user = store.results.get(descriptor.system)?.user\n if (user) map.set(descriptor.system, user)\n }\n return map\n})\n\nconst differences = computed(() => findMetadataDifferences(records.value))\n\nconst foundAnywhere = computed(() => records.value.size > 0)\n\n/** The bulk actions only write where the person was found; offer them when at least one of those may be written. */\nconst anyFoundWritable = computed(() =>\n props.descriptors.some((item) => records.value.has(item.system) && descriptorMayWrite(item, 'update'))\n)\nconst searchDone = computed(() => store.phase === CrossSystemPhase.Done)\n\nconst searchedByEmail = computed(() => isEmailTerm(store.searchTerm))\n\n/**\n * When creating an account may be offered after a search that found nobody.\n *\n * By id: only when every relevant probe answered an authoritative 404. A record that could not be\n * read is not a record that does not exist, and no admin can delete an AnzuUser, so a duplicate\n * identity created on a guess cannot be taken back.\n *\n * By e-mail: always, because an address search cannot prove absence at all -- a system holding the\n * same person under a different address answers nothing, which is why the second round exists.\n * What makes it safe is that the dialog asks for the id and runs its own authoritative fan-out on\n * it before writing anything; refusing here would put the flow decision 21 describes out of reach\n * of the search people actually use, since the id is the thing they do not know yet.\n */\nconst canOfferCreateAnywhere = computed(\n () =>\n searchDone.value &&\n !foundAnywhere.value &&\n (searchedByEmail.value || unresolvedSystems.value.length === 0) &&\n props.descriptors.some((item) => item.isEnabled() && descriptorMayWrite(item, 'create'))\n)\n\n/** A conflict is not a state to act from: writes would land on somebody else's account. */\nconst blockedByConflict = computed(() => store.identityConflict !== null)\n\nconst labelFor = (descriptor: AnyUserSystemDescriptor) => descriptor.label ?? descriptor.system\n\nconst manageTargetFor = (descriptor: AnyUserSystemDescriptor) => {\n const user = store.results.get(descriptor.system)?.user\n if (isUndefined(user) || isNull(user) || isUndefined(descriptor.manage)) return null\n return descriptor.manage(user)\n}\n\nconst extraStateFor = (descriptor: AnyUserSystemDescriptor) => {\n const user = store.results.get(descriptor.system)?.user\n if (isUndefined(user) || isNull(user) || isUndefined(descriptor.extraState)) return null\n return descriptor.extraState(user)\n}\n\nconst EXTRA_STATE_COLOR = { ok: 'success', warn: 'warning', error: 'error' } as const\n\n/**\n * A failed row action says so.\n *\n * The bulk dialog has its log; a single row had nothing -- a 403 on Vypnúť left a spinner, an\n * unchanged row and silence, and the api helpers only write to the logger. The per-admin pages this\n * replaces put every write through `showErrorsDefault`.\n */\nconst reportOutcome = (label: string, outcome: BulkOutcomeType) => {\n if (outcome === BulkOutcome.Done) return\n showError(label + ': ' + t('common.userSystem.bulk.outcome.' + outcome))\n}\n\nconst detailFor = (fields: UserMetadataField[] | undefined) =>\n isUndefined(fields) || fields.length === 0\n ? undefined\n : t('common.userSystem.bulk.concurrentChange', { fields: fields.join(', ') })\n\nconst withRowBusy = async (system: string, run: () => Promise<void>) => {\n rowBusy.value = new Set([...rowBusy.value, system])\n try {\n await run()\n } finally {\n const next = new Set(rowBusy.value)\n next.delete(system)\n rowBusy.value = next\n }\n}\n\n/** After every write the touched row is read again -- otherwise it keeps showing the old state. */\nconst toggleOne = async (descriptor: AnyUserSystemDescriptor, enabled: boolean) => {\n const id = store.resolvedId\n if (isNull(id)) return\n await withRowBusy(descriptor.system, async () => {\n const result = await writes.setEnabled(descriptor, id, enabled)\n reportOutcome(labelFor(descriptor), result.outcome)\n await refreshSystem(descriptor.system)\n })\n}\n\nconst createFromSource = async (descriptor: AnyUserSystemDescriptor, metadata: BaseUser) => {\n const id = store.resolvedId\n if (isNull(id)) return\n const sourceSystem = props.descriptors.find((item) => records.value.has(item.system))\n if (isUndefined(sourceSystem)) return\n\n await withRowBusy(descriptor.system, async () => {\n // Read fresh from the server, never from the search results or a form's store: a switch flipped\n // and not saved would otherwise be copied into a system where it means a working public account.\n const source = await writes.readSourceUser(sourceSystem, id)\n if (isNull(source)) {\n showError(t('common.userSystem.create.sourceUnreadable', { system: labelFor(sourceSystem) }))\n return\n }\n // The same promise the panel makes: the dialog has already said whether this account will be\n // switched on, taken from the search result. If the server no longer agrees, somebody changed\n // it in between, and in blog and forum the difference is a working public account.\n if (source.enabled !== sourceEnabled.value) {\n // Re-read rather than patch the record: the chip draws from the probe's axes, and replacing\n // only the user left it showing the old state next to a toggle already showing the new one.\n await refreshSystem(sourceSystem.system)\n showError(t('common.userSystem.create.sourceChanged'))\n return\n }\n // The create right may have gone while the source was read; nothing is offered then, so nothing is said.\n if (!descriptorMayWrite(descriptor, 'create')) return\n // Metadata from the dialog, which was validated against the target's profile: the source may\n // leave `person` empty -- blog fills it for nobody -- where the target requires it.\n const body = createAnzuUser(descriptor.system)\n body.id = source.id\n body.email = metadata.email\n body.person = cloneDeep(metadata.person)\n body.avatar = cloneDeep(metadata.avatar)\n // Copying a person into another system copies whether they are switched on. Roles stay empty.\n body.enabled = source.enabled\n const result = await writes.createInSystem(descriptor, body)\n reportOutcome(labelFor(descriptor), result.outcome)\n await refreshSystem(descriptor.system)\n })\n}\n\n/** The record the create form is prefilled from: the first configured system that has one. */\nconst prefillSource = computed(() => {\n const first = props.descriptors.find((item) => records.value.has(item.system))\n return isUndefined(first) ? null : (records.value.get(first.system) ?? null)\n})\n\nconst sourceEnabled = computed(() => {\n const first = props.descriptors.find((item) => records.value.has(item.system))\n if (isUndefined(first)) return false\n return store.results.get(first.system)?.user?.enabled === true\n})\n\n/* ---- bulk ---- */\n\nconst bulkOpen = ref(false)\nconst bulkAction = ref<BulkActionType>(BulkAction.Disable)\nconst repairOpen = ref(false)\n\nconst openBulk = (action: BulkActionType) => {\n bulkAction.value = action\n bulkOpen.value = true\n}\n\n/** The one place every bulk write passes through, retries included: a system the descriptor refuses is not written. */\nconst writableSystems = (systems: string[]) =>\n systems.filter((system) => {\n const descriptor = props.descriptors.find((item) => item.system === system)\n return !isUndefined(descriptor) && descriptorMayWrite(descriptor, 'update')\n })\n\nconst runBulk = async (requested: string[]) => {\n const id = store.resolvedId\n if (isNull(id)) return\n const systems = writableSystems(requested)\n if (systems.length === 0) return\n const enabled = bulkAction.value === BulkAction.Enable\n store.startBulk(bulkAction.value, systems, id)\n await Promise.allSettled(\n systems.map(async (system) => {\n const descriptor = props.descriptors.find((item) => item.system === system)\n if (isUndefined(descriptor)) return\n store.setBulkEntry(system, BulkOutcome.Running)\n const result = await writes.setEnabled(descriptor, id, enabled)\n store.setBulkEntry(system, result.outcome)\n await refreshSystem(system)\n })\n )\n store.finishBulk()\n}\n\nconst runRepair = async (payload: { target: BaseUser; systems: string[] }) => {\n const id = store.resolvedId\n if (isNull(id)) return\n const systems = writableSystems(payload.systems)\n if (systems.length === 0) return\n store.startBulk(BulkAction.Metadata, systems, id)\n // What the search showed is captured before anything is written, so the comparison is against the\n // values the operator was actually looking at rather than against a row a sibling write refreshed.\n const seenBefore = new Map(records.value)\n await Promise.allSettled(\n systems.map(async (system) => {\n const descriptor = props.descriptors.find((item) => item.system === system)\n if (isUndefined(descriptor)) return\n store.setBulkEntry(system, BulkOutcome.Running)\n const result = await writes.writeMetadata(\n descriptor,\n id,\n payload.target,\n undefined,\n seenBefore.get(system) ?? null\n )\n store.setBulkEntry(system, result.outcome, detailFor(result.concurrentFields))\n await refreshSystem(system)\n })\n )\n store.finishBulk()\n}\n\n/* ---- create where nobody was found ---- */\n\nconst createAnywhereOpen = ref(false)\nconst createAnywhereSystem = ref<string | null>(null)\nconst createAnywhereUser = ref<AnzuUser>(createAnzuUser())\nconst createAnywhereChecking = ref(false)\nconst createAnywhereConflict = ref<string[]>([])\nconst createAnywhereError = ref<string | null>(null)\n\n/** Set when the page goes away, so work that finishes afterwards does not refill it. */\nlet left = false\n\nconst openCreateAnywhere = () => {\n // The first system that is switched on, not the first one listed: a system disabled in the\n // configuration is not among the options, and preselecting it would POST through a client with\n // no base URL.\n createAnywhereSystem.value =\n props.descriptors.find((item) => item.isEnabled() && descriptorMayWrite(item, 'create'))?.system ?? null\n createAnywhereUser.value = createAnzuUser(createAnywhereSystem.value ?? '')\n createAnywhereConflict.value = []\n createAnywhereError.value = null\n createAnywhereOpen.value = true\n}\n\n/**\n * Before creating, the typed id is looked up across the systems.\n *\n * cms, dam and contentHub skip the SSO lookup for a numeric id, and the validators check the id and\n * the e-mail separately rather than as a pair -- so a typo creates an account with one person's id\n * and another's e-mail, and every later fan-out then follows the wrong identity.\n *\n * The check has to be authoritative too: if a probe answers 401, 403 or nothing, creating is not\n * allowed, because whether that id belongs to somebody is unknown.\n */\nconst confirmCreateAnywhere = async () => {\n const id = createAnywhereUser.value.id\n const system = createAnywhereSystem.value\n createAnywhereConflict.value = []\n createAnywhereError.value = null\n if (isNull(system)) return\n // The id is checked here and not only by the form, because everything below depends on the\n // fan-out having run: a term the search refuses probes nothing, and the empty result that leaves\n // behind would otherwise read as \"this id belongs to nobody\".\n if (isNull(id) || isUndefined(id) || !Number.isInteger(id) || id <= 0) {\n createAnywhereError.value = t('common.userSystem.create.invalidId')\n return\n }\n if (!(await v$.value.$validate())) return\n createAnywhereChecking.value = true\n try {\n if (!(await search(String(id)))) {\n createAnywhereError.value = t('common.userSystem.create.invalidId')\n return\n }\n if (left) return\n if (records.value.size > 0) {\n createAnywhereConflict.value = [...records.value.keys()]\n return\n }\n if (unresolvedSystems.value.length > 0) {\n createAnywhereConflict.value = unresolvedSystems.value\n return\n }\n const descriptor = props.descriptors.find((item) => item.system === system)\n if (isUndefined(descriptor) || !descriptor.isEnabled() || !descriptorMayWrite(descriptor, 'create')) return\n const body = createAnzuUser(system)\n body.id = id\n body.email = createAnywhereUser.value.email\n body.person = cloneDeep(createAnywhereUser.value.person)\n body.avatar = cloneDeep(createAnywhereUser.value.avatar)\n // Nobody to copy from, so the account is created switched off, as on an ordinary new-user page.\n body.enabled = false\n const result = await writes.createInSystem(descriptor, body)\n reportOutcome(labelFor(descriptor), result.outcome)\n if (result.outcome !== BulkOutcome.Done) return\n // The dialog is not persistent: the operator can click outside it and use the menu while the\n // POST is still out. The search after it takes a fresh generation that `cancel()` cannot stop,\n // and would put the new person back into a store the unmount just emptied.\n if (left) return\n createAnywhereOpen.value = false\n await search(String(id))\n } finally {\n createAnywhereChecking.value = false\n }\n}\n\n/**\n * The chosen target's own profile, not a blanket strict one.\n *\n * The repair dialog is strict on purpose -- it writes to nine places at once -- but this creates\n * one account in one system, and the plan asks for that system's profile. Strict here would demand\n * an avatar colour for a blog account that does not require one.\n */\nconst createAnywhereRequiredMetadata = computed(\n () => props.descriptors.find((item) => item.system === createAnywhereSystem.value)?.requiredMetadata ?? true\n)\n\n/** What is special about having an account in the chosen system -- for blog and forum, a public one. */\nconst createAnywhereNote = computed(\n () => props.descriptors.find((item) => item.system === createAnywhereSystem.value)?.createNote\n)\n\nconst createSystemOptions = computed(() =>\n props.descriptors\n .filter((item) => item.isEnabled() && descriptorMayWrite(item, 'create'))\n .map((item) => ({ value: item.system, title: labelFor(item) }))\n)\n\n// The store is there so a closed dialog does not take a running bulk action with it -- not to keep\n// a person on screen across navigation. Coming back through the menu showed the last one's rows and\n// live buttons under an empty search box.\nonBeforeUnmount(() => {\n left = true\n cancel()\n store.reset()\n})\n\ndefineExpose({\n search: async (value: string) => {\n term.value = value\n await runSearch()\n },\n})\n</script>\n\n<template>\n <div>\n <VCard variant=\"flat\">\n <VCardText>\n <div class=\"d-flex align-center ga-2\">\n <VTextField\n v-model=\"term\"\n :label=\"t('common.userSystem.search.label')\"\n :hint=\"t('common.userSystem.search.hint')\"\n persistent-hint\n density=\"compact\"\n data-cy=\"cross-system-search\"\n @keyup.enter=\"runSearch\"\n />\n <ABtnPrimary\n data-cy=\"cross-system-search-submit\"\n @click.stop=\"runSearch\"\n >\n {{ t('common.userSystem.search.submit') }}\n </ABtnPrimary>\n </div>\n <!--\n The two rounds are named while they run. Between them a row is neither present nor absent,\n and calling it \"no account here\" would invite a Create for an account that exists under\n another address.\n -->\n <div\n v-if=\"store.phase === CrossSystemPhase.MatchingEmail\"\n class=\"text-body-small mt-2\"\n >\n {{ t('common.userSystem.search.phase.matchingEmail') }}\n </div>\n <div\n v-else-if=\"store.phase === CrossSystemPhase.VerifyingById\"\n class=\"text-body-small mt-2\"\n >\n {{ t('common.userSystem.search.phase.verifyingById') }}\n </div>\n </VCardText>\n </VCard>\n\n <VAlert\n v-if=\"store.identityConflict\"\n type=\"error\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"my-3\"\n data-cy=\"identity-conflict\"\n >\n {{ t('common.userSystem.search.identityConflict') }}\n </VAlert>\n\n <!-- Neither an address nor an id. The previous person's rows are gone, and this says why. -->\n <VAlert\n v-if=\"store.termRejected\"\n type=\"warning\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"my-3\"\n data-cy=\"cross-system-term-rejected\"\n >\n {{ t('common.userSystem.search.termRejected') }}\n </VAlert>\n\n <VCard\n v-if=\"searchDone\"\n variant=\"flat\"\n class=\"mt-3\"\n >\n <VCardText class=\"d-flex flex-column ga-3\">\n <div\n v-for=\"descriptor in descriptors\"\n :key=\"descriptor.system\"\n class=\"d-flex align-center flex-wrap ga-2\"\n :data-cy=\"`cross-system-row-${descriptor.system}`\"\n >\n <div\n class=\"font-weight-medium\"\n style=\"min-width: 8rem\"\n >\n {{ labelFor(descriptor) }}\n </div>\n <AUserSystemStatusChip\n v-if=\"store.results.get(descriptor.system)\"\n :axes=\"store.results.get(descriptor.system)!.axes\"\n />\n <VChip\n v-if=\"extraStateFor(descriptor)\"\n :color=\"EXTRA_STATE_COLOR[extraStateFor(descriptor)!.tone]\"\n label\n size=\"small\"\n >\n {{ extraStateFor(descriptor)!.label }}: {{ extraStateFor(descriptor)!.value }}\n </VChip>\n <div class=\"text-body-small text-medium-emphasis\">\n {{ store.results.get(descriptor.system)?.user?.person.fullName }}\n <template v-if=\"store.results.get(descriptor.system)?.user\">\n · {{ store.results.get(descriptor.system)?.user?.email }}\n </template>\n </div>\n <VSpacer />\n <template\n v-if=\"store.results.get(descriptor.system) && isActionable(store.results.get(descriptor.system)!.axes)\"\n >\n <VBtn\n v-if=\"descriptorMayWrite(descriptor, 'update')\"\n size=\"small\"\n variant=\"text\"\n :loading=\"rowBusy.has(descriptor.system)\"\n :disabled=\"blockedByConflict\"\n :data-cy=\"`cross-system-toggle-${descriptor.system}`\"\n @click=\"toggleOne(descriptor, !store.results.get(descriptor.system)!.user!.enabled)\"\n >\n {{\n store.results.get(descriptor.system)!.user!.enabled\n ? t('common.userSystem.bulk.disable.title')\n : t('common.userSystem.bulk.enable.title')\n }}\n </VBtn>\n <AUserManageButton\n v-if=\"manageTargetFor(descriptor) && descriptorMayWrite(descriptor, 'update')\"\n :target=\"manageTargetFor(descriptor)!\"\n :system-label=\"labelFor(descriptor)\"\n />\n </template>\n <!--\n Create is offered on a row only when the person exists somewhere -- that is the only way\n their global id is known.\n -->\n <AUserCreateInSystemButton\n v-else-if=\"\n foundAnywhere &&\n store.results.get(descriptor.system) &&\n store.results.get(descriptor.system)!.axes.presence === 'absent' &&\n descriptorMayWrite(descriptor, 'create')\n \"\n :system-label=\"labelFor(descriptor)\"\n :create-note=\"descriptor.createNote\"\n :will-be-enabled=\"sourceEnabled\"\n :loading=\"rowBusy.has(descriptor.system)\"\n :disabled=\"blockedByConflict\"\n :required-metadata=\"descriptor.requiredMetadata\"\n :user-id=\"store.resolvedId\"\n :source=\"prefillSource\"\n @confirm=\"(user) => createFromSource(descriptor, user)\"\n />\n </div>\n </VCardText>\n </VCard>\n\n <VCard\n v-if=\"differences.length > 0\"\n variant=\"flat\"\n class=\"mt-3\"\n data-cy=\"cross-system-differences\"\n >\n <VCardText>\n <div class=\"text-label-large\">{{ t('common.userSystem.inconsistency.title') }}</div>\n <div\n v-for=\"difference in differences\"\n :key=\"difference.field\"\n class=\"text-body-small\"\n >\n <strong>{{ difference.field }}</strong>\n <span\n v-for=\"[system, systemValue] in difference.values\"\n :key=\"system\"\n class=\"ml-2\"\n >\n {{ system }}: {{ systemValue || '—' }}\n </span>\n </div>\n </VCardText>\n </VCard>\n\n <div\n v-if=\"searchDone && foundAnywhere && anyFoundWritable\"\n class=\"d-flex ga-2 mt-3\"\n >\n <!-- All three open a dialog. None of them acts straight away. -->\n <ABtnTertiary\n :disabled=\"store.bulkRunning || blockedByConflict\"\n data-cy=\"cross-system-bulk-disable\"\n @click=\"openBulk(BulkAction.Disable)\"\n >\n {{ t('common.userSystem.bulk.openDisable') }}\n </ABtnTertiary>\n <ABtnTertiary\n :disabled=\"store.bulkRunning || blockedByConflict\"\n data-cy=\"cross-system-bulk-enable\"\n @click=\"openBulk(BulkAction.Enable)\"\n >\n {{ t('common.userSystem.bulk.openEnable') }}\n </ABtnTertiary>\n <ABtnTertiary\n :disabled=\"store.bulkRunning || blockedByConflict\"\n data-cy=\"cross-system-bulk-metadata\"\n @click=\"repairOpen = true\"\n >\n {{ t('common.userSystem.bulk.openMetadata') }}\n </ABtnTertiary>\n <div\n v-if=\"store.bulkRunning\"\n class=\"text-body-small align-self-center\"\n >\n {{ t('common.userSystem.bulk.runningElsewhere') }}\n </div>\n </div>\n\n <VCard\n v-if=\"searchDone && !foundAnywhere\"\n variant=\"flat\"\n class=\"mt-3\"\n >\n <VCardText>\n <div data-cy=\"cross-system-not-found\">{{ t('common.userSystem.search.notFound') }}</div>\n <ABtnPrimary\n v-if=\"canOfferCreateAnywhere\"\n class=\"mt-2\"\n data-cy=\"cross-system-create-anywhere\"\n @click=\"openCreateAnywhere\"\n >\n {{ t('common.userSystem.search.createAnywhere') }}\n </ABtnPrimary>\n <!-- Not offered for want of a create right: then nothing is left unconfirmed to retry. -->\n <template v-else-if=\"!searchedByEmail && unresolvedSystems.length > 0\">\n <div class=\"text-body-small mt-2\">\n {{ t('common.userSystem.create.notAuthoritative', { systems: unresolvedSystems.join(', ') }) }}\n </div>\n <ABtnTertiary\n class=\"mt-2\"\n data-cy=\"cross-system-retry-search\"\n @click=\"runSearch\"\n >\n {{ t('common.userSystem.button.retry') }}\n </ABtnTertiary>\n </template>\n </VCardText>\n </VCard>\n\n <AUserBulkActionDialog\n v-model:open=\"bulkOpen\"\n :action=\"bulkAction\"\n :descriptors=\"descriptors\"\n @run=\"runBulk\"\n />\n\n <AUserMetadataRepairDialog\n v-model:open=\"repairOpen\"\n :descriptors=\"descriptors\"\n @confirm=\"runRepair\"\n />\n\n <VDialog\n v-model=\"createAnywhereOpen\"\n :max-width=\"720\"\n >\n <VCard>\n <ADialogToolbar @cancel=\"createAnywhereOpen = false\">\n {{ t('common.userSystem.search.createAnywhere') }}\n </ADialogToolbar>\n <VCardText>\n <VSelect\n v-model=\"createAnywhereSystem\"\n :items=\"createSystemOptions\"\n :label=\"t('common.userSystem.table.system')\"\n density=\"compact\"\n data-cy=\"create-anywhere-system\"\n />\n <!-- Id and e-mail are both asked for: the e-mail is required by the backend. -->\n <AUserMetadataForm\n v-model:user=\"createAnywhereUser\"\n :required=\"createAnywhereRequiredMetadata\"\n id-input\n />\n <p\n v-if=\"createAnywhereNote\"\n class=\"mt-2\"\n >\n {{ createAnywhereNote }}\n </p>\n <VAlert\n v-if=\"createAnywhereError\"\n type=\"error\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"mt-2\"\n data-cy=\"create-anywhere-error\"\n >\n {{ createAnywhereError }}\n </VAlert>\n <VAlert\n v-if=\"createAnywhereConflict.length > 0\"\n type=\"warning\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"mt-2\"\n data-cy=\"create-anywhere-conflict\"\n >\n {{ t('common.userSystem.create.notAuthoritative', { systems: createAnywhereConflict.join(', ') }) }}\n </VAlert>\n <p class=\"mt-2\">{{ t('common.userSystem.create.note') }}</p>\n <p>{{ t('common.userSystem.create.willBeDisabled') }}</p>\n </VCardText>\n <VCardActions>\n <ABtnTertiary @click.stop=\"createAnywhereOpen = false\">\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <VSpacer />\n <ABtnPrimary\n :loading=\"createAnywhereChecking\"\n data-cy=\"create-anywhere-confirm\"\n @click.stop=\"confirmCreateAnywhere\"\n >\n {{ t('common.button.confirm') }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AUserSystemOverview.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_createVNode","_component_VCard","_withCtx","_component_VCardText","_createElementVNode","_component_VTextField","_unref","_withKeys","_withModifiers","_createTextVNode","_toDisplayString","_createCommentVNode","_createBlock","_component_VAlert","_Fragment","_renderList","AUserSystemStatusChip","_component_VChip","_component_VSpacer","_component_VBtn","AUserManageButton","AUserCreateInSystemButton","AUserBulkActionDialog","AUserMetadataRepairDialog","_component_VDialog","ADialogToolbar","_component_VSelect","AUserMetadataForm","_component_VCardActions","ADialogToolbar_default","AUserBulkActionDialog_default","AUserCreateInSystemButton_default","AUserManageButton_default","AUserMetadataForm_default","AUserMetadataRepairDialog_default","AUserSystemStatusChip_default","useVuelidate","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","AUserSystemOverview_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","useI18n","useAlerts","store","useUserCrossSystemStore","useAnzuUserFactory","writes","useUserCrossSystemWrites","v$","useUserCrossSystemSearch","term","ref","rowBusy","runSearch","value","search","records","computed","map","descriptor","user","differences","findMetadataDifferences","foundAnywhere","anyFoundWritable","item","descriptorMayWrite","searchDone","CrossSystemPhase","searchedByEmail","isEmailTerm","canOfferCreateAnywhere","unresolvedSystems","blockedByConflict","labelFor","manageTargetFor","isUndefined","isNull","extraStateFor","EXTRA_STATE_COLOR","reportOutcome","outcome","BulkOutcome","showError","label","t","detailFor","fields","withRowBusy","system","run","next","toggleOne","id","result","enabled","refreshSystem","createFromSource","sourceSystem","source","sourceEnabled","body","createAnzuUser","metadata","cloneDeep","prefillSource","first","bulkOpen","bulkAction","BulkAction","repairOpen","openBulk","action","writableSystems","systems","runBulk","requested","runRepair","payload","seenBefore","createAnywhereOpen","createAnywhereSystem","createAnywhereUser","createAnywhereChecking","createAnywhereConflict","createAnywhereError","left","openCreateAnywhere","confirmCreateAnywhere","createAnywhereRequiredMetadata","createAnywhereNote","createSystemOptions","onBeforeUnmount","cancel","_component_ABtnPrimary","resolveComponent","_component_ABtnTertiary","openBlock","createElementBlock","createVNode","VCard","withCtx","VCardText","createElementVNode","VTextField","_cache","$event","unref","withKeys","withModifiers","createTextVNode","toDisplayString","createCommentVNode","createBlock","VAlert","Fragment","renderList","VChip","VSpacer","isActionable","VBtn","difference","systemValue","VDialog","VSelect","VCardActions"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemOverview.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, onBeforeUnmount, ref } from 'vue'\nimport useVuelidate from '@vuelidate/core'\nimport { useI18n } from 'vue-i18n'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useAnzuUserFactory } from '@/domains/anzuUser/factory/AnzuUserFactory'\nimport AUserBulkActionDialog from '@/domains/anzuUser/components/AUserBulkActionDialog.vue'\nimport AUserCreateInSystemButton from '@/domains/anzuUser/components/AUserCreateInSystemButton.vue'\nimport AUserManageButton from '@/domains/anzuUser/components/AUserManageButton.vue'\nimport AUserMetadataForm from '@/domains/anzuUser/components/AUserMetadataForm.vue'\nimport AUserMetadataRepairDialog from '@/domains/anzuUser/components/AUserMetadataRepairDialog.vue'\nimport AUserSystemStatusChip from '@/domains/anzuUser/components/AUserSystemStatusChip.vue'\nimport {\n BulkAction,\n BulkOutcome,\n CrossSystemPhase,\n useUserCrossSystemStore,\n type BulkActionType,\n type BulkOutcomeType,\n} from '@/domains/anzuUser/store/userCrossSystemStore'\nimport { isEmailTerm, useUserCrossSystemSearch } from '@/domains/anzuUser/composables/userCrossSystemSearch'\nimport { useUserCrossSystemWrites } from '@/domains/anzuUser/composables/userCrossSystemWrites'\nimport { findMetadataDifferences, type UserMetadataField } from '@/domains/anzuUser/utils/userMetadataDiff'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport type { UserSystemRefreshHook } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { isActionable } from '@/domains/anzuUser/utils/userSystemState'\nimport type { AnzuUser, BaseUser } from '@/shared/types/AnzuUser'\nimport { cloneDeep, isNull, isUndefined } from '@/shared/utils/common'\n\nconst props = defineProps<{\n /** Order matters twice: the order of the rows, and the priority when pre-filling. */\n descriptors: AnyUserSystemDescriptor[]\n refreshHook?: UserSystemRefreshHook | undefined\n}>()\n\nconst emit = defineEmits<{\n (e: 'searched', term: string): void\n}>()\n\nconst { t } = useI18n()\nconst { showError } = useAlerts()\nconst store = useUserCrossSystemStore()\nconst { createAnzuUser } = useAnzuUserFactory()\nconst writes = useUserCrossSystemWrites()\n\n// Collector for the metadata form in the create dialog. Without it the rules register\n// on some ancestor, and the dialog cannot validate the fields before sending.\nconst v$ = useVuelidate()\n\n/* eslint-disable vue/no-setup-props-reactivity-loss */\nconst { search, refreshSystem, unresolvedSystems, cancel } = useUserCrossSystemSearch({\n descriptors: props.descriptors,\n refreshHook: props.refreshHook,\n})\n/* eslint-enable vue/no-setup-props-reactivity-loss */\n\nconst term = ref('')\nconst rowBusy = ref(new Set<string>())\n\nconst runSearch = async () => {\n const value = term.value.trim()\n if (value.length === 0) return\n emit('searched', value)\n await search(value)\n}\n\nconst records = computed(() => {\n const map = new Map<string, BaseUser>()\n for (const descriptor of props.descriptors) {\n const user = store.results.get(descriptor.system)?.user\n if (user) map.set(descriptor.system, user)\n }\n return map\n})\n\nconst differences = computed(() => findMetadataDifferences(records.value))\n\nconst foundAnywhere = computed(() => records.value.size > 0)\n\n/** Bulk actions only write where the person was found, so offer them when at least one of those systems is writable. */\nconst anyFoundWritable = computed(() =>\n props.descriptors.some((item) => records.value.has(item.system) && descriptorMayWrite(item, 'update'))\n)\nconst searchDone = computed(() => store.phase === CrossSystemPhase.Done)\n\nconst searchedByEmail = computed(() => isEmailTerm(store.searchTerm))\n\n/**\n * When to offer creating an account after a search that found nobody.\n * By id: only if every relevant probe returned an authoritative 404. An\n * unreadable record may exist, and a duplicate identity cannot be deleted.\n * By e-mail: always. An address search cannot prove absence, and the dialog\n * asks for the id and runs its own authoritative check before writing.\n * Refusing here would block the decision 21 flow for the search people actually use, since they do not know the id yet.\n */\nconst canOfferCreateAnywhere = computed(\n () =>\n searchDone.value &&\n !foundAnywhere.value &&\n (searchedByEmail.value || unresolvedSystems.value.length === 0) &&\n props.descriptors.some((item) => item.isEnabled() && descriptorMayWrite(item, 'create'))\n)\n\n/** A conflict is not a state to act from: writes would land on somebody else's account. */\nconst blockedByConflict = computed(() => store.identityConflict !== null)\n\nconst labelFor = (descriptor: AnyUserSystemDescriptor) => descriptor.label ?? descriptor.system\n\nconst manageTargetFor = (descriptor: AnyUserSystemDescriptor) => {\n const user = store.results.get(descriptor.system)?.user\n if (isUndefined(user) || isNull(user) || isUndefined(descriptor.manage)) return null\n return descriptor.manage(user)\n}\n\nconst extraStateFor = (descriptor: AnyUserSystemDescriptor) => {\n const user = store.results.get(descriptor.system)?.user\n if (isUndefined(user) || isNull(user) || isUndefined(descriptor.extraState)) return null\n return descriptor.extraState(user)\n}\n\nconst EXTRA_STATE_COLOR = { ok: 'success', warn: 'warning', error: 'error' } as const\n\n/**\n * Report a failed row action to the user.\n * Without this a 403 on Vypnúť leaves a spinner and an unchanged row, because the api helpers only write to the logger.\n */\nconst reportOutcome = (label: string, outcome: BulkOutcomeType) => {\n if (outcome === BulkOutcome.Done) return\n showError(label + ': ' + t('common.userSystem.bulk.outcome.' + outcome))\n}\n\nconst detailFor = (fields: UserMetadataField[] | undefined) =>\n isUndefined(fields) || fields.length === 0\n ? undefined\n : t('common.userSystem.bulk.concurrentChange', { fields: fields.join(', ') })\n\nconst withRowBusy = async (system: string, run: () => Promise<void>) => {\n rowBusy.value = new Set([...rowBusy.value, system])\n try {\n await run()\n } finally {\n const next = new Set(rowBusy.value)\n next.delete(system)\n rowBusy.value = next\n }\n}\n\n/** The touched row is read again after every write. Otherwise it keeps showing the old state. */\nconst toggleOne = async (descriptor: AnyUserSystemDescriptor, enabled: boolean) => {\n const id = store.resolvedId\n if (isNull(id)) return\n await withRowBusy(descriptor.system, async () => {\n const result = await writes.setEnabled(descriptor, id, enabled)\n reportOutcome(labelFor(descriptor), result.outcome)\n await refreshSystem(descriptor.system)\n })\n}\n\nconst createFromSource = async (descriptor: AnyUserSystemDescriptor, metadata: BaseUser) => {\n const id = store.resolvedId\n if (isNull(id)) return\n const sourceSystem = props.descriptors.find((item) => records.value.has(item.system))\n if (isUndefined(sourceSystem)) return\n\n await withRowBusy(descriptor.system, async () => {\n // Read from the server, never from search results or a form's store.\n // An unsaved switch would otherwise be copied into a system where it means a working public account.\n const source = await writes.readSourceUser(sourceSystem, id)\n if (isNull(source)) {\n showError(t('common.userSystem.create.sourceUnreadable', { system: labelFor(sourceSystem) }))\n return\n }\n // The dialog already told the operator whether the account will be switched on, based on the search result.\n // If the server disagrees now, someone changed it. In blog and forum that means a working public account.\n if (source.enabled !== sourceEnabled.value) {\n // Re-read instead of patching the record. The chip uses the probe's axes, so\n // replacing only the user leaves the chip stale next to an updated toggle.\n await refreshSystem(sourceSystem.system)\n showError(t('common.userSystem.create.sourceChanged'))\n return\n }\n // The create right may have been lost while the source was read. Nothing is offered then, so nothing is reported.\n if (!descriptorMayWrite(descriptor, 'create')) return\n // Metadata comes from the dialog, which was validated against the target's profile.\n // The source may leave `person` empty (blog never fills it) where the target requires it.\n const body = createAnzuUser(descriptor.system)\n body.id = source.id\n body.email = metadata.email\n body.person = cloneDeep(metadata.person)\n body.avatar = cloneDeep(metadata.avatar)\n // Copying a person into another system copies whether they are switched on. Roles stay empty.\n body.enabled = source.enabled\n const result = await writes.createInSystem(descriptor, body)\n reportOutcome(labelFor(descriptor), result.outcome)\n await refreshSystem(descriptor.system)\n })\n}\n\n/** The record the create form is prefilled from: the first configured system that has one. */\nconst prefillSource = computed(() => {\n const first = props.descriptors.find((item) => records.value.has(item.system))\n return isUndefined(first) ? null : (records.value.get(first.system) ?? null)\n})\n\nconst sourceEnabled = computed(() => {\n const first = props.descriptors.find((item) => records.value.has(item.system))\n if (isUndefined(first)) return false\n return store.results.get(first.system)?.user?.enabled === true\n})\n\nconst bulkOpen = ref(false)\nconst bulkAction = ref<BulkActionType>(BulkAction.Disable)\nconst repairOpen = ref(false)\n\nconst openBulk = (action: BulkActionType) => {\n bulkAction.value = action\n bulkOpen.value = true\n}\n\n/** Every bulk write passes through here, retries included. A system the descriptor refuses is not written. */\nconst writableSystems = (systems: string[]) =>\n systems.filter((system) => {\n const descriptor = props.descriptors.find((item) => item.system === system)\n return !isUndefined(descriptor) && descriptorMayWrite(descriptor, 'update')\n })\n\nconst runBulk = async (requested: string[]) => {\n const id = store.resolvedId\n if (isNull(id)) return\n const systems = writableSystems(requested)\n if (systems.length === 0) return\n const enabled = bulkAction.value === BulkAction.Enable\n store.startBulk(bulkAction.value, systems, id)\n await Promise.allSettled(\n systems.map(async (system) => {\n const descriptor = props.descriptors.find((item) => item.system === system)\n if (isUndefined(descriptor)) return\n store.setBulkEntry(system, BulkOutcome.Running)\n const result = await writes.setEnabled(descriptor, id, enabled)\n store.setBulkEntry(system, result.outcome)\n await refreshSystem(system)\n })\n )\n store.finishBulk()\n}\n\nconst runRepair = async (payload: { target: BaseUser; systems: string[] }) => {\n const id = store.resolvedId\n if (isNull(id)) return\n const systems = writableSystems(payload.systems)\n if (systems.length === 0) return\n store.startBulk(BulkAction.Metadata, systems, id)\n // Captured before any write, so the comparison uses the values the operator saw, not a row a sibling write refreshed.\n const seenBefore = new Map(records.value)\n await Promise.allSettled(\n systems.map(async (system) => {\n const descriptor = props.descriptors.find((item) => item.system === system)\n if (isUndefined(descriptor)) return\n store.setBulkEntry(system, BulkOutcome.Running)\n const result = await writes.writeMetadata(\n descriptor,\n id,\n payload.target,\n undefined,\n seenBefore.get(system) ?? null\n )\n store.setBulkEntry(system, result.outcome, detailFor(result.concurrentFields))\n await refreshSystem(system)\n })\n )\n store.finishBulk()\n}\n\nconst createAnywhereOpen = ref(false)\nconst createAnywhereSystem = ref<string | null>(null)\nconst createAnywhereUser = ref<AnzuUser>(createAnzuUser())\nconst createAnywhereChecking = ref(false)\nconst createAnywhereConflict = ref<string[]>([])\nconst createAnywhereError = ref<string | null>(null)\n\n/** Set when the page goes away, so work that finishes afterwards does not refill it. */\nlet left = false\n\nconst openCreateAnywhere = () => {\n // Pick the first enabled system, not the first listed. A system disabled in the configuration\n // is not an option, and preselecting it would POST through a client with no base URL.\n createAnywhereSystem.value =\n props.descriptors.find((item) => item.isEnabled() && descriptorMayWrite(item, 'create'))?.system ?? null\n createAnywhereUser.value = createAnzuUser(createAnywhereSystem.value ?? '')\n createAnywhereConflict.value = []\n createAnywhereError.value = null\n createAnywhereOpen.value = true\n}\n\n/**\n * Before creating, the typed id is looked up across the systems.\n * cms, dam and contentHub skip the SSO lookup for a numeric id, and the validators check id and e-mail separately. A\n * typo would create an account with one person's id and another's e-mail, and later fan-outs follow the wrong identity.\n * If a probe answers 401, 403 or nothing, creating is blocked, because the id's owner is unknown.\n */\nconst confirmCreateAnywhere = async () => {\n const id = createAnywhereUser.value.id\n const system = createAnywhereSystem.value\n createAnywhereConflict.value = []\n createAnywhereError.value = null\n if (isNull(system)) return\n // The id is checked here, not only by the form. A term the search refuses probes\n // nothing, and that empty result would read as \"this id belongs to nobody\".\n if (isNull(id) || isUndefined(id) || !Number.isInteger(id) || id <= 0) {\n createAnywhereError.value = t('common.userSystem.create.invalidId')\n return\n }\n if (!(await v$.value.$validate())) return\n createAnywhereChecking.value = true\n try {\n if (!(await search(String(id)))) {\n createAnywhereError.value = t('common.userSystem.create.invalidId')\n return\n }\n if (left) return\n if (records.value.size > 0) {\n createAnywhereConflict.value = [...records.value.keys()]\n return\n }\n if (unresolvedSystems.value.length > 0) {\n createAnywhereConflict.value = unresolvedSystems.value\n return\n }\n const descriptor = props.descriptors.find((item) => item.system === system)\n if (isUndefined(descriptor) || !descriptor.isEnabled() || !descriptorMayWrite(descriptor, 'create')) return\n const body = createAnzuUser(system)\n body.id = id\n body.email = createAnywhereUser.value.email\n body.person = cloneDeep(createAnywhereUser.value.person)\n body.avatar = cloneDeep(createAnywhereUser.value.avatar)\n // Nobody to copy from, so the account is created switched off, as on an ordinary new-user page.\n body.enabled = false\n const result = await writes.createInSystem(descriptor, body)\n reportOutcome(labelFor(descriptor), result.outcome)\n if (result.outcome !== BulkOutcome.Done) return\n // The dialog is not persistent, so the operator can navigate away while the POST is pending.\n // The following search takes a fresh generation that `cancel()`\n // cannot stop, and would refill the store the unmount just emptied.\n if (left) return\n createAnywhereOpen.value = false\n await search(String(id))\n } finally {\n createAnywhereChecking.value = false\n }\n}\n\n/**\n * Uses the chosen target's own profile, not a blanket strict one.\n * The repair dialog is strict because it writes to nine systems. This creates one account\n * in one system, and strict would demand an avatar colour that blog does not require.\n */\nconst createAnywhereRequiredMetadata = computed(\n () => props.descriptors.find((item) => item.system === createAnywhereSystem.value)?.requiredMetadata ?? true\n)\n\n/** What is special about an account in the chosen system. For blog and forum it is a public one. */\nconst createAnywhereNote = computed(\n () => props.descriptors.find((item) => item.system === createAnywhereSystem.value)?.createNote\n)\n\nconst createSystemOptions = computed(() =>\n props.descriptors\n .filter((item) => item.isEnabled() && descriptorMayWrite(item, 'create'))\n .map((item) => ({ value: item.system, title: labelFor(item) }))\n)\n\n// The store exists so a closed dialog does not stop a running bulk action, not to keep a person across navigation.\n// Without this reset, returning through the menu showed the last\n// person's rows and live buttons under an empty search box.\nonBeforeUnmount(() => {\n left = true\n cancel()\n store.reset()\n})\n\ndefineExpose({\n search: async (value: string) => {\n term.value = value\n await runSearch()\n },\n})\n</script>\n\n<template>\n <div>\n <VCard variant=\"flat\">\n <VCardText>\n <div class=\"d-flex align-center ga-2\">\n <VTextField\n v-model=\"term\"\n :label=\"t('common.userSystem.search.label')\"\n :hint=\"t('common.userSystem.search.hint')\"\n persistent-hint\n density=\"compact\"\n data-cy=\"cross-system-search\"\n @keyup.enter=\"runSearch\"\n />\n <ABtnPrimary\n data-cy=\"cross-system-search-submit\"\n @click.stop=\"runSearch\"\n >\n {{ t('common.userSystem.search.submit') }}\n </ABtnPrimary>\n </div>\n <!--\n The two rounds are named while they run. Between them a row is neither present nor absent.\n Showing \"no account here\" would invite a Create for an account that exists under another address.\n -->\n <div\n v-if=\"store.phase === CrossSystemPhase.MatchingEmail\"\n class=\"text-body-small mt-2\"\n >\n {{ t('common.userSystem.search.phase.matchingEmail') }}\n </div>\n <div\n v-else-if=\"store.phase === CrossSystemPhase.VerifyingById\"\n class=\"text-body-small mt-2\"\n >\n {{ t('common.userSystem.search.phase.verifyingById') }}\n </div>\n </VCardText>\n </VCard>\n\n <VAlert\n v-if=\"store.identityConflict\"\n type=\"error\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"my-3\"\n data-cy=\"identity-conflict\"\n >\n {{ t('common.userSystem.search.identityConflict') }}\n </VAlert>\n\n <!-- Neither an address nor an id. The previous person's rows are gone, and this says why. -->\n <VAlert\n v-if=\"store.termRejected\"\n type=\"warning\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"my-3\"\n data-cy=\"cross-system-term-rejected\"\n >\n {{ t('common.userSystem.search.termRejected') }}\n </VAlert>\n\n <VCard\n v-if=\"searchDone\"\n variant=\"flat\"\n class=\"mt-3\"\n >\n <VCardText class=\"d-flex flex-column ga-3\">\n <div\n v-for=\"descriptor in descriptors\"\n :key=\"descriptor.system\"\n class=\"d-flex align-center flex-wrap ga-2\"\n :data-cy=\"`cross-system-row-${descriptor.system}`\"\n >\n <div\n class=\"font-weight-medium\"\n style=\"min-width: 8rem\"\n >\n {{ labelFor(descriptor) }}\n </div>\n <AUserSystemStatusChip\n v-if=\"store.results.get(descriptor.system)\"\n :axes=\"store.results.get(descriptor.system)!.axes\"\n />\n <VChip\n v-if=\"extraStateFor(descriptor)\"\n :color=\"EXTRA_STATE_COLOR[extraStateFor(descriptor)!.tone]\"\n label\n size=\"small\"\n >\n {{ extraStateFor(descriptor)!.label }}: {{ extraStateFor(descriptor)!.value }}\n </VChip>\n <div class=\"text-body-small text-medium-emphasis\">\n {{ store.results.get(descriptor.system)?.user?.person.fullName }}\n <template v-if=\"store.results.get(descriptor.system)?.user\">\n · {{ store.results.get(descriptor.system)?.user?.email }}\n </template>\n </div>\n <VSpacer />\n <template\n v-if=\"store.results.get(descriptor.system) && isActionable(store.results.get(descriptor.system)!.axes)\"\n >\n <VBtn\n v-if=\"descriptorMayWrite(descriptor, 'update')\"\n size=\"small\"\n variant=\"text\"\n :loading=\"rowBusy.has(descriptor.system)\"\n :disabled=\"blockedByConflict\"\n :data-cy=\"`cross-system-toggle-${descriptor.system}`\"\n @click=\"toggleOne(descriptor, !store.results.get(descriptor.system)!.user!.enabled)\"\n >\n {{\n store.results.get(descriptor.system)!.user!.enabled\n ? t('common.userSystem.bulk.disable.title')\n : t('common.userSystem.bulk.enable.title')\n }}\n </VBtn>\n <AUserManageButton\n v-if=\"manageTargetFor(descriptor) && descriptorMayWrite(descriptor, 'update')\"\n :target=\"manageTargetFor(descriptor)!\"\n :system-label=\"labelFor(descriptor)\"\n />\n </template>\n <!--\n Create is offered only when the person exists somewhere. That is the only way their global id is known.\n -->\n <AUserCreateInSystemButton\n v-else-if=\"\n foundAnywhere &&\n store.results.get(descriptor.system) &&\n store.results.get(descriptor.system)!.axes.presence === 'absent' &&\n descriptorMayWrite(descriptor, 'create')\n \"\n :system-label=\"labelFor(descriptor)\"\n :create-note=\"descriptor.createNote\"\n :will-be-enabled=\"sourceEnabled\"\n :loading=\"rowBusy.has(descriptor.system)\"\n :disabled=\"blockedByConflict\"\n :required-metadata=\"descriptor.requiredMetadata\"\n :user-id=\"store.resolvedId\"\n :source=\"prefillSource\"\n @confirm=\"(user) => createFromSource(descriptor, user)\"\n />\n </div>\n </VCardText>\n </VCard>\n\n <VCard\n v-if=\"differences.length > 0\"\n variant=\"flat\"\n class=\"mt-3\"\n data-cy=\"cross-system-differences\"\n >\n <VCardText>\n <div class=\"text-label-large\">{{ t('common.userSystem.inconsistency.title') }}</div>\n <div\n v-for=\"difference in differences\"\n :key=\"difference.field\"\n class=\"text-body-small\"\n >\n <strong>{{ difference.field }}</strong>\n <span\n v-for=\"[system, systemValue] in difference.values\"\n :key=\"system\"\n class=\"ml-2\"\n >\n {{ system }}: {{ systemValue || '—' }}\n </span>\n </div>\n </VCardText>\n </VCard>\n\n <div\n v-if=\"searchDone && foundAnywhere && anyFoundWritable\"\n class=\"d-flex ga-2 mt-3\"\n >\n <!-- All three open a dialog. None of them acts straight away. -->\n <ABtnTertiary\n :disabled=\"store.bulkRunning || blockedByConflict\"\n data-cy=\"cross-system-bulk-disable\"\n @click=\"openBulk(BulkAction.Disable)\"\n >\n {{ t('common.userSystem.bulk.openDisable') }}\n </ABtnTertiary>\n <ABtnTertiary\n :disabled=\"store.bulkRunning || blockedByConflict\"\n data-cy=\"cross-system-bulk-enable\"\n @click=\"openBulk(BulkAction.Enable)\"\n >\n {{ t('common.userSystem.bulk.openEnable') }}\n </ABtnTertiary>\n <ABtnTertiary\n :disabled=\"store.bulkRunning || blockedByConflict\"\n data-cy=\"cross-system-bulk-metadata\"\n @click=\"repairOpen = true\"\n >\n {{ t('common.userSystem.bulk.openMetadata') }}\n </ABtnTertiary>\n <div\n v-if=\"store.bulkRunning\"\n class=\"text-body-small align-self-center\"\n >\n {{ t('common.userSystem.bulk.runningElsewhere') }}\n </div>\n </div>\n\n <VCard\n v-if=\"searchDone && !foundAnywhere\"\n variant=\"flat\"\n class=\"mt-3\"\n >\n <VCardText>\n <div data-cy=\"cross-system-not-found\">{{ t('common.userSystem.search.notFound') }}</div>\n <ABtnPrimary\n v-if=\"canOfferCreateAnywhere\"\n class=\"mt-2\"\n data-cy=\"cross-system-create-anywhere\"\n @click=\"openCreateAnywhere\"\n >\n {{ t('common.userSystem.search.createAnywhere') }}\n </ABtnPrimary>\n <!-- Not offered for want of a create right: then nothing is left unconfirmed to retry. -->\n <template v-else-if=\"!searchedByEmail && unresolvedSystems.length > 0\">\n <div class=\"text-body-small mt-2\">\n {{ t('common.userSystem.create.notAuthoritative', { systems: unresolvedSystems.join(', ') }) }}\n </div>\n <ABtnTertiary\n class=\"mt-2\"\n data-cy=\"cross-system-retry-search\"\n @click=\"runSearch\"\n >\n {{ t('common.userSystem.button.retry') }}\n </ABtnTertiary>\n </template>\n </VCardText>\n </VCard>\n\n <AUserBulkActionDialog\n v-model:open=\"bulkOpen\"\n :action=\"bulkAction\"\n :descriptors=\"descriptors\"\n @run=\"runBulk\"\n />\n\n <AUserMetadataRepairDialog\n v-model:open=\"repairOpen\"\n :descriptors=\"descriptors\"\n @confirm=\"runRepair\"\n />\n\n <VDialog\n v-model=\"createAnywhereOpen\"\n :max-width=\"720\"\n >\n <VCard>\n <ADialogToolbar @cancel=\"createAnywhereOpen = false\">\n {{ t('common.userSystem.search.createAnywhere') }}\n </ADialogToolbar>\n <VCardText>\n <VSelect\n v-model=\"createAnywhereSystem\"\n :items=\"createSystemOptions\"\n :label=\"t('common.userSystem.table.system')\"\n density=\"compact\"\n data-cy=\"create-anywhere-system\"\n />\n <!-- Id and e-mail are both asked for: the e-mail is required by the backend. -->\n <AUserMetadataForm\n v-model:user=\"createAnywhereUser\"\n :required=\"createAnywhereRequiredMetadata\"\n id-input\n />\n <p\n v-if=\"createAnywhereNote\"\n class=\"mt-2\"\n >\n {{ createAnywhereNote }}\n </p>\n <VAlert\n v-if=\"createAnywhereError\"\n type=\"error\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"mt-2\"\n data-cy=\"create-anywhere-error\"\n >\n {{ createAnywhereError }}\n </VAlert>\n <VAlert\n v-if=\"createAnywhereConflict.length > 0\"\n type=\"warning\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"mt-2\"\n data-cy=\"create-anywhere-conflict\"\n >\n {{ t('common.userSystem.create.notAuthoritative', { systems: createAnywhereConflict.join(', ') }) }}\n </VAlert>\n <p class=\"mt-2\">{{ t('common.userSystem.create.note') }}</p>\n <p>{{ t('common.userSystem.create.willBeDisabled') }}</p>\n </VCardText>\n <VCardActions>\n <ABtnTertiary @click.stop=\"createAnywhereOpen = false\">\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <VSpacer />\n <ABtnPrimary\n :loading=\"createAnywhereChecking\"\n data-cy=\"create-anywhere-confirm\"\n @click.stop=\"confirmCreateAnywhere\"\n >\n {{ t('common.button.confirm') }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BA,IAAMwD,IAAQC,GAMRC,KAAOH,IAIP,EAAE,SAAMI,GAAQ,GAChB,EAAE,iBAAcC,EAAU,GAC1BC,IAAQC,EAAwB,GAChC,EAAE,sBAAmBC,EAAmB,GACxCC,IAASC,GAAyB,GAIlCC,KAAK3B,GAAa,GAGlB,EAAE,YAAQ,kBAAe,sBAAmB,eAAW4B,GAAyB;GACpF,aAAaX,EAAM;GACnB,aAAaA,EAAM;EACrB,CAAC,GAGKY,IAAOC,EAAI,EAAE,GACbC,IAAUD,kBAAI,IAAI,IAAY,CAAC,GAE/BE,IAAY,YAAY;GAC5B,IAAMC,IAAQJ,EAAK,MAAM,KAAK;GAC9B,AAAII,EAAM,WAAW,MACrBd,GAAK,YAAYc,CAAK,GACtB,MAAMC,GAAOD,CAAK;EACpB,GAEME,IAAUC,QAAe;GAC7B,IAAMC,oBAAM,IAAI,IAAsB;GACtC,KAAK,IAAMC,KAAcrB,EAAM,aAAa;IAC1C,IAAMsB,IAAOjB,EAAM,QAAQ,IAAIgB,EAAW,MAAM,CAAC,EAAE;IACnD,AAAIC,KAAMF,EAAI,IAAIC,EAAW,QAAQC,CAAI;GAC3C;GACA,OAAOF;EACT,CAAC,GAEKG,KAAcJ,QAAeK,GAAwBN,EAAQ,KAAK,CAAC,GAEnEO,IAAgBN,QAAeD,EAAQ,MAAM,OAAO,CAAC,GAGrDQ,KAAmBP,QACvBnB,EAAM,YAAY,MAAM,MAASkB,EAAQ,MAAM,IAAIS,EAAK,MAAM,KAAKC,EAAmBD,GAAM,QAAQ,CAAC,CACvG,GACME,IAAaV,QAAed,EAAM,UAAUyB,GAAiB,IAAI,GAEjEC,KAAkBZ,QAAea,GAAY3B,EAAM,UAAU,CAAC,GAU9D4B,KAAyBd,QAE3BU,EAAW,SACX,CAACJ,EAAc,UACdM,GAAgB,SAASG,EAAkB,MAAM,WAAW,MAC7DlC,EAAM,YAAY,MAAM,MAAS2B,EAAK,UAAU,KAAKC,EAAmBD,GAAM,QAAQ,CAAC,CAC3F,GAGMQ,IAAoBhB,QAAed,EAAM,qBAAqB,IAAI,GAElE+B,KAAY,MAAwCf,EAAW,SAASA,EAAW,QAEnFgB,MAAmB,MAAwC;GAC/D,IAAMf,IAAOjB,EAAM,QAAQ,IAAIgB,EAAW,MAAM,CAAC,EAAE;GAEnD,OADIiB,EAAYhB,CAAI,KAAKiB,EAAOjB,CAAI,KAAKgB,EAAYjB,EAAW,MAAM,IAAU,OACzEA,EAAW,OAAOC,CAAI;EAC/B,GAEMkB,KAAiB,MAAwC;GAC7D,IAAMlB,IAAOjB,EAAM,QAAQ,IAAIgB,EAAW,MAAM,CAAC,EAAE;GAEnD,OADIiB,EAAYhB,CAAI,KAAKiB,EAAOjB,CAAI,KAAKgB,EAAYjB,EAAW,UAAU,IAAU,OAC7EA,EAAW,WAAWC,CAAI;EACnC,GAEMmB,KAAoB;GAAE,IAAI;GAAW,MAAM;GAAW,OAAO;EAAQ,GAMrEC,MAAiB,GAAe,MAA6B;GACjE,AAAIC,MAAYC,EAAY,QAC5BC,EAAUC,IAAQ,OAAOC,EAAE,oCAAoCJ,CAAO,CAAC;EACzE,GAEMK,MAAa,MACjBV,EAAYW,CAAM,KAAKA,EAAO,WAAW,IACrC,KAAA,IACAF,EAAE,2CAA2C,EAAE,QAAQE,EAAO,KAAK,IAAI,EAAE,CAAC,GAE1EC,KAAc,OAAO,GAAgB,MAA6B;GACtE,EAAQ,wBAAQ,IAAI,IAAI,CAAC,GAAGpC,EAAQ,OAAOqC,CAAM,CAAC;GAClD,IAAI;IACF,MAAMC,EAAI;GACZ,UAAU;IACR,IAAMC,IAAO,IAAI,IAAIvC,EAAQ,KAAK;IAElC,AADAuC,EAAK,OAAOF,CAAM,GAClB,EAAQ,QAAQE;GAClB;EACF,GAGMC,KAAY,OAAO,GAAqC,MAAqB;GACjF,IAAMC,IAAKlD,EAAM;GACjB,AAAIkC,EAAOgB,CAAE,KACb,MAAML,GAAY7B,EAAW,QAAQ,YAAY;IAC/C,IAAMmC,IAAS,MAAMhD,EAAO,WAAWa,GAAYkC,GAAIE,CAAO;IAE9D,AADAf,GAAcN,EAASf,CAAU,GAAGmC,EAAO,OAAO,GAClD,MAAME,EAAcrC,EAAW,MAAM;GACvC,CAAC;EACH,GAEMsC,KAAmB,OAAO,GAAqC,MAAuB;GAC1F,IAAMJ,IAAKlD,EAAM;GACjB,IAAIkC,EAAOgB,CAAE,GAAG;GAChB,IAAMK,IAAe5D,EAAM,YAAY,MAAM,MAASkB,EAAQ,MAAM,IAAIS,EAAK,MAAM,CAAC;GACpF,AAAIW,EAAYsB,CAAY,KAE5B,MAAMV,GAAY7B,EAAW,QAAQ,YAAY;IAG/C,IAAMwC,IAAS,MAAMrD,EAAO,eAAeoD,GAAcL,CAAE;IAC3D,IAAIhB,EAAOsB,CAAM,GAAG;KAClB,EAAUd,EAAE,6CAA6C,EAAE,QAAQX,EAASwB,CAAY,EAAE,CAAC,CAAC;KAC5F;IACF;IAGA,IAAIC,EAAO,YAAYC,GAAc,OAAO;KAI1C,AADA,MAAMJ,EAAcE,EAAa,MAAM,GACvCf,EAAUE,EAAE,wCAAwC,CAAC;KACrD;IACF;IAEA,IAAI,CAACnB,EAAmBP,GAAY,QAAQ,GAAG;IAG/C,IAAM0C,IAAOC,EAAe3C,EAAW,MAAM;IAM7C,AALA,EAAK,KAAKwC,EAAO,IACjB,EAAK,QAAQI,EAAS,OACtB,EAAK,SAASC,EAAUD,EAAS,MAAM,GACvC,EAAK,SAASC,EAAUD,EAAS,MAAM,GAEvC,EAAK,UAAUJ,EAAO;IACtB,IAAML,KAAS,MAAMhD,EAAO,eAAea,GAAY0C,CAAI;IAE3D,AADArB,GAAcN,EAASf,CAAU,GAAGmC,GAAO,OAAO,GAClD,MAAME,EAAcrC,EAAW,MAAM;GACvC,CAAC;EACH,GAGM8C,KAAgBhD,QAAe;GACnC,IAAMiD,IAAQpE,EAAM,YAAY,MAAM,MAASkB,EAAQ,MAAM,IAAIS,EAAK,MAAM,CAAC;GAC7E,OAAOW,EAAY8B,CAAK,IAAI,OAAQlD,EAAQ,MAAM,IAAIkD,EAAM,MAAM,KAAK;EACzE,CAAC,GAEKN,KAAgB3C,QAAe;GACnC,IAAMiD,IAAQpE,EAAM,YAAY,MAAM,MAASkB,EAAQ,MAAM,IAAIS,EAAK,MAAM,CAAC;GAE7E,OADA,CAAIW,EAAY8B,CAAK,KACd/D,EAAM,QAAQ,IAAI+D,EAAM,MAAM,CAAC,EAAE,MAAM,YAAY;EAC5D,CAAC,GAEKC,KAAWxD,EAAI,EAAK,GACpByD,IAAazD,EAAoB0D,EAAW,OAAO,GACnDC,KAAa3D,EAAI,EAAK,GAEtB4D,MAAY,MAA2B;GAE3C,AADA,EAAW,QAAQC,GACnB,GAAS,QAAQ;EACnB,GAGMC,MAAmB,MACvBC,EAAQ,QAAQ,MAAW;GACzB,IAAMvD,IAAarB,EAAM,YAAY,MAAM,MAAS2B,EAAK,WAAWwB,CAAM;GAC1E,OAAO,CAACb,EAAYjB,CAAU,KAAKO,EAAmBP,GAAY,QAAQ;EAC5E,CAAC,GAEGwD,KAAU,OAAO,MAAwB;GAC7C,IAAMtB,IAAKlD,EAAM;GACjB,IAAIkC,EAAOgB,CAAE,GAAG;GAChB,IAAMqB,IAAUD,GAAgBG,CAAS;GACzC,IAAIF,EAAQ,WAAW,GAAG;GAC1B,IAAMnB,IAAUa,EAAW,UAAUC,EAAW;GAYhD,AAXAlE,EAAM,UAAUiE,EAAW,OAAOM,GAASrB,CAAE,GAC7C,MAAM,QAAQ,WACZqB,EAAQ,IAAI,OAAO,MAAW;IAC5B,IAAMvD,IAAarB,EAAM,YAAY,MAAM,MAAS2B,EAAK,WAAWwB,CAAM;IAC1E,IAAIb,EAAYjB,CAAU,GAAG;IAC7B,EAAM,aAAa8B,GAAQP,EAAY,OAAO;IAC9C,IAAMY,IAAS,MAAMhD,EAAO,WAAWa,GAAYkC,GAAIE,CAAO;IAE9D,AADApD,EAAM,aAAa8C,GAAQK,EAAO,OAAO,GACzC,MAAME,EAAcP,CAAM;GAC5B,CAAC,CACH,GACA9C,EAAM,WAAW;EACnB,GAEM0E,KAAY,OAAO,MAAqD;GAC5E,IAAMxB,IAAKlD,EAAM;GACjB,IAAIkC,EAAOgB,CAAE,GAAG;GAChB,IAAMqB,IAAUD,GAAgBK,EAAQ,OAAO;GAC/C,IAAIJ,EAAQ,WAAW,GAAG;GAC1B,EAAM,UAAUL,EAAW,UAAUK,GAASrB,CAAE;GAEhD,IAAM0B,IAAa,IAAI,IAAI/D,EAAQ,KAAK;GAiBxC,AAhBA,MAAM,QAAQ,WACZ0D,EAAQ,IAAI,OAAO,MAAW;IAC5B,IAAMvD,IAAarB,EAAM,YAAY,MAAM,MAAS2B,EAAK,WAAWwB,CAAM;IAC1E,IAAIb,EAAYjB,CAAU,GAAG;IAC7B,EAAM,aAAa8B,GAAQP,EAAY,OAAO;IAC9C,IAAMY,IAAS,MAAMhD,EAAO,cAC1Ba,GACAkC,GACAyB,EAAQ,QACR,KAAA,GACAC,EAAW,IAAI9B,CAAM,KAAK,IAC5B;IAEA,AADA9C,EAAM,aAAa8C,GAAQK,EAAO,SAASR,GAAUQ,EAAO,gBAAgB,CAAC,GAC7E,MAAME,EAAcP,CAAM;GAC5B,CAAC,CACH,GACA9C,EAAM,WAAW;EACnB,GAEM6E,IAAqBrE,EAAI,EAAK,GAC9BsE,IAAuBtE,EAAmB,IAAI,GAC9CuE,IAAqBvE,EAAcmD,EAAe,CAAC,GACnDqB,IAAyBxE,EAAI,EAAK,GAClCyE,IAAyBzE,EAAc,CAAC,CAAC,GACzC0E,IAAsB1E,EAAmB,IAAI,GAG/C2E,KAAO,IAELC,WAA2B;GAQ/B,AALA,EAAqB,QACnBzF,EAAM,YAAY,MAAM,MAAS2B,EAAK,UAAU,KAAKC,EAAmBD,GAAM,QAAQ,CAAC,CAAC,EAAE,UAAU,MACtG,EAAmB,QAAQqC,EAAemB,EAAqB,SAAS,EAAE,GAC1E,EAAuB,QAAQ,CAAC,GAChC,EAAoB,QAAQ,MAC5B,EAAmB,QAAQ;EAC7B,GAQMO,KAAwB,YAAY;GACxC,IAAMnC,IAAK6B,EAAmB,MAAM,IAC9BjC,IAASgC,EAAqB;GAGpC,IAFA,EAAuB,QAAQ,CAAC,GAChC,EAAoB,QAAQ,MACxB,GAAOhC,CAAM,GAGjB;QAAIZ,EAAOgB,CAAE,KAAKjB,EAAYiB,CAAE,KAAK,CAAC,OAAO,UAAUA,CAAE,KAAKA,KAAM,GAClE,EAAoB,QAAQR,EAAE,oCAAoC;SAGpE,IAAM,MAAMrC,GAAG,MAAM,UAAU,GAC/B;OAAuB,QAAQ;KAC/B,IAAI;MACF,IAAI,CAAE,MAAMO,GAAO,OAAOsC,CAAE,CAAC,GAAI;OAC/B,EAAoB,QAAQR,EAAE,oCAAoC;OAClE;MACF;MACA,IAAIyC,IAAM;MACV,IAAItE,EAAQ,MAAM,OAAO,GAAG;OAC1B,EAAuB,QAAQ,CAAC,GAAGA,EAAQ,MAAM,KAAK,CAAC;OACvD;MACF;MACA,IAAIgB,EAAkB,MAAM,SAAS,GAAG;OACtC,EAAuB,QAAQA,EAAkB;OACjD;MACF;MACA,IAAMb,IAAarB,EAAM,YAAY,MAAM,MAAS2B,EAAK,WAAWwB,CAAM;MAC1E,IAAIb,EAAYjB,CAAU,KAAK,CAACA,EAAW,UAAU,KAAK,CAACO,EAAmBP,GAAY,QAAQ,GAAG;MACrG,IAAM0C,IAAOC,EAAeb,CAAM;MAMlC,AALA,EAAK,KAAKI,GACV,EAAK,QAAQ6B,EAAmB,MAAM,OACtC,EAAK,SAASlB,EAAUkB,EAAmB,MAAM,MAAM,GACvD,EAAK,SAASlB,EAAUkB,EAAmB,MAAM,MAAM,GAEvD,EAAK,UAAU;MACf,IAAM5B,IAAS,MAAMhD,EAAO,eAAea,GAAY0C,CAAI;MAM3D,IALArB,GAAcN,EAASf,CAAU,GAAGmC,EAAO,OAAO,GAC9CA,EAAO,YAAYZ,EAAY,QAI/B4C,IAAM;MAEV,AADA,EAAmB,QAAQ,IAC3B,MAAMvE,GAAO,OAAOsC,CAAE,CAAC;KACzB,UAAU;MACR,EAAuB,QAAQ;KACjC;IAnC+B;GAF/B;EAsCF,GAOMoC,KAAiCxE,QAC/BnB,EAAM,YAAY,MAAM,MAAS2B,EAAK,WAAWwD,EAAqB,KAAK,CAAC,EAAE,oBAAoB,EAC1G,GAGMS,KAAqBzE,QACnBnB,EAAM,YAAY,MAAM,MAAS2B,EAAK,WAAWwD,EAAqB,KAAK,CAAC,EAAE,UACtF,GAEMU,KAAsB1E,QAC1BnB,EAAM,YACH,QAAQ,MAAS2B,EAAK,UAAU,KAAKC,EAAmBD,GAAM,QAAQ,CAAC,CAAA,CACvE,KAAK,OAAU;GAAE,OAAOA,EAAK;GAAQ,OAAOS,EAAST,CAAI;EAAE,EAAE,CAClE;E,OAKAmE,SAAsB;GAGpB,AAFA,KAAO,IACPC,GAAO,GACP1F,EAAM,MAAM;EACd,CAAC,GAEDP,GAAa,EACX,QAAQ,OAAO,MAAkB;GAE/B,AADA,EAAK,QAAQkB,GACb,MAAMD,EAAU;EAClB,EACF,CAAC,I;;GAIC,OAAAtE,EAAA,GAAAC,EA4TM,OAAA,MAAA;IA3TJC,EAoCQC,GAAA,EApCD,SAAQ,OAAM,GAAA;KACnB,SAAAC,QAkCY,CAlCZF,EAkCYG,GAAA,MAAA;MAjCV,SAAAD,QAgBM,CAhBNE,EAgBM,OAhBNiC,IAgBM,CAfJrC,EAQEK,IAAA;OAPS,YAAA4D,EAAA;OAAA,uBAAA,AAAA+F,EAAA,QAAA,MAAA,EAAI,QAAAC;OACZ,OAAO3J,EAAA8F,CAAA,CAAC,CAAA,gCAAA;OACR,MAAM9F,EAAA8F,CAAA,CAAC,CAAA,+BAAA;OACR,mBAAA;OACA,SAAQ;OACR,WAAQ;OACP,SAAK7F,GAAQ6D,GAAS,CAAA,OAAA,CAAA;;;;;M,IAEzBpE,EAKcqJ,GAAA;OAJZ,WAAQ;OACP,SAAK7I,GAAO4D,GAAS,CAAA,MAAA,CAAA;;OAEtB,SAAAlE,QAA0C,CAAvCO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,iCAAA,CAAA,GAAA,CAAA,C;;M,MAQA9F,EAAAoD,CAAA,CAAK,CAAC,UAAUpD,EAAA6E,EAAA,CAAgB,CAAC,iBADzCrF,EAAA,GAAAC,EAKM,OALNuC,IAKM5B,EADDJ,EAAA8F,CAAA,CAAC,CAAA,8CAAA,CAAA,GAAA,CAAA,KAGO9F,EAAAoD,CAAA,CAAK,CAAC,UAAUpD,EAAA6E,EAAA,CAAgB,CAAC,iBAD9CrF,EAAA,GAAAC,EAKM,OALNwC,IAKM7B,EADDJ,EAAA8F,CAAA,CAAC,CAAA,8CAAA,CAAA,GAAA,CAAA,K;;;;;IAMF9F,EAAAoD,CAAA,CAAK,CAAC,oBADd5D,EAAA,GAAAc,EASSC,GAAA;;KAPP,MAAK;KACL,SAAQ;KACR,SAAQ;KACR,OAAM;KACN,WAAQ;;KAER,SAAAX,QAAoD,CAAjDO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,2CAAA,CAAA,GAAA,CAAA,C;;;IAKE9F,EAAAoD,CAAA,CAAK,CAAC,gBADd5D,EAAA,GAAAc,EASSC,GAAA;;KAPP,MAAK;KACL,SAAQ;KACR,SAAQ;KACR,OAAM;KACN,WAAQ;;KAER,SAAAX,QAAgD,CAA7CO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,uCAAA,CAAA,GAAA,CAAA,C;;;IAIElB,EAAA,SADRpF,EAAA,GAAAc,EAmFQX,GAAA;;KAjFN,SAAQ;KACR,OAAM;;KAEN,SAAAC,QA6EY,CA7EZF,EA6EYG,GAAA,EA7ED,OAAM,0BAAyB,GAAA;MAEtC,SAAAD,QAAiC,EADnCJ,EAAA,EAAA,GAAAC,EA2EMe,GAAA,MAAAC,GA1EiBuC,EAAA,cAAd,OADTxD,EAAA,GAAAC,EA2EM,OAAA;OAzEH,KAAK2E,EAAW;OACjB,OAAM;OACL,WAAO,oBAAsBA,EAAW;;OAEzCtE,EAKM,OALNqC,IAKM/B,EADD+E,EAASf,CAAU,CAAA,GAAA,CAAA;OAGhBpE,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,KAD3C5E,EAAA,GAAAc,EAGEI,IAAA;;QADC,MAAMV,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,CAAG;;OAGvCmB,EAAcnB,CAAU,KADhC5E,EAAA,GAAAc,EAOQK,IAAA;;QALL,OAAO6E,GAAkBD,EAAcnB,CAAU,CAAA,CAAG;QACrD,OAAA;QACA,MAAK;;QAEL,SAAAxE,QAAsC,CAAnCO,EAAAC,EAAAmF,EAAcnB,CAAU,CAAA,CAAG,KAAK,IAAG,OAAEhE,EAAGmF,EAAcnB,CAAU,CAAA,CAAG,KAAK,GAAA,CAAA,C;;;OAE7EtE,EAKM,OALNsC,IAKM,CAJDjC,EAAAC,EAAAJ,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,EAAG,MAAM,OAAO,QAAQ,IAAG,KACjE,CAAA,GAAgBpE,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,EAAG,QAAtD5E,EAAA,GAAAC,EAEWe,GAAA,EAAA,KAAA,EAAA,GAAA,CAFiDL,EAAA,QACxDC,EAAGJ,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,EAAG,MAAM,KAAK,GAAA,CAAA,C;OAG1D1E,EAAWkB,EAAA;OAEHZ,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,KAAKpE,EAAAwK,EAAA,CAAY,CAACxK,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,CAAG,IAAI,KADvG5E,EAAA,GAAAC,EAuBWe,GAAA,EAAA,KAAA,EAAA,GAAA,CAnBDR,EAAA2E,CAAA,CAAkB,CAACP,GAAU,QAAA,KADrC5E,EAAA,GAAAc,EAcOO,IAAA;;QAZL,MAAK;QACL,SAAQ;QACP,SAASgD,EAAA,MAAQ,IAAIO,EAAW,MAAM;QACtC,UAAUc,EAAA;QACV,WAAO,uBAAyBd,EAAW;QAC3C,UAAK,MAAEiC,GAAUjC,GAAU,CAAGpE,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,CAAG,KAAM,OAAO;;QAElF,SAAAxE,QAIE,CAHAO,EAAAC,EAAAJ,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,CAAG,KAAM,UAA4BpE,EAAA8F,CAAA,CAAC,CAAA,sCAAA,IAA6D9F,EAAA8F,CAAA,CAAC,CAAA,qCAAA,CAAA,GAAA,CAAA,C;;;;;;;O,iBAMnIV,GAAgBhB,CAAU,KAAKpE,EAAA2E,CAAA,CAAkB,CAACP,GAAU,QAAA,KADpE5E,EAAA,GAAAc,EAIEQ,GAAA;;QAFC,QAAQsE,GAAgBhB,CAAU;QAClC,gBAAce,EAASf,CAAU;O,8DAOVI,EAAA,SAA+BxE,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,KAAmBpE,EAAAoD,CAAA,CAAK,CAAC,QAAQ,IAAIgB,EAAW,MAAM,CAAA,CAAG,KAAK,aAAQ,YAA+BpE,EAAA2E,CAAA,CAAkB,CAACP,GAAU,QAAA,KADhO5E,EAAA,GAAAc,EAgBES,GAAA;;QATC,gBAAcoE,EAASf,CAAU;QACjC,eAAaA,EAAW;QACxB,mBAAiByC,GAAA;QACjB,SAAShD,EAAA,MAAQ,IAAIO,EAAW,MAAM;QACtC,UAAUc,EAAA;QACV,qBAAmBd,EAAW;QAC9B,WAASpE,EAAAoD,CAAA,CAAK,CAAC;QACf,QAAQ8D,GAAA;QACR,YAAU,MAASR,GAAiBtC,GAAYC,CAAI;;;;;;;;;;;;;;;;;IAOrDC,GAAA,MAAY,SAAM,KAD1B9E,EAAA,GAAAc,EAuBQX,GAAA;;KArBN,SAAQ;KACR,OAAM;KACN,WAAQ;;KAER,SAAAC,QAgBY,CAhBZF,EAgBYG,GAAA,MAAA;MAfV,SAAAD,QAAoF,CAApFE,EAAoF,OAApFuC,IAAoFjC,EAAnDJ,EAAA8F,CAAA,CAAC,CAAA,uCAAA,CAAA,GAAA,CAAA,IAClCtG,EAAA,EAAA,GAAAC,EAaMe,GAAA,MAAAC,GAZiB6D,GAAA,QAAd,OADT9E,EAAA,GAAAC,EAaM,OAAA;OAXH,KAAKiL,EAAW;OACjB,OAAM;M,IAEN5K,EAAuC,UAAA,MAAAM,EAA5BsK,EAAW,KAAK,GAAA,CAAA,IAC3BlL,EAAA,EAAA,GAAAC,EAMOe,GAAA,MAAAC,GAL2BiK,EAAW,SAAM,CAAzCxE,GAAQyE,QADlBnL,EAAA,GAAAC,EAMO,QAAA;OAJJ,KAAKyG;OACN,OAAM;MAEH,GAAA9F,EAAA8F,CAAM,IAAG,OAAE9F,EAAGuK,KAAW,GAAA,GAAA,CAAA,E;;;;;IAO5B/F,EAAA,SAAcJ,EAAA,SAAiBC,GAAA,SADvCjF,EAAA,GAAAC,EAgCM,OAhCN6C,IAgCM;KA3BJ5C,EAMeuJ,GAAA;MALZ,UAAUjJ,EAAAoD,CAAA,CAAK,CAAC,eAAe8B,EAAA;MAChC,WAAQ;MACP,SAAK,AAAAwE,EAAA,QAAA,MAAElC,GAASxH,EAAAsH,CAAA,CAAU,CAAC,OAAO;;MAEnC,SAAA1H,QAA6C,CAA1CO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,oCAAA,CAAA,GAAA,CAAA,C;;;KAENpG,EAMeuJ,GAAA;MALZ,UAAUjJ,EAAAoD,CAAA,CAAK,CAAC,eAAe8B,EAAA;MAChC,WAAQ;MACP,SAAK,AAAAwE,EAAA,QAAA,MAAElC,GAASxH,EAAAsH,CAAA,CAAU,CAAC,MAAM;;MAElC,SAAA1H,QAA4C,CAAzCO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,mCAAA,CAAA,GAAA,CAAA,C;;;KAENpG,EAMeuJ,GAAA;MALZ,UAAUjJ,EAAAoD,CAAA,CAAK,CAAC,eAAe8B,EAAA;MAChC,WAAQ;MACP,SAAK,AAAAwE,EAAA,QAAA,MAAE,GAAA,QAAU;;MAElB,SAAA9J,QAA8C,CAA3CO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,qCAAA,CAAA,GAAA,CAAA,C;;;KAGE9F,EAAAoD,CAAA,CAAK,CAAC,eADd5D,EAAA,GAAAC,EAKM,OALN8C,IAKMnC,EADDJ,EAAA8F,CAAA,CAAC,CAAA,yCAAA,CAAA,GAAA,CAAA,K;;IAKAlB,EAAA,SAAU,CAAKJ,EAAA,SADvBhF,EAAA,GAAAc,EA6BQX,GAAA;;KA3BN,SAAQ;KACR,OAAM;;KAEN,SAAAC,QAuBY,CAvBZF,EAuBYG,GAAA,MAAA;MAtBV,SAAAD,QAAwF,CAAxFE,EAAwF,OAAxF0C,IAAwFpC,EAA/CJ,EAAA8F,CAAA,CAAC,CAAA,mCAAA,CAAA,GAAA,CAAA,GAElCd,GAAA,SADRxF,EAAA,GAAAc,EAOcyI,GAAA;;OALZ,OAAM;OACN,WAAQ;OACP,SAAOP;;OAER,SAAA5I,QAAkD,CAA/CO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,yCAAA,CAAA,GAAA,CAAA,C;;M,MAGgB,CAAAhB,GAAA,SAAmB9E,EAAAiF,CAAA,CAAiB,CAAC,SAAM,KAAjEzF,EAAA,GAAAC,EAWWe,GAAA,EAAA,KAAA,EAAA,GAAA,CAVTV,EAEM,OAFN2C,IAEMrC,EADDJ,EAAA8F,CAAA,CAAC,CAAA,6CAAA,EAAA,SAAyD9F,EAAAiF,CAAA,CAAiB,CAAC,KAAI,IAAA,EAAA,CAAA,CAAA,GAAA,CAAA,GAErFvF,EAMeuJ,GAAA;OALb,OAAM;OACN,WAAQ;OACP,SAAOnF;;OAER,SAAAlE,QAAyC,CAAtCO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,gCAAA,CAAA,GAAA,CAAA,C;;;;;;;IAMZpG,EAKEsB,GAAA;KAJQ,MAAMoG,GAAA;KAAA,iBAAA,AAAAsC,EAAA,QAAA,MAAA,GAAQ,QAAAC;KACrB,QAAQtC,EAAA;KACR,aAAarE,EAAA;KACb,OAAK4E;;;;;;IAGRlI,EAIEuB,IAAA;KAHQ,MAAMsG,GAAA;KAAA,iBAAA,AAAAmC,EAAA,QAAA,MAAA,GAAU,QAAAC;KACvB,aAAa3G,EAAA;KACb,WAAS8E;;IAGZpI,EAiEUwB,IAAA;KAhEC,YAAA+G,EAAA;KAAA,uBAAA,AAAAyB,EAAA,SAAA,MAAA,EAAkB,QAAAC;KAC1B,aAAW;;KAEZ,SAAA/J,QA4DQ,CA5DRF,EA4DQC,GAAA,MAAA;MA3DN,SAAAC,QAEiB;OAFjBF,EAEiByB,GAAA,EAFA,UAAM,AAAAuI,EAAA,QAAA,MAAE,EAAA,QAAkB,G;QACzC,SAAA9J,QAAkD,CAA/CO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,yCAAA,CAAA,GAAA,CAAA,C;;;OAENpG,EA0CYG,GAAA,MAAA;QAzCV,SAAAD,QAME;SANFF,EAME0B,IAAA;UALS,YAAA8G,EAAA;UAAA,uBAAA,AAAAwB,EAAA,QAAA,MAAA,EAAoB,QAAAC;UAC5B,OAAOf,GAAA;UACP,OAAO5I,EAAA8F,CAAA,CAAC,CAAA,gCAAA;UACT,SAAQ;UACR,WAAQ;;;;;;SAGVpG,EAIE2B,IAAA;UAHQ,MAAM8G,EAAA;UAAA,iBAAA,AAAAuB,EAAA,QAAA,MAAA,EAAkB,QAAAC;UAC/B,UAAUjB,GAAA;UACX,YAAA;;SAGMC,GAAA,SADRnJ,EAAA,GAAAC,EAKI,KALJiD,IAKItC,EADCuI,GAAA,KAAkB,GAAA,CAAA,K;SAGfL,EAAA,SADR9I,EAAA,GAAAc,EASSC,GAAA;;UAPP,MAAK;UACL,SAAQ;UACR,SAAQ;UACR,OAAM;UACN,WAAQ;;UAER,SAAAX,QAAyB,CAAtBO,EAAAC,EAAAkI,EAAA,KAAmB,GAAA,CAAA,C;;;SAGhBD,EAAA,MAAuB,SAAM,KADrC7I,EAAA,GAAAc,EASSC,GAAA;;UAPP,MAAK;UACL,SAAQ;UACR,SAAQ;UACR,OAAM;UACN,WAAQ;;UAER,SAAAX,QAAoG,CAAjGO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,6CAAA,EAAA,SAAyDuC,EAAA,MAAuB,KAAI,IAAA,EAAA,CAAA,CAAA,GAAA,CAAA,C;;;SAE1FvI,EAA4D,KAA5D6C,IAA4DvC,EAAzCJ,EAAA8F,CAAA,CAAC,CAAA,+BAAA,CAAA,GAAA,CAAA;SACpBhG,EAAyD,KAAA,MAAAM,EAAnDJ,EAAA8F,CAAA,CAAC,CAAA,yCAAA,CAAA,GAAA,CAAA;;;;OAETpG,EAYe4B,IAAA,MAAA;QAXb,SAAA1B,QAEe;SAFfF,EAEeuJ,GAAA,EAFA,SAAK,AAAAS,EAAA,OAAAxJ,IAAA,MAAO,EAAA,QAAkB,IAAA,CAAA,MAAA,CAAA,E;UAC3C,SAAAN,QAA+B,CAA5BO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,sBAAA,CAAA,GAAA,CAAA,C;;;SAENpG,EAAWkB,EAAA;SACXlB,EAMcqJ,GAAA;UALX,SAASX,EAAA;UACV,WAAQ;UACP,SAAKlI,GAAOuI,IAAqB,CAAA,MAAA,CAAA;;UAElC,SAAA7I,QAAgC,CAA7BO,EAAAC,EAAAJ,EAAA8F,CAAA,CAAC,CAAA,uBAAA,CAAA,GAAA,CAAA,C"}
@@ -1,7 +1,6 @@
1
1
  import e from "./AUserSystemPanel.vue_vue_type_script_setup_true_lang.js";
2
- //#region src/domains/anzuUser/components/AUserSystemPanel.vue
2
+ // src/domains/anzuUser/components/AUserSystemPanel.vue
3
3
  var t = e;
4
- //#endregion
5
4
  export { t as default };
6
5
 
7
6
  //# sourceMappingURL=AUserSystemPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AUserSystemPanel.js","names":["_sfc_main","AUserSystemPanel_vue_vue_type_script_setup_true_lang_default","AUserSystemPanel_default"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemPanel.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport AUserCreateInSystemButton from '@/domains/anzuUser/components/AUserCreateInSystemButton.vue'\nimport AUserManageButton from '@/domains/anzuUser/components/AUserManageButton.vue'\nimport AUserSystemStatusChip from '@/domains/anzuUser/components/AUserSystemStatusChip.vue'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport { useUserSystemProbe, UserSystemRefreshHookKey } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { isAuthoritativelyAbsent, UserSystemAccess, UserSystemLoad } from '@/domains/anzuUser/utils/userSystemState'\nimport type { BaseUser } from '@/shared/types/AnzuUser'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n descriptor: AnyUserSystemDescriptor\n userId: IntegerId\n /**\n * On a viewing page there is no Create. A write action on a read-only screen would be the first\n * in the fleet; Manage stays, because it only leads somewhere.\n */\n readonly?: boolean\n /** Whether the account about to be created would be switched on. */\n createEnabled?: boolean\n /** What the owning system holds, to prefill the create form. */\n source?: BaseUser | null\n creating?: boolean\n }>(),\n {\n readonly: false,\n createEnabled: false,\n source: null,\n creating: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'create', descriptor: AnyUserSystemDescriptor, user: BaseUser): void\n}>()\n\nconst { t } = useI18n()\n\n// Provided once per page rather than passed down through every row.\nconst refreshHook = inject(UserSystemRefreshHookKey, undefined)\n\n/* eslint-disable vue/no-setup-props-reactivity-loss */\nconst { axes, user, probe, cancel } = useUserSystemProbe({ descriptor: props.descriptor, refreshHook })\n/* eslint-enable vue/no-setup-props-reactivity-loss */\n\nconst label = computed(() => props.descriptor.label ?? props.descriptor.system)\n\n/**\n * The buttons are decided by the probe's answer, never by `<Acl>` -- except that the admin's descriptor\n * can say the current user may not write there (`canWrite`).\n *\n * On a cross-system surface there is no current user loaded for the other backends, so `can()`\n * would throw and `<Acl>` would silently render nothing at all. The probe is the only signal there\n * is -- which is also why its 401 handling has to be right.\n */\nconst showManage = computed(\n () =>\n axes.value.load === UserSystemLoad.Loaded &&\n user.value !== null &&\n !isUndefined(props.descriptor.manage) &&\n descriptorMayWrite(props.descriptor, 'update')\n)\nconst showCreate = computed(\n () => !props.readonly && isAuthoritativelyAbsent(axes.value) && descriptorMayWrite(props.descriptor, 'create')\n)\n\nconst manageTarget = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.manage)) return null\n return props.descriptor.manage(user.value)\n})\n\nconst extraState = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.extraState)) return null\n return props.descriptor.extraState(user.value)\n})\n\nconst EXTRA_STATE_COLOR = { ok: 'success', warn: 'warning', error: 'error' } as const\n\nconst canRetry = computed(\n () => axes.value.access === UserSystemAccess.Unavailable || axes.value.access === UserSystemAccess.Unauthenticated\n)\n\nconst run = () => probe(props.userId)\n\nonMounted(run)\n\n// The panel is mounted once and never re-created -- `VWindowItem` hides it with `v-show` -- so a\n// new id has to reach it this way.\nwatch(() => props.userId, run)\n\nonBeforeUnmount(cancel)\n\ndefineExpose({\n refresh: run,\n})\n</script>\n\n<template>\n <div\n class=\"d-flex align-center flex-wrap ga-2\"\n :data-cy=\"`user-system-panel-${descriptor.system}`\"\n >\n <div class=\"font-weight-medium\">{{ label }}</div>\n <AUserSystemStatusChip :axes=\"axes\" />\n <VChip\n v-if=\"extraState\"\n :color=\"EXTRA_STATE_COLOR[extraState.tone]\"\n label\n size=\"small\"\n >\n {{ extraState.label }}: {{ extraState.value }}\n </VChip>\n <div\n v-if=\"user\"\n class=\"text-body-small text-medium-emphasis\"\n >\n {{ user.person.fullName }} · {{ user.email }}\n </div>\n <div\n v-if=\"descriptor.enabledNote\"\n class=\"text-body-small text-medium-emphasis w-100\"\n >\n {{ descriptor.enabledNote }}\n </div>\n <VSpacer />\n <AUserManageButton\n v-if=\"showManage && manageTarget\"\n :target=\"manageTarget\"\n :system-label=\"label\"\n />\n <AUserCreateInSystemButton\n v-if=\"showCreate\"\n :system-label=\"label\"\n :create-note=\"descriptor.createNote\"\n :will-be-enabled=\"createEnabled\"\n :loading=\"creating\"\n :required-metadata=\"descriptor.requiredMetadata\"\n :user-id=\"userId\"\n :source=\"source\"\n @confirm=\"(user) => emit('create', descriptor, user)\"\n />\n <VBtn\n v-if=\"canRetry\"\n size=\"small\"\n variant=\"text\"\n data-cy=\"user-system-retry\"\n @click=\"run\"\n >\n {{ t('common.userSystem.button.retry') }}\n </VBtn>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AUserSystemPanel.js","names":["_sfc_main","AUserSystemPanel_vue_vue_type_script_setup_true_lang_default","AUserSystemPanel_default"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemPanel.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport AUserCreateInSystemButton from '@/domains/anzuUser/components/AUserCreateInSystemButton.vue'\nimport AUserManageButton from '@/domains/anzuUser/components/AUserManageButton.vue'\nimport AUserSystemStatusChip from '@/domains/anzuUser/components/AUserSystemStatusChip.vue'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport { useUserSystemProbe, UserSystemRefreshHookKey } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { isAuthoritativelyAbsent, UserSystemAccess, UserSystemLoad } from '@/domains/anzuUser/utils/userSystemState'\nimport type { BaseUser } from '@/shared/types/AnzuUser'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n descriptor: AnyUserSystemDescriptor\n userId: IntegerId\n /**\n * On a viewing page there is no Create, because no read-only screen offers a write action.\n * Manage stays because it only navigates.\n */\n readonly?: boolean\n /** Whether the account about to be created would be switched on. */\n createEnabled?: boolean\n /** What the owning system holds, to prefill the create form. */\n source?: BaseUser | null\n creating?: boolean\n }>(),\n {\n readonly: false,\n createEnabled: false,\n source: null,\n creating: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'create', descriptor: AnyUserSystemDescriptor, user: BaseUser): void\n}>()\n\nconst { t } = useI18n()\n\n// Provided once per page rather than passed down through every row.\nconst refreshHook = inject(UserSystemRefreshHookKey, undefined)\n\n/* eslint-disable vue/no-setup-props-reactivity-loss */\nconst { axes, user, probe, cancel } = useUserSystemProbe({ descriptor: props.descriptor, refreshHook })\n/* eslint-enable vue/no-setup-props-reactivity-loss */\n\nconst label = computed(() => props.descriptor.label ?? props.descriptor.system)\n\n/**\n * The buttons depend on the probe's answer, not on `<Acl>`, except that the descriptor can deny writing (`canWrite`).\n * On a cross-system surface no current user is loaded for other backends, so `can()` would throw and\n * `<Acl>` would render nothing. The probe is the only signal, so its 401 handling must be right.\n */\nconst showManage = computed(\n () =>\n axes.value.load === UserSystemLoad.Loaded &&\n user.value !== null &&\n !isUndefined(props.descriptor.manage) &&\n descriptorMayWrite(props.descriptor, 'update')\n)\nconst showCreate = computed(\n () => !props.readonly && isAuthoritativelyAbsent(axes.value) && descriptorMayWrite(props.descriptor, 'create')\n)\n\nconst manageTarget = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.manage)) return null\n return props.descriptor.manage(user.value)\n})\n\nconst extraState = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.extraState)) return null\n return props.descriptor.extraState(user.value)\n})\n\nconst EXTRA_STATE_COLOR = { ok: 'success', warn: 'warning', error: 'error' } as const\n\nconst canRetry = computed(\n () => axes.value.access === UserSystemAccess.Unavailable || axes.value.access === UserSystemAccess.Unauthenticated\n)\n\nconst run = () => probe(props.userId)\n\nonMounted(run)\n\n// The panel is never re-created because `VWindowItem` hides it\n// with `v-show`. A new id has to reach it through this watcher.\nwatch(() => props.userId, run)\n\nonBeforeUnmount(cancel)\n\ndefineExpose({\n refresh: run,\n})\n</script>\n\n<template>\n <div\n class=\"d-flex align-center flex-wrap ga-2\"\n :data-cy=\"`user-system-panel-${descriptor.system}`\"\n >\n <div class=\"font-weight-medium\">{{ label }}</div>\n <AUserSystemStatusChip :axes=\"axes\" />\n <VChip\n v-if=\"extraState\"\n :color=\"EXTRA_STATE_COLOR[extraState.tone]\"\n label\n size=\"small\"\n >\n {{ extraState.label }}: {{ extraState.value }}\n </VChip>\n <div\n v-if=\"user\"\n class=\"text-body-small text-medium-emphasis\"\n >\n {{ user.person.fullName }} · {{ user.email }}\n </div>\n <div\n v-if=\"descriptor.enabledNote\"\n class=\"text-body-small text-medium-emphasis w-100\"\n >\n {{ descriptor.enabledNote }}\n </div>\n <VSpacer />\n <AUserManageButton\n v-if=\"showManage && manageTarget\"\n :target=\"manageTarget\"\n :system-label=\"label\"\n />\n <AUserCreateInSystemButton\n v-if=\"showCreate\"\n :system-label=\"label\"\n :create-note=\"descriptor.createNote\"\n :will-be-enabled=\"createEnabled\"\n :loading=\"creating\"\n :required-metadata=\"descriptor.requiredMetadata\"\n :user-id=\"userId\"\n :source=\"source\"\n @confirm=\"(user) => emit('create', descriptor, user)\"\n />\n <VBtn\n v-if=\"canRetry\"\n size=\"small\"\n variant=\"text\"\n data-cy=\"user-system-retry\"\n @click=\"run\"\n >\n {{ t('common.userSystem.button.retry') }}\n </VBtn>\n </div>\n</template>\n"],"mappings":""}
@@ -5,8 +5,8 @@ type __VLS_Props = {
5
5
  descriptor: AnyUserSystemDescriptor;
6
6
  userId: IntegerId;
7
7
  /**
8
- * On a viewing page there is no Create. A write action on a read-only screen would be the first
9
- * in the fleet; Manage stays, because it only leads somewhere.
8
+ * On a viewing page there is no Create, because no read-only screen offers a write action.
9
+ * Manage stays because it only navigates.
10
10
  */
11
11
  readonly?: boolean;
12
12
  /** Whether the account about to be created would be switched on. */
@@ -1,16 +1,16 @@
1
- import { isUndefined as e } from "../../../shared/utils/common.js";
2
- import { descriptorMayWrite as t } from "../composables/userSystemDescriptor.js";
3
- import { UserSystemAccess as n, UserSystemLoad as r, isAuthoritativelyAbsent as i } from "../utils/userSystemState.js";
4
- import { UserSystemRefreshHookKey as a, useUserSystemProbe as o } from "../composables/userSystemProbe.js";
5
- import s from "./AUserCreateInSystemButton.js";
6
- import c from "./AUserManageButton.js";
7
- import l from "./AUserSystemStatusChip.js";
1
+ import e from "./AUserCreateInSystemButton.js";
2
+ import t from "./AUserManageButton.js";
3
+ import n from "./AUserSystemStatusChip.js";
4
+ import { descriptorMayWrite as r } from "../composables/userSystemDescriptor.js";
5
+ import { UserSystemRefreshHookKey as i, useUserSystemProbe as a } from "../composables/userSystemProbe.js";
6
+ import { UserSystemAccess as o, UserSystemLoad as s, isAuthoritativelyAbsent as c } from "../utils/userSystemState.js";
7
+ import { isUndefined as l } from "../../../shared/utils/common.js";
8
8
  import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, inject as v, onBeforeUnmount as y, onMounted as b, openBlock as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
9
9
  import { useI18n as E } from "vue-i18n";
10
10
  import { VChip as D } from "vuetify/components/VChip";
11
11
  import { VSpacer as O } from "vuetify/components/VGrid";
12
12
  import { VBtn as k } from "vuetify/components/VBtn";
13
- //#region src/domains/anzuUser/components/AUserSystemPanel.vue?vue&type=script&setup=true&lang.ts
13
+ // src/domains/anzuUser/components/AUserSystemPanel.vue?vue&type=script&setup=true&lang.ts
14
14
  var A = ["data-cy"], j = { class: "font-weight-medium" }, M = {
15
15
  key: 1,
16
16
  class: "text-body-small text-medium-emphasis"
@@ -38,20 +38,20 @@ var A = ["data-cy"], j = { class: "font-weight-medium" }, M = {
38
38
  },
39
39
  emits: ["create"],
40
40
  setup(_, { expose: P, emit: F }) {
41
- let I = _, L = F, { t: R } = E(), z = v(a, void 0), { axes: B, user: V, probe: H, cancel: U } = o({
41
+ let I = _, L = F, { t: R } = E(), z = v(i, void 0), { axes: B, user: V, probe: H, cancel: U } = a({
42
42
  descriptor: I.descriptor,
43
43
  refreshHook: z
44
- }), W = u(() => I.descriptor.label ?? I.descriptor.system), G = u(() => B.value.load === r.Loaded && V.value !== null && !e(I.descriptor.manage) && t(I.descriptor, "update")), K = u(() => !I.readonly && i(B.value) && t(I.descriptor, "create")), q = u(() => V.value === null || e(I.descriptor.manage) ? null : I.descriptor.manage(V.value)), J = u(() => V.value === null || e(I.descriptor.extraState) ? null : I.descriptor.extraState(V.value)), Y = {
44
+ }), W = u(() => I.descriptor.label ?? I.descriptor.system), G = u(() => B.value.load === s.Loaded && V.value !== null && !l(I.descriptor.manage) && r(I.descriptor, "update")), K = u(() => !I.readonly && c(B.value) && r(I.descriptor, "create")), q = u(() => V.value === null || l(I.descriptor.manage) ? null : I.descriptor.manage(V.value)), J = u(() => V.value === null || l(I.descriptor.extraState) ? null : I.descriptor.extraState(V.value)), Y = {
45
45
  ok: "success",
46
46
  warn: "warning",
47
47
  error: "error"
48
- }, X = u(() => B.value.access === n.Unavailable || B.value.access === n.Unauthenticated), Z = () => H(I.userId);
49
- return b(Z), w(() => I.userId, Z), y(U), P({ refresh: Z }), (e, t) => (x(), p("div", {
48
+ }, X = u(() => B.value.access === o.Unavailable || B.value.access === o.Unauthenticated), Z = () => H(I.userId);
49
+ return b(Z), w(() => I.userId, Z), y(U), P({ refresh: Z }), (r, i) => (x(), p("div", {
50
50
  class: "d-flex align-center flex-wrap ga-2",
51
51
  "data-cy": `user-system-panel-${_.descriptor.system}`
52
52
  }, [
53
53
  m("div", j, S(W.value), 1),
54
- g(l, { axes: C(B) }, null, 8, ["axes"]),
54
+ g(n, { axes: C(B) }, null, 8, ["axes"]),
55
55
  J.value ? (x(), d(D, {
56
56
  key: 0,
57
57
  color: Y[J.value.tone],
@@ -64,12 +64,12 @@ var A = ["data-cy"], j = { class: "font-weight-medium" }, M = {
64
64
  C(V) ? (x(), p("div", M, S(C(V).person.fullName) + " · " + S(C(V).email), 1)) : f("", !0),
65
65
  _.descriptor.enabledNote ? (x(), p("div", N, S(_.descriptor.enabledNote), 1)) : f("", !0),
66
66
  g(O),
67
- G.value && q.value ? (x(), d(c, {
67
+ G.value && q.value ? (x(), d(t, {
68
68
  key: 3,
69
69
  target: q.value,
70
70
  "system-label": W.value
71
71
  }, null, 8, ["target", "system-label"])) : f("", !0),
72
- K.value ? (x(), d(s, {
72
+ K.value ? (x(), d(e, {
73
73
  key: 4,
74
74
  "system-label": W.value,
75
75
  "create-note": _.descriptor.createNote,
@@ -78,7 +78,7 @@ var A = ["data-cy"], j = { class: "font-weight-medium" }, M = {
78
78
  "required-metadata": _.descriptor.requiredMetadata,
79
79
  "user-id": _.userId,
80
80
  source: _.source,
81
- onConfirm: t[0] ||= (e) => L("create", _.descriptor, e)
81
+ onConfirm: i[0] ||= (e) => L("create", _.descriptor, e)
82
82
  }, null, 8, [
83
83
  "system-label",
84
84
  "create-note",
@@ -101,7 +101,6 @@ var A = ["data-cy"], j = { class: "font-weight-medium" }, M = {
101
101
  ], 8, A));
102
102
  }
103
103
  });
104
- //#endregion
105
104
  export { P as default };
106
105
 
107
106
  //# sourceMappingURL=AUserSystemPanel.vue_vue_type_script_setup_true_lang.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AUserSystemPanel.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_createVNode","AUserSystemStatusChip","_unref","_createBlock","_component_VChip","_withCtx","_createTextVNode","_createCommentVNode","_component_VSpacer","AUserManageButton","AUserCreateInSystemButton","_component_VBtn","AUserCreateInSystemButton_default","AUserManageButton_default","AUserSystemStatusChip_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AUserSystemPanel_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","useI18n","refreshHook","inject","UserSystemRefreshHookKey","useUserSystemProbe","label","computed","showManage","axes","UserSystemLoad","user","isUndefined","descriptorMayWrite","showCreate","isAuthoritativelyAbsent","manageTarget","extraState","EXTRA_STATE_COLOR","canRetry","UserSystemAccess","run","probe","onMounted","watch","onBeforeUnmount","cancel","openBlock","createElementBlock","createElementVNode","toDisplayString","createVNode","unref","createBlock","VChip","withCtx","createTextVNode","createCommentVNode","VSpacer","_cache","VBtn","t"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemPanel.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport AUserCreateInSystemButton from '@/domains/anzuUser/components/AUserCreateInSystemButton.vue'\nimport AUserManageButton from '@/domains/anzuUser/components/AUserManageButton.vue'\nimport AUserSystemStatusChip from '@/domains/anzuUser/components/AUserSystemStatusChip.vue'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport { useUserSystemProbe, UserSystemRefreshHookKey } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { isAuthoritativelyAbsent, UserSystemAccess, UserSystemLoad } from '@/domains/anzuUser/utils/userSystemState'\nimport type { BaseUser } from '@/shared/types/AnzuUser'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n descriptor: AnyUserSystemDescriptor\n userId: IntegerId\n /**\n * On a viewing page there is no Create. A write action on a read-only screen would be the first\n * in the fleet; Manage stays, because it only leads somewhere.\n */\n readonly?: boolean\n /** Whether the account about to be created would be switched on. */\n createEnabled?: boolean\n /** What the owning system holds, to prefill the create form. */\n source?: BaseUser | null\n creating?: boolean\n }>(),\n {\n readonly: false,\n createEnabled: false,\n source: null,\n creating: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'create', descriptor: AnyUserSystemDescriptor, user: BaseUser): void\n}>()\n\nconst { t } = useI18n()\n\n// Provided once per page rather than passed down through every row.\nconst refreshHook = inject(UserSystemRefreshHookKey, undefined)\n\n/* eslint-disable vue/no-setup-props-reactivity-loss */\nconst { axes, user, probe, cancel } = useUserSystemProbe({ descriptor: props.descriptor, refreshHook })\n/* eslint-enable vue/no-setup-props-reactivity-loss */\n\nconst label = computed(() => props.descriptor.label ?? props.descriptor.system)\n\n/**\n * The buttons are decided by the probe's answer, never by `<Acl>` -- except that the admin's descriptor\n * can say the current user may not write there (`canWrite`).\n *\n * On a cross-system surface there is no current user loaded for the other backends, so `can()`\n * would throw and `<Acl>` would silently render nothing at all. The probe is the only signal there\n * is -- which is also why its 401 handling has to be right.\n */\nconst showManage = computed(\n () =>\n axes.value.load === UserSystemLoad.Loaded &&\n user.value !== null &&\n !isUndefined(props.descriptor.manage) &&\n descriptorMayWrite(props.descriptor, 'update')\n)\nconst showCreate = computed(\n () => !props.readonly && isAuthoritativelyAbsent(axes.value) && descriptorMayWrite(props.descriptor, 'create')\n)\n\nconst manageTarget = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.manage)) return null\n return props.descriptor.manage(user.value)\n})\n\nconst extraState = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.extraState)) return null\n return props.descriptor.extraState(user.value)\n})\n\nconst EXTRA_STATE_COLOR = { ok: 'success', warn: 'warning', error: 'error' } as const\n\nconst canRetry = computed(\n () => axes.value.access === UserSystemAccess.Unavailable || axes.value.access === UserSystemAccess.Unauthenticated\n)\n\nconst run = () => probe(props.userId)\n\nonMounted(run)\n\n// The panel is mounted once and never re-created -- `VWindowItem` hides it with `v-show` -- so a\n// new id has to reach it this way.\nwatch(() => props.userId, run)\n\nonBeforeUnmount(cancel)\n\ndefineExpose({\n refresh: run,\n})\n</script>\n\n<template>\n <div\n class=\"d-flex align-center flex-wrap ga-2\"\n :data-cy=\"`user-system-panel-${descriptor.system}`\"\n >\n <div class=\"font-weight-medium\">{{ label }}</div>\n <AUserSystemStatusChip :axes=\"axes\" />\n <VChip\n v-if=\"extraState\"\n :color=\"EXTRA_STATE_COLOR[extraState.tone]\"\n label\n size=\"small\"\n >\n {{ extraState.label }}: {{ extraState.value }}\n </VChip>\n <div\n v-if=\"user\"\n class=\"text-body-small text-medium-emphasis\"\n >\n {{ user.person.fullName }} · {{ user.email }}\n </div>\n <div\n v-if=\"descriptor.enabledNote\"\n class=\"text-body-small text-medium-emphasis w-100\"\n >\n {{ descriptor.enabledNote }}\n </div>\n <VSpacer />\n <AUserManageButton\n v-if=\"showManage && manageTarget\"\n :target=\"manageTarget\"\n :system-label=\"label\"\n />\n <AUserCreateInSystemButton\n v-if=\"showCreate\"\n :system-label=\"label\"\n :create-note=\"descriptor.createNote\"\n :will-be-enabled=\"createEnabled\"\n :loading=\"creating\"\n :required-metadata=\"descriptor.requiredMetadata\"\n :user-id=\"userId\"\n :source=\"source\"\n @confirm=\"(user) => emit('create', descriptor, user)\"\n />\n <VBtn\n v-if=\"canRetry\"\n size=\"small\"\n variant=\"text\"\n data-cy=\"user-system-retry\"\n @click=\"run\"\n >\n {{ t('common.userSystem.button.retry') }}\n </VBtn>\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AUserSystemPanel.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_createVNode","AUserSystemStatusChip","_unref","_createBlock","_component_VChip","_withCtx","_createTextVNode","_createCommentVNode","_component_VSpacer","AUserManageButton","AUserCreateInSystemButton","_component_VBtn","AUserCreateInSystemButton_default","AUserManageButton_default","AUserSystemStatusChip_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AUserSystemPanel_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","useI18n","refreshHook","inject","UserSystemRefreshHookKey","useUserSystemProbe","label","computed","showManage","axes","UserSystemLoad","user","isUndefined","descriptorMayWrite","showCreate","isAuthoritativelyAbsent","manageTarget","extraState","EXTRA_STATE_COLOR","canRetry","UserSystemAccess","run","probe","onMounted","watch","onBeforeUnmount","cancel","openBlock","createElementBlock","createElementVNode","toDisplayString","createVNode","unref","createBlock","VChip","withCtx","createTextVNode","createCommentVNode","VSpacer","_cache","VBtn","t"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemPanel.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport AUserCreateInSystemButton from '@/domains/anzuUser/components/AUserCreateInSystemButton.vue'\nimport AUserManageButton from '@/domains/anzuUser/components/AUserManageButton.vue'\nimport AUserSystemStatusChip from '@/domains/anzuUser/components/AUserSystemStatusChip.vue'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport { useUserSystemProbe, UserSystemRefreshHookKey } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { isAuthoritativelyAbsent, UserSystemAccess, UserSystemLoad } from '@/domains/anzuUser/utils/userSystemState'\nimport type { BaseUser } from '@/shared/types/AnzuUser'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n descriptor: AnyUserSystemDescriptor\n userId: IntegerId\n /**\n * On a viewing page there is no Create, because no read-only screen offers a write action.\n * Manage stays because it only navigates.\n */\n readonly?: boolean\n /** Whether the account about to be created would be switched on. */\n createEnabled?: boolean\n /** What the owning system holds, to prefill the create form. */\n source?: BaseUser | null\n creating?: boolean\n }>(),\n {\n readonly: false,\n createEnabled: false,\n source: null,\n creating: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'create', descriptor: AnyUserSystemDescriptor, user: BaseUser): void\n}>()\n\nconst { t } = useI18n()\n\n// Provided once per page rather than passed down through every row.\nconst refreshHook = inject(UserSystemRefreshHookKey, undefined)\n\n/* eslint-disable vue/no-setup-props-reactivity-loss */\nconst { axes, user, probe, cancel } = useUserSystemProbe({ descriptor: props.descriptor, refreshHook })\n/* eslint-enable vue/no-setup-props-reactivity-loss */\n\nconst label = computed(() => props.descriptor.label ?? props.descriptor.system)\n\n/**\n * The buttons depend on the probe's answer, not on `<Acl>`, except that the descriptor can deny writing (`canWrite`).\n * On a cross-system surface no current user is loaded for other backends, so `can()` would throw and\n * `<Acl>` would render nothing. The probe is the only signal, so its 401 handling must be right.\n */\nconst showManage = computed(\n () =>\n axes.value.load === UserSystemLoad.Loaded &&\n user.value !== null &&\n !isUndefined(props.descriptor.manage) &&\n descriptorMayWrite(props.descriptor, 'update')\n)\nconst showCreate = computed(\n () => !props.readonly && isAuthoritativelyAbsent(axes.value) && descriptorMayWrite(props.descriptor, 'create')\n)\n\nconst manageTarget = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.manage)) return null\n return props.descriptor.manage(user.value)\n})\n\nconst extraState = computed(() => {\n if (user.value === null || isUndefined(props.descriptor.extraState)) return null\n return props.descriptor.extraState(user.value)\n})\n\nconst EXTRA_STATE_COLOR = { ok: 'success', warn: 'warning', error: 'error' } as const\n\nconst canRetry = computed(\n () => axes.value.access === UserSystemAccess.Unavailable || axes.value.access === UserSystemAccess.Unauthenticated\n)\n\nconst run = () => probe(props.userId)\n\nonMounted(run)\n\n// The panel is never re-created because `VWindowItem` hides it\n// with `v-show`. A new id has to reach it through this watcher.\nwatch(() => props.userId, run)\n\nonBeforeUnmount(cancel)\n\ndefineExpose({\n refresh: run,\n})\n</script>\n\n<template>\n <div\n class=\"d-flex align-center flex-wrap ga-2\"\n :data-cy=\"`user-system-panel-${descriptor.system}`\"\n >\n <div class=\"font-weight-medium\">{{ label }}</div>\n <AUserSystemStatusChip :axes=\"axes\" />\n <VChip\n v-if=\"extraState\"\n :color=\"EXTRA_STATE_COLOR[extraState.tone]\"\n label\n size=\"small\"\n >\n {{ extraState.label }}: {{ extraState.value }}\n </VChip>\n <div\n v-if=\"user\"\n class=\"text-body-small text-medium-emphasis\"\n >\n {{ user.person.fullName }} · {{ user.email }}\n </div>\n <div\n v-if=\"descriptor.enabledNote\"\n class=\"text-body-small text-medium-emphasis w-100\"\n >\n {{ descriptor.enabledNote }}\n </div>\n <VSpacer />\n <AUserManageButton\n v-if=\"showManage && manageTarget\"\n :target=\"manageTarget\"\n :system-label=\"label\"\n />\n <AUserCreateInSystemButton\n v-if=\"showCreate\"\n :system-label=\"label\"\n :create-note=\"descriptor.createNote\"\n :will-be-enabled=\"createEnabled\"\n :loading=\"creating\"\n :required-metadata=\"descriptor.requiredMetadata\"\n :user-id=\"userId\"\n :source=\"source\"\n @confirm=\"(user) => emit('create', descriptor, user)\"\n />\n <VBtn\n v-if=\"canRetry\"\n size=\"small\"\n variant=\"text\"\n data-cy=\"user-system-retry\"\n @click=\"run\"\n >\n {{ t('common.userSystem.button.retry') }}\n </VBtn>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import e from "./AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js";
2
- //#region src/domains/anzuUser/components/AUserSystemStatusChip.vue
2
+ // src/domains/anzuUser/components/AUserSystemStatusChip.vue
3
3
  var t = e;
4
- //#endregion
5
4
  export { t as default };
6
5
 
7
6
  //# sourceMappingURL=AUserSystemStatusChip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AUserSystemStatusChip.js","names":["_sfc_main","AUserSystemStatusChip_vue_vue_type_script_setup_true_lang_default","AUserSystemStatusChip_default"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemStatusChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n resolveUserSystemState,\n UserSystemState,\n type UserSystemAxes,\n type UserSystemStateType,\n} from '@/domains/anzuUser/utils/userSystemState'\n\nconst props = defineProps<{\n axes: UserSystemAxes\n}>()\n\nconst { t } = useI18n()\n\nconst state = computed<UserSystemStateType>(() => resolveUserSystemState(props.axes))\n\n/**\n * One definition, one set of colours, one set of icons -- shown in the \"other systems\" table, in a\n * cross-system row, in a bulk-action row and in the log. A text chip rather than a hover tooltip:\n * a tooltip does not exist on touch, cannot be scanned down a column, and would let \"no account\n * here\" and \"no access\" look nearly the same.\n */\nconst APPEARANCE: Record<UserSystemStateType, { color: string; icon: string; muted: boolean }> = {\n [UserSystemState.Loading]: { color: 'default', icon: 'mdi-dots-horizontal', muted: true },\n [UserSystemState.Enabled]: { color: 'success', icon: 'mdi-check-circle-outline', muted: false },\n [UserSystemState.Disabled]: { color: 'warning', icon: 'mdi-alert-circle-outline', muted: false },\n [UserSystemState.Absent]: { color: 'default', icon: 'mdi-close-circle-outline', muted: false },\n [UserSystemState.Forbidden]: { color: 'default', icon: 'mdi-cancel', muted: false },\n [UserSystemState.Unavailable]: { color: 'error', icon: 'mdi-alert-outline', muted: false },\n [UserSystemState.ConfigDisabled]: { color: 'default', icon: 'mdi-cancel', muted: true },\n}\n\nconst appearance = computed(() => APPEARANCE[state.value])\n</script>\n\n<template>\n <VChip\n :color=\"appearance.color\"\n close-label=\"common.button.remove\"\n :prepend-icon=\"appearance.icon\"\n :class=\"{ 'text-disabled': appearance.muted }\"\n :data-cy=\"`user-system-state-${state}`\"\n label\n size=\"small\"\n >\n {{ t(`common.userSystem.state.${state}`) }}\n </VChip>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AUserSystemStatusChip.js","names":["_sfc_main","AUserSystemStatusChip_vue_vue_type_script_setup_true_lang_default","AUserSystemStatusChip_default"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemStatusChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n resolveUserSystemState,\n UserSystemState,\n type UserSystemAxes,\n type UserSystemStateType,\n} from '@/domains/anzuUser/utils/userSystemState'\n\nconst props = defineProps<{\n axes: UserSystemAxes\n}>()\n\nconst { t } = useI18n()\n\nconst state = computed<UserSystemStateType>(() => resolveUserSystemState(props.axes))\n\n/**\n * Shared appearance for the \"other systems\" table, cross-system rows, bulk-action rows and the log.\n * A text chip, not a tooltip: tooltips do not work on touch, cannot be scanned\n * down a column, and would make \"no account here\" and \"no access\" look alike.\n */\nconst APPEARANCE: Record<UserSystemStateType, { color: string; icon: string; muted: boolean }> = {\n [UserSystemState.Loading]: { color: 'default', icon: 'mdi-dots-horizontal', muted: true },\n [UserSystemState.Enabled]: { color: 'success', icon: 'mdi-check-circle-outline', muted: false },\n [UserSystemState.Disabled]: { color: 'warning', icon: 'mdi-alert-circle-outline', muted: false },\n [UserSystemState.Absent]: { color: 'default', icon: 'mdi-close-circle-outline', muted: false },\n [UserSystemState.Forbidden]: { color: 'default', icon: 'mdi-cancel', muted: false },\n [UserSystemState.Unavailable]: { color: 'error', icon: 'mdi-alert-outline', muted: false },\n [UserSystemState.ConfigDisabled]: { color: 'default', icon: 'mdi-cancel', muted: true },\n}\n\nconst appearance = computed(() => APPEARANCE[state.value])\n</script>\n\n<template>\n <VChip\n :color=\"appearance.color\"\n close-label=\"common.button.remove\"\n :prepend-icon=\"appearance.icon\"\n :class=\"{ 'text-disabled': appearance.muted }\"\n :data-cy=\"`user-system-state-${state}`\"\n label\n size=\"small\"\n >\n {{ t(`common.userSystem.state.${state}`) }}\n </VChip>\n</template>\n"],"mappings":""}
@@ -2,7 +2,7 @@ import { UserSystemState as e, resolveUserSystemState as t } from "../utils/user
2
2
  import { computed as n, createBlock as r, createTextVNode as i, defineComponent as a, normalizeClass as o, openBlock as s, toDisplayString as c, unref as l, withCtx as u } from "vue";
3
3
  import { useI18n as d } from "vue-i18n";
4
4
  import { VChip as f } from "vuetify/components/VChip";
5
- //#region src/domains/anzuUser/components/AUserSystemStatusChip.vue?vue&type=script&setup=true&lang.ts
5
+ // src/domains/anzuUser/components/AUserSystemStatusChip.vue?vue&type=script&setup=true&lang.ts
6
6
  var p = /*@__PURE__*/ a({
7
7
  __name: "AUserSystemStatusChip",
8
8
  props: { axes: {} },
@@ -63,7 +63,6 @@ var p = /*@__PURE__*/ a({
63
63
  ]));
64
64
  }
65
65
  });
66
- //#endregion
67
66
  export { p as default };
68
67
 
69
68
  //# sourceMappingURL=AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VChip","_normalizeClass","_withCtx","_createTextVNode","_toDisplayString","_unref","AUserSystemStatusChip_vue_vue_type_script_setup_true_lang_default","props","__props","useI18n","state","computed","resolveUserSystemState","APPEARANCE","UserSystemState","appearance","openBlock","createBlock","VChip","normalizeClass","withCtx","createTextVNode","toDisplayString","unref","t"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemStatusChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n resolveUserSystemState,\n UserSystemState,\n type UserSystemAxes,\n type UserSystemStateType,\n} from '@/domains/anzuUser/utils/userSystemState'\n\nconst props = defineProps<{\n axes: UserSystemAxes\n}>()\n\nconst { t } = useI18n()\n\nconst state = computed<UserSystemStateType>(() => resolveUserSystemState(props.axes))\n\n/**\n * One definition, one set of colours, one set of icons -- shown in the \"other systems\" table, in a\n * cross-system row, in a bulk-action row and in the log. A text chip rather than a hover tooltip:\n * a tooltip does not exist on touch, cannot be scanned down a column, and would let \"no account\n * here\" and \"no access\" look nearly the same.\n */\nconst APPEARANCE: Record<UserSystemStateType, { color: string; icon: string; muted: boolean }> = {\n [UserSystemState.Loading]: { color: 'default', icon: 'mdi-dots-horizontal', muted: true },\n [UserSystemState.Enabled]: { color: 'success', icon: 'mdi-check-circle-outline', muted: false },\n [UserSystemState.Disabled]: { color: 'warning', icon: 'mdi-alert-circle-outline', muted: false },\n [UserSystemState.Absent]: { color: 'default', icon: 'mdi-close-circle-outline', muted: false },\n [UserSystemState.Forbidden]: { color: 'default', icon: 'mdi-cancel', muted: false },\n [UserSystemState.Unavailable]: { color: 'error', icon: 'mdi-alert-outline', muted: false },\n [UserSystemState.ConfigDisabled]: { color: 'default', icon: 'mdi-cancel', muted: true },\n}\n\nconst appearance = computed(() => APPEARANCE[state.value])\n</script>\n\n<template>\n <VChip\n :color=\"appearance.color\"\n close-label=\"common.button.remove\"\n :prepend-icon=\"appearance.icon\"\n :class=\"{ 'text-disabled': appearance.muted }\"\n :data-cy=\"`user-system-state-${state}`\"\n label\n size=\"small\"\n >\n {{ t(`common.userSystem.state.${state}`) }}\n </VChip>\n</template>\n"],"mappings":";;;;;;;;;EAUA,IAAMS,IAAQC,GAIR,EAAE,SAAMC,EAAQ,GAEhBC,IAAQC,QAAoCC,EAAuBL,EAAM,IAAI,CAAC,GAQ9EM,IAA2F;IAC9FC,EAAgB,UAAU;IAAE,OAAO;IAAW,MAAM;IAAuB,OAAO;GAAK;IACvFA,EAAgB,UAAU;IAAE,OAAO;IAAW,MAAM;IAA4B,OAAO;GAAM;IAC7FA,EAAgB,WAAW;IAAE,OAAO;IAAW,MAAM;IAA4B,OAAO;GAAM;IAC9FA,EAAgB,SAAS;IAAE,OAAO;IAAW,MAAM;IAA4B,OAAO;GAAM;IAC5FA,EAAgB,YAAY;IAAE,OAAO;IAAW,MAAM;IAAc,OAAO;GAAM;IACjFA,EAAgB,cAAc;IAAE,OAAO;IAAS,MAAM;IAAqB,OAAO;GAAM;IACxFA,EAAgB,iBAAiB;IAAE,OAAO;IAAW,MAAM;IAAc,OAAO;GAAK;EACxF,GAEMC,IAAaJ,QAAeE,EAAWH,EAAM,MAAM;E,kBAIvDZ,EAAA,GAAAC,EAUQC,GAAA;GATL,OAAOe,EAAA,MAAW;GACnB,eAAY;GACX,gBAAcA,EAAA,MAAW;GACzB,OAAKd,EAAA,EAAA,iBAAqBc,EAAA,MAAW,MAAK,CAAA;GAC1C,WAAO,qBAAuBL,EAAA;GAC/B,OAAA;GACA,MAAK;;GAEL,SAAAR,QAA2C,CAAxCC,EAAAC,EAAAC,EAAAmB,CAAA,CAAC,CAAA,2BAA4Bd,EAAA,OAAK,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VChip","_normalizeClass","_withCtx","_createTextVNode","_toDisplayString","_unref","AUserSystemStatusChip_vue_vue_type_script_setup_true_lang_default","props","__props","useI18n","state","computed","resolveUserSystemState","APPEARANCE","UserSystemState","appearance","openBlock","createBlock","VChip","normalizeClass","withCtx","createTextVNode","toDisplayString","unref","t"],"sources":["../../../../src/domains/anzuUser/components/AUserSystemStatusChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n resolveUserSystemState,\n UserSystemState,\n type UserSystemAxes,\n type UserSystemStateType,\n} from '@/domains/anzuUser/utils/userSystemState'\n\nconst props = defineProps<{\n axes: UserSystemAxes\n}>()\n\nconst { t } = useI18n()\n\nconst state = computed<UserSystemStateType>(() => resolveUserSystemState(props.axes))\n\n/**\n * Shared appearance for the \"other systems\" table, cross-system rows, bulk-action rows and the log.\n * A text chip, not a tooltip: tooltips do not work on touch, cannot be scanned\n * down a column, and would make \"no account here\" and \"no access\" look alike.\n */\nconst APPEARANCE: Record<UserSystemStateType, { color: string; icon: string; muted: boolean }> = {\n [UserSystemState.Loading]: { color: 'default', icon: 'mdi-dots-horizontal', muted: true },\n [UserSystemState.Enabled]: { color: 'success', icon: 'mdi-check-circle-outline', muted: false },\n [UserSystemState.Disabled]: { color: 'warning', icon: 'mdi-alert-circle-outline', muted: false },\n [UserSystemState.Absent]: { color: 'default', icon: 'mdi-close-circle-outline', muted: false },\n [UserSystemState.Forbidden]: { color: 'default', icon: 'mdi-cancel', muted: false },\n [UserSystemState.Unavailable]: { color: 'error', icon: 'mdi-alert-outline', muted: false },\n [UserSystemState.ConfigDisabled]: { color: 'default', icon: 'mdi-cancel', muted: true },\n}\n\nconst appearance = computed(() => APPEARANCE[state.value])\n</script>\n\n<template>\n <VChip\n :color=\"appearance.color\"\n close-label=\"common.button.remove\"\n :prepend-icon=\"appearance.icon\"\n :class=\"{ 'text-disabled': appearance.muted }\"\n :data-cy=\"`user-system-state-${state}`\"\n label\n size=\"small\"\n >\n {{ t(`common.userSystem.state.${state}`) }}\n </VChip>\n</template>\n"],"mappings":";;;;;;;;;EAUA,IAAMS,IAAQC,GAIR,EAAE,SAAMC,EAAQ,GAEhBC,IAAQC,QAAoCC,EAAuBL,EAAM,IAAI,CAAC,GAO9EM,IAA2F;IAC9FC,EAAgB,UAAU;IAAE,OAAO;IAAW,MAAM;IAAuB,OAAO;GAAK;IACvFA,EAAgB,UAAU;IAAE,OAAO;IAAW,MAAM;IAA4B,OAAO;GAAM;IAC7FA,EAAgB,WAAW;IAAE,OAAO;IAAW,MAAM;IAA4B,OAAO;GAAM;IAC9FA,EAAgB,SAAS;IAAE,OAAO;IAAW,MAAM;IAA4B,OAAO;GAAM;IAC5FA,EAAgB,YAAY;IAAE,OAAO;IAAW,MAAM;IAAc,OAAO;GAAM;IACjFA,EAAgB,cAAc;IAAE,OAAO;IAAS,MAAM;IAAqB,OAAO;GAAM;IACxFA,EAAgB,iBAAiB;IAAE,OAAO;IAAW,MAAM;IAAc,OAAO;GAAK;EACxF,GAEMC,IAAaJ,QAAeE,EAAWH,EAAM,MAAM;E,kBAIvDZ,EAAA,GAAAC,EAUQC,GAAA;GATL,OAAOe,EAAA,MAAW;GACnB,eAAY;GACX,gBAAcA,EAAA,MAAW;GACzB,OAAKd,EAAA,EAAA,iBAAqBc,EAAA,MAAW,MAAK,CAAA;GAC1C,WAAO,qBAAuBL,EAAA;GAC/B,OAAA;GACA,MAAK;;GAEL,SAAAR,QAA2C,CAAxCC,EAAAC,EAAAC,EAAAmB,CAAA,CAAC,CAAA,2BAA4Bd,EAAA,OAAK,CAAA,GAAA,CAAA,C"}
@@ -1,7 +1,6 @@
1
1
  import e from "./AUserTabsShell.vue_vue_type_script_setup_true_lang.js";
2
- //#region src/domains/anzuUser/components/AUserTabsShell.vue
2
+ // src/domains/anzuUser/components/AUserTabsShell.vue
3
3
  var t = e;
4
- //#endregion
5
4
  export { t as default };
6
5
 
7
6
  //# sourceMappingURL=AUserTabsShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AUserTabsShell.js","names":["_sfc_main","AUserTabsShell_vue_vue_type_script_setup_true_lang_default","AUserTabsShell_default"],"sources":["../../../../src/domains/anzuUser/components/AUserTabsShell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, onMounted, provide, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useAnzuUserFactory } from '@/domains/anzuUser/factory/AnzuUserFactory'\nimport { cloneDeep, isNull, isUndefined } from '@/shared/utils/common'\nimport { BulkOutcome } from '@/domains/anzuUser/store/userCrossSystemStore'\nimport { useUserCrossSystemWrites } from '@/domains/anzuUser/composables/userCrossSystemWrites'\nimport AUnsavedConfirmDialog from '@/domains/unsavedGuard/components/AUnsavedConfirmDialog.vue'\nimport { useUnsavedChangesGuard } from '@/domains/unsavedGuard/composables/useUnsavedChangesGuard'\nimport AUserOtherSystemsTable from '@/domains/anzuUser/components/AUserOtherSystemsTable.vue'\nimport AUserSystemPanel from '@/domains/anzuUser/components/AUserSystemPanel.vue'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport type { AnzuUser, BaseUser } from '@/shared/types/AnzuUser'\nimport type { IntegerId } from '@/shared/types/common'\nimport { UserSystemRefreshHookKey, type UserSystemRefreshHook } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { OTHER_SYSTEMS_TAB } from '@/domains/anzuUser/utils/userTabs'\n\nconst props = withDefaults(\n defineProps<{\n userId: IntegerId\n /** Which tab carries the owning form, i.e. gets the slot. */\n owner: string\n /**\n * The tabs, in the order they are drawn, plus \"other systems\" appended by this component.\n *\n * A prop and not something derived from the descriptor array, because the list depends on the\n * route rather than on what the admin owns: admin-inhouse owns four systems and has two tabs,\n * since the system is part of the path.\n */\n ownedTabs: string[]\n /** Every system this admin can reach. The \"other systems\" tab lists the ones not in a tab. */\n descriptors: AnyUserSystemDescriptor[]\n /**\n * \"After a 401, refresh once and try again.\"\n *\n * The library cannot decide this for itself: the mechanism exists only in the apps, and each\n * one does it differently -- inhouse `refreshSession`, cms and contentHub their own\n * `refresh-token` call. Without it an expired token renders as \"no account in this system\",\n * which is the one confusion decision 16 forbids. Every panel this shell draws gets it.\n */\n refreshHook?: UserSystemRefreshHook | undefined\n readonly?: boolean\n /**\n * Whether the owning form holds edits that have not been saved.\n *\n * It drives two things. The dot on the owning tab, so the operator can see it from the other\n * tabs -- the Save button itself is visible everywhere, by decision, because a button that\n * disappeared would read as \"this is read-only\". And the guard below, which is the only thing\n * standing between unsaved work and the button in a panel that leaves the page: switching a tab\n * is not navigation, so nothing else ever asks.\n */\n unsavedChanges?: boolean\n /** Query key for the deep link. */\n tabQueryKey?: string\n }>(),\n {\n refreshHook: undefined,\n readonly: false,\n unsavedChanges: false,\n tabQueryKey: 'tab',\n }\n)\n\nconst emit = defineEmits<{\n /** After an account was created in another system, so a page can react if it wants to. */\n (e: 'created', descriptor: AnyUserSystemDescriptor): void\n}>()\n\nconst activeTab = defineModel<string>('activeTab', { required: false, default: '' })\n\nconst { t } = useI18n()\nconst route = useRoute()\nconst router = useRouter()\n\nconst bySystem = computed(() => new Map(props.descriptors.map((item) => [item.system, item])))\n\nconst tabs = computed(() => [...props.ownedTabs, OTHER_SYSTEMS_TAB])\n\nconst otherDescriptors = computed(() => props.descriptors.filter((item) => !props.ownedTabs.includes(item.system)))\n\nconst labelFor = (system: string) => bySystem.value.get(system)?.label ?? system\n\nconst isValidTab = (value: unknown): value is string => typeof value === 'string' && tabs.value.includes(value)\n\nonMounted(() => {\n const fromUrl = route.query[props.tabQueryKey]\n // An unknown tab -- a system dropped out of the configuration since the link was sent -- is\n // ignored without a word and the owning tab opens. An error here would help nobody.\n activeTab.value = isValidTab(fromUrl) ? fromUrl : props.owner\n})\n\nwatch(activeTab, (value) => {\n if (!isValidTab(value)) return\n // `replace`, not `push`: with `push` the back button would walk through the tabs instead of\n // leaving the page.\n void router.replace({ query: { ...route.query, [props.tabQueryKey]: value } })\n})\n\n/**\n * Registered here rather than in the page, because this is the component the leaving happens from:\n * an internal \"manage in X\" is a router link inside a panel, and `onBeforeRouteLeave` has to be\n * bound somewhere inside the route. An external one opens a new tab and leaves this page standing,\n * so it needs no guard at all.\n */\nconst unsavedSource = computed(() => props.unsavedChanges)\nconst { hasUnsavedChanges, dirtyLabels, promptOpen, resolvePrompt } = useUnsavedChangesGuard({\n sources: [unsavedSource],\n})\n\nconst otherSystems = ref<InstanceType<typeof AUserOtherSystemsTable> | null>(null)\nconst ownedPanels = ref<InstanceType<typeof AUserSystemPanel>[]>([])\n\n/**\n * Creating this person's account in another system.\n *\n * Handled here rather than by the page, because the panel that offers it is here and the whole\n * operation is the library's: read the owning system's record, copy the metadata, post it. The\n * page would only be passing it through.\n */\nconst writes = useUserCrossSystemWrites()\nconst { createAnzuUser } = useAnzuUserFactory()\nconst { showError, showRecordWas } = useAlerts()\n\n// Only when there is one: the panel's own `inject` default is `undefined`, and providing that\n// explicitly would say \"there is a hook\" to anything that merely checks for the key.\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nif (!isUndefined(props.refreshHook)) provide(UserSystemRefreshHookKey, props.refreshHook)\n\nconst ownerDescriptor = computed(() => bySystem.value.get(props.owner))\n/**\n * The owning system's record as the server holds it, not as the form does.\n *\n * Read when the panels are, so the owning tab costs nothing, and read again before each POST: a\n * switch flipped in the form and not saved must not be copied into another system, where in blog\n * and forum it would mean a working public account. That is the whole point of the fix commit this\n * rule comes from.\n */\nconst sourceUser = ref<AnzuUser | null>(null)\nconst creatingSystem = ref<string | null>(null)\n\nconst loadSource = async () => {\n const descriptor = ownerDescriptor.value\n if (isUndefined(descriptor)) return\n sourceUser.value = await writes.readSourceUser(descriptor, props.userId)\n}\n\n/** Copying a person into another system copies whether they are switched on. Roles stay empty. */\nconst createEnabled = computed(() => sourceUser.value?.enabled === true)\n\nconst onCreate = async (descriptor: AnyUserSystemDescriptor, metadata: BaseUser) => {\n const owner = ownerDescriptor.value\n if (isUndefined(owner)) return\n creatingSystem.value = descriptor.system\n try {\n const source = await writes.readSourceUser(owner, props.userId)\n if (isNull(source)) {\n showError(t('common.userSystem.create.sourceUnreadable', { system: labelFor(owner.system) }))\n return\n }\n // The dialog has already promised one of two sentences -- created ready to use, or created\n // switched off -- from the copy read when the panels were. If the server no longer says that,\n // the promise was wrong, and in blog and forum the difference is a working public account. The\n // commonest way to get here is that first read having failed, which leaves `sourceUser` null\n // and the dialog saying \"disabled\" about an account that is on. Nothing is written until the\n // corrected row has been confirmed again.\n if (source.enabled !== createEnabled.value) {\n sourceUser.value = source\n showError(t('common.userSystem.create.sourceChanged'))\n return\n }\n // The create right may have gone while the source was read; nothing is offered then, so nothing is said.\n if (!descriptorMayWrite(descriptor, 'create')) return\n // From the library factory, never assembled by hand: a body of base fields alone would have the\n // backend fill in `ROLE_USER`, leaving an account with a role nobody granted.\n //\n // The metadata is the dialog's, not the source's: the form was validated against the target's\n // profile and the operator may have filled in what the source leaves empty -- blog fills\n // `person` for nobody, and a system that requires it would get a record its own form refuses\n // to save. The id and `enabled` still come from the fresh read.\n const body = createAnzuUser(descriptor.system)\n body.id = source.id\n body.email = metadata.email\n body.person = cloneDeep(metadata.person)\n body.avatar = cloneDeep(metadata.avatar)\n body.enabled = source.enabled\n const result = await writes.createInSystem(descriptor, body)\n if (result.outcome !== BulkOutcome.Done) {\n // Silence here read as success: the row was re-probed, still said \"absent\", and nothing\n // explained why. The per-admin pages this replaces reported every write.\n showError(labelFor(descriptor.system) + ': ' + t('common.userSystem.bulk.outcome.' + result.outcome))\n return\n }\n showRecordWas('created')\n emit('created', descriptor)\n otherSystems.value?.refreshSystem(descriptor.system)\n ownedPanels.value.forEach((panel) => panel?.refresh())\n } finally {\n creatingSystem.value = null\n }\n}\n\n/**\n * Called by the page after the owning form saved.\n *\n * `VWindowItem` takes only `hasContent` from `useLazy` and hides the panel with `v-show`, so once a\n * panel is mounted it is never unmounted and never re-fetches on its own. Without this the panel\n * would keep showing what it read before the save -- and the create-in-another-system action,\n * which reads from it, would copy that stale snapshot.\n *\n * Deliberately not a refetch on every tab activation: that would turn cheap tab switching into\n * eight calls each time, which is the cost the pseudo-tab was dropped to avoid.\n */\nconst refresh = () => {\n void loadSource()\n otherSystems.value?.refresh()\n ownedPanels.value.forEach((panel) => panel?.refresh())\n}\n\n// Read alongside the panels, on the first activation of a tab that is not the owning one -- so the\n// owning tab still costs no foreign call at all.\nwatch(\n activeTab,\n (value) => {\n // `isValidTab` first: before the mount hook settles it, the model is an empty string, and\n // treating that as \"not the owning tab\" would fetch on the owning tab too -- the one call this\n // whole lazy arrangement exists to avoid.\n if (!isValidTab(value) || value === props.owner) return\n if (isNull(sourceUser.value)) void loadSource()\n },\n { immediate: true }\n)\n\ndefineExpose({ refresh })\n</script>\n\n<template>\n <div>\n <!--\n No tab navigates. Every one of them redraws the content, and what leaves the page is the\n Manage button inside a panel -- which is an anchor. `VTab` renders `role=\"tab\"` and could not\n carry a navigation semantically.\n -->\n <VTabs\n v-model=\"activeTab\"\n data-cy=\"user-tabs\"\n >\n <VTab\n v-for=\"tab in tabs\"\n :key=\"tab\"\n :value=\"tab\"\n :data-cy=\"`user-tab-${tab}`\"\n >\n {{ tab === OTHER_SYSTEMS_TAB ? t('common.userSystem.tab.otherSystems') : labelFor(tab) }}\n <!-- The owning tab says it holds unsaved work; the Save button itself is always visible. -->\n <VIcon\n v-if=\"tab === owner && hasUnsavedChanges\"\n class=\"ml-1\"\n size=\"x-small\"\n color=\"warning\"\n icon=\"mdi-circle\"\n data-cy=\"user-tab-unsaved\"\n />\n </VTab>\n </VTabs>\n <VWindow\n v-model=\"activeTab\"\n class=\"mt-4\"\n >\n <VWindowItem\n v-for=\"tab in ownedTabs\"\n :key=\"tab\"\n :value=\"tab\"\n >\n <!-- The owning system of the current route: the full form. -->\n <slot v-if=\"tab === owner\" />\n <!--\n Another system this admin owns, but whose route is not open: a probe with a summary and a\n Manage button, exactly like any other system. No tab takes the operator anywhere.\n -->\n <AUserSystemPanel\n v-else-if=\"!isUndefined(bySystem.get(tab))\"\n ref=\"ownedPanels\"\n :descriptor=\"bySystem.get(tab)!\"\n :user-id=\"userId\"\n :readonly=\"readonly\"\n :create-enabled=\"createEnabled\"\n :source=\"sourceUser\"\n :creating=\"creatingSystem === tab\"\n @create=\"onCreate\"\n />\n </VWindowItem>\n <VWindowItem :value=\"OTHER_SYSTEMS_TAB\">\n <!--\n Lazy by construction: `VWindowItem` renders its content on first activation, so opening a\n user costs no foreign calls at all.\n -->\n <AUserOtherSystemsTable\n ref=\"otherSystems\"\n :descriptors=\"otherDescriptors\"\n :user-id=\"userId\"\n :readonly=\"readonly\"\n :create-enabled=\"createEnabled\"\n :source=\"sourceUser\"\n :creating-system=\"creatingSystem\"\n @create=\"onCreate\"\n />\n </VWindowItem>\n </VWindow>\n <AUnsavedConfirmDialog\n v-model=\"promptOpen\"\n :dirty-labels=\"dirtyLabels\"\n @resolve=\"resolvePrompt\"\n />\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AUserTabsShell.js","names":["_sfc_main","AUserTabsShell_vue_vue_type_script_setup_true_lang_default","AUserTabsShell_default"],"sources":["../../../../src/domains/anzuUser/components/AUserTabsShell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, onMounted, provide, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useAnzuUserFactory } from '@/domains/anzuUser/factory/AnzuUserFactory'\nimport { cloneDeep, isNull, isUndefined } from '@/shared/utils/common'\nimport { BulkOutcome } from '@/domains/anzuUser/store/userCrossSystemStore'\nimport { useUserCrossSystemWrites } from '@/domains/anzuUser/composables/userCrossSystemWrites'\nimport AUnsavedConfirmDialog from '@/domains/unsavedGuard/components/AUnsavedConfirmDialog.vue'\nimport { useUnsavedChangesGuard } from '@/domains/unsavedGuard/composables/useUnsavedChangesGuard'\nimport AUserOtherSystemsTable from '@/domains/anzuUser/components/AUserOtherSystemsTable.vue'\nimport AUserSystemPanel from '@/domains/anzuUser/components/AUserSystemPanel.vue'\nimport { type AnyUserSystemDescriptor, descriptorMayWrite } from '@/domains/anzuUser/composables/userSystemDescriptor'\nimport type { AnzuUser, BaseUser } from '@/shared/types/AnzuUser'\nimport type { IntegerId } from '@/shared/types/common'\nimport { UserSystemRefreshHookKey, type UserSystemRefreshHook } from '@/domains/anzuUser/composables/userSystemProbe'\nimport { OTHER_SYSTEMS_TAB } from '@/domains/anzuUser/utils/userTabs'\n\nconst props = withDefaults(\n defineProps<{\n userId: IntegerId\n /** Which tab carries the owning form, i.e. gets the slot. */\n owner: string\n /**\n * The tabs in draw order. This component appends \"other systems\".\n * A prop, not derived from descriptors, because it depends on the route. admin-inhouse\n * owns four systems but has two tabs, since the system is part of the path.\n */\n ownedTabs: string[]\n /** Every system this admin can reach. The \"other systems\" tab lists the ones not in a tab. */\n descriptors: AnyUserSystemDescriptor[]\n /**\n * After a 401, refresh once and retry.\n * Each app refreshes differently (inhouse `refreshSession`, cms and contentHub a\n * `refresh-token` call), so the library cannot do it. Without it an expired token shows as \"no\n * account in this system\", which decision 16 forbids. Every panel in this shell receives it.\n */\n refreshHook?: UserSystemRefreshHook | undefined\n readonly?: boolean\n /**\n * Whether the owning form has unsaved edits.\n * It drives the dot on the owning tab. The Save button stays visible\n * everywhere, because a hidden button would read as read-only.\n * It also drives the leave guard. Switching tabs is not navigation,\n * so nothing else asks before a panel button leaves the page.\n */\n unsavedChanges?: boolean\n tabQueryKey?: string\n }>(),\n {\n refreshHook: undefined,\n readonly: false,\n unsavedChanges: false,\n tabQueryKey: 'tab',\n }\n)\n\nconst emit = defineEmits<{\n /** After an account was created in another system, so a page can react if it wants to. */\n (e: 'created', descriptor: AnyUserSystemDescriptor): void\n}>()\n\nconst activeTab = defineModel<string>('activeTab', { required: false, default: '' })\n\nconst { t } = useI18n()\nconst route = useRoute()\nconst router = useRouter()\n\nconst bySystem = computed(() => new Map(props.descriptors.map((item) => [item.system, item])))\n\nconst tabs = computed(() => [...props.ownedTabs, OTHER_SYSTEMS_TAB])\n\nconst otherDescriptors = computed(() => props.descriptors.filter((item) => !props.ownedTabs.includes(item.system)))\n\nconst labelFor = (system: string) => bySystem.value.get(system)?.label ?? system\n\nconst isValidTab = (value: unknown): value is string => typeof value === 'string' && tabs.value.includes(value)\n\nonMounted(() => {\n const fromUrl = route.query[props.tabQueryKey]\n // An unknown tab, for example a system removed from the configuration\n // since the link was sent, is ignored silently and the owning tab opens.\n activeTab.value = isValidTab(fromUrl) ? fromUrl : props.owner\n})\n\nwatch(activeTab, (value) => {\n if (!isValidTab(value)) return\n // `replace`, not `push`: with `push` the back button would walk through the tabs instead of\n // leaving the page.\n void router.replace({ query: { ...route.query, [props.tabQueryKey]: value } })\n})\n\n/**\n * Registered here, not in the page, because an internal \"manage in X\" link inside a\n * panel leaves from here and `onBeforeRouteLeave` must be bound inside the route.\n * An external link opens a new tab and needs no guard.\n */\nconst unsavedSource = computed(() => props.unsavedChanges)\nconst { hasUnsavedChanges, dirtyLabels, promptOpen, resolvePrompt } = useUnsavedChangesGuard({\n sources: [unsavedSource],\n})\n\nconst otherSystems = ref<InstanceType<typeof AUserOtherSystemsTable> | null>(null)\nconst ownedPanels = ref<InstanceType<typeof AUserSystemPanel>[]>([])\n\n/**\n * Creating this person's account in another system.\n * Handled here because the panel offering it lives here and the\n * operation belongs to the library. The page would only pass it through.\n */\nconst writes = useUserCrossSystemWrites()\nconst { createAnzuUser } = useAnzuUserFactory()\nconst { showError, showRecordWas } = useAlerts()\n\n// Provide only when present. Providing `undefined` explicitly would signal a hook to code that only checks for the key.\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nif (!isUndefined(props.refreshHook)) provide(UserSystemRefreshHookKey, props.refreshHook)\n\nconst ownerDescriptor = computed(() => bySystem.value.get(props.owner))\n/**\n * The owning system's record as the server holds it, not as the form does.\n * Read together with the panels, so the owning tab costs nothing, and read again before each POST. An unsaved\n * switch in the form must not be copied, because in blog and forum it would mean a working public account.\n */\nconst sourceUser = ref<AnzuUser | null>(null)\nconst creatingSystem = ref<string | null>(null)\n\nconst loadSource = async () => {\n const descriptor = ownerDescriptor.value\n if (isUndefined(descriptor)) return\n sourceUser.value = await writes.readSourceUser(descriptor, props.userId)\n}\n\n/** Copying a person into another system copies whether they are switched on. Roles stay empty. */\nconst createEnabled = computed(() => sourceUser.value?.enabled === true)\n\nconst onCreate = async (descriptor: AnyUserSystemDescriptor, metadata: BaseUser) => {\n const owner = ownerDescriptor.value\n if (isUndefined(owner)) return\n creatingSystem.value = descriptor.system\n try {\n const source = await writes.readSourceUser(owner, props.userId)\n if (isNull(source)) {\n showError(t('common.userSystem.create.sourceUnreadable', { system: labelFor(owner.system) }))\n return\n }\n // The dialog already promised \"created ready to use\" or \"created switched off\" from the earlier read. If the\n // server now disagrees, the promise was wrong, and in blog and forum that means a working public account.\n // Usually the first read failed, leaving `sourceUser` null and the dialog saying \"disabled\"\n // for an enabled account. Nothing is written until the corrected row is confirmed again.\n if (source.enabled !== createEnabled.value) {\n sourceUser.value = source\n showError(t('common.userSystem.create.sourceChanged'))\n return\n }\n // The create right may have been lost while the source was read. Nothing is offered then, so nothing is reported.\n if (!descriptorMayWrite(descriptor, 'create')) return\n // Built by the library factory, never by hand. A body of base fields\n // alone makes the backend add `ROLE_USER`, a role nobody granted.\n // Metadata comes from the dialog, validated against the target's profile. The source may leave fields empty\n // (blog never fills `person`) that the target requires. The id and `enabled` come from the fresh read.\n const body = createAnzuUser(descriptor.system)\n body.id = source.id\n body.email = metadata.email\n body.person = cloneDeep(metadata.person)\n body.avatar = cloneDeep(metadata.avatar)\n body.enabled = source.enabled\n const result = await writes.createInSystem(descriptor, body)\n if (result.outcome !== BulkOutcome.Done) {\n // Without this message the failure looked like success: the\n // re-probed row still said \"absent\" with no explanation.\n showError(labelFor(descriptor.system) + ': ' + t('common.userSystem.bulk.outcome.' + result.outcome))\n return\n }\n showRecordWas('created')\n emit('created', descriptor)\n otherSystems.value?.refreshSystem(descriptor.system)\n ownedPanels.value.forEach((panel) => panel?.refresh())\n } finally {\n creatingSystem.value = null\n }\n}\n\n/**\n * Called by the page after the owning form saved.\n * `VWindowItem` hides panels with `v-show`, so a mounted panel never re-fetches by itself. Without\n * this it shows pre-save data, and create-in-another-system would copy that stale snapshot.\n * Not a refetch on every tab activation: that would cost eight calls per tab switch.\n */\nconst refresh = () => {\n void loadSource()\n otherSystems.value?.refresh()\n ownedPanels.value.forEach((panel) => panel?.refresh())\n}\n\n// Read on the first activation of a non-owning tab, so the owning tab makes no foreign call.\nwatch(\n activeTab,\n (value) => {\n // `isValidTab` first: before mount settles, the model is an empty string.\n // Treating it as a non-owning tab would fetch on the owning tab too.\n if (!isValidTab(value) || value === props.owner) return\n if (isNull(sourceUser.value)) void loadSource()\n },\n { immediate: true }\n)\n\ndefineExpose({ refresh })\n</script>\n\n<template>\n <div>\n <!--\n No tab navigates. Tabs only switch content, and leaving the page is done by the Manage\n anchor inside a panel. `VTab` renders `role=\"tab\"` and cannot carry navigation semantically.\n -->\n <VTabs\n v-model=\"activeTab\"\n data-cy=\"user-tabs\"\n >\n <VTab\n v-for=\"tab in tabs\"\n :key=\"tab\"\n :value=\"tab\"\n :data-cy=\"`user-tab-${tab}`\"\n >\n {{ tab === OTHER_SYSTEMS_TAB ? t('common.userSystem.tab.otherSystems') : labelFor(tab) }}\n <!-- The owning tab says it holds unsaved work; the Save button itself is always visible. -->\n <VIcon\n v-if=\"tab === owner && hasUnsavedChanges\"\n class=\"ml-1\"\n size=\"x-small\"\n color=\"warning\"\n icon=\"mdi-circle\"\n data-cy=\"user-tab-unsaved\"\n />\n </VTab>\n </VTabs>\n <VWindow\n v-model=\"activeTab\"\n class=\"mt-4\"\n >\n <VWindowItem\n v-for=\"tab in ownedTabs\"\n :key=\"tab\"\n :value=\"tab\"\n >\n <!-- The owning system of the current route: the full form. -->\n <slot v-if=\"tab === owner\" />\n <!--\n Another system this admin owns whose route is not open: a probe\n with a summary and a Manage button, like any other system.\n -->\n <AUserSystemPanel\n v-else-if=\"!isUndefined(bySystem.get(tab))\"\n ref=\"ownedPanels\"\n :descriptor=\"bySystem.get(tab)!\"\n :user-id=\"userId\"\n :readonly=\"readonly\"\n :create-enabled=\"createEnabled\"\n :source=\"sourceUser\"\n :creating=\"creatingSystem === tab\"\n @create=\"onCreate\"\n />\n </VWindowItem>\n <VWindowItem :value=\"OTHER_SYSTEMS_TAB\">\n <!-- `VWindowItem` renders content on first activation, so opening a user makes no foreign calls. -->\n <AUserOtherSystemsTable\n ref=\"otherSystems\"\n :descriptors=\"otherDescriptors\"\n :user-id=\"userId\"\n :readonly=\"readonly\"\n :create-enabled=\"createEnabled\"\n :source=\"sourceUser\"\n :creating-system=\"creatingSystem\"\n @create=\"onCreate\"\n />\n </VWindowItem>\n </VWindow>\n <AUnsavedConfirmDialog\n v-model=\"promptOpen\"\n :dirty-labels=\"dirtyLabels\"\n @resolve=\"resolvePrompt\"\n />\n </div>\n</template>\n"],"mappings":""}