@anzusystems/common-admin 2.0.0-rc.4 → 2.0.0-rc.6

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 (680) hide show
  1. package/README.md +1 -1
  2. package/dist/AnzuSystemsCommonAdmin.d.ts +42 -32
  3. package/dist/AnzuSystemsCommonAdmin.js.map +1 -1
  4. package/dist/common-admin.css +1 -1
  5. package/dist/common-admin.js +282 -282
  6. package/dist/domains/anzuUser/api/anzuUserApi.d.ts +9 -12
  7. package/dist/domains/anzuUser/api/anzuUserApi.js.map +1 -1
  8. package/dist/domains/anzuUser/components/AAnzuUserDatatable.js.map +1 -1
  9. package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue.d.ts +38 -44
  10. package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  11. package/dist/domains/anzuUser/components/AAnzuUserFilter.js.map +1 -1
  12. package/dist/domains/anzuUser/components/AAnzuUserFilter.vue.d.ts +12 -13
  13. package/dist/domains/anzuUser/components/AAnzuUserFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  14. package/dist/domains/anzuUser/components/AAnzuUserForm.js.map +1 -1
  15. package/dist/domains/anzuUser/components/AAnzuUserForm.vue.d.ts +18 -20
  16. package/dist/domains/anzuUser/components/AAnzuUserForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  17. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.js.map +1 -1
  18. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/domains/anzuUser/components/AUserBulkActionDialog.js.map +1 -1
  20. package/dist/domains/anzuUser/components/AUserBulkActionDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  21. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.js.map +1 -1
  22. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue.d.ts +2 -3
  23. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.js.map +1 -1
  25. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue.d.ts +9 -15
  26. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  27. package/dist/domains/anzuUser/components/AUserEnabledSwitch.js.map +1 -1
  28. package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue.d.ts +8 -7
  29. package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/domains/anzuUser/components/AUserManageButton.js.map +1 -1
  31. package/dist/domains/anzuUser/components/AUserManageButton.vue.d.ts +0 -1
  32. package/dist/domains/anzuUser/components/AUserManageButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/domains/anzuUser/components/AUserMetadataForm.js.map +1 -1
  34. package/dist/domains/anzuUser/components/AUserMetadataForm.vue.d.ts +8 -9
  35. package/dist/domains/anzuUser/components/AUserMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  36. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.js.map +1 -1
  37. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  38. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.js.map +1 -1
  39. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.vue.d.ts +1 -2
  40. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  41. package/dist/domains/anzuUser/components/AUserSystemOverview.js.map +1 -1
  42. package/dist/domains/anzuUser/components/AUserSystemOverview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  43. package/dist/domains/anzuUser/components/AUserSystemPanel.js.map +1 -1
  44. package/dist/domains/anzuUser/components/AUserSystemPanel.vue.d.ts +2 -2
  45. package/dist/domains/anzuUser/components/AUserSystemPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  46. package/dist/domains/anzuUser/components/AUserSystemStatusChip.js.map +1 -1
  47. package/dist/domains/anzuUser/components/AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/domains/anzuUser/components/AUserTabsShell.js.map +1 -1
  49. package/dist/domains/anzuUser/components/AUserTabsShell.vue.d.ts +17 -22
  50. package/dist/domains/anzuUser/components/AUserTabsShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  51. package/dist/domains/anzuUser/composables/anzuUserActions.d.ts +5 -9
  52. package/dist/domains/anzuUser/composables/anzuUserActions.js.map +1 -1
  53. package/dist/domains/anzuUser/composables/anzuUserValidations.d.ts +4 -6
  54. package/dist/domains/anzuUser/composables/anzuUserValidations.js.map +1 -1
  55. package/dist/domains/anzuUser/composables/cachedAnzuUsers.d.ts +3 -3
  56. package/dist/domains/anzuUser/composables/cachedAnzuUsers.js.map +1 -1
  57. package/dist/domains/anzuUser/composables/userCrossSystemSearch.d.ts +2 -4
  58. package/dist/domains/anzuUser/composables/userCrossSystemSearch.js.map +1 -1
  59. package/dist/domains/anzuUser/composables/userCrossSystemWrites.d.ts +5 -11
  60. package/dist/domains/anzuUser/composables/userCrossSystemWrites.js.map +1 -1
  61. package/dist/domains/anzuUser/composables/userSystemDescriptor.d.ts +33 -57
  62. package/dist/domains/anzuUser/composables/userSystemDescriptor.js.map +1 -1
  63. package/dist/domains/anzuUser/composables/userSystemProbe.d.ts +7 -27
  64. package/dist/domains/anzuUser/composables/userSystemProbe.js.map +1 -1
  65. package/dist/domains/anzuUser/filter/anzuUserFilter.d.ts +6 -16
  66. package/dist/domains/anzuUser/filter/anzuUserFilter.js.map +1 -1
  67. package/dist/domains/anzuUser/store/anzuUserStore.d.ts +1 -5
  68. package/dist/domains/anzuUser/store/anzuUserStore.js.map +1 -1
  69. package/dist/domains/anzuUser/store/userCrossSystemStore.d.ts +3 -14
  70. package/dist/domains/anzuUser/store/userCrossSystemStore.js.map +1 -1
  71. package/dist/domains/anzuUser/utils/userMetadataDiff.d.ts +7 -19
  72. package/dist/domains/anzuUser/utils/userMetadataDiff.js.map +1 -1
  73. package/dist/domains/anzuUser/utils/userSystemState.d.ts +12 -30
  74. package/dist/domains/anzuUser/utils/userSystemState.js.map +1 -1
  75. package/dist/domains/anzuUser/utils/userTabs.d.ts +1 -3
  76. package/dist/domains/anzuUser/utils/userTabs.js.map +1 -1
  77. package/dist/domains/api/composables/defineApiClient.d.ts +4 -8
  78. package/dist/domains/api/composables/defineApiClient.js.map +1 -1
  79. package/dist/domains/api/composables/request.d.ts +18 -48
  80. package/dist/domains/api/composables/request.js.map +1 -1
  81. package/dist/domains/api/composables/useApiFetchByIds.d.ts +7 -21
  82. package/dist/domains/api/composables/useApiFetchByIds.js.map +1 -1
  83. package/dist/domains/api/composables/useApiFetchItems.d.ts +18 -57
  84. package/dist/domains/api/composables/useApiFetchItems.js.map +1 -1
  85. package/dist/domains/api/composables/useApiFetchList.d.ts +7 -23
  86. package/dist/domains/api/composables/useApiFetchList.js.map +1 -1
  87. package/dist/domains/api/composables/useApiFetchListBatch.d.ts +5 -22
  88. package/dist/domains/api/composables/useApiFetchListBatch.js.map +1 -1
  89. package/dist/domains/api/composables/useApiQueryBuilder.js.map +1 -1
  90. package/dist/domains/api/composables/useApiRequest.d.ts +16 -39
  91. package/dist/domains/api/composables/useApiRequest.js.map +1 -1
  92. package/dist/domains/api/utils/apiErrors.d.ts +28 -55
  93. package/dist/domains/api/utils/apiErrors.js.map +1 -1
  94. package/dist/domains/api/utils/listBody.d.ts +22 -43
  95. package/dist/domains/api/utils/listBody.js.map +1 -1
  96. package/dist/domains/auth/components/Acl.js.map +1 -1
  97. package/dist/domains/auth/components/Acl.vue_vue_type_script_setup_true_lang.js.map +1 -1
  98. package/dist/domains/auth/composables/aclAllowed.d.ts +2 -3
  99. package/dist/domains/auth/composables/aclAllowed.js.map +1 -1
  100. package/dist/domains/auth/composables/defineAuth.js.map +1 -1
  101. package/dist/domains/auth/composables/refreshSession.d.ts +10 -13
  102. package/dist/domains/auth/composables/refreshSession.js.map +1 -1
  103. package/dist/domains/cached/components/ACachedChip.js.map +1 -1
  104. package/dist/domains/cached/components/ACachedChip.vue.d.ts +13 -11
  105. package/dist/domains/cached/components/ACachedChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  106. package/dist/domains/cached/components/ACachedUserChip.js +1 -1
  107. package/dist/domains/cached/components/ACachedUserChip.js.map +1 -1
  108. package/dist/domains/cached/components/ACachedUserChip.vue.d.ts +3 -3
  109. package/dist/domains/cached/components/ACachedUserChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  110. package/dist/domains/cached/composables/createUserAndTimeTrackingFields.d.ts +9 -9
  111. package/dist/domains/cached/composables/createUserAndTimeTrackingFields.js.map +1 -1
  112. package/dist/domains/cached/composables/defineCached.d.ts +13 -11
  113. package/dist/domains/cached/composables/defineCached.js.map +1 -1
  114. package/dist/domains/cached/composables/useCachedItem.d.ts +7 -8
  115. package/dist/domains/cached/composables/useCachedItem.js.map +1 -1
  116. package/dist/domains/collab/components/ACollabLockedByUser.js.map +1 -1
  117. package/dist/domains/collab/components/ACollabLockedByUser.vue_vue_type_script_setup_true_lang.js.map +1 -1
  118. package/dist/domains/collab/composables/collabAnyDataChange.js.map +1 -1
  119. package/dist/domains/collab/composables/collabField.d.ts +5 -3
  120. package/dist/domains/collab/composables/collabField.js.map +1 -1
  121. package/dist/domains/collab/composables/collabInit.js +58 -54
  122. package/dist/domains/collab/composables/collabInit.js.map +1 -1
  123. package/dist/domains/collab/composables/collabRecovery.d.ts +49 -0
  124. package/dist/domains/collab/composables/collabRecovery.js +99 -0
  125. package/dist/domains/collab/composables/collabRecovery.js.map +1 -0
  126. package/dist/domains/collab/composables/collabRoom.js +106 -106
  127. package/dist/domains/collab/composables/collabRoom.js.map +1 -1
  128. package/dist/domains/collab/composables/collabState.d.ts +11 -4
  129. package/dist/domains/collab/composables/collabState.js +34 -25
  130. package/dist/domains/collab/composables/collabState.js.map +1 -1
  131. package/dist/domains/collab/composables/commonAdminCollabOptions.d.ts +4 -2
  132. package/dist/domains/collab/types/Collab.d.ts +31 -5
  133. package/dist/domains/collab/types/Collab.js +23 -11
  134. package/dist/domains/collab/types/Collab.js.map +1 -1
  135. package/dist/domains/customDataForm/components/ACustomDataForm.js.map +1 -1
  136. package/dist/domains/customDataForm/components/ACustomDataForm.vue.d.ts +7 -5
  137. package/dist/domains/customDataForm/components/ACustomDataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  138. package/dist/domains/customDataForm/components/ACustomDataFormElement.js.map +1 -1
  139. package/dist/domains/customDataForm/components/ACustomDataFormElement.vue_vue_type_script_setup_true_lang.js.map +1 -1
  140. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.js.map +1 -1
  141. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.vue.d.ts +5 -3
  142. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  143. package/dist/domains/customDataForm/composables/useCustomDataForm.js.map +1 -1
  144. package/dist/domains/customDataForm/types/CustomDataForm.d.ts +4 -1
  145. package/dist/domains/dam/api/damAssetApi.d.ts +7 -7
  146. package/dist/domains/dam/api/damAssetApi.js.map +1 -1
  147. package/dist/domains/dam/api/damAssetLicenceApi.d.ts +1 -1
  148. package/dist/domains/dam/api/damAssetLicenceApi.js.map +1 -1
  149. package/dist/domains/dam/api/damConstants.js.map +1 -1
  150. package/dist/domains/dam/api/damEndPoints.js.map +1 -1
  151. package/dist/domains/dam/api/damImageApi.js.map +1 -1
  152. package/dist/domains/dam/api/uploadApi.js.map +1 -1
  153. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.js.map +1 -1
  154. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue.d.ts +7 -5
  155. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  156. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.js.map +1 -1
  157. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  158. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.js.map +1 -1
  159. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue.d.ts +1 -1
  160. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  161. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue.d.ts +5 -3
  162. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.js.map +1 -1
  163. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  164. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.js.map +1 -1
  165. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  166. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.js.map +1 -1
  167. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.js.map +1 -1
  169. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue.d.ts +1 -1
  170. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  171. package/dist/domains/dam/assetDetail/components/AssetImage.js.map +1 -1
  172. package/dist/domains/dam/assetDetail/components/AssetImage.vue.d.ts +1 -1
  173. package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  174. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.js.map +1 -1
  175. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue.d.ts +2 -2
  176. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js.map +1 -1
  177. package/dist/domains/dam/assetDetail/components/AssetInfobox.js.map +1 -1
  178. package/dist/domains/dam/assetDetail/components/AssetInfobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  179. package/dist/domains/dam/assetDetail/components/AssetMetadata.js.map +1 -1
  180. package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  181. package/dist/domains/dam/assetDetail/composables/assetDetailExtSystem.d.ts +5 -6
  182. package/dist/domains/dam/assetDetail/composables/assetDetailExtSystem.js.map +1 -1
  183. package/dist/domains/dam/assetDetail/composables/assetDetailView.d.ts +10 -10
  184. package/dist/domains/dam/assetDetail/composables/assetDetailView.js.map +1 -1
  185. package/dist/domains/dam/assetDetail/store/assetDetailStore.js.map +1 -1
  186. package/dist/domains/dam/assetDetail/utils/assetMetadataMayStillChange.d.ts +4 -3
  187. package/dist/domains/dam/assetDetail/utils/assetMetadataMayStillChange.js.map +1 -1
  188. package/dist/domains/dam/assetSelect/api/damPodcastApi.js.map +1 -1
  189. package/dist/domains/dam/assetSelect/components/AAssetListInner.js.map +1 -1
  190. package/dist/domains/dam/assetSelect/components/AAssetListInner.vue.d.ts +789 -787
  191. package/dist/domains/dam/assetSelect/components/AAssetListInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  192. package/dist/domains/dam/assetSelect/components/AAssetSelect.js.map +1 -1
  193. package/dist/domains/dam/assetSelect/components/AAssetSelect.vue.d.ts +395 -393
  194. package/dist/domains/dam/assetSelect/components/AAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  195. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.js.map +1 -1
  196. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue.d.ts +14 -12
  197. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.js.map +1 -1
  199. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  200. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.js.map +1 -1
  201. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue.d.ts +9 -7
  202. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  203. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.js.map +1 -1
  204. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  205. package/dist/domains/dam/assetSelect/composables/assetSelectListActions.js.map +1 -1
  206. package/dist/domains/dam/assetSelect/store/assetSelectStore.js.map +1 -1
  207. package/dist/domains/dam/author/api/authorApi.js.map +1 -1
  208. package/dist/domains/dam/author/components/AuthorCreateButton.js.map +1 -1
  209. package/dist/domains/dam/author/components/AuthorCreateButton.vue.d.ts +1 -1
  210. package/dist/domains/dam/author/components/AuthorCreateButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  211. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.js.map +1 -1
  212. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue.d.ts +9 -6
  213. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  214. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.js.map +1 -1
  215. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.vue_vue_type_script_setup_true_lang.js.map +1 -1
  216. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js +1 -1
  217. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js.map +1 -1
  218. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue.d.ts +2 -2
  219. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  220. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.js.map +1 -1
  221. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue.d.ts +1 -1
  222. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  223. package/dist/domains/dam/author/composables/cachedAuthors.d.ts +5 -4
  224. package/dist/domains/dam/author/composables/cachedAuthors.js.map +1 -1
  225. package/dist/domains/dam/author/composables/cachedUsers.d.ts +5 -4
  226. package/dist/domains/dam/author/composables/cachedUsers.js.map +1 -1
  227. package/dist/domains/dam/author/composables/damAuthorConfig.d.ts +2 -2
  228. package/dist/domains/dam/author/composables/damAuthorConfig.js.map +1 -1
  229. package/dist/domains/dam/components/DamAdminAssetLink.js.map +1 -1
  230. package/dist/domains/dam/components/DamAdminAssetLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  231. package/dist/domains/dam/composables/commonAdminCoreDamOptions.d.ts +10 -8
  232. package/dist/domains/dam/composables/commonAdminCoreDamOptions.js.map +1 -1
  233. package/dist/domains/dam/composables/damConfigName.d.ts +8 -9
  234. package/dist/domains/dam/composables/damConfigName.js.map +1 -1
  235. package/dist/domains/dam/composables/damNotifications.d.ts +9 -9
  236. package/dist/domains/dam/composables/damNotifications.js.map +1 -1
  237. package/dist/domains/dam/composables/damNotificationsConnection.d.ts +4 -4
  238. package/dist/domains/dam/composables/damNotificationsConnection.js.map +1 -1
  239. package/dist/domains/dam/composables/damNotificationsEventBus.d.ts +2 -2
  240. package/dist/domains/dam/composables/damNotificationsEventBus.js.map +1 -1
  241. package/dist/domains/dam/composables/extSystemIdForCached.d.ts +5 -4
  242. package/dist/domains/dam/composables/extSystemIdForCached.js.map +1 -1
  243. package/dist/domains/dam/config/api/damAssetCustomFormApi.js.map +1 -1
  244. package/dist/domains/dam/config/api/damConfigApi.js.map +1 -1
  245. package/dist/domains/dam/config/composables/damConfigState.d.ts +5 -5
  246. package/dist/domains/dam/config/composables/damConfigState.js.map +1 -1
  247. package/dist/domains/dam/config/store/damConfigStore.d.ts +5 -4
  248. package/dist/domains/dam/config/store/damConfigStore.js.map +1 -1
  249. package/dist/domains/dam/config/utils/damFilterUserAllowedUploadConfigs.d.ts +3 -1
  250. package/dist/domains/dam/config/utils/damFilterUserAllowedUploadConfigs.js.map +1 -1
  251. package/dist/domains/dam/cropper/components/ACropper.js.map +1 -1
  252. package/dist/domains/dam/cropper/components/ACropper.vue.d.ts +8 -16
  253. package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  254. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.js.map +1 -1
  255. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  256. package/dist/domains/dam/cropper/store/imageRoiStore.d.ts +9 -12
  257. package/dist/domains/dam/cropper/store/imageRoiStore.js.map +1 -1
  258. package/dist/domains/dam/cropper/utils/cropperGeometry.d.ts +24 -38
  259. package/dist/domains/dam/cropper/utils/cropperGeometry.js.map +1 -1
  260. package/dist/domains/dam/cropper/utils/cropperJsService.d.ts +3 -7
  261. package/dist/domains/dam/cropper/utils/cropperJsService.js +10 -3
  262. package/dist/domains/dam/cropper/utils/cropperJsService.js.map +1 -1
  263. package/dist/domains/dam/cropper/utils/cropperTypes.d.ts +3 -6
  264. package/dist/domains/dam/cropper/utils/damAssetImageRoiSelectLoader.d.ts +5 -5
  265. package/dist/domains/dam/cropper/utils/damAssetImageRoiSelectLoader.js.map +1 -1
  266. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.js.map +1 -1
  267. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  268. package/dist/domains/dam/imageWidget/components/AImagePublicInput.js.map +1 -1
  269. package/dist/domains/dam/imageWidget/components/AImagePublicInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  270. package/dist/domains/dam/imageWidget/components/AImageWidget.js.map +1 -1
  271. package/dist/domains/dam/imageWidget/components/AImageWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  272. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.js.map +1 -1
  273. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  274. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.vue.d.ts +43 -41
  275. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.vue.d.ts +31 -29
  276. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.js.map +1 -1
  277. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue.d.ts +29 -27
  278. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  279. package/dist/domains/dam/imageWidget/components/ImageMassOperations.js.map +1 -1
  280. package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue.d.ts +1 -1
  281. package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  282. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.js.map +1 -1
  283. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue.d.ts +68 -66
  284. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  285. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.js.map +1 -1
  286. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue.d.ts +402 -400
  287. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  288. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.js.map +1 -1
  289. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue.d.ts +384 -382
  290. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  291. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.js.map +1 -1
  292. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  293. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.js.map +1 -1
  294. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  295. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.vue.d.ts +7 -5
  296. package/dist/domains/dam/imageWidget/composables/commonAdminImageOptions.js.map +1 -1
  297. package/dist/domains/dam/imageWidget/composables/imageApiCms.js.map +1 -1
  298. package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.d.ts +11 -13
  299. package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.js.map +1 -1
  300. package/dist/domains/dam/imageWidget/composables/useImageMassOperations.js.map +1 -1
  301. package/dist/domains/dam/imageWidget/store/imageMediaWidgetStore.js.map +1 -1
  302. package/dist/domains/dam/imageWidget/store/imageStore.js.map +1 -1
  303. package/dist/domains/dam/imageWidget/utils/damImage.d.ts +5 -6
  304. package/dist/domains/dam/imageWidget/utils/damImage.js.map +1 -1
  305. package/dist/domains/dam/imageWidget/utils/fieldLockTurns.d.ts +1 -2
  306. package/dist/domains/dam/imageWidget/utils/fieldLockTurns.js.map +1 -1
  307. package/dist/domains/dam/imageWidget/utils/imageSaves.d.ts +10 -14
  308. package/dist/domains/dam/imageWidget/utils/imageSaves.js.map +1 -1
  309. package/dist/domains/dam/imageWidget/utils/metadataToImageMap.js.map +1 -1
  310. package/dist/domains/dam/imageWidget/utils/waitLimit.d.ts +4 -6
  311. package/dist/domains/dam/imageWidget/utils/waitLimit.js.map +1 -1
  312. package/dist/domains/dam/keyword/api/keywordApi.js.map +1 -1
  313. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.js.map +1 -1
  314. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.vue.d.ts +1 -1
  315. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  316. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.js.map +1 -1
  317. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue.d.ts +8 -5
  318. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  319. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js +1 -1
  320. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js.map +1 -1
  321. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue.d.ts +2 -2
  322. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  323. package/dist/domains/dam/keyword/composables/cachedKeywords.d.ts +5 -4
  324. package/dist/domains/dam/keyword/composables/cachedKeywords.js.map +1 -1
  325. package/dist/domains/dam/keyword/composables/damKeywordConfig.d.ts +2 -2
  326. package/dist/domains/dam/keyword/composables/damKeywordConfig.js.map +1 -1
  327. package/dist/domains/dam/types/Asset.d.ts +1 -1
  328. package/dist/domains/dam/types/Asset.js.map +1 -1
  329. package/dist/domains/dam/types/UploadQueue.d.ts +5 -4
  330. package/dist/domains/dam/types/UploadQueue.js.map +1 -1
  331. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.js.map +1 -1
  332. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  333. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.js.map +1 -1
  334. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue.d.ts +2 -2
  335. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  336. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.js.map +1 -1
  337. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  338. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.js.map +1 -1
  339. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  340. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.js.map +1 -1
  341. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.vue.d.ts +6 -4
  342. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  343. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.js.map +1 -1
  344. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue.d.ts +1 -1
  345. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  346. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.js.map +1 -1
  347. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  348. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.js.map +1 -1
  349. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue.d.ts +6 -6
  350. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  351. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.js.map +1 -1
  352. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue.d.ts +13 -13
  353. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  354. package/dist/domains/dam/uploadQueue/components/uploadQueueBindings.d.ts +13 -13
  355. package/dist/domains/dam/uploadQueue/components/uploadQueueBindings.js.map +1 -1
  356. package/dist/domains/dam/uploadQueue/composables/damUploadChunkSize.d.ts +2 -2
  357. package/dist/domains/dam/uploadQueue/composables/damUploadChunkSize.js.map +1 -1
  358. package/dist/domains/dam/uploadQueue/composables/uploadMeter.d.ts +12 -12
  359. package/dist/domains/dam/uploadQueue/composables/uploadMeter.js.map +1 -1
  360. package/dist/domains/dam/uploadQueue/composables/uploadQueueItemRefresh.d.ts +5 -5
  361. package/dist/domains/dam/uploadQueue/composables/uploadQueueItemRefresh.js.map +1 -1
  362. package/dist/domains/dam/uploadQueue/composables/uploadService.d.ts +2 -3
  363. package/dist/domains/dam/uploadQueue/composables/uploadService.js.map +1 -1
  364. package/dist/domains/dam/uploadQueue/composables/useUploadQueueDialog.d.ts +5 -4
  365. package/dist/domains/dam/uploadQueue/composables/useUploadQueueDialog.js.map +1 -1
  366. package/dist/domains/dam/uploadQueue/core/uploadQueueCore.d.ts +3 -2
  367. package/dist/domains/dam/uploadQueue/core/uploadQueueCore.js.map +1 -1
  368. package/dist/domains/dam/uploadQueue/core/uploadQueueCoreTypes.d.ts +8 -5
  369. package/dist/domains/dam/uploadQueue/core/uploadQueueCoreTypes.js.map +1 -1
  370. package/dist/domains/dam/uploadQueue/core/uploadQueueFill.d.ts +3 -3
  371. package/dist/domains/dam/uploadQueue/core/uploadQueueFill.js.map +1 -1
  372. package/dist/domains/dam/uploadQueue/presets/queuePresets.d.ts +8 -5
  373. package/dist/domains/dam/uploadQueue/presets/queuePresets.js.map +1 -1
  374. package/dist/domains/dam/uploadQueue/presets/uploadPresets.d.ts +15 -13
  375. package/dist/domains/dam/uploadQueue/presets/uploadPresets.js.map +1 -1
  376. package/dist/domains/dam/uploadQueue/settlement/uploadPollSchedule.d.ts +7 -7
  377. package/dist/domains/dam/uploadQueue/settlement/uploadPollSchedule.js.map +1 -1
  378. package/dist/domains/dam/uploadQueue/settlement/uploadPoller.d.ts +4 -4
  379. package/dist/domains/dam/uploadQueue/settlement/uploadPoller.js.map +1 -1
  380. package/dist/domains/dam/uploadQueue/settlement/uploadSettle.d.ts +28 -30
  381. package/dist/domains/dam/uploadQueue/settlement/uploadSettle.js.map +1 -1
  382. package/dist/domains/dam/uploadQueue/settlement/uploadSettlement.d.ts +2 -2
  383. package/dist/domains/dam/uploadQueue/settlement/uploadSettlement.js.map +1 -1
  384. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementRuntime.d.ts +2 -2
  385. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementRuntime.js.map +1 -1
  386. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementTypes.d.ts +63 -73
  387. package/dist/domains/dam/uploadQueue/settlement/uploadSettlementTypes.js.map +1 -1
  388. package/dist/domains/dam/uploadQueue/store/uploadQueuesStore.d.ts +8 -9
  389. package/dist/domains/dam/uploadQueue/store/uploadQueuesStore.js.map +1 -1
  390. package/dist/domains/dam/user/api/userApi.d.ts +2 -2
  391. package/dist/domains/dam/user/api/userApi.js.map +1 -1
  392. package/dist/domains/dam/user/components/DamDistributionServiceSelect.js.map +1 -1
  393. package/dist/domains/dam/user/components/DamDistributionServiceSelect.vue.d.ts +1 -1
  394. package/dist/domains/dam/user/components/DamDistributionServiceSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  395. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.js.map +1 -1
  396. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.vue.d.ts +1 -1
  397. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  398. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.js.map +1 -1
  399. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.vue.d.ts +1 -1
  400. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  401. package/dist/domains/dam/user/composables/damUserSelectActions.d.ts +1 -1
  402. package/dist/domains/dam/user/composables/damUserSelectActions.js.map +1 -1
  403. package/dist/domains/dam/user/types/DamDistributionServiceType.d.ts +2 -2
  404. package/dist/domains/dam/user/types/DamDistributionServiceType.js.map +1 -1
  405. package/dist/domains/dam/user/types/DamExternalProviderAssetType.d.ts +1 -1
  406. package/dist/domains/dam/user/types/DamExternalProviderAssetType.js.map +1 -1
  407. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.js.map +1 -1
  408. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  409. package/dist/domains/filters/bookmarks/store/bookmarksStore.d.ts +3 -3
  410. package/dist/domains/filters/bookmarks/store/bookmarksStore.js.map +1 -1
  411. package/dist/domains/filters/components/AFilterDatetimePicker.js.map +1 -1
  412. package/dist/domains/filters/components/AFilterDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  413. package/dist/domains/filters/components/AFilterInteger.js.map +1 -1
  414. package/dist/domains/filters/components/AFilterInteger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  415. package/dist/domains/filters/components/AFilterString.js.map +1 -1
  416. package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js.map +1 -1
  417. package/dist/domains/filters/components/AFilterTimeInterval.js +1 -1
  418. package/dist/domains/filters/components/AFilterTimeInterval.js.map +1 -1
  419. package/dist/domains/filters/components/AFilterTimeInterval.vue.d.ts +5 -3
  420. package/dist/domains/filters/components/AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js.map +1 -1
  421. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.js.map +1 -1
  422. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  423. package/dist/domains/filters/components/AFilterWrapper.vue.d.ts +17 -15
  424. package/dist/domains/filters/components/AFilterWrapperSidebar.vue.d.ts +5 -3
  425. package/dist/domains/filters/components/FiltersSelected.js.map +1 -1
  426. package/dist/domains/filters/components/FiltersSelected.vue_vue_type_script_setup_true_lang.js.map +1 -1
  427. package/dist/domains/filters/composables/filterFactory.d.ts +16 -26
  428. package/dist/domains/filters/composables/filterFactory.js +38 -31
  429. package/dist/domains/filters/composables/filterFactory.js.map +1 -1
  430. package/dist/domains/filters/datatable/components/ADatatableOrdering.js.map +1 -1
  431. package/dist/domains/filters/datatable/components/ADatatableOrdering.vue_vue_type_script_setup_true_lang.js +3 -1
  432. package/dist/domains/filters/datatable/components/ADatatableOrdering.vue_vue_type_script_setup_true_lang.js.map +1 -1
  433. package/dist/domains/filters/datatable/components/ADatatablePagination.js.map +1 -1
  434. package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js +2 -4
  435. package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  436. package/dist/domains/filters/utils/filterInjectionKeys.js.map +1 -1
  437. package/dist/domains/form/components/AFormDatetimePicker.js.map +1 -1
  438. package/dist/domains/form/components/AFormDatetimePicker.vue.d.ts +7 -5
  439. package/dist/domains/form/components/AFormDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  440. package/dist/domains/form/components/AFormFlagDatetimePicker.js.map +1 -1
  441. package/dist/domains/form/components/AFormFlagDatetimePicker.vue.d.ts +7 -5
  442. package/dist/domains/form/components/AFormFlagDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  443. package/dist/domains/form/components/AFormSwitch.vue.d.ts +7 -5
  444. package/dist/domains/form/components/AFormTextField.js.map +1 -1
  445. package/dist/domains/form/components/AFormTextField.vue.d.ts +9 -7
  446. package/dist/domains/form/components/AFormTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  447. package/dist/domains/form/components/AFormTextarea.vue.d.ts +13 -11
  448. package/dist/domains/form/components/AFormValueObjectOptionsSelect.vue.d.ts +7 -5
  449. package/dist/domains/form/components/ASystemEntityScope.vue.d.ts +5 -3
  450. package/dist/domains/job/api/jobApi.js.map +1 -1
  451. package/dist/domains/job/components/AJobDetailCommon.vue.d.ts +5 -3
  452. package/dist/domains/listEditor/components/AListEditor.js.map +1 -1
  453. package/dist/domains/listEditor/components/AListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  454. package/dist/domains/listEditor/components/ANestedSortableListEditor.js.map +1 -1
  455. package/dist/domains/listEditor/components/ANestedSortableListEditor.vue.d.ts +2 -3
  456. package/dist/domains/listEditor/components/ANestedSortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  457. package/dist/domains/listEditor/components/ASortableListEditor.js.map +1 -1
  458. package/dist/domains/listEditor/components/ASortableListEditor.vue.d.ts +2 -3
  459. package/dist/domains/listEditor/components/ASortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  460. package/dist/domains/listEditor/composables/useListEditorController.d.ts +4 -5
  461. package/dist/domains/listEditor/composables/useListEditorController.js.map +1 -1
  462. package/dist/domains/listEditor/composables/useNestedListEditor.d.ts +3 -4
  463. package/dist/domains/listEditor/composables/useNestedListEditor.js.map +1 -1
  464. package/dist/domains/listEditor/composables/useNestedListEditorController.d.ts +5 -4
  465. package/dist/domains/listEditor/composables/useNestedListEditorController.js.map +1 -1
  466. package/dist/domains/listEditor/composables/useReorderMode.js.map +1 -1
  467. package/dist/domains/listEditor/types/listEditorTypes.d.ts +2 -2
  468. package/dist/domains/listEditor/utils/listEditorLoader.d.ts +5 -5
  469. package/dist/domains/listEditor/utils/listEditorLoader.js.map +1 -1
  470. package/dist/domains/listEditor/utils/resolveCompactText.js.map +1 -1
  471. package/dist/domains/log/api/logApi.d.ts +2 -3
  472. package/dist/domains/log/api/logApi.js.map +1 -1
  473. package/dist/domains/log/components/ALogDatatable.js.map +1 -1
  474. package/dist/domains/log/components/ALogDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  475. package/dist/domains/log/components/ALogDetailView.js.map +1 -1
  476. package/dist/domains/log/components/ALogDetailView.vue.d.ts +1 -1
  477. package/dist/domains/log/components/ALogDetailView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  478. package/dist/domains/log/components/ALogFilter.js.map +1 -1
  479. package/dist/domains/log/components/ALogFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  480. package/dist/domains/log/components/ALogListView.js.map +1 -1
  481. package/dist/domains/log/components/ALogListView.vue.d.ts +1 -1
  482. package/dist/domains/log/components/ALogListView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  483. package/dist/domains/log/composables/logActions.d.ts +4 -5
  484. package/dist/domains/log/composables/logActions.js.map +1 -1
  485. package/dist/domains/log/composables/logType.d.ts +6 -7
  486. package/dist/domains/log/composables/logType.js.map +1 -1
  487. package/dist/domains/log/filter/logFilter.d.ts +8 -11
  488. package/dist/domains/log/filter/logFilter.js.map +1 -1
  489. package/dist/domains/permission/components/APermissionEditor.js.map +1 -1
  490. package/dist/domains/permission/components/APermissionEditor.vue.d.ts +4 -4
  491. package/dist/domains/permission/components/APermissionEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  492. package/dist/domains/permission/composables/permissionActions.d.ts +3 -6
  493. package/dist/domains/permission/composables/permissionActions.js.map +1 -1
  494. package/dist/domains/permission/config/api/permissionConfigApi.d.ts +2 -2
  495. package/dist/domains/permission/config/api/permissionConfigApi.js.map +1 -1
  496. package/dist/domains/permission/config/composables/permissionConfigActions.d.ts +3 -7
  497. package/dist/domains/permission/config/composables/permissionConfigActions.js.map +1 -1
  498. package/dist/domains/permission/config/store/permissionConfigStore.d.ts +2 -4
  499. package/dist/domains/permission/config/store/permissionConfigStore.js.map +1 -1
  500. package/dist/domains/permission/group/api/permissionGroupApi.d.ts +8 -10
  501. package/dist/domains/permission/group/api/permissionGroupApi.js.map +1 -1
  502. package/dist/domains/permission/group/components/APermissionGroupDatatable.js.map +1 -1
  503. package/dist/domains/permission/group/components/APermissionGroupDatatable.vue.d.ts +12 -10
  504. package/dist/domains/permission/group/components/APermissionGroupDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  505. package/dist/domains/permission/group/components/APermissionGroupDetail.js.map +1 -1
  506. package/dist/domains/permission/group/components/APermissionGroupDetail.vue.d.ts +21 -22
  507. package/dist/domains/permission/group/components/APermissionGroupDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
  508. package/dist/domains/permission/group/components/APermissionGroupManage.js.map +1 -1
  509. package/dist/domains/permission/group/components/APermissionGroupManage.vue.d.ts +21 -22
  510. package/dist/domains/permission/group/components/APermissionGroupManage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  511. package/dist/domains/permission/group/composables/cachedPermissionGroups.js.map +1 -1
  512. package/dist/domains/permission/group/composables/permissionGroupActions.d.ts +6 -8
  513. package/dist/domains/permission/group/composables/permissionGroupActions.js.map +1 -1
  514. package/dist/domains/permission/group/composables/permissionGroupValidations.d.ts +2 -3
  515. package/dist/domains/permission/group/composables/permissionGroupValidations.js.map +1 -1
  516. package/dist/domains/permission/group/filter/permissionGroupFilter.d.ts +2 -3
  517. package/dist/domains/permission/group/filter/permissionGroupFilter.js.map +1 -1
  518. package/dist/domains/permission/group/store/permissionGroupStore.d.ts +3 -6
  519. package/dist/domains/permission/group/store/permissionGroupStore.js.map +1 -1
  520. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.js.map +1 -1
  521. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  522. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.js.map +1 -1
  523. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.vue_vue_type_script_setup_true_lang.js.map +1 -1
  524. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.js.map +1 -1
  525. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  526. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue.d.ts +5 -3
  527. package/dist/domains/remoteAutocomplete/composables/createRemoteAutocomplete.d.ts +11 -13
  528. package/dist/domains/remoteAutocomplete/composables/createRemoteAutocomplete.js.map +1 -1
  529. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.vue.d.ts +13 -11
  530. package/dist/domains/subjectSelect/components/ASubjectSelect.js.map +1 -1
  531. package/dist/domains/subjectSelect/components/ASubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  532. package/dist/domains/subjectSelect/composables/useSubjectSelect.js +53 -51
  533. package/dist/domains/subjectSelect/composables/useSubjectSelect.js.map +1 -1
  534. package/dist/domains/system/appShell/components/AActionbar.vue.d.ts +7 -5
  535. package/dist/domains/system/appShell/components/ALayoutSwitch.js.map +1 -1
  536. package/dist/domains/system/appShell/components/ALayoutSwitch.vue.d.ts +7 -5
  537. package/dist/domains/system/appShell/components/ALayoutSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  538. package/dist/domains/system/appShell/composables/teleportSlot.d.ts +0 -1
  539. package/dist/domains/system/appShell/composables/teleportSlot.js.map +1 -1
  540. package/dist/domains/system/components/AAlerts.js.map +1 -1
  541. package/dist/domains/system/components/AAlerts.vue_vue_type_script_setup_true_lang.js.map +1 -1
  542. package/dist/domains/system/composables/alerts.js.map +1 -1
  543. package/dist/domains/system/composables/breadcrumbs.d.ts +3 -3
  544. package/dist/domains/system/composables/breadcrumbs.js.map +1 -1
  545. package/dist/domains/system/composables/languageSettings.js.map +1 -1
  546. package/dist/domains/system/composables/loginStatus.js.map +1 -1
  547. package/dist/domains/system/composables/navigationError.d.ts +6 -8
  548. package/dist/domains/system/composables/navigationError.js.map +1 -1
  549. package/dist/domains/system/composables/pageNavigation.d.ts +9 -10
  550. package/dist/domains/system/composables/pageNavigation.js.map +1 -1
  551. package/dist/domains/system/composables/recordActions.d.ts +14 -22
  552. package/dist/domains/system/composables/recordActions.js.map +1 -1
  553. package/dist/domains/system/composables/recordPage.d.ts +23 -38
  554. package/dist/domains/system/composables/recordPage.js.map +1 -1
  555. package/dist/domains/system/composables/routeHistory.d.ts +4 -5
  556. package/dist/domains/system/composables/routeHistory.js.map +1 -1
  557. package/dist/domains/system/composables/sentry.js.map +1 -1
  558. package/dist/domains/system/composables/useDebugFeatures.d.ts +3 -6
  559. package/dist/domains/system/composables/useDebugFeatures.js.map +1 -1
  560. package/dist/domains/system/store/datatablePageStore.d.ts +8 -1
  561. package/dist/domains/system/store/datatablePageStore.js +10 -3
  562. package/dist/domains/system/store/datatablePageStore.js.map +1 -1
  563. package/dist/domains/system/systemBar/components/ASystemBar.js.map +1 -1
  564. package/dist/domains/system/systemBar/components/ASystemBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  565. package/dist/domains/system/systemBar/utils/appReload.d.ts +5 -5
  566. package/dist/domains/system/systemBar/utils/appReload.js.map +1 -1
  567. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.js.map +1 -1
  568. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue.d.ts +2 -3
  569. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue_vue_type_script_setup_true_lang.js.map +1 -1
  570. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.js.map +1 -1
  571. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  572. package/dist/domains/ui/buttons/components/ABtnSplit.vue.d.ts +9 -7
  573. package/dist/domains/ui/components/AAvatarColorPicker.js.map +1 -1
  574. package/dist/domains/ui/components/AAvatarColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  575. package/dist/domains/ui/components/ACard.js.map +1 -1
  576. package/dist/domains/ui/components/ACard.vue.d.ts +7 -3
  577. package/dist/domains/ui/components/ACard.vue_vue_type_script_setup_true_lang.js +6 -2
  578. package/dist/domains/ui/components/ACard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  579. package/dist/domains/ui/components/ACardLoader.js.map +1 -1
  580. package/dist/domains/ui/components/ACardLoader.vue.d.ts +1 -0
  581. package/dist/domains/ui/components/ACardLoader.vue_vue_type_script_setup_true_lang.js +13 -7
  582. package/dist/domains/ui/components/ACardLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  583. package/dist/domains/ui/components/AChipNoLink.vue.d.ts +5 -3
  584. package/dist/domains/ui/components/ACopyText.vue.d.ts +9 -7
  585. package/dist/domains/ui/components/ACreateDialog.js.map +1 -1
  586. package/dist/domains/ui/components/ACreateDialog.vue.d.ts +11 -9
  587. package/dist/domains/ui/components/ACreateDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  588. package/dist/domains/ui/components/ADialogToolbar.vue.d.ts +5 -3
  589. package/dist/domains/ui/components/ARow.vue.d.ts +5 -3
  590. package/dist/domains/ui/components/ATimeTrackingFields.js.map +1 -1
  591. package/dist/domains/ui/components/ATimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  592. package/dist/domains/ui/components/AUserAndTimeTrackingFields.js.map +1 -1
  593. package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue.d.ts +3 -5
  594. package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  595. package/dist/domains/ui/datetime/components/ADatetimePicker.js +1 -1
  596. package/dist/domains/ui/datetime/components/ADatetimePicker.js.map +1 -1
  597. package/dist/domains/ui/datetime/components/ADatetimePicker.vue.d.ts +5 -3
  598. package/dist/domains/ui/datetime/components/ADatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  599. package/dist/domains/ui/file/components/AFileDropzone.js.map +1 -1
  600. package/dist/domains/ui/file/components/AFileDropzone.vue.d.ts +1 -1
  601. package/dist/domains/ui/file/components/AFileDropzone.vue_vue_type_script_setup_true_lang.js.map +1 -1
  602. package/dist/domains/ui/file/components/AFileInput.js.map +1 -1
  603. package/dist/domains/ui/file/components/AFileInput.vue.d.ts +9 -7
  604. package/dist/domains/ui/file/components/AFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  605. package/dist/domains/ui/file/components/AFileInputDialog.js.map +1 -1
  606. package/dist/domains/ui/file/components/AFileInputDialog.vue.d.ts +9 -7
  607. package/dist/domains/ui/file/components/AFileInputDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  608. package/dist/domains/ui/file/composables/dropzone.js.map +1 -1
  609. package/dist/domains/ui/file/composables/formatAndSizeCheck.js.map +1 -1
  610. package/dist/domains/ui/view/components/AGenericView.vue.d.ts +7 -5
  611. package/dist/domains/ui/view/components/ALoginView.js +1 -1
  612. package/dist/domains/ui/view/components/ALoginView.js.map +1 -1
  613. package/dist/domains/ui/view/components/ALoginView.vue.d.ts +5 -3
  614. package/dist/domains/ui/view/components/ALoginView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  615. package/dist/domains/ui/view/components/ALogoutView.js.map +1 -1
  616. package/dist/domains/ui/view/components/ALogoutView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  617. package/dist/domains/ui/view/components/ANotFoundView.js.map +1 -1
  618. package/dist/domains/ui/view/components/ANotFoundView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  619. package/dist/domains/unsavedGuard/composables/useUnsavedChangesGuard.d.ts +6 -7
  620. package/dist/domains/unsavedGuard/composables/useUnsavedChangesGuard.js.map +1 -1
  621. package/dist/lib.d.ts +2 -2
  622. package/dist/plugins/commonVuetifyConfig.d.ts +3 -3
  623. package/dist/plugins/commonVuetifyConfig.js.map +1 -1
  624. package/dist/plugins/i18n.d.ts +4 -5
  625. package/dist/plugins/i18n.js.map +1 -1
  626. package/dist/plugins/pluginOptions.d.ts +4 -2
  627. package/dist/plugins/pluginOptions.js.map +1 -1
  628. package/dist/plugins/webfontloader.js.map +1 -1
  629. package/dist/shared/error/AnzuApiCancelledError.d.ts +5 -8
  630. package/dist/shared/error/AnzuApiCancelledError.js.map +1 -1
  631. package/dist/shared/error/AnzuError.d.ts +3 -5
  632. package/dist/shared/error/AnzuError.js.map +1 -1
  633. package/dist/shared/error/AuthUnavailableError.d.ts +3 -3
  634. package/dist/shared/error/AuthUnavailableError.js.map +1 -1
  635. package/dist/shared/error/isInCauseChain.d.ts +2 -2
  636. package/dist/shared/error/isInCauseChain.js.map +1 -1
  637. package/dist/shared/types/UserAndTimeTracking.d.ts +5 -5
  638. package/dist/shared/types/Validation.d.ts +4 -5
  639. package/dist/shared/types/common.d.ts +1 -3
  640. package/dist/shared/types/globalComponents.d.ts +5 -6
  641. package/dist/shared/utils/common.js.map +1 -1
  642. package/dist/shared/utils/datetime.d.ts +0 -1
  643. package/dist/shared/utils/datetime.js.map +1 -1
  644. package/dist/shared/utils/datetimePickerValue.d.ts +4 -7
  645. package/dist/shared/utils/datetimePickerValue.js.map +1 -1
  646. package/dist/shared/utils/development.d.ts +3 -3
  647. package/dist/shared/utils/development.js.map +1 -1
  648. package/dist/shared/utils/envConfig.d.ts +4 -4
  649. package/dist/shared/utils/envConfig.js.map +1 -1
  650. package/dist/shared/utils/json.d.ts +1 -1
  651. package/dist/shared/utils/json.js.map +1 -1
  652. package/dist/shared/utils/userAndTimeTracking.d.ts +5 -7
  653. package/dist/shared/utils/userAndTimeTracking.js.map +1 -1
  654. package/dist/shared/validators/vuelidate/common/useValidateHexColor.d.ts +3 -5
  655. package/dist/shared/validators/vuelidate/common/useValidateHexColor.js.map +1 -1
  656. package/dist/testing/appShell.d.ts +11 -11
  657. package/dist/testing/appShell.js.map +1 -1
  658. package/dist/testing/closeButtons.d.ts +9 -11
  659. package/dist/testing/closeButtons.js.map +1 -1
  660. package/dist/testing/declaredDependencies.d.ts +7 -7
  661. package/dist/testing/declaredDependencies.js.map +1 -1
  662. package/dist/testing/generatedRoutes.d.ts +6 -11
  663. package/dist/testing/generatedRoutes.js.map +1 -1
  664. package/dist/testing/routeHistory.d.ts +5 -12
  665. package/dist/testing/routeHistory.js.map +1 -1
  666. package/dist/testing/sortableLists.d.ts +16 -21
  667. package/dist/testing/sortableLists.js.map +1 -1
  668. package/dist/testing/typedRouter.d.ts +0 -1
  669. package/dist/testing/typedRouter.js.map +1 -1
  670. package/package.json +26 -26
  671. package/src/eslint/adminConfig.mjs +19 -27
  672. package/src/eslint/globalComponentNames.mjs +3 -4
  673. package/src/eslint/oxlint.mjs +7 -20
  674. package/src/eslint/plugin.d.mts +2 -4
  675. package/src/eslint/plugin.mjs +18 -34
  676. package/src/eslint/validRouteName.mjs +6 -7
  677. package/src/vite/devWatch.mjs +30 -43
  678. package/src/vite/index.d.mts +5 -5
  679. package/src/vite/sentry.mjs +7 -12
  680. package/src/vite/sourcemaps.mjs +4 -8
@@ -1 +1 @@
1
- {"version":3,"file":"AssetMetadata.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_unref","_createBlock","_component_VBtn","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_component_VExpansionPanels","_createVNode","_component_VExpansionPanel","_component_VExpansionPanelText","AssetCustomMetadataForm","_component_VRow","_component_VCol","ASystemEntityScope","KeywordRemoteAutocompleteWithCached","AuthorRemoteAutocompleteWithCached","ARow","ABooleanValue","_component_VSwitch","_isRef","AssetFileInfoPanel","ABooleanValue_default","ARow_default","ASystemEntityScope_default","AssetCustomMetadataForm_default","AssetFileInfoPanel_default","AuthorRemoteAutocompleteWithCached_default","KeywordRemoteAutocompleteWithCached_default","AssetMetadata_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","panels","ref","assetDetailStore","useAssetDetailStore","storeToRefs","assetType","computed","asset","DamAssetTypeDefault","useDamAuthorAssetTypeConfig","useAssetSuggestions","useDamCachedAuthors","authorConflicts","authorEnabled","getAuthorConflicts","conflicts","addToCachedAuthors","fetchCachedAuthors","onAnyMetadataChange","useDamKeywordAssetTypeConfig","useCommonAdminCoreDamOptions","useDamCachedUsers","watch","createdBy","modifiedBy","showFileInfoEnabled","addToCachedUsers","fetchCachedUsers","openBlock","createElementBlock","Fragment","unref","createBlock","VBtn","_cache","withCtx","createTextVNode","toDisplayString","editAssetLabel","createCommentVNode","VExpansionPanels","$event","createVNode","VExpansionPanel","t","VExpansionPanelText","keywordEnabled","VRow","VCol","keywordRequired","ADamAssetMetadataValidationScopeSymbol","authorRequired","mainFileSingleUseEnabled","mainFileSingleUse","VSwitch","isRef"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref, watch } from 'vue'\nimport { DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetCustomMetadataForm from '@/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue'\nimport AssetFileInfoPanel from '@/domains/dam/assetDetail/components/AssetFileInfoPanel.vue'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport AuthorRemoteAutocompleteWithCached from '@/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteWithCached from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue'\nimport { useDamKeywordAssetTypeConfig } from '@/domains/dam/keyword/composables/damKeywordConfig'\nimport { useDamAuthorAssetTypeConfig } from '@/domains/dam/author/composables/damAuthorConfig'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useAssetSuggestions } from '@/domains/dam/uploadQueue/composables/assetSuggestions'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n readonly?: boolean\n configName?: string\n showEditButton?: boolean\n }>(),\n {\n readonly: false,\n configName: undefined,\n showEditButton: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'editInDam'): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst panels = ref(['metadata', 'file'])\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, metadataAreTouched, mainFileSingleUse } = storeToRefs(assetDetailStore)\n\nconst assetType = computed(() => {\n return asset.value?.attributes.assetType || DamAssetTypeDefault\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { authorRequired, authorEnabled } = useDamAuthorAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { getAuthorConflicts } = useAssetSuggestions()\nconst { addToCachedAuthors, fetchCachedAuthors } = useDamCachedAuthors(damConfigName)\n\n// The DAM authors of one name read from the file, as the card of a row of the queue offers them: taken from the asset\n// itself, as the field of the store is written by nobody. A side panel, read-only, offers none, nor does a detail\n// without the field of authors, whose asset may still carry suggestions from before the authors were switched off.\nconst authorConflicts = computed<DocId[]>(() =>\n props.readonly || !authorEnabled.value || !asset.value\n ? []\n : getAuthorConflicts(asset.value.metadata.authorSuggestions ?? {})\n)\n// Their chips show the names from the cache of its configuration, as those of the row do: without them a chip spins with none.\nwatch(\n authorConflicts,\n (conflicts) => {\n if (conflicts.length === 0) return\n addToCachedAuthors(conflicts)\n fetchCachedAuthors()\n },\n { immediate: true }\n)\n\nconst onAnyMetadataChange = () => {\n metadataAreTouched.value = true\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { keywordRequired, keywordEnabled } = useDamKeywordAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { mainFileSingleUseEnabled, showFileInfoEnabled, editAssetLabel } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst { addToCachedUsers, fetchCachedUsers } = useDamCachedUsers(damConfigName)\n// The chips of the panel \"file\" show who created and who changed the asset by the cache of users of its configuration.\n// A click into a picker fills it for the asset clicked, and only then: the detail of \"edit asset\" of a widget, or of a\n// row of the queue, showed two chips that spun with none.\nwatch(\n [() => asset.value?.createdBy, () => asset.value?.modifiedBy],\n ([createdBy, modifiedBy]) => {\n if (!showFileInfoEnabled || (!createdBy && !modifiedBy)) return\n addToCachedUsers(createdBy, modifiedBy)\n fetchCachedUsers()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VBtn\n v-if=\"showEditButton && asset\"\n size=\"small\"\n class=\"ma-2\"\n @click=\"emit('editInDam')\"\n >\n {{ editAssetLabel }}\n </VBtn>\n <VExpansionPanels\n v-if=\"asset\"\n v-model=\"panels\"\n multiple\n class=\"v-expansion-panels--compact\"\n >\n <VExpansionPanel\n elevation=\"0\"\n :title=\"t('common.damImage.asset.detail.info.metadata')\"\n value=\"metadata\"\n >\n <VExpansionPanelText>\n <AssetCustomMetadataForm\n v-if=\"asset\"\n v-model=\"asset.metadata.customData\"\n :ext-system=\"extSystem\"\n :asset-type=\"assetType\"\n :readonly=\"readonly\"\n @any-change=\"onAnyMetadataChange\"\n >\n <template #after-pinned>\n <VRow\n v-if=\"keywordEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"keyword\"\n system=\"dam\"\n >\n <KeywordRemoteAutocompleteWithCached\n v-model=\"asset.keywords\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.keywords')\"\n data-cy=\"custom-field-keywords\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"keywordRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"authorEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"author\"\n system=\"dam\"\n >\n <AuthorRemoteAutocompleteWithCached\n v-model=\"asset.authors\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.authors')\"\n :author-conflicts=\"authorConflicts\"\n data-cy=\"custom-field-authors\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"authorRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"mainFileSingleUseEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ARow\n v-if=\"readonly\"\n :title=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n >\n <ABooleanValue :value=\"mainFileSingleUse\" />\n </ARow>\n <VSwitch\n v-else\n v-model=\"mainFileSingleUse\"\n :label=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n />\n </VCol>\n </VRow>\n </template>\n </AssetCustomMetadataForm>\n </VExpansionPanelText>\n </VExpansionPanel>\n <!-- The detail breaks its texts only between words, unlike the card it is in (design 1.10, JS29). -->\n <AssetFileInfoPanel\n v-if=\"showFileInfoEnabled\"\n :asset=\"asset\"\n show-users\n style=\"overflow-wrap: normal\"\n />\n </VExpansionPanels>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AssetMetadata.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_unref","_createBlock","_component_VBtn","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_component_VExpansionPanels","_createVNode","_component_VExpansionPanel","_component_VExpansionPanelText","AssetCustomMetadataForm","_component_VRow","_component_VCol","ASystemEntityScope","KeywordRemoteAutocompleteWithCached","AuthorRemoteAutocompleteWithCached","ARow","ABooleanValue","_component_VSwitch","_isRef","AssetFileInfoPanel","ABooleanValue_default","ARow_default","ASystemEntityScope_default","AssetCustomMetadataForm_default","AssetFileInfoPanel_default","AuthorRemoteAutocompleteWithCached_default","KeywordRemoteAutocompleteWithCached_default","AssetMetadata_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","panels","ref","assetDetailStore","useAssetDetailStore","storeToRefs","assetType","computed","asset","DamAssetTypeDefault","useDamAuthorAssetTypeConfig","useAssetSuggestions","useDamCachedAuthors","authorConflicts","authorEnabled","getAuthorConflicts","conflicts","addToCachedAuthors","fetchCachedAuthors","onAnyMetadataChange","useDamKeywordAssetTypeConfig","useCommonAdminCoreDamOptions","useDamCachedUsers","watch","createdBy","modifiedBy","showFileInfoEnabled","addToCachedUsers","fetchCachedUsers","openBlock","createElementBlock","Fragment","unref","createBlock","VBtn","_cache","withCtx","createTextVNode","toDisplayString","editAssetLabel","createCommentVNode","VExpansionPanels","$event","createVNode","VExpansionPanel","t","VExpansionPanelText","keywordEnabled","VRow","VCol","keywordRequired","ADamAssetMetadataValidationScopeSymbol","authorRequired","mainFileSingleUseEnabled","mainFileSingleUse","VSwitch","isRef"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref, watch } from 'vue'\nimport { DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetCustomMetadataForm from '@/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue'\nimport AssetFileInfoPanel from '@/domains/dam/assetDetail/components/AssetFileInfoPanel.vue'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport AuthorRemoteAutocompleteWithCached from '@/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteWithCached from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue'\nimport { useDamKeywordAssetTypeConfig } from '@/domains/dam/keyword/composables/damKeywordConfig'\nimport { useDamAuthorAssetTypeConfig } from '@/domains/dam/author/composables/damAuthorConfig'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useAssetSuggestions } from '@/domains/dam/uploadQueue/composables/assetSuggestions'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n readonly?: boolean\n configName?: string\n showEditButton?: boolean\n }>(),\n {\n readonly: false,\n configName: undefined,\n showEditButton: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'editInDam'): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst panels = ref(['metadata', 'file'])\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, metadataAreTouched, mainFileSingleUse } = storeToRefs(assetDetailStore)\n\nconst assetType = computed(() => {\n return asset.value?.attributes.assetType || DamAssetTypeDefault\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { authorRequired, authorEnabled } = useDamAuthorAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { getAuthorConflicts } = useAssetSuggestions()\nconst { addToCachedAuthors, fetchCachedAuthors } = useDamCachedAuthors(damConfigName)\n\n// DAM author suggestions for names read from the file, as the queue row card offers them.\n// Taken from the asset itself, because nothing writes the store field.\n// None in a read-only side panel, or when the authors field is disabled. Such an asset may still carry old suggestions.\nconst authorConflicts = computed<DocId[]>(() =>\n props.readonly || !authorEnabled.value || !asset.value\n ? []\n : getAuthorConflicts(asset.value.metadata.authorSuggestions ?? {})\n)\n// The chips show names from the configuration's cache, as the row's do. Without it a chip spins forever.\nwatch(\n authorConflicts,\n (conflicts) => {\n if (conflicts.length === 0) return\n addToCachedAuthors(conflicts)\n fetchCachedAuthors()\n },\n { immediate: true }\n)\n\nconst onAnyMetadataChange = () => {\n metadataAreTouched.value = true\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { keywordRequired, keywordEnabled } = useDamKeywordAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { mainFileSingleUseEnabled, showFileInfoEnabled, editAssetLabel } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst { addToCachedUsers, fetchCachedUsers } = useDamCachedUsers(damConfigName)\n// The \"file\" panel chips show creator and modifier from the configuration's user cache.\n// A picker click fills it only for the clicked asset.\n// The \"edit asset\" detail of a widget or a queue row showed two chips spinning forever.\nwatch(\n [() => asset.value?.createdBy, () => asset.value?.modifiedBy],\n ([createdBy, modifiedBy]) => {\n if (!showFileInfoEnabled || (!createdBy && !modifiedBy)) return\n addToCachedUsers(createdBy, modifiedBy)\n fetchCachedUsers()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VBtn\n v-if=\"showEditButton && asset\"\n size=\"small\"\n class=\"ma-2\"\n @click=\"emit('editInDam')\"\n >\n {{ editAssetLabel }}\n </VBtn>\n <VExpansionPanels\n v-if=\"asset\"\n v-model=\"panels\"\n multiple\n class=\"v-expansion-panels--compact\"\n >\n <VExpansionPanel\n elevation=\"0\"\n :title=\"t('common.damImage.asset.detail.info.metadata')\"\n value=\"metadata\"\n >\n <VExpansionPanelText>\n <AssetCustomMetadataForm\n v-if=\"asset\"\n v-model=\"asset.metadata.customData\"\n :ext-system=\"extSystem\"\n :asset-type=\"assetType\"\n :readonly=\"readonly\"\n @any-change=\"onAnyMetadataChange\"\n >\n <template #after-pinned>\n <VRow\n v-if=\"keywordEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"keyword\"\n system=\"dam\"\n >\n <KeywordRemoteAutocompleteWithCached\n v-model=\"asset.keywords\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.keywords')\"\n data-cy=\"custom-field-keywords\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"keywordRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"authorEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"author\"\n system=\"dam\"\n >\n <AuthorRemoteAutocompleteWithCached\n v-model=\"asset.authors\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.authors')\"\n :author-conflicts=\"authorConflicts\"\n data-cy=\"custom-field-authors\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"authorRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"mainFileSingleUseEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ARow\n v-if=\"readonly\"\n :title=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n >\n <ABooleanValue :value=\"mainFileSingleUse\" />\n </ARow>\n <VSwitch\n v-else\n v-model=\"mainFileSingleUse\"\n :label=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n />\n </VCol>\n </VRow>\n </template>\n </AssetCustomMetadataForm>\n </VExpansionPanelText>\n </VExpansionPanel>\n <!-- The detail wraps text only between words, unlike its card (design 1.10, JS29). -->\n <AssetFileInfoPanel\n v-if=\"showFileInfoEnabled\"\n :asset=\"asset\"\n show-users\n style=\"overflow-wrap: normal\"\n />\n </VExpansionPanels>\n</template>\n"],"mappings":"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"}
@@ -2,11 +2,10 @@ import { AxiosInstance } from 'axios';
2
2
  import { DamAssetTypeType } from '../../types/Asset';
3
3
  import { IntegerId } from '../../../../shared/types/common';
4
4
  /**
5
- * Loads what the detail of an asset of the type `assetType` reads of the ext system `extSystem` as it draws, and throws
6
- * without: the configuration of the ext system and the custom fields of its assets, each one the DAM configuration
7
- * store of `configName` has not got yet. Of the custom fields, every type where the store has none of the ext system,
8
- * else the type `assetType` alone where its read failed before. A load that fails, or leaves that type not loaded,
9
- * rejects with an `AnzuFatalError`, which the alerts say as an unknown error: the loaders reject with `false`, which
10
- * they do not say.
5
+ * Loads what the asset detail of type `assetType` needs from ext system `extSystem` and would otherwise throw on.
6
+ * Loads the ext system config and the custom fields missing in the `configName` store.
7
+ * Custom fields: all types if the store has none for the ext system, else only `assetType` if its read failed before.
8
+ * Rejects with `AnzuFatalError` on failure or if the type stays unloaded. Alerts show
9
+ * it as an unknown error. The loaders reject with `false`, which alerts do not show.
11
10
  */
12
11
  export declare function loadAssetDetailExtSystem(client: () => AxiosInstance, extSystem: IntegerId, assetType: DamAssetTypeType, configName: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"assetDetailExtSystem.js","names":["loadAssetDetailExtSystem","useDamConfigState","client","configName","loads","isUndefined","getDamConfigExtSystem","extSystem","loadDamConfigExtSystem","getDamConfigAssetCustomFormElements","assetType","loadDamConfigAssetCustomFormElements","failed","AnzuFatalError"],"sources":["../../../../../src/domains/dam/assetDetail/composables/assetDetailExtSystem.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { AnzuFatalError } from '@/shared/error/AnzuFatalError'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\n/**\n * Loads what the detail of an asset of the type `assetType` reads of the ext system `extSystem` as it draws, and throws\n * without: the configuration of the ext system and the custom fields of its assets, each one the DAM configuration\n * store of `configName` has not got yet. Of the custom fields, every type where the store has none of the ext system,\n * else the type `assetType` alone where its read failed before. A load that fails, or leaves that type not loaded,\n * rejects with an `AnzuFatalError`, which the alerts say as an unknown error: the loaders reject with `false`, which\n * they do not say.\n */\nexport async function loadAssetDetailExtSystem(\n client: () => AxiosInstance,\n extSystem: IntegerId,\n assetType: DamAssetTypeType,\n configName: string\n) {\n const {\n getDamConfigExtSystem,\n loadDamConfigExtSystem,\n getDamConfigAssetCustomFormElements,\n loadDamConfigAssetCustomFormElements,\n } = useDamConfigState(client, configName)\n const loads: Promise<unknown>[] = []\n if (isUndefined(getDamConfigExtSystem(extSystem))) loads.push(loadDamConfigExtSystem(extSystem))\n if (isUndefined(getDamConfigAssetCustomFormElements(extSystem, assetType))) {\n loads.push(\n loadDamConfigAssetCustomFormElements(\n extSystem,\n getDamConfigAssetCustomFormElements(extSystem) ? [assetType] : undefined\n )\n )\n }\n const failed = () =>\n new AnzuFatalError(undefined, `The configuration of the ext system ${extSystem} could not be loaded.`)\n try {\n await Promise.all(loads)\n } catch {\n throw failed()\n }\n if (isUndefined(getDamConfigAssetCustomFormElements(extSystem, assetType))) throw failed()\n}\n"],"mappings":";;;;AAeA,eAAsBA,EACpB,GACA,GACA,GACA,GACA;CACA,IAAM,EACJ,0BACA,2BACA,wCACA,4CACEC,EAAkBC,GAAQC,CAAU,GAClCC,IAA4B,CAAC;CAEnC,AADIC,EAAYC,EAAsBC,CAAS,CAAC,KAAGH,EAAM,KAAKI,EAAuBD,CAAS,CAAC,GAC3FF,EAAYI,EAAoCF,GAAWG,CAAS,CAAC,KACvEN,EAAM,KACJO,EACEJ,GACAE,EAAoCF,CAAS,IAAI,CAACG,CAAS,IAAI,KAAA,CACjE,CACF;CAEF,IAAME,UACJ,IAAIC,EAAe,KAAA,GAAW,uCAAuCN,EAAU,sBAAsB;CACvG,IAAI;EACF,MAAM,QAAQ,IAAIH,CAAK;CACzB,QAAQ;EACN,MAAMQ,EAAO;CACf;CACA,IAAIP,EAAYI,EAAoCF,GAAWG,CAAS,CAAC,GAAG,MAAME,EAAO;AAC3F"}
1
+ {"version":3,"file":"assetDetailExtSystem.js","names":["loadAssetDetailExtSystem","useDamConfigState","client","configName","loads","isUndefined","getDamConfigExtSystem","extSystem","loadDamConfigExtSystem","getDamConfigAssetCustomFormElements","assetType","loadDamConfigAssetCustomFormElements","failed","AnzuFatalError"],"sources":["../../../../../src/domains/dam/assetDetail/composables/assetDetailExtSystem.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { AnzuFatalError } from '@/shared/error/AnzuFatalError'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\n/**\n * Loads what the asset detail of type `assetType` needs from ext system `extSystem` and would otherwise throw on.\n * Loads the ext system config and the custom fields missing in the `configName` store.\n * Custom fields: all types if the store has none for the ext system, else only `assetType` if its read failed before.\n * Rejects with `AnzuFatalError` on failure or if the type stays unloaded. Alerts show\n * it as an unknown error. The loaders reject with `false`, which alerts do not show.\n */\nexport async function loadAssetDetailExtSystem(\n client: () => AxiosInstance,\n extSystem: IntegerId,\n assetType: DamAssetTypeType,\n configName: string\n) {\n const {\n getDamConfigExtSystem,\n loadDamConfigExtSystem,\n getDamConfigAssetCustomFormElements,\n loadDamConfigAssetCustomFormElements,\n } = useDamConfigState(client, configName)\n const loads: Promise<unknown>[] = []\n if (isUndefined(getDamConfigExtSystem(extSystem))) loads.push(loadDamConfigExtSystem(extSystem))\n if (isUndefined(getDamConfigAssetCustomFormElements(extSystem, assetType))) {\n loads.push(\n loadDamConfigAssetCustomFormElements(\n extSystem,\n getDamConfigAssetCustomFormElements(extSystem) ? [assetType] : undefined\n )\n )\n }\n const failed = () =>\n new AnzuFatalError(undefined, `The configuration of the ext system ${extSystem} could not be loaded.`)\n try {\n await Promise.all(loads)\n } catch {\n throw failed()\n }\n if (isUndefined(getDamConfigAssetCustomFormElements(extSystem, assetType))) throw failed()\n}\n"],"mappings":";;;;AAcA,eAAsBA,EACpB,GACA,GACA,GACA,GACA;CACA,IAAM,EACJ,0BACA,2BACA,wCACA,4CACEC,EAAkBC,GAAQC,CAAU,GAClCC,IAA4B,CAAC;CAEnC,AADIC,EAAYC,EAAsBC,CAAS,CAAC,KAAGH,EAAM,KAAKI,EAAuBD,CAAS,CAAC,GAC3FF,EAAYI,EAAoCF,GAAWG,CAAS,CAAC,KACvEN,EAAM,KACJO,EACEJ,GACAE,EAAoCF,CAAS,IAAI,CAACG,CAAS,IAAI,KAAA,CACjE,CACF;CAEF,IAAME,UACJ,IAAIC,EAAe,KAAA,GAAW,uCAAuCN,EAAU,sBAAsB;CACvG,IAAI;EACF,MAAM,QAAQ,IAAIH,CAAK;CACzB,QAAQ;EACN,MAAMQ,EAAO;CACf;CACA,IAAIP,EAAYI,EAAoCF,GAAWG,CAAS,CAAC,GAAG,MAAME,EAAO;AAC3F"}
@@ -2,13 +2,13 @@ import { AssetDetailItemDto, DamAssetStatusType, DamAssetTypeType } from '../../
2
2
  import { AssetFile } from '../../types/AssetFile';
3
3
  import { UploadQueueItem } from '../../types/UploadQueue';
4
4
  import { DocId } from '../../../../shared/types/common';
5
- /** What the frame of the detail of an asset and of the dialog of a single upload draws, and nothing else. */
5
+ /** Exactly what the frame of the asset detail and the single-upload dialog renders. */
6
6
  export interface AssetDetailView {
7
- /** Keys the sidebar; null while an upload has no asset yet (the sidebar then is not drawn). */
7
+ /** Keys the sidebar. Null while an upload has no asset yet, and then the sidebar is not rendered. */
8
8
  id: DocId | null;
9
9
  assetType: DamAssetTypeType;
10
10
  assetStatus: DamAssetStatusType;
11
- /** For the status props the sidebars take. */
11
+ /** Used for the status props of the sidebars. */
12
12
  mainFile: AssetFile | null;
13
13
  image: {
14
14
  src: string;
@@ -20,24 +20,24 @@ export interface AssetDetailView {
20
20
  processing: boolean;
21
21
  waiting: boolean;
22
22
  done: boolean;
23
- /** As the row has them (`UploadQueueItem['progress']`): not normalised. */
23
+ /** As on the row (`UploadQueueItem['progress']`), not normalised. */
24
24
  progress?: number | null;
25
25
  remainingTime?: number | null;
26
26
  };
27
- /** The left side follows the region tab (which the sidebars offer by their own props). */
27
+ /** The left side follows the ROI tab. The sidebars offer that tab through their own props. */
28
28
  roiEditorTab: boolean;
29
29
  simpleMode: boolean;
30
30
  }
31
31
  /**
32
- * The picture is the grey placeholder of `AssetImage` (its last branch): no state of an upload and no file to show.
33
- * Only then does the box around it and its overlay take the whole area (finding 64); a picture keeps its own size.
32
+ * The image is the grey placeholder of `AssetImage` (its last branch): no upload state and no file.
33
+ * Only then do the box and its overlay fill the whole area (finding 64). An image keeps its own size.
34
34
  */
35
35
  export declare const pictureIsPlaceholder: (view: AssetDetailView) => boolean;
36
- /** The detail of an asset, as it is: the picture of its detail, no state of an upload. */
36
+ /** View of an existing asset, without upload state. */
37
37
  export declare function assetDetailViewOfAsset(asset: AssetDetailItemDto | null, simpleAssetSidebarEnabled: boolean): AssetDetailView | null;
38
38
  /**
39
- * The dialog of a single upload: what the row says of its asset until the upload is done, the asset the DAM read
40
- * after that; the preview of the row, its state and its progress.
39
+ * View of the single-upload dialog: the row's asset data until the upload is done, then the asset read from the DAM.
40
+ * Preview, state and progress come from the row.
41
41
  */
42
42
  export declare function assetDetailViewOfUploadItem(item: UploadQueueItem | null, detailAsset: AssetDetailItemDto | null, options: {
43
43
  enableRoiTab: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"assetDetailView.js","names":["NO_COLOUR","IMAGE_ASPECT_RATIO","PROCESSING","UploadQueueItemStatus","placeholder","dominantColourOf","assetFileIsImageFile","mainFile","pictureIsPlaceholder","view","DamAssetStatus","assetDetailViewOfAsset","asset","assetType","DamAssetTypeDefault","isImage","DamAssetType","detailPicture","simpleAssetSidebarEnabled","assetDetailViewOfUploadItem","item","done","read","detailAsset","DamAssetStatusDefault","options"],"sources":["../../../../../src/domains/dam/assetDetail/composables/assetDetailView.ts"],"sourcesContent":["import {\n type AssetDetailItemDto,\n DamAssetStatus,\n DamAssetStatusDefault,\n type DamAssetStatusType,\n DamAssetType,\n DamAssetTypeDefault,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport { type AssetFile, assetFileIsImageFile } from '@/domains/dam/types/AssetFile'\nimport {\n type UploadQueueItem,\n UploadQueueItemStatus,\n type UploadQueueItemStatusType,\n} from '@/domains/dam/types/UploadQueue'\nimport type { DocId } from '@/shared/types/common'\n\n/** What the frame of the detail of an asset and of the dialog of a single upload draws, and nothing else. */\nexport interface AssetDetailView {\n /** Keys the sidebar; null while an upload has no asset yet (the sidebar then is not drawn). */\n id: DocId | null\n assetType: DamAssetTypeType\n assetStatus: DamAssetStatusType\n /** For the status props the sidebars take. */\n mainFile: AssetFile | null\n image: {\n src: string\n width?: number\n height?: number\n backgroundColor: string\n aspectRatio?: number\n uploading: boolean\n processing: boolean\n waiting: boolean\n done: boolean\n /** As the row has them (`UploadQueueItem['progress']`): not normalised. */\n progress?: number | null\n remainingTime?: number | null\n }\n /** The left side follows the region tab (which the sidebars offer by their own props). */\n roiEditorTab: boolean\n simpleMode: boolean\n}\n\nconst NO_COLOUR = '#ccc'\nconst IMAGE_ASPECT_RATIO = 16 / 9\nconst PROCESSING: readonly UploadQueueItemStatusType[] = [\n UploadQueueItemStatus.Processing,\n UploadQueueItemStatus.Loading,\n]\n\nconst placeholder = () => ({ src: '', width: 356, height: 200, backgroundColor: NO_COLOUR })\n\nconst dominantColourOf = (mainFile: AssetFile | null | undefined) =>\n assetFileIsImageFile(mainFile) && mainFile.imageAttributes && mainFile.imageAttributes.mostDominantColor\n ? mainFile.imageAttributes.mostDominantColor\n : NO_COLOUR\n\n/**\n * The picture is the grey placeholder of `AssetImage` (its last branch): no state of an upload and no file to show.\n * Only then does the box around it and its overlay take the whole area (finding 64); a picture keeps its own size.\n */\nexport const pictureIsPlaceholder = (view: AssetDetailView) =>\n !view.image.uploading &&\n !view.image.processing &&\n !view.image.waiting &&\n !(view.assetStatus === DamAssetStatus.WithFile && view.image.src)\n\n/** The detail of an asset, as it is: the picture of its detail, no state of an upload. */\nexport function assetDetailViewOfAsset(\n asset: AssetDetailItemDto | null,\n simpleAssetSidebarEnabled: boolean\n): AssetDetailView | null {\n if (!asset) return null\n const assetType = asset.attributes.assetType || DamAssetTypeDefault\n const isImage = assetType === DamAssetType.Image\n const detailPicture = asset.mainFile?.links?.image_detail\n return {\n id: asset.id,\n assetType,\n assetStatus: asset.attributes.assetStatus,\n mainFile: asset.mainFile || null,\n image: {\n ...(detailPicture\n ? {\n src: detailPicture.url,\n width: detailPicture.width,\n height: detailPicture.height,\n backgroundColor: dominantColourOf(asset.mainFile),\n }\n : placeholder()),\n uploading: false,\n processing: false,\n waiting: false,\n done: false,\n },\n // The editor follows the tab whatever the kind of the asset: the tabs of another kind have no region tab.\n roiEditorTab: true,\n simpleMode: simpleAssetSidebarEnabled && isImage,\n }\n}\n\n/**\n * The dialog of a single upload: what the row says of its asset until the upload is done, the asset the DAM read\n * after that; the preview of the row, its state and its progress.\n */\nexport function assetDetailViewOfUploadItem(\n item: UploadQueueItem | null,\n detailAsset: AssetDetailItemDto | null,\n options: { enableRoiTab: boolean; disableDoneAnimation: boolean; simpleAssetSidebarEnabled: boolean }\n): AssetDetailView | null {\n if (!item) return null\n const done = item.status === UploadQueueItemStatus.Uploaded\n // The asset of this row only: the store it is read from is shared, and holds what another dialog or a pick from\n // the library left in it until the dialog has read its own.\n const read = item.assetId && done && detailAsset?.id === item.assetId ? detailAsset : null\n const assetType =\n (read ? read.attributes.assetType : item.assetId ? item.assetType : undefined) || DamAssetTypeDefault\n const isImage = assetType === DamAssetType.Image\n const mainFile = read?.mainFile || null\n return {\n id: read ? read.id : item.assetId || null,\n assetType,\n assetStatus: read ? read.attributes.assetStatus : item.assetId ? item.assetStatus : DamAssetStatusDefault,\n mainFile,\n image: {\n ...(item.imagePreview\n ? {\n src: item.imagePreview.url,\n width: item.imagePreview.requestedWidth || undefined,\n height: item.imagePreview.requestedHeight || undefined,\n backgroundColor: dominantColourOf(mainFile),\n }\n : placeholder()),\n aspectRatio: IMAGE_ASPECT_RATIO,\n uploading: item.status === UploadQueueItemStatus.Uploading,\n processing: PROCESSING.includes(item.status),\n waiting: item.status === UploadQueueItemStatus.Waiting,\n done: !options.disableDoneAnimation && done,\n progress: item.progress.progressPercent,\n remainingTime: item.progress.remainingTime,\n },\n roiEditorTab: options.enableRoiTab,\n simpleMode: options.simpleAssetSidebarEnabled && isImage && options.enableRoiTab,\n }\n}\n"],"mappings":";;;;AA4CA,IAAMA,IAAY,QACZC,IAAqB,KAAK,GAC1BC,IAAmD,CACvDC,EAAsB,YACtBA,EAAsB,OACxB,GAEMC,WAAqB;CAAE,KAAK;CAAI,OAAO;CAAK,QAAQ;CAAK,iBAAiBJ;AAAU,IAEpFK,KAAoB,MACxBC,EAAqBC,CAAQ,KAAKA,EAAS,mBAAmBA,EAAS,gBAAgB,oBACnFA,EAAS,gBAAgB,oBACzBP,GAMOQ,KAAwB,MACnC,CAACC,EAAK,MAAM,aACZ,CAACA,EAAK,MAAM,cACZ,CAACA,EAAK,MAAM,WACZ,EAAEA,EAAK,gBAAgBC,EAAe,YAAYD,EAAK,MAAM;AAG/D,SAAgBE,EACd,GACA,GACwB;CACxB,IAAI,CAACC,GAAO,OAAO;CACnB,IAAMC,IAAYD,EAAM,WAAW,aAAaE,GAC1CC,IAAUF,MAAcG,EAAa,OACrCC,IAAgBL,EAAM,UAAU,OAAO;CAC7C,OAAO;EACL,IAAIA,EAAM;EACV;EACA,aAAaA,EAAM,WAAW;EAC9B,UAAUA,EAAM,YAAY;EAC5B,OAAO;GACL,GAAIK,IACA;IACE,KAAKA,EAAc;IACnB,OAAOA,EAAc;IACrB,QAAQA,EAAc;IACtB,iBAAiBZ,EAAiBO,EAAM,QAAQ;GAClD,IACAR,EAAY;GAChB,WAAW;GACX,YAAY;GACZ,SAAS;GACT,MAAM;EACR;EAEA,cAAc;EACd,YAAYc,KAA6BH;CAC3C;AACF;AAMA,SAAgBI,EACd,GACA,GACA,GACwB;CACxB,IAAI,CAACC,GAAM,OAAO;CAClB,IAAMC,IAAOD,EAAK,WAAWjB,EAAsB,UAG7CmB,IAAOF,EAAK,WAAWC,KAAQE,GAAa,OAAOH,EAAK,UAAUG,IAAc,MAChFV,KACHS,IAAOA,EAAK,WAAW,YAAYF,EAAK,UAAUA,EAAK,YAAY,KAAA,MAAcN,GAC9EC,IAAUF,MAAcG,EAAa,OACrCT,IAAWe,GAAM,YAAY;CACnC,OAAO;EACL,IAAIA,IAAOA,EAAK,KAAKF,EAAK,WAAW;EACrC;EACA,aAAaE,IAAOA,EAAK,WAAW,cAAcF,EAAK,UAAUA,EAAK,cAAcI;EACpF;EACA,OAAO;GACL,GAAIJ,EAAK,eACL;IACE,KAAKA,EAAK,aAAa;IACvB,OAAOA,EAAK,aAAa,kBAAkB,KAAA;IAC3C,QAAQA,EAAK,aAAa,mBAAmB,KAAA;IAC7C,iBAAiBf,EAAiBE,CAAQ;GAC5C,IACAH,EAAY;GAChB,aAAaH;GACb,WAAWmB,EAAK,WAAWjB,EAAsB;GACjD,YAAYD,EAAW,SAASkB,EAAK,MAAM;GAC3C,SAASA,EAAK,WAAWjB,EAAsB;GAC/C,MAAM,CAACsB,EAAQ,wBAAwBJ;GACvC,UAAUD,EAAK,SAAS;GACxB,eAAeA,EAAK,SAAS;EAC/B;EACA,cAAcK,EAAQ;EACtB,YAAYA,EAAQ,6BAA6BV,KAAWU,EAAQ;CACtE;AACF"}
1
+ {"version":3,"file":"assetDetailView.js","names":["NO_COLOUR","IMAGE_ASPECT_RATIO","PROCESSING","UploadQueueItemStatus","placeholder","dominantColourOf","assetFileIsImageFile","mainFile","pictureIsPlaceholder","view","DamAssetStatus","assetDetailViewOfAsset","asset","assetType","DamAssetTypeDefault","isImage","DamAssetType","detailPicture","simpleAssetSidebarEnabled","assetDetailViewOfUploadItem","item","done","read","detailAsset","DamAssetStatusDefault","options"],"sources":["../../../../../src/domains/dam/assetDetail/composables/assetDetailView.ts"],"sourcesContent":["import {\n type AssetDetailItemDto,\n DamAssetStatus,\n DamAssetStatusDefault,\n type DamAssetStatusType,\n DamAssetType,\n DamAssetTypeDefault,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport { type AssetFile, assetFileIsImageFile } from '@/domains/dam/types/AssetFile'\nimport {\n type UploadQueueItem,\n UploadQueueItemStatus,\n type UploadQueueItemStatusType,\n} from '@/domains/dam/types/UploadQueue'\nimport type { DocId } from '@/shared/types/common'\n\n/** Exactly what the frame of the asset detail and the single-upload dialog renders. */\nexport interface AssetDetailView {\n /** Keys the sidebar. Null while an upload has no asset yet, and then the sidebar is not rendered. */\n id: DocId | null\n assetType: DamAssetTypeType\n assetStatus: DamAssetStatusType\n /** Used for the status props of the sidebars. */\n mainFile: AssetFile | null\n image: {\n src: string\n width?: number\n height?: number\n backgroundColor: string\n aspectRatio?: number\n uploading: boolean\n processing: boolean\n waiting: boolean\n done: boolean\n /** As on the row (`UploadQueueItem['progress']`), not normalised. */\n progress?: number | null\n remainingTime?: number | null\n }\n /** The left side follows the ROI tab. The sidebars offer that tab through their own props. */\n roiEditorTab: boolean\n simpleMode: boolean\n}\n\nconst NO_COLOUR = '#ccc'\nconst IMAGE_ASPECT_RATIO = 16 / 9\nconst PROCESSING: readonly UploadQueueItemStatusType[] = [\n UploadQueueItemStatus.Processing,\n UploadQueueItemStatus.Loading,\n]\n\nconst placeholder = () => ({ src: '', width: 356, height: 200, backgroundColor: NO_COLOUR })\n\nconst dominantColourOf = (mainFile: AssetFile | null | undefined) =>\n assetFileIsImageFile(mainFile) && mainFile.imageAttributes && mainFile.imageAttributes.mostDominantColor\n ? mainFile.imageAttributes.mostDominantColor\n : NO_COLOUR\n\n/**\n * The image is the grey placeholder of `AssetImage` (its last branch): no upload state and no file.\n * Only then do the box and its overlay fill the whole area (finding 64). An image keeps its own size.\n */\nexport const pictureIsPlaceholder = (view: AssetDetailView) =>\n !view.image.uploading &&\n !view.image.processing &&\n !view.image.waiting &&\n !(view.assetStatus === DamAssetStatus.WithFile && view.image.src)\n\n/** View of an existing asset, without upload state. */\nexport function assetDetailViewOfAsset(\n asset: AssetDetailItemDto | null,\n simpleAssetSidebarEnabled: boolean\n): AssetDetailView | null {\n if (!asset) return null\n const assetType = asset.attributes.assetType || DamAssetTypeDefault\n const isImage = assetType === DamAssetType.Image\n const detailPicture = asset.mainFile?.links?.image_detail\n return {\n id: asset.id,\n assetType,\n assetStatus: asset.attributes.assetStatus,\n mainFile: asset.mainFile || null,\n image: {\n ...(detailPicture\n ? {\n src: detailPicture.url,\n width: detailPicture.width,\n height: detailPicture.height,\n backgroundColor: dominantColourOf(asset.mainFile),\n }\n : placeholder()),\n uploading: false,\n processing: false,\n waiting: false,\n done: false,\n },\n // The editor follows the tab for any asset type. Other types have no ROI tab.\n roiEditorTab: true,\n simpleMode: simpleAssetSidebarEnabled && isImage,\n }\n}\n\n/**\n * View of the single-upload dialog: the row's asset data until the upload is done, then the asset read from the DAM.\n * Preview, state and progress come from the row.\n */\nexport function assetDetailViewOfUploadItem(\n item: UploadQueueItem | null,\n detailAsset: AssetDetailItemDto | null,\n options: { enableRoiTab: boolean; disableDoneAnimation: boolean; simpleAssetSidebarEnabled: boolean }\n): AssetDetailView | null {\n if (!item) return null\n const done = item.status === UploadQueueItemStatus.Uploaded\n // Only this row's asset. The store is shared and may hold an asset left\n // by another dialog or a library pick until this dialog reads its own.\n const read = item.assetId && done && detailAsset?.id === item.assetId ? detailAsset : null\n const assetType =\n (read ? read.attributes.assetType : item.assetId ? item.assetType : undefined) || DamAssetTypeDefault\n const isImage = assetType === DamAssetType.Image\n const mainFile = read?.mainFile || null\n return {\n id: read ? read.id : item.assetId || null,\n assetType,\n assetStatus: read ? read.attributes.assetStatus : item.assetId ? item.assetStatus : DamAssetStatusDefault,\n mainFile,\n image: {\n ...(item.imagePreview\n ? {\n src: item.imagePreview.url,\n width: item.imagePreview.requestedWidth || undefined,\n height: item.imagePreview.requestedHeight || undefined,\n backgroundColor: dominantColourOf(mainFile),\n }\n : placeholder()),\n aspectRatio: IMAGE_ASPECT_RATIO,\n uploading: item.status === UploadQueueItemStatus.Uploading,\n processing: PROCESSING.includes(item.status),\n waiting: item.status === UploadQueueItemStatus.Waiting,\n done: !options.disableDoneAnimation && done,\n progress: item.progress.progressPercent,\n remainingTime: item.progress.remainingTime,\n },\n roiEditorTab: options.enableRoiTab,\n simpleMode: options.simpleAssetSidebarEnabled && isImage && options.enableRoiTab,\n }\n}\n"],"mappings":";;;;AA4CA,IAAMA,IAAY,QACZC,IAAqB,KAAK,GAC1BC,IAAmD,CACvDC,EAAsB,YACtBA,EAAsB,OACxB,GAEMC,WAAqB;CAAE,KAAK;CAAI,OAAO;CAAK,QAAQ;CAAK,iBAAiBJ;AAAU,IAEpFK,KAAoB,MACxBC,EAAqBC,CAAQ,KAAKA,EAAS,mBAAmBA,EAAS,gBAAgB,oBACnFA,EAAS,gBAAgB,oBACzBP,GAMOQ,KAAwB,MACnC,CAACC,EAAK,MAAM,aACZ,CAACA,EAAK,MAAM,cACZ,CAACA,EAAK,MAAM,WACZ,EAAEA,EAAK,gBAAgBC,EAAe,YAAYD,EAAK,MAAM;AAG/D,SAAgBE,EACd,GACA,GACwB;CACxB,IAAI,CAACC,GAAO,OAAO;CACnB,IAAMC,IAAYD,EAAM,WAAW,aAAaE,GAC1CC,IAAUF,MAAcG,EAAa,OACrCC,IAAgBL,EAAM,UAAU,OAAO;CAC7C,OAAO;EACL,IAAIA,EAAM;EACV;EACA,aAAaA,EAAM,WAAW;EAC9B,UAAUA,EAAM,YAAY;EAC5B,OAAO;GACL,GAAIK,IACA;IACE,KAAKA,EAAc;IACnB,OAAOA,EAAc;IACrB,QAAQA,EAAc;IACtB,iBAAiBZ,EAAiBO,EAAM,QAAQ;GAClD,IACAR,EAAY;GAChB,WAAW;GACX,YAAY;GACZ,SAAS;GACT,MAAM;EACR;EAEA,cAAc;EACd,YAAYc,KAA6BH;CAC3C;AACF;AAMA,SAAgBI,EACd,GACA,GACA,GACwB;CACxB,IAAI,CAACC,GAAM,OAAO;CAClB,IAAMC,IAAOD,EAAK,WAAWjB,EAAsB,UAG7CmB,IAAOF,EAAK,WAAWC,KAAQE,GAAa,OAAOH,EAAK,UAAUG,IAAc,MAChFV,KACHS,IAAOA,EAAK,WAAW,YAAYF,EAAK,UAAUA,EAAK,YAAY,KAAA,MAAcN,GAC9EC,IAAUF,MAAcG,EAAa,OACrCT,IAAWe,GAAM,YAAY;CACnC,OAAO;EACL,IAAIA,IAAOA,EAAK,KAAKF,EAAK,WAAW;EACrC;EACA,aAAaE,IAAOA,EAAK,WAAW,cAAcF,EAAK,UAAUA,EAAK,cAAcI;EACpF;EACA,OAAO;GACL,GAAIJ,EAAK,eACL;IACE,KAAKA,EAAK,aAAa;IACvB,OAAOA,EAAK,aAAa,kBAAkB,KAAA;IAC3C,QAAQA,EAAK,aAAa,mBAAmB,KAAA;IAC7C,iBAAiBf,EAAiBE,CAAQ;GAC5C,IACAH,EAAY;GAChB,aAAaH;GACb,WAAWmB,EAAK,WAAWjB,EAAsB;GACjD,YAAYD,EAAW,SAASkB,EAAK,MAAM;GAC3C,SAASA,EAAK,WAAWjB,EAAsB;GAC/C,MAAM,CAACsB,EAAQ,wBAAwBJ;GACvC,UAAUD,EAAK,SAAS;GACxB,eAAeA,EAAK,SAAS;EAC/B;EACA,cAAcK,EAAQ;EACtB,YAAYA,EAAQ,6BAA6BV,KAAWU,EAAQ;CACtE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"assetDetailStore.js","names":["AssetDetailTabImageWithRoi","AssetDetailTabImageWithRoiDefault","useAssetDetailStore","defineStore","asset","ref","authorConflicts","dialog","loading","metadataAreTouched","activeTab","updateUploadStore","mainFileSingleUse","saves","saveKey","configName","assetId","turn","setAsset","data","open","mine","key","answer","read","beforeShown","close","readBesideDetail","begun","isNull","wanted","setSaving","answered","save","before","all","savingOf","reset"],"sources":["../../../../../src/domains/dam/assetDetail/store/assetDetailStore.ts"],"sourcesContent":["import { defineStore } from 'pinia'\nimport { ref } from 'vue'\nimport type { AssetDetailItemDto } from '@/domains/dam/types/Asset'\nimport type { DocId } from '@/shared/types/common'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { isNull } from '@/shared/utils/common'\n\nexport const AssetDetailTabImageWithRoi = {\n Info: 'meta',\n ROI: 'roi',\n} as const\nexport type AssetDetailTabImageWithRoiType =\n (typeof AssetDetailTabImageWithRoi)[keyof typeof AssetDetailTabImageWithRoi]\nexport const AssetDetailTabImageWithRoiDefault = AssetDetailTabImageWithRoi.Info\n\nexport const useAssetDetailStore = defineStore('commonAdminAssetDetailStore', () => {\n const asset = ref<AssetDetailItemDto | null>(null)\n const authorConflicts = ref<DocId[]>([])\n const dialog = ref<null | UploadQueueKey>(null)\n const loading = ref(false)\n const metadataAreTouched = ref(false)\n const activeTab = ref<AssetDetailTabImageWithRoiType>(AssetDetailTabImageWithRoiDefault)\n const updateUploadStore = ref(false)\n const mainFileSingleUse = ref(false)\n // The saves of the detail that are on their way, each under the DAM configuration and the asset it saves, until the\n // DAM answers them; they never reject. The detail can be closed before that: a host that reads the asset again once\n // the detail has closed waits for the saves of that asset first. One for the page, it had the closing of the detail\n // of an asset wait for the save of another one; two DAMs may give one asset id.\n const saves = new Map<string, Promise<void>>()\n const saveKey = (assetId: DocId, configName: string) => `${configName}\\u0000${assetId}`\n // Counts the openings and the closings of the detail: a read is taken while the count is the one it began under.\n let turn = 0\n\n function setAsset(data: AssetDetailItemDto | null) {\n asset.value = data\n mainFileSingleUse.value = data?.mainFileSingleUse || false\n }\n\n /**\n * Opens the detail of the queue `key` on its loader, and has it show the asset `read` answers with. The store is one\n * for the page, and a read may end once its detail has closed, or after another has been opened: only the read of\n * the detail opened last is taken, and only while that detail is open. An answer that is not taken shows no asset\n * and leaves the loader as it is. `beforeShown` runs for the answer that is taken, before the detail shows it.\n * A read that fails rejects here as it did, for the host to say. When it is the read the detail waits for, the\n * detail has nothing to show and is closed: a dialog that draws nothing is still over the whole page, and nothing\n * but its own button closes it.\n */\n async function open(\n key: UploadQueueKey,\n read: () => Promise<AssetDetailItemDto>,\n beforeShown?: (answer: AssetDetailItemDto) => void\n ) {\n const mine = ++turn\n setAsset(null)\n loading.value = true\n dialog.value = key\n try {\n const answer = await read()\n if (mine !== turn) return\n beforeShown?.(answer)\n setAsset(answer)\n loading.value = false\n } catch (e) {\n if (mine === turn) close()\n throw e\n }\n }\n\n /** Closes the detail. A read it was opened with and still waits for is given up: its answer is not taken. */\n function close() {\n turn++\n loading.value = false\n setAsset(null)\n dialog.value = null\n }\n\n /**\n * Reads the asset for a host that shows the asset of the store beside the detail, as the asset list does in its side\n * panel. The answer is taken only while no detail is open, and none has been opened since the read began: a detail\n * would show that asset in place of its own, and its save would go into it. The read rejects here as it did.\n * `wanted`: asked once the read has answered, by a host whose reads have an order of their own; an answer that host\n * no longer wants is not taken either. `beforeShown` runs for the answer that is taken, before the host shows it.\n */\n async function readBesideDetail(\n read: () => Promise<AssetDetailItemDto>,\n wanted?: () => boolean,\n beforeShown?: (answer: AssetDetailItemDto) => void\n ) {\n const begun = turn\n const answer = await read()\n if (begun !== turn || !isNull(dialog.value)) return\n if (wanted && !wanted()) return\n beforeShown?.(answer)\n setAsset(answer)\n }\n\n /** A save of the detail of the asset `assetId` under the DAM configuration `configName`. */\n function setSaving(assetId: DocId, save: Promise<unknown>, configName: string) {\n const key = saveKey(assetId, configName)\n const answered = save.then(\n () => undefined,\n () => undefined\n )\n const before = saves.get(key)\n const all = before ? Promise.all([before, answered]).then(() => undefined) : answered\n saves.set(key, all)\n void all.then(() => {\n if (saves.get(key) === all) saves.delete(key)\n })\n }\n\n /**\n * The saves of the detail of the asset `assetId` under the DAM configuration `configName` on their way, till they are\n * all answered; `null` while none is.\n */\n function savingOf(assetId: DocId, configName: string) {\n return saves.get(saveKey(assetId, configName)) ?? null\n }\n\n function reset() {\n asset.value = null\n mainFileSingleUse.value = false\n }\n\n return {\n metadataAreTouched,\n authorConflicts,\n asset,\n loading,\n dialog,\n activeTab,\n updateUploadStore,\n mainFileSingleUse,\n setAsset,\n open,\n close,\n readBesideDetail,\n setSaving,\n savingOf,\n reset,\n }\n})\n"],"mappings":";;;;AAOA,IAAaA,IAA6B;CACxC,MAAM;CACN,KAAK;AACP,GAGaC,IAAoCD,EAA2B,MAE/DE,IAAsBC,EAAY,qCAAqC;CAClF,IAAMC,IAAQC,EAA+B,IAAI,GAC3CC,IAAkBD,EAAa,CAAC,CAAC,GACjCE,IAASF,EAA2B,IAAI,GACxCG,IAAUH,EAAI,EAAK,GACnBI,IAAqBJ,EAAI,EAAK,GAC9BK,IAAYL,EAAoCJ,CAAiC,GACjFU,IAAoBN,EAAI,EAAK,GAC7BO,IAAoBP,EAAI,EAAK,GAK7BQ,oBAAQ,IAAI,IAA2B,GACvCC,KAAW,GAAgB,MAAuB,GAAGC,EAAW,QAAQC,KAE1EC,IAAO;CAEX,SAASC,EAAS,GAAiC;EAEjD,AADA,EAAM,QAAQC,GACd,EAAkB,QAAQA,GAAM,qBAAqB;CACvD;CAWA,eAAeC,EACb,GACA,GACA,GACA;EACA,IAAMC,IAAO,EAAEJ;EAGf,AAFAC,EAAS,IAAI,GACb,EAAQ,QAAQ,IAChB,EAAO,QAAQI;EACf,IAAI;GACF,IAAMC,IAAS,MAAMC,EAAK;GAC1B,IAAIH,MAASJ,GAAM;GAGnB,AAFAQ,IAAcF,CAAM,GACpBL,EAASK,CAAM,GACf,EAAQ,QAAQ;EAClB,SAAS,GAAG;GAEV,MADIF,MAASJ,KAAMS,EAAM,GACnB;EACR;CACF;CAGA,SAASA,IAAQ;EAIf,AAHA,KACA,EAAQ,QAAQ,IAChBR,EAAS,IAAI,GACb,EAAO,QAAQ;CACjB;CASA,eAAeS,EACb,GACA,GACA,GACA;EACA,IAAMC,IAAQX,GACRM,IAAS,MAAMC,EAAK;EAC1B,AAAII,MAAUX,KAASY,EAAOtB,EAAO,KAAK,MACtC,MAAWuB,EAAO,OACtBL,IAAcF,CAAM,GACpBL,EAASK,CAAM;CACjB;CAGA,SAASQ,EAAU,GAAgB,GAAwB,GAAoB;EAC7E,IAAMT,IAAMR,EAAQE,GAASD,CAAU,GACjCiB,IAAWC,EAAK,WACd,KAAA,SACA,KAAA,CACR,GACMC,IAASrB,EAAM,IAAIS,CAAG,GACtBa,IAAMD,IAAS,QAAQ,IAAI,CAACA,GAAQF,CAAQ,CAAC,CAAC,CAAC,WAAW,KAAA,CAAS,IAAIA;EAE7E,AADAnB,EAAM,IAAIS,GAAKa,CAAG,GAClBA,EAAS,WAAW;GAClB,AAAItB,EAAM,IAAIS,CAAG,MAAMa,KAAKtB,EAAM,OAAOS,CAAG;EAC9C,CAAC;CACH;CAMA,SAASc,EAAS,GAAgB,GAAoB;EACpD,OAAOvB,EAAM,IAAIC,EAAQE,GAASD,CAAU,CAAC,KAAK;CACpD;CAEA,SAASsB,IAAQ;EAEf,AADA,EAAM,QAAQ,MACd,EAAkB,QAAQ;CAC5B;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"assetDetailStore.js","names":["AssetDetailTabImageWithRoi","AssetDetailTabImageWithRoiDefault","useAssetDetailStore","defineStore","asset","ref","authorConflicts","dialog","loading","metadataAreTouched","activeTab","updateUploadStore","mainFileSingleUse","saves","saveKey","configName","assetId","turn","setAsset","data","open","mine","key","answer","read","beforeShown","close","readBesideDetail","begun","isNull","wanted","setSaving","answered","save","before","all","savingOf","reset"],"sources":["../../../../../src/domains/dam/assetDetail/store/assetDetailStore.ts"],"sourcesContent":["import { defineStore } from 'pinia'\nimport { ref } from 'vue'\nimport type { AssetDetailItemDto } from '@/domains/dam/types/Asset'\nimport type { DocId } from '@/shared/types/common'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { isNull } from '@/shared/utils/common'\n\nexport const AssetDetailTabImageWithRoi = {\n Info: 'meta',\n ROI: 'roi',\n} as const\nexport type AssetDetailTabImageWithRoiType =\n (typeof AssetDetailTabImageWithRoi)[keyof typeof AssetDetailTabImageWithRoi]\nexport const AssetDetailTabImageWithRoiDefault = AssetDetailTabImageWithRoi.Info\n\nexport const useAssetDetailStore = defineStore('commonAdminAssetDetailStore', () => {\n const asset = ref<AssetDetailItemDto | null>(null)\n const authorConflicts = ref<DocId[]>([])\n const dialog = ref<null | UploadQueueKey>(null)\n const loading = ref(false)\n const metadataAreTouched = ref(false)\n const activeTab = ref<AssetDetailTabImageWithRoiType>(AssetDetailTabImageWithRoiDefault)\n const updateUploadStore = ref(false)\n const mainFileSingleUse = ref(false)\n // Pending detail saves, keyed by DAM configuration and asset, until the DAM answers. They never reject.\n // The detail can close before that. A host that rereads the asset after close waits for that asset's saves first.\n // A single page-wide entry made closing one asset wait for another's save. Two DAMs can share an asset id.\n const saves = new Map<string, Promise<void>>()\n const saveKey = (assetId: DocId, configName: string) => `${configName}\\u0000${assetId}`\n // Counts detail openings and closings. A read is applied only if the count is unchanged since it began.\n let turn = 0\n\n function setAsset(data: AssetDetailItemDto | null) {\n asset.value = data\n mainFileSingleUse.value = data?.mainFileSingleUse || false\n }\n\n /**\n * Opens the detail of queue `key` in loading state and shows the asset returned by `read`.\n * The store is page-wide. Only the read of the last opened detail is applied, and\n * only while it is open. Other answers are ignored and leave the loader as is.\n * `beforeShown` runs for the applied answer before it is shown.\n * A failed read rejects for the host to report. If the detail waits for it, the detail\n * is closed: an empty dialog still covers the page and only its own button closes it.\n */\n async function open(\n key: UploadQueueKey,\n read: () => Promise<AssetDetailItemDto>,\n beforeShown?: (answer: AssetDetailItemDto) => void\n ) {\n const mine = ++turn\n setAsset(null)\n loading.value = true\n dialog.value = key\n try {\n const answer = await read()\n if (mine !== turn) return\n beforeShown?.(answer)\n setAsset(answer)\n loading.value = false\n } catch (e) {\n if (mine === turn) close()\n throw e\n }\n }\n\n /** Closes the detail. A pending read it was opened with is ignored. */\n function close() {\n turn++\n loading.value = false\n setAsset(null)\n dialog.value = null\n }\n\n /**\n * Reads the asset for a host that shows the store's asset beside the detail, like the asset list side panel.\n * Applied only if no detail is open and none was opened since the read\n * began. Otherwise the detail would show and save into that asset.\n * Rejects on failure. `wanted`: checked after the response by\n * hosts with their own read order; unwanted answers are ignored.\n * `beforeShown` runs for the applied answer before it is shown.\n */\n async function readBesideDetail(\n read: () => Promise<AssetDetailItemDto>,\n wanted?: () => boolean,\n beforeShown?: (answer: AssetDetailItemDto) => void\n ) {\n const begun = turn\n const answer = await read()\n if (begun !== turn || !isNull(dialog.value)) return\n if (wanted && !wanted()) return\n beforeShown?.(answer)\n setAsset(answer)\n }\n\n /** Registers a detail save of asset `assetId` under DAM configuration `configName`. */\n function setSaving(assetId: DocId, save: Promise<unknown>, configName: string) {\n const key = saveKey(assetId, configName)\n const answered = save.then(\n () => undefined,\n () => undefined\n )\n const before = saves.get(key)\n const all = before ? Promise.all([before, answered]).then(() => undefined) : answered\n saves.set(key, all)\n void all.then(() => {\n if (saves.get(key) === all) saves.delete(key)\n })\n }\n\n /** Resolves when all pending saves of `assetId` under `configName` are answered. `null` when none is pending. */\n function savingOf(assetId: DocId, configName: string) {\n return saves.get(saveKey(assetId, configName)) ?? null\n }\n\n function reset() {\n asset.value = null\n mainFileSingleUse.value = false\n }\n\n return {\n metadataAreTouched,\n authorConflicts,\n asset,\n loading,\n dialog,\n activeTab,\n updateUploadStore,\n mainFileSingleUse,\n setAsset,\n open,\n close,\n readBesideDetail,\n setSaving,\n savingOf,\n reset,\n }\n})\n"],"mappings":";;;;AAOA,IAAaA,IAA6B;CACxC,MAAM;CACN,KAAK;AACP,GAGaC,IAAoCD,EAA2B,MAE/DE,IAAsBC,EAAY,qCAAqC;CAClF,IAAMC,IAAQC,EAA+B,IAAI,GAC3CC,IAAkBD,EAAa,CAAC,CAAC,GACjCE,IAASF,EAA2B,IAAI,GACxCG,IAAUH,EAAI,EAAK,GACnBI,IAAqBJ,EAAI,EAAK,GAC9BK,IAAYL,EAAoCJ,CAAiC,GACjFU,IAAoBN,EAAI,EAAK,GAC7BO,IAAoBP,EAAI,EAAK,GAI7BQ,oBAAQ,IAAI,IAA2B,GACvCC,KAAW,GAAgB,MAAuB,GAAGC,EAAW,QAAQC,KAE1EC,IAAO;CAEX,SAASC,EAAS,GAAiC;EAEjD,AADA,EAAM,QAAQC,GACd,EAAkB,QAAQA,GAAM,qBAAqB;CACvD;CAUA,eAAeC,EACb,GACA,GACA,GACA;EACA,IAAMC,IAAO,EAAEJ;EAGf,AAFAC,EAAS,IAAI,GACb,EAAQ,QAAQ,IAChB,EAAO,QAAQI;EACf,IAAI;GACF,IAAMC,IAAS,MAAMC,EAAK;GAC1B,IAAIH,MAASJ,GAAM;GAGnB,AAFAQ,IAAcF,CAAM,GACpBL,EAASK,CAAM,GACf,EAAQ,QAAQ;EAClB,SAAS,GAAG;GAEV,MADIF,MAASJ,KAAMS,EAAM,GACnB;EACR;CACF;CAGA,SAASA,IAAQ;EAIf,AAHA,KACA,EAAQ,QAAQ,IAChBR,EAAS,IAAI,GACb,EAAO,QAAQ;CACjB;CAUA,eAAeS,EACb,GACA,GACA,GACA;EACA,IAAMC,IAAQX,GACRM,IAAS,MAAMC,EAAK;EAC1B,AAAII,MAAUX,KAASY,EAAOtB,EAAO,KAAK,MACtC,MAAWuB,EAAO,OACtBL,IAAcF,CAAM,GACpBL,EAASK,CAAM;CACjB;CAGA,SAASQ,EAAU,GAAgB,GAAwB,GAAoB;EAC7E,IAAMT,IAAMR,EAAQE,GAASD,CAAU,GACjCiB,IAAWC,EAAK,WACd,KAAA,SACA,KAAA,CACR,GACMC,IAASrB,EAAM,IAAIS,CAAG,GACtBa,IAAMD,IAAS,QAAQ,IAAI,CAACA,GAAQF,CAAQ,CAAC,CAAC,CAAC,WAAW,KAAA,CAAS,IAAIA;EAE7E,AADAnB,EAAM,IAAIS,GAAKa,CAAG,GAClBA,EAAS,WAAW;GAClB,AAAItB,EAAM,IAAIS,CAAG,MAAMa,KAAKtB,EAAM,OAAOS,CAAG;EAC9C,CAAC;CACH;CAGA,SAASc,EAAS,GAAgB,GAAoB;EACpD,OAAOvB,EAAM,IAAIC,EAAQE,GAASD,CAAU,CAAC,KAAK;CACpD;CAEA,SAASsB,IAAQ;EAEf,AADA,EAAM,QAAQ,MACd,EAAkB,QAAQ;CAC5B;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { AssetDetailItemDto } from '../../types/Asset';
2
2
  /**
3
- * The server may yet fill in the metadata of the asset from its file: a form loaded now would write over that when
4
- * saved, and a save marks the asset described, after which the server fills in nothing. Not an asset that is
5
- * described already, nor one whose file is processed, failed, a duplicate or not there: nothing more comes of those.
3
+ * True while the server may still fill the metadata from the file.
4
+ * A form loaded now would overwrite that on save. A save also
5
+ * marks the asset described, after which the server fills nothing.
6
+ * False when already described, or when the file is processed, failed, a duplicate or missing.
6
7
  */
7
8
  export declare const assetMetadataMayStillChange: (asset: AssetDetailItemDto) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"assetMetadataMayStillChange.js","names":["NOT_PROCESSED_YET","AssetFileProcessStatus","assetMetadataMayStillChange","asset"],"sources":["../../../../../src/domains/dam/assetDetail/utils/assetMetadataMayStillChange.ts"],"sourcesContent":["import type { AssetDetailItemDto } from '@/domains/dam/types/Asset'\nimport { AssetFileProcessStatus, type AssetFileProcessStatusType } from '@/domains/dam/types/AssetFile'\n\nconst NOT_PROCESSED_YET: AssetFileProcessStatusType[] = [\n AssetFileProcessStatus.Uploading,\n AssetFileProcessStatus.Uploaded,\n AssetFileProcessStatus.Stored,\n]\n\n/**\n * The server may yet fill in the metadata of the asset from its file: a form loaded now would write over that when\n * saved, and a save marks the asset described, after which the server fills in nothing. Not an asset that is\n * described already, nor one whose file is processed, failed, a duplicate or not there: nothing more comes of those.\n */\nexport const assetMetadataMayStillChange = (asset: AssetDetailItemDto) =>\n !asset.flags.described && !!asset.mainFile && NOT_PROCESSED_YET.includes(asset.mainFile.fileAttributes.status)\n"],"mappings":";;AAGA,IAAMA,IAAkD;CACtDC,EAAuB;CACvBA,EAAuB;CACvBA,EAAuB;AACzB,GAOaC,KAA+B,MAC1C,CAACC,EAAM,MAAM,aAAa,CAAC,CAACA,EAAM,YAAYH,EAAkB,SAASG,EAAM,SAAS,eAAe,MAAM"}
1
+ {"version":3,"file":"assetMetadataMayStillChange.js","names":["NOT_PROCESSED_YET","AssetFileProcessStatus","assetMetadataMayStillChange","asset"],"sources":["../../../../../src/domains/dam/assetDetail/utils/assetMetadataMayStillChange.ts"],"sourcesContent":["import type { AssetDetailItemDto } from '@/domains/dam/types/Asset'\nimport { AssetFileProcessStatus, type AssetFileProcessStatusType } from '@/domains/dam/types/AssetFile'\n\nconst NOT_PROCESSED_YET: AssetFileProcessStatusType[] = [\n AssetFileProcessStatus.Uploading,\n AssetFileProcessStatus.Uploaded,\n AssetFileProcessStatus.Stored,\n]\n\n/**\n * True while the server may still fill the metadata from the file.\n * A form loaded now would overwrite that on save. A save also\n * marks the asset described, after which the server fills nothing.\n * False when already described, or when the file is processed, failed, a duplicate or missing.\n */\nexport const assetMetadataMayStillChange = (asset: AssetDetailItemDto) =>\n !asset.flags.described && !!asset.mainFile && NOT_PROCESSED_YET.includes(asset.mainFile.fileAttributes.status)\n"],"mappings":";;AAGA,IAAMA,IAAkD;CACtDC,EAAuB;CACvBA,EAAuB;CACvBA,EAAuB;AACzB,GAQaC,KAA+B,MAC1C,CAACC,EAAM,MAAM,aAAa,CAAC,CAACA,EAAM,YAAYH,EAAkB,SAASG,EAAM,SAAS,eAAe,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"damPodcastApi.js","names":["ENTITY","fetchDamPodcastListByIds","DAM_END_POINT_PODCAST","useApiFetchByIds","SYSTEM_CORE_DAM","endPoint","execute","ids","useFetchDamPodcastList","useApiFetchList"],"sources":["../../../../../src/domains/dam/assetSelect/api/damPodcastApi.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport { useApiFetchList } from '@/domains/api/composables/useApiFetchList'\nimport { useApiFetchByIds } from '@/domains/api/composables/useApiFetchByIds'\nimport type { DamPodcastAware } from '@/domains/dam/assetSelect/composables/podcastFilterAndActions'\nimport { DAM_END_POINT_PODCAST } from '@/domains/dam/api/damEndPoints'\n\nconst ENTITY = 'podcast'\n\n// `endPoint`: the address of the podcasts the caller goes by; the default one where it gives none.\n\nexport const fetchDamPodcastListByIds = (\n client: () => AxiosInstance,\n licenceId: IntegerId,\n ids: DocId[],\n endPoint: string = DAM_END_POINT_PODCAST\n) => {\n const { execute } = useApiFetchByIds<DamPodcastAware>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + '/licence/:licenceId',\n urlParams: { licenceId },\n })\n\n return execute(ids)\n}\n\nexport const useFetchDamPodcastList = (\n client: () => AxiosInstance,\n licenceId: IntegerId,\n endPoint: string = DAM_END_POINT_PODCAST\n) =>\n useApiFetchList<DamPodcastAware>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + '/licence/:licenceId',\n urlParams: { licenceId },\n })\n"],"mappings":";;;;;AAQA,IAAMA,IAAS,WAIFC,KACX,GACA,GACA,GACA,IAAmBC,MAChB;CACH,IAAM,EAAE,eAAYC,EAAkC;EACpD;EACA,QAAQC;EACR,QAAQJ;EACR,aAAaK,IAAW;EACxB,WAAW,EAAE,aAAU;CACzB,CAAC;CAED,OAAOC,EAAQC,CAAG;AACpB,GAEaC,KACX,GACA,GACA,IAAmBN,MAEnBO,EAAiC;CAC/B;CACA,QAAQL;CACR,QAAQJ;CACR,aAAaK,IAAW;CACxB,WAAW,EAAE,aAAU;AACzB,CAAC"}
1
+ {"version":3,"file":"damPodcastApi.js","names":["ENTITY","fetchDamPodcastListByIds","DAM_END_POINT_PODCAST","useApiFetchByIds","SYSTEM_CORE_DAM","endPoint","execute","ids","useFetchDamPodcastList","useApiFetchList"],"sources":["../../../../../src/domains/dam/assetSelect/api/damPodcastApi.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport { useApiFetchList } from '@/domains/api/composables/useApiFetchList'\nimport { useApiFetchByIds } from '@/domains/api/composables/useApiFetchByIds'\nimport type { DamPodcastAware } from '@/domains/dam/assetSelect/composables/podcastFilterAndActions'\nimport { DAM_END_POINT_PODCAST } from '@/domains/dam/api/damEndPoints'\n\nconst ENTITY = 'podcast'\n\n// `endPoint`: the caller's podcast endpoint. The default is used when not given.\n\nexport const fetchDamPodcastListByIds = (\n client: () => AxiosInstance,\n licenceId: IntegerId,\n ids: DocId[],\n endPoint: string = DAM_END_POINT_PODCAST\n) => {\n const { execute } = useApiFetchByIds<DamPodcastAware>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + '/licence/:licenceId',\n urlParams: { licenceId },\n })\n\n return execute(ids)\n}\n\nexport const useFetchDamPodcastList = (\n client: () => AxiosInstance,\n licenceId: IntegerId,\n endPoint: string = DAM_END_POINT_PODCAST\n) =>\n useApiFetchList<DamPodcastAware>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + '/licence/:licenceId',\n urlParams: { licenceId },\n })\n"],"mappings":";;;;;AAQA,IAAMA,IAAS,WAIFC,KACX,GACA,GACA,GACA,IAAmBC,MAChB;CACH,IAAM,EAAE,eAAYC,EAAkC;EACpD;EACA,QAAQC;EACR,QAAQJ;EACR,aAAaK,IAAW;EACxB,WAAW,EAAE,aAAU;CACzB,CAAC;CAED,OAAOC,EAAQC,CAAG;AACpB,GAEaC,KACX,GACA,GACA,IAAmBN,MAEnBO,EAAiC;CAC/B;CACA,QAAQL;CACR,QAAQJ;CACR,aAAaK,IAAW;CACxB,WAAW,EAAE,aAAU;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AAssetListInner.js","names":["_sfc_main","AAssetListInner_vue_vue_type_script_setup_true_lang_default","AAssetListInner_default"],"sources":["../../../../../src/domains/dam/assetSelect/components/AAssetListInner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onUnmounted, provide, ref, watch } from 'vue'\nimport { useDisplay } from 'vuetify'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetDetailItemDto, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetSelectActions } from '@/domains/dam/assetSelect/composables/assetSelectListActions'\nimport AssetSelectListTable from '@/domains/dam/assetSelect/components/AssetSelectListTable.vue'\nimport AssetSelectListBar from '@/domains/dam/assetSelect/components/AssetSelectListBar.vue'\nimport { AssetSelectGridView, useGridView } from '@/domains/dam/assetSelect/composables/assetSelectGridView'\nimport AssetSelectListTiles from '@/domains/dam/assetSelect/components/AssetSelectListTiles.vue'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport AssetSelectFilterForm from '@/domains/dam/assetSelect/components/AssetSelectFilterForm.vue'\nimport { filterAllowedImageWidgetSelectConfigs } from '@/domains/dam/config/utils/damFilterUserAllowedUploadConfigs'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport type { DamConfigLicenceExtSystemReturnType, DamExtSystemConfig } from '@/domains/dam/types/DamConfig'\nimport { cloneDeep, isDefined, isUndefined } from '@/shared/utils/common'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type DatatableOrderingOption } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport { DatatablePaginationKey, FilterConfigKey, FilterDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport AFilterWrapper from '@/domains/filters/components/AFilterWrapper.vue'\nimport AFilterString from '@/domains/filters/components/AFilterString.vue'\nimport { useFilterHelpers } from '@/domains/filters/composables/filterFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AssetDetailDialog from '@/domains/dam/assetDetail/components/AssetDetailDialog.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { ImageWidgetUploadConfigKey } from '@/domains/dam/imageWidget/utils/imageWidgetInkectionKeys'\nimport { useDamAcceptTypeAndSizeHelper } from '@/domains/dam/config/composables/acceptTypeAndSizeHelper'\nimport { useUploadQueueDialog } from '@/domains/dam/uploadQueue/composables/useUploadQueueDialog'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport UploadQueueDialog from '@/domains/dam/uploadQueue/components/UploadQueueDialog.vue'\nimport AFileInput from '@/domains/ui/file/components/AFileInput.vue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n queueKey: UploadQueueKey\n selectConfigs: DamConfigLicenceExtSystemReturnType[]\n inPodcast?: boolean | null\n configName?: string\n skipCurrentUserCheck?: boolean\n variant?: 'default' | 'inline'\n }>(),\n {\n inPodcast: null,\n configName: undefined,\n skipCurrentUserCheck: false,\n variant: 'default',\n }\n)\n\nconst sortModel = defineModel<number>('sort', { default: 1, required: false })\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst {\n damClient,\n loader,\n pagination,\n fetchNextPage,\n fetchNextPageInView,\n initStoreContext,\n detailLoading,\n readActiveItemAgain,\n fetchAssetListDebounced,\n reset,\n resetAssetList,\n} = useAssetSelectActions(damConfigName)\n// The ordering in the list bar reads this; without it the dialog would pick up the host page's pagination.\nprovide(DatatablePaginationKey, pagination)\n\nconst { assetListEnabledFilters } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst { loadDamConfigAssetCustomFormElements, getDamConfigAssetCustomFormElements } = useDamConfigState(\n damClient,\n damConfigName\n)\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, dialog } = storeToRefs(assetDetailStore)\nconst assetSelectStore = useAssetSelectStore()\nconst { selectedLicenceId } = storeToRefs(assetSelectStore)\n\nconst { sidebarRight, closeSidebarRight, closeSidebarLeft } = useSidebar()\nconst { mdAndDown } = useDisplay()\nconst { showErrorT } = useAlerts()\n\nconst { filterData, filterConfig } = useAssetListFilter()\nprovide(FilterConfigKey, filterConfig)\nprovide(FilterDataKey, filterData)\n\nconst { resetFilter, submitFilter } = useFilterHelpers(filterData, filterConfig, {\n populateUrlParams: false,\n storeFiltersLocalStorage: false,\n})\n\nconst submitFilterAction = () => {\n submitFilter(pagination, fetchAssetListDebounced)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst resetFilterAction = () => {\n resetFilter(pagination, resetAssetList)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst onInit = () => {\n let selectConfigLocal = cloneDeep(props.selectConfigs)\n if (!props.skipCurrentUserCheck) {\n selectConfigLocal = filterAllowedImageWidgetSelectConfigs(props.selectConfigs, damConfigName)\n }\n if (selectConfigLocal.length === 0) {\n showErrorT('common.assetSelect.error.unallowedLicence')\n return\n }\n\n reset()\n initStoreContext(selectConfigLocal, props.assetType, props.inPodcast, false, 0, 0)\n fetchAssetListDebounced()\n}\n\nconst { gridView } = useGridView()\n\nconst componentComputed = computed(() => {\n switch (gridView.value) {\n case AssetSelectGridView.Table:\n return AssetSelectListTable\n default:\n case AssetSelectGridView.Masonry:\n case AssetSelectGridView.Thumbnail:\n return AssetSelectListTiles\n }\n})\n\nconst extId = computed(() => {\n if (props.selectConfigs.length === 0) return undefined\n if (selectedLicenceId.value > 0) {\n const found = props.selectConfigs.find((config) => config.licence === selectedLicenceId.value)\n if (found) return found.extSystem\n }\n return undefined\n})\n\nconst loadingSidebarRight = computed(() => {\n return customFormConfigLoading.value || detailLoading.value\n})\n\nconst { showErrorsDefault } = useAlerts()\nconst customFormConfigLoading = ref(true)\n// The configuration of the custom fields could not be read: the side panel says so, in place of the form of the\n// asset, which cannot be drawn without it. It used to load without an end.\nconst customFormConfigFailed = ref(false)\n\nconst sortByChange = (option: DatatableOrderingOption) => {\n pagination.value.sortBy = null\n if (option.sortBy) {\n pagination.value.sortBy = { key: option.sortBy.key, order: option.sortBy.order }\n }\n fetchAssetListDebounced()\n}\n\n// Whether the open detail is the one \"edit\" of the side panel opened. The detail of a row of the upload queue is drawn\n// here as well, and its close has the panel read its own asset again.\nlet detailOfPanel = false\n\nconst onOpenEditDialog = () => {\n if (!asset.value) return\n detailOfPanel = true\n dialog.value = props.queueKey\n}\n\n// The panel reads the asset the detail it opened showed, not the one the list remembers: the two differ once a click\n// has been made while the panel showed the asset it opened.\nconst onCloseEditDialog = (shown: AssetDetailItemDto | null) => {\n const ofPanel = detailOfPanel\n detailOfPanel = false\n readActiveItemAgain(ofPanel ? (shown?.id ?? null) : null)\n}\n\nconst imageWidgetUploadConfig = inject(ImageWidgetUploadConfigKey, undefined)\nconst uploadEnabled = computed(() => isDefined(imageWidgetUploadConfig) && isDefined(imageWidgetUploadConfig.value))\n\nconst { uploadQueueDialog, uploadQueueDialogSaving, stopQueueLeftBehind } = useUploadQueueDialog()\nconst uploadQueuesStore = useUploadQueuesStore()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { uploadSizes, uploadAccept } = useDamAcceptTypeAndSizeHelper(\n props.assetType,\n (imageWidgetUploadConfig?.value?.extSystemConfig ?? {}) as DamExtSystemConfig\n)\n\nconst uploadQueue = computed(() => {\n return uploadQueuesStore.getQueue(props.queueKey)\n})\n\nconst onFileInput = (files: File[]) => {\n if (files.length === 0) return\n // The page has an entry of its own (its button, a dropzone over the whole window) that reaches here past the\n // dialog. While the dialog of this queue saves no file is taken: \"save and apply\" ends with the queue emptied, and\n // a file queued meanwhile went with it, half uploaded and without a word.\n if (uploadQueueDialogSaving.value === props.queueKey) return\n const config = imageWidgetUploadConfig?.value\n if (!config) return\n stopQueueLeftBehind(props.queueKey)\n uploadQueuesStore.addByFiles(props.queueKey, config.extSystem, config.licence, files, damConfigName)\n uploadQueueDialog.value = props.queueKey\n}\n\nconst onUploadApply = () => {\n uploadQueueDialog.value = null\n uploadQueuesStore.stopUpload(props.queueKey)\n fetchAssetListDebounced()\n}\n\nwatch(\n extId,\n async (newValue) => {\n if (isUndefined(newValue)) return\n customFormConfigLoading.value = true\n customFormConfigFailed.value = false\n // The custom fields of the type it lists: every type of the ext system where it has none yet, else that type alone\n // where its read failed before. The types loaded are not read again.\n const type = props.assetType\n if (isUndefined(getDamConfigAssetCustomFormElements(newValue, type))) {\n try {\n await loadDamConfigAssetCustomFormElements(\n newValue,\n getDamConfigAssetCustomFormElements(newValue) ? [type] : undefined\n )\n } catch (e) {\n showErrorsDefault(e)\n }\n // The answer for an ext system the list has left since says nothing of the one it lists now.\n if (extId.value !== newValue) return\n customFormConfigFailed.value = isUndefined(getDamConfigAssetCustomFormElements(newValue, type))\n }\n customFormConfigLoading.value = false\n },\n { immediate: true }\n)\n\nwatch(selectedLicenceId, (newValue, oldValue) => {\n if (newValue === oldValue) return\n resetFilterAction()\n})\n\nonInit()\n\nonUnmounted(() => {\n reset()\n})\n</script>\n\n<template>\n <slot\n v-if=\"uploadEnabled\"\n name=\"upload-activator\"\n :on-file-input=\"onFileInput\"\n :upload-accept=\"uploadAccept\"\n :upload-sizes=\"uploadSizes\"\n >\n <AFileInput\n :file-input-key=\"uploadQueue?.fileInputKey\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n multiple\n @files-input=\"onFileInput\"\n >\n <template #activator=\"{ props: fileInputProps }\">\n <VBtn v-bind=\"fileInputProps\">\n {{ t('common.button.upload') }}\n </VBtn>\n </template>\n </AFileInput>\n </slot>\n <div\n class=\"subject-select__card\"\n :class=\"{ 'subject-select__card--inline': variant === 'inline' }\"\n >\n <div class=\"px-2 pt-2\">\n <slot name=\"filter\">\n <AFilterWrapper\n @submit=\"submitFilterAction\"\n @reset=\"resetFilterAction\"\n >\n <template #search>\n <AFilterString name=\"text\" />\n </template>\n <template #detail>\n <VRow v-if=\"selectConfigs.length > 1\">\n <VCol :cols=\"12\">\n <VSelect\n v-model=\"selectedLicenceId\"\n :label=\"t('common.assetSelect.filter.licence')\"\n :items=\"selectConfigs\"\n item-title=\"licenceName\"\n item-value=\"licence\"\n hide-details\n />\n </VCol>\n </VRow>\n <AssetSelectFilterForm\n use-config-layout\n hide-text-search\n :enabled-filters=\"assetListEnabledFilters\"\n :config-name=\"damConfigName\"\n />\n </template>\n </AFilterWrapper>\n </slot>\n </div>\n <AssetSelectListBar\n v-model:sort=\"sortModel\"\n hide-filter-toggle\n @sort-by-change=\"sortByChange\"\n />\n <div\n class=\"subject-select__main\"\n :class=\"{\n 'subject-select__main--sidebar-right-active': sidebarRight && !mdAndDown,\n }\"\n >\n <div class=\"subject-select__content\">\n <component\n :is=\"componentComputed\"\n v-if=\"extId\"\n :ext-system=\"extId\"\n />\n <div class=\"d-flex w-100 align-center justify-center pa-4\">\n <ABtnSecondary\n v-show=\"pagination.hasNextPage || loader\"\n v-intersect=\"fetchNextPageInView\"\n :loading=\"loader\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n {{ t('common.button.loadMore') }}\n </ABtnSecondary>\n </div>\n </div>\n <div\n v-if=\"!mdAndDown\"\n class=\"subject-select__sidebar-right border-s\"\n >\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"!asset\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.assetSelect.meta.info.noAssetSelected') }}\n </div>\n <div\n v-else\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </div>\n </div>\n <VDialog\n v-if=\"mdAndDown\"\n v-model=\"sidebarRight\"\n scrollable\n @update:model-value=\"\n (v) => {\n if (!v) closeSidebarRight()\n }\n \"\n >\n <VCard>\n <ADialogToolbar @cancel=\"closeSidebarRight\">\n {{ t('common.assetSelect.meta.info.toggle') }}\n </ADialogToolbar>\n <VCardText>\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"asset\"\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn @click=\"closeSidebarRight\">\n {{ t('common.button.close') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n </div>\n <AssetDetailDialog\n v-if=\"dialog === queueKey && extId\"\n :queue-key=\"queueKey\"\n :ext-system=\"extId\"\n @close=\"onCloseEditDialog\"\n />\n <UploadQueueDialog\n v-if=\"uploadEnabled && uploadQueueDialog === queueKey && imageWidgetUploadConfig\"\n :queue-key=\"queueKey\"\n :ext-system=\"imageWidgetUploadConfig.extSystem\"\n :licence-id=\"imageWidgetUploadConfig.licence\"\n :file-input-key=\"uploadQueue?.fileInputKey ?? -1\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n @apply=\"onUploadApply\"\n @files-input=\"onFileInput\"\n @drop=\"onFileInput\"\n />\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AAssetListInner.js","names":["_sfc_main","AAssetListInner_vue_vue_type_script_setup_true_lang_default","AAssetListInner_default"],"sources":["../../../../../src/domains/dam/assetSelect/components/AAssetListInner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onUnmounted, provide, ref, watch } from 'vue'\nimport { useDisplay } from 'vuetify'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetDetailItemDto, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetSelectActions } from '@/domains/dam/assetSelect/composables/assetSelectListActions'\nimport AssetSelectListTable from '@/domains/dam/assetSelect/components/AssetSelectListTable.vue'\nimport AssetSelectListBar from '@/domains/dam/assetSelect/components/AssetSelectListBar.vue'\nimport { AssetSelectGridView, useGridView } from '@/domains/dam/assetSelect/composables/assetSelectGridView'\nimport AssetSelectListTiles from '@/domains/dam/assetSelect/components/AssetSelectListTiles.vue'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport AssetSelectFilterForm from '@/domains/dam/assetSelect/components/AssetSelectFilterForm.vue'\nimport { filterAllowedImageWidgetSelectConfigs } from '@/domains/dam/config/utils/damFilterUserAllowedUploadConfigs'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport type { DamConfigLicenceExtSystemReturnType, DamExtSystemConfig } from '@/domains/dam/types/DamConfig'\nimport { cloneDeep, isDefined, isUndefined } from '@/shared/utils/common'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type DatatableOrderingOption } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport { DatatablePaginationKey, FilterConfigKey, FilterDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport AFilterWrapper from '@/domains/filters/components/AFilterWrapper.vue'\nimport AFilterString from '@/domains/filters/components/AFilterString.vue'\nimport { useFilterHelpers } from '@/domains/filters/composables/filterFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AssetDetailDialog from '@/domains/dam/assetDetail/components/AssetDetailDialog.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { ImageWidgetUploadConfigKey } from '@/domains/dam/imageWidget/utils/imageWidgetInkectionKeys'\nimport { useDamAcceptTypeAndSizeHelper } from '@/domains/dam/config/composables/acceptTypeAndSizeHelper'\nimport { useUploadQueueDialog } from '@/domains/dam/uploadQueue/composables/useUploadQueueDialog'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport UploadQueueDialog from '@/domains/dam/uploadQueue/components/UploadQueueDialog.vue'\nimport AFileInput from '@/domains/ui/file/components/AFileInput.vue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n queueKey: UploadQueueKey\n selectConfigs: DamConfigLicenceExtSystemReturnType[]\n inPodcast?: boolean | null\n configName?: string\n skipCurrentUserCheck?: boolean\n variant?: 'default' | 'inline'\n }>(),\n {\n inPodcast: null,\n configName: undefined,\n skipCurrentUserCheck: false,\n variant: 'default',\n }\n)\n\nconst sortModel = defineModel<number>('sort', { default: 1, required: false })\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst {\n damClient,\n loader,\n pagination,\n fetchNextPage,\n fetchNextPageInView,\n initStoreContext,\n detailLoading,\n readActiveItemAgain,\n fetchAssetListDebounced,\n reset,\n resetAssetList,\n} = useAssetSelectActions(damConfigName)\n// The list bar ordering reads this. Without it the dialog would use the host page's pagination.\nprovide(DatatablePaginationKey, pagination)\n\nconst { assetListEnabledFilters } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst { loadDamConfigAssetCustomFormElements, getDamConfigAssetCustomFormElements } = useDamConfigState(\n damClient,\n damConfigName\n)\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, dialog } = storeToRefs(assetDetailStore)\nconst assetSelectStore = useAssetSelectStore()\nconst { selectedLicenceId } = storeToRefs(assetSelectStore)\n\nconst { sidebarRight, closeSidebarRight, closeSidebarLeft } = useSidebar()\nconst { mdAndDown } = useDisplay()\nconst { showErrorT } = useAlerts()\n\nconst { filterData, filterConfig } = useAssetListFilter()\nprovide(FilterConfigKey, filterConfig)\nprovide(FilterDataKey, filterData)\n\nconst { resetFilter, submitFilter } = useFilterHelpers(filterData, filterConfig, {\n populateUrlParams: false,\n storeFiltersLocalStorage: false,\n})\n\nconst submitFilterAction = () => {\n submitFilter(pagination, fetchAssetListDebounced)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst resetFilterAction = () => {\n resetFilter(pagination, resetAssetList)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst onInit = () => {\n let selectConfigLocal = cloneDeep(props.selectConfigs)\n if (!props.skipCurrentUserCheck) {\n selectConfigLocal = filterAllowedImageWidgetSelectConfigs(props.selectConfigs, damConfigName)\n }\n if (selectConfigLocal.length === 0) {\n showErrorT('common.assetSelect.error.unallowedLicence')\n return\n }\n\n reset()\n initStoreContext(selectConfigLocal, props.assetType, props.inPodcast, false, 0, 0)\n fetchAssetListDebounced()\n}\n\nconst { gridView } = useGridView()\n\nconst componentComputed = computed(() => {\n switch (gridView.value) {\n case AssetSelectGridView.Table:\n return AssetSelectListTable\n default:\n case AssetSelectGridView.Masonry:\n case AssetSelectGridView.Thumbnail:\n return AssetSelectListTiles\n }\n})\n\nconst extId = computed(() => {\n if (props.selectConfigs.length === 0) return undefined\n if (selectedLicenceId.value > 0) {\n const found = props.selectConfigs.find((config) => config.licence === selectedLicenceId.value)\n if (found) return found.extSystem\n }\n return undefined\n})\n\nconst loadingSidebarRight = computed(() => {\n return customFormConfigLoading.value || detailLoading.value\n})\n\nconst { showErrorsDefault } = useAlerts()\nconst customFormConfigLoading = ref(true)\n// The custom fields config could not be read. The side panel shows\n// a notice instead of the asset form, which needs that config.\nconst customFormConfigFailed = ref(false)\n\nconst sortByChange = (option: DatatableOrderingOption) => {\n pagination.value.sortBy = null\n if (option.sortBy) {\n pagination.value.sortBy = { key: option.sortBy.key, order: option.sortBy.order }\n }\n fetchAssetListDebounced()\n}\n\n// Whether the open detail was opened by the side panel's \"edit\".\n// Queue row details are rendered here too, and closing one makes the panel reread its own asset.\nlet detailOfPanel = false\n\nconst onOpenEditDialog = () => {\n if (!asset.value) return\n detailOfPanel = true\n dialog.value = props.queueKey\n}\n\n// The panel rereads the asset its detail showed, not the one the list remembers.\n// They differ after a click made while the panel showed the asset it opened.\nconst onCloseEditDialog = (shown: AssetDetailItemDto | null) => {\n const ofPanel = detailOfPanel\n detailOfPanel = false\n readActiveItemAgain(ofPanel ? (shown?.id ?? null) : null)\n}\n\nconst imageWidgetUploadConfig = inject(ImageWidgetUploadConfigKey, undefined)\nconst uploadEnabled = computed(() => isDefined(imageWidgetUploadConfig) && isDefined(imageWidgetUploadConfig.value))\n\nconst { uploadQueueDialog, uploadQueueDialogSaving, stopQueueLeftBehind } = useUploadQueueDialog()\nconst uploadQueuesStore = useUploadQueuesStore()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { uploadSizes, uploadAccept } = useDamAcceptTypeAndSizeHelper(\n props.assetType,\n (imageWidgetUploadConfig?.value?.extSystemConfig ?? {}) as DamExtSystemConfig\n)\n\nconst uploadQueue = computed(() => {\n return uploadQueuesStore.getQueue(props.queueKey)\n})\n\nconst onFileInput = (files: File[]) => {\n if (files.length === 0) return\n // The page has its own entry points (button, window-wide dropzone) that bypass the dialog.\n // While this queue's dialog saves, no file is accepted. \"Save and apply\" empties\n // the queue, and a file queued meanwhile was lost half uploaded without notice.\n if (uploadQueueDialogSaving.value === props.queueKey) return\n const config = imageWidgetUploadConfig?.value\n if (!config) return\n stopQueueLeftBehind(props.queueKey)\n uploadQueuesStore.addByFiles(props.queueKey, config.extSystem, config.licence, files, damConfigName)\n uploadQueueDialog.value = props.queueKey\n}\n\nconst onUploadApply = () => {\n uploadQueueDialog.value = null\n uploadQueuesStore.stopUpload(props.queueKey)\n fetchAssetListDebounced()\n}\n\nwatch(\n extId,\n async (newValue) => {\n if (isUndefined(newValue)) return\n customFormConfigLoading.value = true\n customFormConfigFailed.value = false\n // Custom fields of the listed type: all types of the ext system if\n // none are loaded, else only this type if its read failed before.\n // Loaded types are not read again.\n const type = props.assetType\n if (isUndefined(getDamConfigAssetCustomFormElements(newValue, type))) {\n try {\n await loadDamConfigAssetCustomFormElements(\n newValue,\n getDamConfigAssetCustomFormElements(newValue) ? [type] : undefined\n )\n } catch (e) {\n showErrorsDefault(e)\n }\n // Ignore an answer for an ext system the list has since left.\n if (extId.value !== newValue) return\n customFormConfigFailed.value = isUndefined(getDamConfigAssetCustomFormElements(newValue, type))\n }\n customFormConfigLoading.value = false\n },\n { immediate: true }\n)\n\nwatch(selectedLicenceId, (newValue, oldValue) => {\n if (newValue === oldValue) return\n resetFilterAction()\n})\n\nonInit()\n\nonUnmounted(() => {\n reset()\n})\n</script>\n\n<template>\n <slot\n v-if=\"uploadEnabled\"\n name=\"upload-activator\"\n :on-file-input=\"onFileInput\"\n :upload-accept=\"uploadAccept\"\n :upload-sizes=\"uploadSizes\"\n >\n <AFileInput\n :file-input-key=\"uploadQueue?.fileInputKey\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n multiple\n @files-input=\"onFileInput\"\n >\n <template #activator=\"{ props: fileInputProps }\">\n <VBtn v-bind=\"fileInputProps\">\n {{ t('common.button.upload') }}\n </VBtn>\n </template>\n </AFileInput>\n </slot>\n <div\n class=\"subject-select__card\"\n :class=\"{ 'subject-select__card--inline': variant === 'inline' }\"\n >\n <div class=\"px-2 pt-2\">\n <slot name=\"filter\">\n <AFilterWrapper\n @submit=\"submitFilterAction\"\n @reset=\"resetFilterAction\"\n >\n <template #search>\n <AFilterString name=\"text\" />\n </template>\n <template #detail>\n <VRow v-if=\"selectConfigs.length > 1\">\n <VCol :cols=\"12\">\n <VSelect\n v-model=\"selectedLicenceId\"\n :label=\"t('common.assetSelect.filter.licence')\"\n :items=\"selectConfigs\"\n item-title=\"licenceName\"\n item-value=\"licence\"\n hide-details\n />\n </VCol>\n </VRow>\n <AssetSelectFilterForm\n use-config-layout\n hide-text-search\n :enabled-filters=\"assetListEnabledFilters\"\n :config-name=\"damConfigName\"\n />\n </template>\n </AFilterWrapper>\n </slot>\n </div>\n <AssetSelectListBar\n v-model:sort=\"sortModel\"\n hide-filter-toggle\n @sort-by-change=\"sortByChange\"\n />\n <div\n class=\"subject-select__main\"\n :class=\"{\n 'subject-select__main--sidebar-right-active': sidebarRight && !mdAndDown,\n }\"\n >\n <div class=\"subject-select__content\">\n <component\n :is=\"componentComputed\"\n v-if=\"extId\"\n :ext-system=\"extId\"\n />\n <div class=\"d-flex w-100 align-center justify-center pa-4\">\n <ABtnSecondary\n v-show=\"pagination.hasNextPage || loader\"\n v-intersect=\"fetchNextPageInView\"\n :loading=\"loader\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n {{ t('common.button.loadMore') }}\n </ABtnSecondary>\n </div>\n </div>\n <div\n v-if=\"!mdAndDown\"\n class=\"subject-select__sidebar-right border-s\"\n >\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"!asset\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.assetSelect.meta.info.noAssetSelected') }}\n </div>\n <div\n v-else\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </div>\n </div>\n <VDialog\n v-if=\"mdAndDown\"\n v-model=\"sidebarRight\"\n scrollable\n @update:model-value=\"\n (v) => {\n if (!v) closeSidebarRight()\n }\n \"\n >\n <VCard>\n <ADialogToolbar @cancel=\"closeSidebarRight\">\n {{ t('common.assetSelect.meta.info.toggle') }}\n </ADialogToolbar>\n <VCardText>\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"asset\"\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn @click=\"closeSidebarRight\">\n {{ t('common.button.close') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n </div>\n <AssetDetailDialog\n v-if=\"dialog === queueKey && extId\"\n :queue-key=\"queueKey\"\n :ext-system=\"extId\"\n @close=\"onCloseEditDialog\"\n />\n <UploadQueueDialog\n v-if=\"uploadEnabled && uploadQueueDialog === queueKey && imageWidgetUploadConfig\"\n :queue-key=\"queueKey\"\n :ext-system=\"imageWidgetUploadConfig.extSystem\"\n :licence-id=\"imageWidgetUploadConfig.licence\"\n :file-input-key=\"uploadQueue?.fileInputKey ?? -1\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n @apply=\"onUploadApply\"\n @files-input=\"onFileInput\"\n @drop=\"onFileInput\"\n />\n</template>\n"],"mappings":""}