@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":"AssetSelectListBar.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","_component_VToolbar","_normalizeClass","_withCtx","_renderSlot","_createElementVNode","_component_VBtn","_unref","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_createCommentVNode","_createElementBlock","_Fragment","_component_VDivider","_withModifiers","ADatatableOrdering","ADatatableOrdering_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AssetSelectListBar_vue_vue_type_script_setup_true_lang_default","\"sort\"","\"sortModifiers\"","__emit","props","__props","emit","sortModel","useModel","useI18n","useGridView","useDisplay","mdAndDown","isMobile","gridView","AssetSelectGridView","setGridView","AssetSelectGridViewDefault","useSidebar","assetSelectStore","useAssetSelectStore","useAssetListFilter","storeToRefs","isImageActive","computed","assetType","DamAssetType","isVideoActive","isPodcastActive","inPodcast","setFilterImage","setFilterVideo","setFilterPodcast","customSortOptions","SORT_BY_SCORE_BEST","SortOrder","SORT_BY_SCORE_DATE","onSortUpdate","current","pagination","option","onMounted","openBlock","createBlock","VToolbar","normalizeClass","withCtx","renderSlot","_ctx","createElementVNode","createCommentVNode","VBtn","unref","t","sidebarLeft","toggleSidebarLeft","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","createElementBlock","Fragment","VDivider","withModifiers","_cache","$event","sidebarRight","toggleSidebarRight"],"sources":["../../../../../src/domains/dam/assetSelect/components/AssetSelectListBar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport {\n AssetSelectGridView,\n AssetSelectGridViewDefault,\n useGridView,\n} from '@/domains/dam/assetSelect/composables/assetSelectGridView'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport { computed, onMounted, type Ref, watch } from 'vue'\nimport { useDisplay } from 'vuetify'\nimport { DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport ADatatableOrdering from '@/domains/filters/datatable/components/ADatatableOrdering.vue'\nimport {\n type DatatableOrderingOption,\n SORT_BY_SCORE_BEST,\n SORT_BY_SCORE_DATE,\n} from '@/domains/filters/datatable/utils/datatableColumns'\nimport { SortOrder } from '@/domains/api/types/SortOrder'\nimport { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport type { Pagination } from '@/domains/api/composables/pagination'\n\nconst props = withDefaults(\n defineProps<{\n showTypes?: boolean\n disableSort?: boolean\n hideFilterToggle?: boolean\n preselectAssetType?: DamAssetTypeType | undefined\n preselectInPodcast?: boolean | null | undefined\n }>(),\n {\n showTypes: false,\n disableSort: false,\n hideFilterToggle: false,\n preselectAssetType: undefined,\n preselectInPodcast: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'typeChange', data: { type: DamAssetTypeType; inPodcast: boolean | null }): void\n (e: 'sortByChange', data: DatatableOrderingOption): void\n}>()\n\nconst sortModel = defineModel<number>('sort', { default: 1, required: false })\n\nconst { t } = useI18n()\nconst { gridView, setGridView } = useGridView()\nconst { mdAndDown } = useDisplay()\n\nwatch(\n mdAndDown,\n (isMobile) => {\n if (isMobile && gridView.value === AssetSelectGridView.Table) {\n setGridView(AssetSelectGridViewDefault)\n }\n },\n { immediate: true }\n)\nconst { toggleSidebarLeft, sidebarLeft, toggleSidebarRight, sidebarRight } = useSidebar()\nconst assetSelectStore = useAssetSelectStore()\nconst { filterData } = useAssetListFilter()\nconst { assetType, inPodcast } = storeToRefs(assetSelectStore)\n\nconst isImageActive = computed(() => {\n return assetType.value === DamAssetType.Image\n})\n\nconst isVideoActive = computed(() => {\n return assetType.value === DamAssetType.Video\n})\n\nconst isPodcastActive = computed(() => {\n return assetType.value === DamAssetType.Audio && inPodcast.value === true\n})\n\nconst setFilterImage = () => {\n assetType.value = DamAssetType.Image\n inPodcast.value = null\n filterData.podcastIds = []\n emit('typeChange', { type: DamAssetType.Image, inPodcast: null })\n}\n\nconst setFilterVideo = () => {\n assetType.value = DamAssetType.Video\n inPodcast.value = null\n filterData.podcastIds = []\n emit('typeChange', { type: DamAssetType.Video, inPodcast: null })\n}\n\nconst setFilterPodcast = () => {\n assetType.value = DamAssetType.Audio\n inPodcast.value = true\n emit('typeChange', { type: DamAssetType.Audio, inPodcast: true })\n}\n\nconst customSortOptions = [\n {\n id: 3,\n titleT: 'common.system.datatable.ordering.mostRelevant',\n sortBy: { key: SORT_BY_SCORE_BEST, order: SortOrder.Desc },\n },\n {\n id: 1,\n titleT: 'common.system.datatable.ordering.mostRecent',\n sortBy: { key: SORT_BY_SCORE_DATE, order: SortOrder.Desc },\n },\n {\n id: 2,\n titleT: 'common.system.datatable.ordering.oldest',\n sortBy: { key: SORT_BY_SCORE_DATE, order: SortOrder.Asc },\n },\n]\n\n// The pagination is shared by every asset select, so a dialog can open on a sort chosen in another one.\n// The ordering then adopts it, and that adoption must not reach the parent as a change -- it would fetch again.\nconst onSortUpdate = (option: DatatableOrderingOption, pagination: Ref<Pagination>) => {\n const current = pagination.value.sortBy\n if (current?.key === option.sortBy?.key && current?.order === option.sortBy?.order) return\n emit('sortByChange', option)\n}\n\nonMounted(() => {\n if (props.preselectAssetType === DamAssetType.Audio && props.preselectInPodcast) {\n setFilterPodcast()\n return\n }\n if (props.preselectAssetType === DamAssetType.Video) {\n setFilterVideo()\n }\n})\n</script>\n\n<template>\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n :height=\"46\"\n elevation=\"0\"\n :class=\"hideFilterToggle ? '' : 'border-b'\"\n class=\"subject-select__second-bar\"\n >\n <slot name=\"second-bar\">\n <div class=\"d-flex flex-column w-100 px-1 align-center\">\n <div class=\"d-flex justify-space-between w-100 align-center\">\n <div class=\"d-flex align-center\">\n <VBtn\n v-if=\"!hideFilterToggle\"\n :aria-label=\"t('common.assetSelect.meta.filter.toggle')\"\n icon\n :width=\"30\"\n :height=\"30\"\n :active=\"sidebarLeft\"\n @click=\"toggleSidebarLeft\"\n >\n <VIcon\n icon=\"mdi-tune\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.filter.toggle') }}\n </VTooltip>\n </VBtn>\n <template v-if=\"showTypes\">\n <VDivider\n vertical\n class=\"ml-1 mr-2 my-2\"\n />\n <VBtn\n :aria-label=\"t('common.assetSelect.assetType.image')\"\n icon\n :width=\"30\"\n :height=\"30\"\n class=\"mr-1\"\n data-cy=\"button-image-types\"\n :active=\"isImageActive\"\n :color=\"isImageActive ? 'secondary' : ''\"\n :variant=\"isImageActive ? 'flat' : 'text'\"\n @click.stop=\"setFilterImage\"\n >\n <VIcon\n icon=\"mdi-image\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.assetType.image') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.assetSelect.assetType.video')\"\n icon\n :width=\"30\"\n :height=\"30\"\n class=\"mr-1\"\n data-cy=\"button-video-types\"\n :active=\"isVideoActive\"\n :color=\"isVideoActive ? 'secondary' : ''\"\n :variant=\"isVideoActive ? 'flat' : 'text'\"\n @click.stop=\"setFilterVideo\"\n >\n <VIcon\n icon=\"mdi-video\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.assetType.video') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.assetSelect.filter.inPodcast')\"\n icon\n :width=\"30\"\n :height=\"30\"\n data-cy=\"button-in-podcast-types\"\n :active=\"isPodcastActive\"\n :color=\"isPodcastActive ? 'secondary' : ''\"\n :variant=\"isPodcastActive ? 'flat' : 'text'\"\n @click.stop=\"setFilterPodcast\"\n >\n <VIcon\n icon=\"mdi-podcast\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.filter.inPodcast') }}\n </VTooltip>\n </VBtn>\n </template>\n <slot name=\"second-bar-left\" />\n </div>\n <div class=\"d-flex align-center\">\n <slot name=\"second-bar-right\" />\n <ADatatableOrdering\n v-if=\"!disableSort\"\n v-model=\"sortModel\"\n :custom-options=\"customSortOptions\"\n :pagination-update-custom-cb=\"onSortUpdate\"\n />\n <VBtn\n :aria-label=\"t('common.assetSelect.meta.grid.masonry')\"\n size=\"x-small\"\n icon\n class=\"text-medium-emphasis\"\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Masonry)\"\n >\n <VIcon icon=\"mdi-view-compact\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.masonry') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.assetSelect.meta.grid.thumbnail')\"\n icon\n class=\"text-medium-emphasis\"\n size=\"x-small\"\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Thumbnail)\"\n >\n <VIcon icon=\"mdi-view-grid\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.thumbnail') }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-if=\"!mdAndDown\"\n :aria-label=\"t('common.assetSelect.meta.grid.table')\"\n size=\"x-small\"\n icon\n class=\"text-medium-emphasis\"\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Table)\"\n >\n <VIcon icon=\"mdi-view-headline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.table') }}\n </VTooltip>\n </VBtn>\n <VDivider\n vertical\n class=\"mx-1 my-2\"\n />\n <VBtn\n :aria-label=\"t('common.assetSelect.meta.info.toggle')\"\n icon\n class=\"text-medium-emphasis\"\n :width=\"30\"\n :height=\"30\"\n :active=\"sidebarRight\"\n @click=\"toggleSidebarRight\"\n >\n <VIcon\n icon=\"mdi-information-outline\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.info.toggle') }}\n </VTooltip>\n </VBtn>\n </div>\n </div>\n </div>\n </slot>\n </VToolbar>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AssetSelectListBar.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","_component_VToolbar","_normalizeClass","_withCtx","_renderSlot","_createElementVNode","_component_VBtn","_unref","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_createCommentVNode","_createElementBlock","_Fragment","_component_VDivider","_withModifiers","ADatatableOrdering","ADatatableOrdering_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AssetSelectListBar_vue_vue_type_script_setup_true_lang_default","\"sort\"","\"sortModifiers\"","__emit","props","__props","emit","sortModel","useModel","useI18n","useGridView","useDisplay","mdAndDown","isMobile","gridView","AssetSelectGridView","setGridView","AssetSelectGridViewDefault","useSidebar","assetSelectStore","useAssetSelectStore","useAssetListFilter","storeToRefs","isImageActive","computed","assetType","DamAssetType","isVideoActive","isPodcastActive","inPodcast","setFilterImage","setFilterVideo","setFilterPodcast","customSortOptions","SORT_BY_SCORE_BEST","SortOrder","SORT_BY_SCORE_DATE","onSortUpdate","current","pagination","option","onMounted","openBlock","createBlock","VToolbar","normalizeClass","withCtx","renderSlot","_ctx","createElementVNode","createCommentVNode","VBtn","unref","t","sidebarLeft","toggleSidebarLeft","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","createElementBlock","Fragment","VDivider","withModifiers","_cache","$event","sidebarRight","toggleSidebarRight"],"sources":["../../../../../src/domains/dam/assetSelect/components/AssetSelectListBar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport {\n AssetSelectGridView,\n AssetSelectGridViewDefault,\n useGridView,\n} from '@/domains/dam/assetSelect/composables/assetSelectGridView'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport { computed, onMounted, type Ref, watch } from 'vue'\nimport { useDisplay } from 'vuetify'\nimport { DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport ADatatableOrdering from '@/domains/filters/datatable/components/ADatatableOrdering.vue'\nimport {\n type DatatableOrderingOption,\n SORT_BY_SCORE_BEST,\n SORT_BY_SCORE_DATE,\n} from '@/domains/filters/datatable/utils/datatableColumns'\nimport { SortOrder } from '@/domains/api/types/SortOrder'\nimport { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport type { Pagination } from '@/domains/api/composables/pagination'\n\nconst props = withDefaults(\n defineProps<{\n showTypes?: boolean\n disableSort?: boolean\n hideFilterToggle?: boolean\n preselectAssetType?: DamAssetTypeType | undefined\n preselectInPodcast?: boolean | null | undefined\n }>(),\n {\n showTypes: false,\n disableSort: false,\n hideFilterToggle: false,\n preselectAssetType: undefined,\n preselectInPodcast: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'typeChange', data: { type: DamAssetTypeType; inPodcast: boolean | null }): void\n (e: 'sortByChange', data: DatatableOrderingOption): void\n}>()\n\nconst sortModel = defineModel<number>('sort', { default: 1, required: false })\n\nconst { t } = useI18n()\nconst { gridView, setGridView } = useGridView()\nconst { mdAndDown } = useDisplay()\n\nwatch(\n mdAndDown,\n (isMobile) => {\n if (isMobile && gridView.value === AssetSelectGridView.Table) {\n setGridView(AssetSelectGridViewDefault)\n }\n },\n { immediate: true }\n)\nconst { toggleSidebarLeft, sidebarLeft, toggleSidebarRight, sidebarRight } = useSidebar()\nconst assetSelectStore = useAssetSelectStore()\nconst { filterData } = useAssetListFilter()\nconst { assetType, inPodcast } = storeToRefs(assetSelectStore)\n\nconst isImageActive = computed(() => {\n return assetType.value === DamAssetType.Image\n})\n\nconst isVideoActive = computed(() => {\n return assetType.value === DamAssetType.Video\n})\n\nconst isPodcastActive = computed(() => {\n return assetType.value === DamAssetType.Audio && inPodcast.value === true\n})\n\nconst setFilterImage = () => {\n assetType.value = DamAssetType.Image\n inPodcast.value = null\n filterData.podcastIds = []\n emit('typeChange', { type: DamAssetType.Image, inPodcast: null })\n}\n\nconst setFilterVideo = () => {\n assetType.value = DamAssetType.Video\n inPodcast.value = null\n filterData.podcastIds = []\n emit('typeChange', { type: DamAssetType.Video, inPodcast: null })\n}\n\nconst setFilterPodcast = () => {\n assetType.value = DamAssetType.Audio\n inPodcast.value = true\n emit('typeChange', { type: DamAssetType.Audio, inPodcast: true })\n}\n\nconst customSortOptions = [\n {\n id: 3,\n titleT: 'common.system.datatable.ordering.mostRelevant',\n sortBy: { key: SORT_BY_SCORE_BEST, order: SortOrder.Desc },\n },\n {\n id: 1,\n titleT: 'common.system.datatable.ordering.mostRecent',\n sortBy: { key: SORT_BY_SCORE_DATE, order: SortOrder.Desc },\n },\n {\n id: 2,\n titleT: 'common.system.datatable.ordering.oldest',\n sortBy: { key: SORT_BY_SCORE_DATE, order: SortOrder.Asc },\n },\n]\n\n// Pagination is shared by every asset select, so a dialog can open with a sort chosen in another one.\n// The ordering then adopts it. That adoption must not be emitted as a change, or the parent would fetch again.\nconst onSortUpdate = (option: DatatableOrderingOption, pagination: Ref<Pagination>) => {\n const current = pagination.value.sortBy\n if (current?.key === option.sortBy?.key && current?.order === option.sortBy?.order) return\n emit('sortByChange', option)\n}\n\nonMounted(() => {\n if (props.preselectAssetType === DamAssetType.Audio && props.preselectInPodcast) {\n setFilterPodcast()\n return\n }\n if (props.preselectAssetType === DamAssetType.Video) {\n setFilterVideo()\n }\n})\n</script>\n\n<template>\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n :height=\"46\"\n elevation=\"0\"\n :class=\"hideFilterToggle ? '' : 'border-b'\"\n class=\"subject-select__second-bar\"\n >\n <slot name=\"second-bar\">\n <div class=\"d-flex flex-column w-100 px-1 align-center\">\n <div class=\"d-flex justify-space-between w-100 align-center\">\n <div class=\"d-flex align-center\">\n <VBtn\n v-if=\"!hideFilterToggle\"\n :aria-label=\"t('common.assetSelect.meta.filter.toggle')\"\n icon\n :width=\"30\"\n :height=\"30\"\n :active=\"sidebarLeft\"\n @click=\"toggleSidebarLeft\"\n >\n <VIcon\n icon=\"mdi-tune\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.filter.toggle') }}\n </VTooltip>\n </VBtn>\n <template v-if=\"showTypes\">\n <VDivider\n vertical\n class=\"ml-1 mr-2 my-2\"\n />\n <VBtn\n :aria-label=\"t('common.assetSelect.assetType.image')\"\n icon\n :width=\"30\"\n :height=\"30\"\n class=\"mr-1\"\n data-cy=\"button-image-types\"\n :active=\"isImageActive\"\n :color=\"isImageActive ? 'secondary' : ''\"\n :variant=\"isImageActive ? 'flat' : 'text'\"\n @click.stop=\"setFilterImage\"\n >\n <VIcon\n icon=\"mdi-image\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.assetType.image') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.assetSelect.assetType.video')\"\n icon\n :width=\"30\"\n :height=\"30\"\n class=\"mr-1\"\n data-cy=\"button-video-types\"\n :active=\"isVideoActive\"\n :color=\"isVideoActive ? 'secondary' : ''\"\n :variant=\"isVideoActive ? 'flat' : 'text'\"\n @click.stop=\"setFilterVideo\"\n >\n <VIcon\n icon=\"mdi-video\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.assetType.video') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.assetSelect.filter.inPodcast')\"\n icon\n :width=\"30\"\n :height=\"30\"\n data-cy=\"button-in-podcast-types\"\n :active=\"isPodcastActive\"\n :color=\"isPodcastActive ? 'secondary' : ''\"\n :variant=\"isPodcastActive ? 'flat' : 'text'\"\n @click.stop=\"setFilterPodcast\"\n >\n <VIcon\n icon=\"mdi-podcast\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.filter.inPodcast') }}\n </VTooltip>\n </VBtn>\n </template>\n <slot name=\"second-bar-left\" />\n </div>\n <div class=\"d-flex align-center\">\n <slot name=\"second-bar-right\" />\n <ADatatableOrdering\n v-if=\"!disableSort\"\n v-model=\"sortModel\"\n :custom-options=\"customSortOptions\"\n :pagination-update-custom-cb=\"onSortUpdate\"\n />\n <VBtn\n :aria-label=\"t('common.assetSelect.meta.grid.masonry')\"\n size=\"x-small\"\n icon\n class=\"text-medium-emphasis\"\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Masonry)\"\n >\n <VIcon icon=\"mdi-view-compact\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.masonry') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.assetSelect.meta.grid.thumbnail')\"\n icon\n class=\"text-medium-emphasis\"\n size=\"x-small\"\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Thumbnail)\"\n >\n <VIcon icon=\"mdi-view-grid\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.thumbnail') }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-if=\"!mdAndDown\"\n :aria-label=\"t('common.assetSelect.meta.grid.table')\"\n size=\"x-small\"\n icon\n class=\"text-medium-emphasis\"\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Table)\"\n >\n <VIcon icon=\"mdi-view-headline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.table') }}\n </VTooltip>\n </VBtn>\n <VDivider\n vertical\n class=\"mx-1 my-2\"\n />\n <VBtn\n :aria-label=\"t('common.assetSelect.meta.info.toggle')\"\n icon\n class=\"text-medium-emphasis\"\n :width=\"30\"\n :height=\"30\"\n :active=\"sidebarRight\"\n @click=\"toggleSidebarRight\"\n >\n <VIcon\n icon=\"mdi-information-outline\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.info.toggle') }}\n </VTooltip>\n </VBtn>\n </div>\n </div>\n </div>\n </slot>\n </VToolbar>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetSelectTableRowItem.js","names":["_sfc_main","AssetSelectTableRowItem_vue_vue_type_script_setup_true_lang_default","AssetSelectTableRowItem_default"],"sources":["../../../../../src/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { AssetSelectListItem } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetItemActions } from '@/domains/dam/assetSelect/composables/assetSelectItemActions'\nimport AssetImagePreview from '@/domains/dam/assetSelect/components/AssetImagePreview.vue'\nimport type { DocId } from '@/shared/types/common'\nimport { prettyBytes } from '@/shared/utils/file'\nimport ADatetime from '@/domains/ui/datetime/components/ADatetime.vue'\nimport { toRef } from 'vue'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n index: number\n item: AssetSelectListItem\n showMetaIcons?: boolean\n }>(),\n {\n showMetaIcons: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'itemClick', data: { assetId: DocId; index: number }): void\n}>()\n\nconst { t } = useI18n()\n\nconst IMAGE_HEIGHT = 72\nconst IMAGE_WIDTH = 128\n\nconst item = toRef(props, 'item')\n\nconst { asset, tableImageProperties, assetType, assetStatus } = useAssetItemActions(item)\n\nconst onItemClick = () => {\n emit('itemClick', { assetId: asset.value.id, index: props.index })\n}\n</script>\n\n<template>\n <tr\n class=\"a-datatable__row\"\n :class=\"{\n 'a-datatable__row--selected': item.selected,\n 'asset-list-table__item--active': item.active,\n }\"\n @click.stop.exact=\"onItemClick\"\n >\n <td>\n <VIcon\n v-if=\"item.selected\"\n icon=\"mdi-checkbox-outline\"\n :size=\"20\"\n />\n <VIcon\n v-else\n icon=\"mdi-checkbox-blank-outline\"\n :size=\"20\"\n />\n </td>\n <td>\n <AssetImagePreview\n :asset-type=\"assetType\"\n :asset-status=\"assetStatus\"\n :src=\"tableImageProperties.url\"\n :background-color=\"tableImageProperties.bgColor\"\n :width=\"IMAGE_WIDTH\"\n :height=\"IMAGE_HEIGHT\"\n :icon-size=\"20\"\n :fallback-height=\"IMAGE_HEIGHT\"\n />\n </td>\n <td>\n {{ asset.texts.displayTitle || t('common.damImage.asset.list.noTitle') }}\n </td>\n <td>\n <ADatetime :date-time=\"asset.createdAt\" />\n </td>\n <td>\n <AssetImageMetaIcons\n :asset-file-properties=\"item.asset.assetFileProperties\"\n :asset-type=\"assetType\"\n disable-absolute\n />\n </td>\n <td>\n {{ asset.mainFile?.fileAttributes.mimeType }}\n </td>\n <td>\n {{ prettyBytes(asset.mainFile?.fileAttributes.size || 0) }}\n </td>\n </tr>\n</template>\n\n<style lang=\"scss\">\n// The row of the asset the side panel shows, framed as the active tile is.\n.asset-list-table__item--active {\n outline: 1px solid blue;\n outline-offset: -1px;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"AssetSelectTableRowItem.js","names":["_sfc_main","AssetSelectTableRowItem_vue_vue_type_script_setup_true_lang_default","AssetSelectTableRowItem_default"],"sources":["../../../../../src/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { AssetSelectListItem } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetItemActions } from '@/domains/dam/assetSelect/composables/assetSelectItemActions'\nimport AssetImagePreview from '@/domains/dam/assetSelect/components/AssetImagePreview.vue'\nimport type { DocId } from '@/shared/types/common'\nimport { prettyBytes } from '@/shared/utils/file'\nimport ADatetime from '@/domains/ui/datetime/components/ADatetime.vue'\nimport { toRef } from 'vue'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n index: number\n item: AssetSelectListItem\n showMetaIcons?: boolean\n }>(),\n {\n showMetaIcons: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'itemClick', data: { assetId: DocId; index: number }): void\n}>()\n\nconst { t } = useI18n()\n\nconst IMAGE_HEIGHT = 72\nconst IMAGE_WIDTH = 128\n\nconst item = toRef(props, 'item')\n\nconst { asset, tableImageProperties, assetType, assetStatus } = useAssetItemActions(item)\n\nconst onItemClick = () => {\n emit('itemClick', { assetId: asset.value.id, index: props.index })\n}\n</script>\n\n<template>\n <tr\n class=\"a-datatable__row\"\n :class=\"{\n 'a-datatable__row--selected': item.selected,\n 'asset-list-table__item--active': item.active,\n }\"\n @click.stop.exact=\"onItemClick\"\n >\n <td>\n <VIcon\n v-if=\"item.selected\"\n icon=\"mdi-checkbox-outline\"\n :size=\"20\"\n />\n <VIcon\n v-else\n icon=\"mdi-checkbox-blank-outline\"\n :size=\"20\"\n />\n </td>\n <td>\n <AssetImagePreview\n :asset-type=\"assetType\"\n :asset-status=\"assetStatus\"\n :src=\"tableImageProperties.url\"\n :background-color=\"tableImageProperties.bgColor\"\n :width=\"IMAGE_WIDTH\"\n :height=\"IMAGE_HEIGHT\"\n :icon-size=\"20\"\n :fallback-height=\"IMAGE_HEIGHT\"\n />\n </td>\n <td>\n {{ asset.texts.displayTitle || t('common.damImage.asset.list.noTitle') }}\n </td>\n <td>\n <ADatetime :date-time=\"asset.createdAt\" />\n </td>\n <td>\n <AssetImageMetaIcons\n :asset-file-properties=\"item.asset.assetFileProperties\"\n :asset-type=\"assetType\"\n disable-absolute\n />\n </td>\n <td>\n {{ asset.mainFile?.fileAttributes.mimeType }}\n </td>\n <td>\n {{ prettyBytes(asset.mainFile?.fileAttributes.size || 0) }}\n </td>\n </tr>\n</template>\n\n<style lang=\"scss\">\n// Row of the asset shown in the side panel, outlined like the active tile.\n.asset-list-table__item--active {\n outline: 1px solid blue;\n outline-offset: -1px;\n}\n</style>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_createElementVNode","_createBlock","_component_VIcon","_createVNode","AssetImagePreview","_unref","_toDisplayString","ADatetime","AssetImageMetaIcons","ADatetime_default","AssetImageMetaIcons_default","AssetImagePreview_default","IMAGE_HEIGHT","IMAGE_WIDTH","AssetSelectTableRowItem_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","useI18n","item","toRef","useAssetItemActions","onItemClick","asset","openBlock","createElementBlock","normalizeClass","withModifiers","createElementVNode","createBlock","VIcon","createVNode","unref","assetType","assetStatus","tableImageProperties","toDisplayString","t","prettyBytes"],"sources":["../../../../../src/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { AssetSelectListItem } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetItemActions } from '@/domains/dam/assetSelect/composables/assetSelectItemActions'\nimport AssetImagePreview from '@/domains/dam/assetSelect/components/AssetImagePreview.vue'\nimport type { DocId } from '@/shared/types/common'\nimport { prettyBytes } from '@/shared/utils/file'\nimport ADatetime from '@/domains/ui/datetime/components/ADatetime.vue'\nimport { toRef } from 'vue'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n index: number\n item: AssetSelectListItem\n showMetaIcons?: boolean\n }>(),\n {\n showMetaIcons: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'itemClick', data: { assetId: DocId; index: number }): void\n}>()\n\nconst { t } = useI18n()\n\nconst IMAGE_HEIGHT = 72\nconst IMAGE_WIDTH = 128\n\nconst item = toRef(props, 'item')\n\nconst { asset, tableImageProperties, assetType, assetStatus } = useAssetItemActions(item)\n\nconst onItemClick = () => {\n emit('itemClick', { assetId: asset.value.id, index: props.index })\n}\n</script>\n\n<template>\n <tr\n class=\"a-datatable__row\"\n :class=\"{\n 'a-datatable__row--selected': item.selected,\n 'asset-list-table__item--active': item.active,\n }\"\n @click.stop.exact=\"onItemClick\"\n >\n <td>\n <VIcon\n v-if=\"item.selected\"\n icon=\"mdi-checkbox-outline\"\n :size=\"20\"\n />\n <VIcon\n v-else\n icon=\"mdi-checkbox-blank-outline\"\n :size=\"20\"\n />\n </td>\n <td>\n <AssetImagePreview\n :asset-type=\"assetType\"\n :asset-status=\"assetStatus\"\n :src=\"tableImageProperties.url\"\n :background-color=\"tableImageProperties.bgColor\"\n :width=\"IMAGE_WIDTH\"\n :height=\"IMAGE_HEIGHT\"\n :icon-size=\"20\"\n :fallback-height=\"IMAGE_HEIGHT\"\n />\n </td>\n <td>\n {{ asset.texts.displayTitle || t('common.damImage.asset.list.noTitle') }}\n </td>\n <td>\n <ADatetime :date-time=\"asset.createdAt\" />\n </td>\n <td>\n <AssetImageMetaIcons\n :asset-file-properties=\"item.asset.assetFileProperties\"\n :asset-type=\"assetType\"\n disable-absolute\n />\n </td>\n <td>\n {{ asset.mainFile?.fileAttributes.mimeType }}\n </td>\n <td>\n {{ prettyBytes(asset.mainFile?.fileAttributes.size || 0) }}\n </td>\n </tr>\n</template>\n\n<style lang=\"scss\">\n// The row of the asset the side panel shows, framed as the active tile is.\n.asset-list-table__item--active {\n outline: 1px solid blue;\n outline-offset: -1px;\n}\n</style>\n"],"mappings":";;;;;;;;;AA4BA,IAAMgB,IAAe,IACfC,IAAc,K;;;;;;;;;;;;EAlBpB,IAAMG,IAAQC,GAWRC,IAAOH,GAIP,EAAE,SAAMI,EAAQ,GAKhBC,IAAOC,EAAML,GAAO,MAAM,GAE1B,EAAE,UAAO,yBAAsB,cAAW,mBAAgBM,EAAoBF,CAAI,GAElFG,UAAoB;GACxB,EAAK,aAAa;IAAE,SAASC,EAAM,MAAM;IAAI,OAAOR,EAAM;GAAM,CAAC;EACnE;E,kBAIEpB,EAAA,GAAAC,EAmDK,MAAA;GAlDH,OAAKC,EAAA,CAAC,oBAAkB;IACsB,8BAAAsB,EAAA,MAAK;IAAkD,kCAAAA,EAAA,MAAK;;GAIzG,SAAKrB,EAAawB,GAAW,CAAA,QAAA,OAAA,CAAA;;GAE9BvB,EAWK,MAAA,MAAA,CATKoB,EAAA,MAAK,YADbxB,EAAA,GAAAK,EAIEC,GAAA;;IAFA,MAAK;IACJ,MAAM;G,OAETN,EAAA,GAAAK,EAIEC,GAAA;;IAFA,MAAK;IACJ,MAAM;;GAGXF,EAWK,MAAA,MAAA,CAVHG,EASEC,GAAA;IARC,cAAYC,EAAA6B,CAAA;IACZ,gBAAc7B,EAAA8B,CAAA;IACd,KAAK9B,EAAA+B,CAAA,CAAoB,CAAC;IAC1B,oBAAkB/B,EAAA+B,CAAA,CAAoB,CAAC;IACvC,OAAOvB;IACP,QAAQD;IACR,aAAW;IACX,mBAAiBA;;;;;;;GAGtBZ,EAEK,MAAA,MAAAM,EADAD,EAAAmB,CAAA,CAAK,CAAC,MAAM,gBAAgBnB,EAAAiC,CAAA,CAAC,CAAA,oCAAA,CAAA,GAAA,CAAA;GAElCtC,EAEK,MAAA,MAAA,CADHG,EAA0CI,GAAA,EAA9B,aAAWF,EAAAmB,CAAA,CAAK,CAAC,U;GAE/BxB,EAMK,MAAA,MAAA,CALHG,EAIEK,GAAA;IAHC,yBAAuBY,EAAA,MAAK,MAAM;IAClC,cAAYf,EAAA6B,CAAA;IACb,oBAAA;;GAGJlC,EAEK,MAAA,MAAAM,EADAD,EAAAmB,CAAA,CAAK,CAAC,UAAU,eAAe,QAAQ,GAAA,CAAA;GAE5CxB,EAEK,MAAA,MAAAM,EADAD,EAAAkC,CAAA,CAAW,CAAClC,EAAAmB,CAAA,CAAK,CAAC,UAAU,eAAe,QAAI,CAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_createElementVNode","_createBlock","_component_VIcon","_createVNode","AssetImagePreview","_unref","_toDisplayString","ADatetime","AssetImageMetaIcons","ADatetime_default","AssetImageMetaIcons_default","AssetImagePreview_default","IMAGE_HEIGHT","IMAGE_WIDTH","AssetSelectTableRowItem_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","useI18n","item","toRef","useAssetItemActions","onItemClick","asset","openBlock","createElementBlock","normalizeClass","withModifiers","createElementVNode","createBlock","VIcon","createVNode","unref","assetType","assetStatus","tableImageProperties","toDisplayString","t","prettyBytes"],"sources":["../../../../../src/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { AssetSelectListItem } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetItemActions } from '@/domains/dam/assetSelect/composables/assetSelectItemActions'\nimport AssetImagePreview from '@/domains/dam/assetSelect/components/AssetImagePreview.vue'\nimport type { DocId } from '@/shared/types/common'\nimport { prettyBytes } from '@/shared/utils/file'\nimport ADatetime from '@/domains/ui/datetime/components/ADatetime.vue'\nimport { toRef } from 'vue'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n index: number\n item: AssetSelectListItem\n showMetaIcons?: boolean\n }>(),\n {\n showMetaIcons: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'itemClick', data: { assetId: DocId; index: number }): void\n}>()\n\nconst { t } = useI18n()\n\nconst IMAGE_HEIGHT = 72\nconst IMAGE_WIDTH = 128\n\nconst item = toRef(props, 'item')\n\nconst { asset, tableImageProperties, assetType, assetStatus } = useAssetItemActions(item)\n\nconst onItemClick = () => {\n emit('itemClick', { assetId: asset.value.id, index: props.index })\n}\n</script>\n\n<template>\n <tr\n class=\"a-datatable__row\"\n :class=\"{\n 'a-datatable__row--selected': item.selected,\n 'asset-list-table__item--active': item.active,\n }\"\n @click.stop.exact=\"onItemClick\"\n >\n <td>\n <VIcon\n v-if=\"item.selected\"\n icon=\"mdi-checkbox-outline\"\n :size=\"20\"\n />\n <VIcon\n v-else\n icon=\"mdi-checkbox-blank-outline\"\n :size=\"20\"\n />\n </td>\n <td>\n <AssetImagePreview\n :asset-type=\"assetType\"\n :asset-status=\"assetStatus\"\n :src=\"tableImageProperties.url\"\n :background-color=\"tableImageProperties.bgColor\"\n :width=\"IMAGE_WIDTH\"\n :height=\"IMAGE_HEIGHT\"\n :icon-size=\"20\"\n :fallback-height=\"IMAGE_HEIGHT\"\n />\n </td>\n <td>\n {{ asset.texts.displayTitle || t('common.damImage.asset.list.noTitle') }}\n </td>\n <td>\n <ADatetime :date-time=\"asset.createdAt\" />\n </td>\n <td>\n <AssetImageMetaIcons\n :asset-file-properties=\"item.asset.assetFileProperties\"\n :asset-type=\"assetType\"\n disable-absolute\n />\n </td>\n <td>\n {{ asset.mainFile?.fileAttributes.mimeType }}\n </td>\n <td>\n {{ prettyBytes(asset.mainFile?.fileAttributes.size || 0) }}\n </td>\n </tr>\n</template>\n\n<style lang=\"scss\">\n// Row of the asset shown in the side panel, outlined like the active tile.\n.asset-list-table__item--active {\n outline: 1px solid blue;\n outline-offset: -1px;\n}\n</style>\n"],"mappings":";;;;;;;;;AA4BA,IAAMgB,IAAe,IACfC,IAAc,K;;;;;;;;;;;;EAlBpB,IAAMG,IAAQC,GAWRC,IAAOH,GAIP,EAAE,SAAMI,EAAQ,GAKhBC,IAAOC,EAAML,GAAO,MAAM,GAE1B,EAAE,UAAO,yBAAsB,cAAW,mBAAgBM,EAAoBF,CAAI,GAElFG,UAAoB;GACxB,EAAK,aAAa;IAAE,SAASC,EAAM,MAAM;IAAI,OAAOR,EAAM;GAAM,CAAC;EACnE;E,kBAIEpB,EAAA,GAAAC,EAmDK,MAAA;GAlDH,OAAKC,EAAA,CAAC,oBAAkB;IACsB,8BAAAsB,EAAA,MAAK;IAAkD,kCAAAA,EAAA,MAAK;;GAIzG,SAAKrB,EAAawB,GAAW,CAAA,QAAA,OAAA,CAAA;;GAE9BvB,EAWK,MAAA,MAAA,CATKoB,EAAA,MAAK,YADbxB,EAAA,GAAAK,EAIEC,GAAA;;IAFA,MAAK;IACJ,MAAM;G,OAETN,EAAA,GAAAK,EAIEC,GAAA;;IAFA,MAAK;IACJ,MAAM;;GAGXF,EAWK,MAAA,MAAA,CAVHG,EASEC,GAAA;IARC,cAAYC,EAAA6B,CAAA;IACZ,gBAAc7B,EAAA8B,CAAA;IACd,KAAK9B,EAAA+B,CAAA,CAAoB,CAAC;IAC1B,oBAAkB/B,EAAA+B,CAAA,CAAoB,CAAC;IACvC,OAAOvB;IACP,QAAQD;IACR,aAAW;IACX,mBAAiBA;;;;;;;GAGtBZ,EAEK,MAAA,MAAAM,EADAD,EAAAmB,CAAA,CAAK,CAAC,MAAM,gBAAgBnB,EAAAiC,CAAA,CAAC,CAAA,oCAAA,CAAA,GAAA,CAAA;GAElCtC,EAEK,MAAA,MAAA,CADHG,EAA0CI,GAAA,EAA9B,aAAWF,EAAAmB,CAAA,CAAK,CAAC,U;GAE/BxB,EAMK,MAAA,MAAA,CALHG,EAIEK,GAAA;IAHC,yBAAuBY,EAAA,MAAK,MAAM;IAClC,cAAYf,EAAA6B,CAAA;IACb,oBAAA;;GAGJlC,EAEK,MAAA,MAAAM,EADAD,EAAAmB,CAAA,CAAK,CAAC,UAAU,eAAe,QAAQ,GAAA,CAAA;GAE5CxB,EAEK,MAAA,MAAAM,EADAD,EAAAkC,CAAA,CAAW,CAAClC,EAAAmB,CAAA,CAAK,CAAC,UAAU,eAAe,QAAI,CAAA,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"assetSelectListActions.js","names":["usePagination","SORT_BY_SCORE_DATE","detailLoading","ref","listController","detailRequest","listTurn","scrolledTo","element","button","overflowY","useAssetSelectActions","useCommonAdminCoreDamOptions","configName","failedInListTurn","scrolledAtLeave","assetSelectStore","useAssetSelectStore","storeToRefs","assetDetailStore","useAssetDetailStore","useSidebar","useDisplay","useAlerts","useAssetListFilter","resolveTypeFilter","inPodcast","DamAssetType","assetType","forgetAssetNotShown","isNull","item","startListAnew","hasNextPage","pagination","readListAfterPause","useDebounceFn","fetchAssetList","fetchAssetListDebounced","useFetchAssetList","damClient","endPointAsset","controller","items","execute","filterData","filterConfig","error","showErrorsDefault","fetchNextPage","page","fetchNextPageInView","entries","isIntersecting","useDamCachedAuthors","useDamCachedKeywords","useDamCachedUsers","onItemClick","useExtSystemIdForCached","mdAndDown","openSidebarRight","data","extSystem","request","fetchAsset","addToCachedAuthors","asset","addToCachedKeywords","showFileInfoEnabled","addToCachedUsers","fetchCachedAuthors","fetchCachedKeywords","fetchCachedUsers","readActiveItemAgain","shown","assetId","useFilterClearHelpers","resetAssetList","clearAll","giveUpDetailRead","selectConfig","singleMode","minCount","maxCount"],"sources":["../../../../../src/domains/dam/assetSelect/composables/assetSelectListActions.ts"],"sourcesContent":["import { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport { type AssetSelectListItem, useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport type { Ref } from 'vue'\nimport { ref } from 'vue'\nimport { DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { usePagination } from '@/domains/api/composables/pagination'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { fetchAsset, useFetchAssetList } from '@/domains/dam/api/damAssetApi'\nimport type { DamConfigLicenceExtSystemReturnType } from '@/domains/dam/types/DamConfig'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport { useDamCachedKeywords } from '@/domains/dam/keyword/composables/cachedKeywords'\nimport { useExtSystemIdForCached } from '@/domains/dam/composables/extSystemIdForCached'\nimport { isNull } from '@/shared/utils/common'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport { SORT_BY_SCORE_DATE } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\nimport { useDebounceFn } from '@vueuse/core'\nimport { useDisplay } from 'vuetify'\n\nconst { pagination } = usePagination(SORT_BY_SCORE_DATE)\nconst detailLoading = ref(false)\n// Shared like the pagination: every asset select part asks through here, and only the last ask counts.\nlet listController: AbortController | undefined\nlet detailRequest = 0\n// Counts the lists that begin anew: what a list remembers of a further page that failed is that list's alone.\nlet listTurn = 0\n\n/**\n * The scrolling the button of \"Load more\" is in, where it stands: the nearest element above it that scrolls, else the\n * page. A layout that changes moves the button without it.\n */\nconst scrolledTo = (button: Element | undefined) => {\n for (let element = button?.parentElement; element; element = element.parentElement) {\n const { overflowY } = getComputedStyle(element)\n if ((overflowY === 'auto' || overflowY === 'scroll') && element.scrollHeight > element.clientHeight) {\n return element.scrollTop\n }\n }\n return document.scrollingElement?.scrollTop ?? 0\n}\n\nexport function useAssetSelectActions(configName: string) {\n const { damClient, endPointAsset, showFileInfoEnabled } = useCommonAdminCoreDamOptions(configName)\n // A further page of the list of this \"Load more\" has failed (the list of `failedInListTurn`), and the button does not\n // ask for it again by coming into view: a press does, or the button coming into view once more after the list was\n // scrolled while it was out of view. It was one for the page, and the button that left the view by a change of the\n // layout alone (a panel opened beside the list) asked again as it came back.\n let failedInListTurn: number | null = null\n // Where the scrolling of the list stood as the button left the view.\n let scrolledAtLeave: number | null = null\n\n const assetSelectStore = useAssetSelectStore()\n const { selectedCount, selectedAssets, assetListItems, loader } = storeToRefs(assetSelectStore)\n const assetDetailStore = useAssetDetailStore()\n const { openSidebarRight } = useSidebar()\n const { mdAndDown } = useDisplay()\n\n const { showErrorsDefault } = useAlerts()\n const { filterData, filterConfig } = useAssetListFilter()\n\n const resolveTypeFilter = (assetType: DamAssetTypeType, inPodcast: boolean | null) => {\n if (inPodcast === true) {\n filterData.type = [DamAssetType.Audio]\n filterData.inPodcast = true\n return\n }\n filterData.type = [assetType]\n filterData.inPodcast = null\n }\n\n /**\n * The asset the list remembers its active item by is forgotten once the side panel shows no asset and the list has\n * no item of it: a list read later is to mark no item beside a panel that shows none. Not while a read is on its\n * way, which may yet show that asset, nor while a detail is open, whose close has that asset read again. Asked\n * where these may have come true: a list is set, the read asked for last has ended.\n */\n const forgetAssetNotShown = () => {\n if (detailLoading.value || !isNull(assetDetailStore.asset) || !isNull(assetDetailStore.dialog)) return\n if (assetSelectStore.assetListItems.some((item) => item.active)) return\n assetSelectStore.forgetActiveAsset()\n }\n\n /**\n * A new list begins: one in another order, of another filter or type, of a list or picker opened again, the list\n * read anew once an upload is applied. The request of the list left that is on its way is given up: its rows would\n * come into a list that is being replaced or has been emptied, and its answer would say once more that a further\n * page follows. The new list is read from its first page, and has no further page until that page has come. \"Load\n * more\" is drawn while a further page follows, and asks by itself as it comes into view: over a list that had just\n * begun it asked for the page after the first before the first had been asked for, and the list was read from its\n * second page.\n */\n const startListAnew = () => {\n // Given up and let go: its end does not turn the loader off, which the new list keeps on till it has been read. Off\n // for the pause before that read, it let a list without items say there was nothing found.\n listController?.abort()\n listController = undefined\n listTurn++\n const hasNextPage = isNull(pagination.value.hasNextPage) ? null : false\n pagination.value = { ...pagination.value, page: 1, hasNextPage }\n }\n\n const readListAfterPause = useDebounceFn(async () => {\n await fetchAssetList()\n })\n\n /** Every list that is read anew is asked for here: it begins at once, and is read after a pause. */\n const fetchAssetListDebounced = () => {\n startListAnew()\n return readListAfterPause()\n }\n\n const fetchAssetList = async () => {\n if (assetSelectStore.selectedLicenceId <= 0) {\n // Nothing is read: the loader of a list given up stays on no longer.\n if (!listController) assetSelectStore.hideLoader()\n return\n }\n resolveTypeFilter(assetSelectStore.assetType, assetSelectStore.inPodcast)\n const { execute } = useFetchAssetList(damClient, endPointAsset, assetSelectStore.selectedLicenceId)\n // Once more as the read goes out, whatever was asked for during the pause before it.\n startListAnew()\n const controller = (listController = new AbortController())\n try {\n assetSelectStore.showLoader()\n const items = await execute(pagination, filterData, filterConfig, { signal: controller.signal })\n if (controller.signal.aborted) return\n assetSelectStore.setList(items)\n forgetAssetNotShown()\n } catch (error) {\n if (!controller.signal.aborted) showErrorsDefault(error)\n } finally {\n if (listController === controller) assetSelectStore.hideLoader()\n }\n }\n\n const fetchNextPage = async () => {\n if (assetSelectStore.loader) return\n failedInListTurn = null\n const page = pagination.value.page\n pagination.value.page = page + 1\n resolveTypeFilter(assetSelectStore.assetType, assetSelectStore.inPodcast)\n const { execute } = useFetchAssetList(damClient, endPointAsset, assetSelectStore.selectedLicenceId)\n // A new list (filter submit) aborts this page too: appended, it would be the old filter's page.\n listController?.abort()\n const controller = (listController = new AbortController())\n try {\n assetSelectStore.showLoader()\n const items = await execute(pagination, filterData, filterConfig, { signal: controller.signal })\n if (controller.signal.aborted) return\n assetSelectStore.appendList(items)\n } catch (error) {\n if (controller.signal.aborted) return\n // Not when something has put the page back meanwhile: rolling back would overwrite that.\n if (pagination.value.page === page + 1) pagination.value.page = page\n failedInListTurn = listTurn\n scrolledAtLeave = null\n showErrorsDefault(error)\n } finally {\n if (listController === controller) assetSelectStore.hideLoader()\n }\n }\n\n /**\n * \"Load more\" asks for the further page by itself as it comes into view. Its directive tells it so again each time\n * the list draws anew while the button is in view: after a further page that failed it asked again at once, and\n * again after each failure, with an error each time, until the button was scrolled away. Once a further page has\n * failed, the button does not ask by itself while it stays in view: a press asks, and so does the button that comes\n * into view again once the list was scrolled while it was out of view. A new list asks by itself as before.\n */\n const fetchNextPageInView = (isIntersecting: boolean, entries?: IntersectionObserverEntry[]) => {\n const button = entries?.[0]?.target\n if (!isIntersecting) {\n scrolledAtLeave = scrolledTo(button)\n return\n }\n if (failedInListTurn === listTurn) {\n if (isNull(scrolledAtLeave) || scrolledTo(button) === scrolledAtLeave) return\n failedInListTurn = null\n }\n scrolledAtLeave = null\n if (pagination.value.hasNextPage !== true) return\n fetchNextPage()\n }\n\n const { addToCachedAuthors, fetchCachedAuthors } = useDamCachedAuthors(configName)\n const { addToCachedKeywords, fetchCachedKeywords } = useDamCachedKeywords(configName)\n const { addToCachedUsers, fetchCachedUsers } = useDamCachedUsers(configName)\n\n const onItemClick = async (data: { assetId: DocId; index: number }, extSystem: IntegerId) => {\n const { cachedExtSystemId } = useExtSystemIdForCached(configName)\n if (!mdAndDown.value) openSidebarRight()\n assetSelectStore.toggleSelectedByIndex(data.index)\n assetSelectStore.setActiveByIndex(data.index)\n // The ext system the configuration asks for names under is that of the list the click was made in. Written at the click,\n // where it is known, not once the read has answered: a pick confirmed before that gives the read up, and the\n // dialog of the picked image offers the authors of the DAM under whatever ext system was there before.\n cachedExtSystemId.value = extSystem\n detailLoading.value = true\n const request = ++detailRequest\n try {\n // Not written over a detail, as the read made once a detail has closed is not: the detail of a row of the queue\n // may have been opened since the click, and would show this asset in place of its own, and save into it.\n await assetDetailStore.readBesideDetail(\n () => fetchAsset(damClient, endPointAsset, data.assetId),\n () => request === detailRequest,\n (asset) => {\n // Once more for the read that is shown, as before: the value is one for the configuration, and another\n // widget of it may have written its own since the click, when an upload or a copy of its own ended.\n cachedExtSystemId.value = extSystem\n addToCachedAuthors(asset.authors)\n addToCachedKeywords(asset.keywords)\n if (showFileInfoEnabled) {\n addToCachedUsers(asset.modifiedBy, asset.createdBy)\n }\n fetchCachedAuthors()\n fetchCachedKeywords()\n if (showFileInfoEnabled) {\n fetchCachedUsers()\n }\n }\n )\n } catch (e) {\n if (request === detailRequest) {\n showErrorsDefault(e)\n // The item marked is that of the asset the side panel still shows, or none: the item clicked was marked\n // beside a panel that showed another asset, or none.\n assetSelectStore.setActiveByAssetId(assetDetailStore.asset?.id ?? null)\n }\n } finally {\n if (request === detailRequest) {\n detailLoading.value = false\n forgetAssetNotShown()\n }\n }\n }\n\n /**\n * Reads the asset of the active item again, for the side panel of a list whose detail has closed. In one order with\n * the read of a click: only the latest of the two is written, and only the latest turns the loading of the panel\n * off. On its own, the answer for the detail just closed came after that of a click made since, and the panel showed\n * the asset of the detail beside another active item.\n * The asset is the one the list remembers its active item by, also when the list read last has no item of it: the\n * panel went on showing that asset, and \"edit\" of the panel opened its detail. Read by the active item alone, the\n * panel was left empty once that detail closed, though it was that asset that had just been edited.\n * `shown`: the asset the detail closed showed, when the side panel opened it: that asset is read, and its item is\n * the active one. The asset the list remembered was read, and it is another one after a read of a click that failed.\n */\n const readActiveItemAgain = async (shown: DocId | null = null) => {\n if (!isNull(shown)) assetSelectStore.setActiveByAssetId(shown)\n const assetId = assetSelectStore.getActiveAssetId()\n // Nothing is read: the list remembers no asset, and the side panel the detail emptied as it closed stays empty.\n if (isNull(assetId)) return\n detailLoading.value = true\n const request = ++detailRequest\n try {\n // Not written over a detail: one of a row of the queue closes by itself when its asset cannot be read, and can be\n // opened again before this read answers.\n await assetDetailStore.readBesideDetail(\n () => fetchAsset(damClient, endPointAsset, assetId),\n () => request === detailRequest\n )\n } catch (e) {\n if (request === detailRequest) showErrorsDefault(e)\n } finally {\n if (request === detailRequest) {\n detailLoading.value = false\n forgetAssetNotShown()\n }\n }\n }\n\n const { clearAll } = useFilterClearHelpers()\n\n const resetAssetList = async () => {\n clearAll(filterData, filterConfig)\n resolveTypeFilter(assetSelectStore.assetType, assetSelectStore.inPodcast)\n await fetchAssetListDebounced()\n }\n\n /** A read of the detail that is on its way is given up: its answer is not shown, and nothing loads meanwhile. */\n const giveUpDetailRead = () => {\n detailRequest++\n detailLoading.value = false\n }\n\n const reset = async () => {\n clearAll(filterData, filterConfig)\n // The list opened next begins anew: what this one left of its paging, a further page that follows, is not its.\n startListAnew()\n assetSelectStore.reset(true)\n // Its answer would be written into the store emptied here.\n giveUpDetailRead()\n assetDetailStore.reset()\n }\n\n const initStoreContext = (\n selectConfig: DamConfigLicenceExtSystemReturnType[],\n assetType: DamAssetTypeType,\n inPodcast: boolean | null,\n singleMode: boolean,\n minCount: number,\n maxCount: number\n ): void => {\n assetSelectStore.clearSelected()\n assetSelectStore.setAssetType(assetType)\n assetSelectStore.setSelectConfig(selectConfig)\n assetSelectStore.setSingleMode(singleMode)\n assetSelectStore.setMinCount(minCount)\n assetSelectStore.setMaxCount(maxCount)\n assetSelectStore.inPodcast = inPodcast\n }\n\n return {\n damClient,\n filterData,\n filterConfig,\n selectedCount,\n selectedAssets,\n pagination,\n loader,\n detailLoading,\n assetListItems: assetListItems as Ref<Array<AssetSelectListItem>>,\n getSelectedData: assetSelectStore.getSelectedData,\n onItemClick,\n readActiveItemAgain,\n giveUpDetailRead,\n fetchAssetListDebounced,\n fetchNextPage,\n fetchNextPageInView,\n resetAssetList,\n reset,\n initStoreContext,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"assetSelectListActions.js","names":["usePagination","SORT_BY_SCORE_DATE","detailLoading","ref","listController","detailRequest","listTurn","scrolledTo","element","button","overflowY","useAssetSelectActions","useCommonAdminCoreDamOptions","configName","failedInListTurn","scrolledAtLeave","assetSelectStore","useAssetSelectStore","storeToRefs","assetDetailStore","useAssetDetailStore","useSidebar","useDisplay","useAlerts","useAssetListFilter","resolveTypeFilter","inPodcast","DamAssetType","assetType","forgetAssetNotShown","isNull","item","startListAnew","hasNextPage","pagination","readListAfterPause","useDebounceFn","fetchAssetList","fetchAssetListDebounced","useFetchAssetList","damClient","endPointAsset","controller","items","execute","filterData","filterConfig","error","showErrorsDefault","fetchNextPage","page","fetchNextPageInView","entries","isIntersecting","useDamCachedAuthors","useDamCachedKeywords","useDamCachedUsers","onItemClick","useExtSystemIdForCached","mdAndDown","openSidebarRight","data","extSystem","request","fetchAsset","addToCachedAuthors","asset","addToCachedKeywords","showFileInfoEnabled","addToCachedUsers","fetchCachedAuthors","fetchCachedKeywords","fetchCachedUsers","readActiveItemAgain","shown","assetId","useFilterClearHelpers","resetAssetList","clearAll","giveUpDetailRead","selectConfig","singleMode","minCount","maxCount"],"sources":["../../../../../src/domains/dam/assetSelect/composables/assetSelectListActions.ts"],"sourcesContent":["import { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport { type AssetSelectListItem, useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport type { Ref } from 'vue'\nimport { ref } from 'vue'\nimport { DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { usePagination } from '@/domains/api/composables/pagination'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { fetchAsset, useFetchAssetList } from '@/domains/dam/api/damAssetApi'\nimport type { DamConfigLicenceExtSystemReturnType } from '@/domains/dam/types/DamConfig'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport { useDamCachedKeywords } from '@/domains/dam/keyword/composables/cachedKeywords'\nimport { useExtSystemIdForCached } from '@/domains/dam/composables/extSystemIdForCached'\nimport { isNull } from '@/shared/utils/common'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport { SORT_BY_SCORE_DATE } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\nimport { useDebounceFn } from '@vueuse/core'\nimport { useDisplay } from 'vuetify'\n\nconst { pagination } = usePagination(SORT_BY_SCORE_DATE)\nconst detailLoading = ref(false)\n// Shared like the pagination: every asset select part requests through here, and only the last request counts.\nlet listController: AbortController | undefined\nlet detailRequest = 0\n// Counts list restarts, so a failed further page is tracked per list.\nlet listTurn = 0\n\n/**\n * Scroll position of the scroll container of the \"Load more\" button: the nearest scrollable ancestor, else the page.\n * A layout change moves the button without changing it.\n */\nconst scrolledTo = (button: Element | undefined) => {\n for (let element = button?.parentElement; element; element = element.parentElement) {\n const { overflowY } = getComputedStyle(element)\n if ((overflowY === 'auto' || overflowY === 'scroll') && element.scrollHeight > element.clientHeight) {\n return element.scrollTop\n }\n }\n return document.scrollingElement?.scrollTop ?? 0\n}\n\nexport function useAssetSelectActions(configName: string) {\n const { damClient, endPointAsset, showFileInfoEnabled } = useCommonAdminCoreDamOptions(configName)\n // A further page of this list failed (list `failedInListTurn`). The\n // button then does not request it again just by coming into view.\n // A press does, or coming into view again after the list was scrolled while the button was hidden.\n // A page-wide flag made the button retry when only a layout change (a side panel) had hidden it.\n let failedInListTurn: number | null = null\n let scrolledAtLeave: number | null = null\n\n const assetSelectStore = useAssetSelectStore()\n const { selectedCount, selectedAssets, assetListItems, loader } = storeToRefs(assetSelectStore)\n const assetDetailStore = useAssetDetailStore()\n const { openSidebarRight } = useSidebar()\n const { mdAndDown } = useDisplay()\n\n const { showErrorsDefault } = useAlerts()\n const { filterData, filterConfig } = useAssetListFilter()\n\n const resolveTypeFilter = (assetType: DamAssetTypeType, inPodcast: boolean | null) => {\n if (inPodcast === true) {\n filterData.type = [DamAssetType.Audio]\n filterData.inPodcast = true\n return\n }\n filterData.type = [assetType]\n filterData.inPodcast = null\n }\n\n /**\n * Forgets the remembered active asset once the side panel shows none\n * and the list has no item for it, so a later list marks no item.\n * Not while a read is pending, which may still show that asset, nor while a detail is open, whose close rereads it.\n * Called where this may have become true: a list is set, or the last requested read has ended.\n */\n const forgetAssetNotShown = () => {\n if (detailLoading.value || !isNull(assetDetailStore.asset) || !isNull(assetDetailStore.dialog)) return\n if (assetSelectStore.assetListItems.some((item) => item.active)) return\n assetSelectStore.forgetActiveAsset()\n }\n\n /**\n * Starts a new list: new order, filter or type, a reopened list or picker, or a reload after applying an upload.\n * The pending list request is aborted. Its rows would land in a replaced list and re-flag a further page.\n * The new list reads from page one and has no further page until it arrives.\n * \"Load more\" auto-requests when in view. Without this it requested page two before page one.\n */\n const startListAnew = () => {\n // Aborted and released: its end does not turn the loader off. The new list keeps it on until read.\n // Turning it off during the debounce let an empty list show \"nothing found\".\n listController?.abort()\n listController = undefined\n listTurn++\n const hasNextPage = isNull(pagination.value.hasNextPage) ? null : false\n pagination.value = { ...pagination.value, page: 1, hasNextPage }\n }\n\n const readListAfterPause = useDebounceFn(async () => {\n await fetchAssetList()\n })\n\n /** Every list reload goes through here: it restarts at once and is read after a debounce. */\n const fetchAssetListDebounced = () => {\n startListAnew()\n return readListAfterPause()\n }\n\n const fetchAssetList = async () => {\n if (assetSelectStore.selectedLicenceId <= 0) {\n // Nothing is read, so the loader of the abandoned list is turned off.\n if (!listController) assetSelectStore.hideLoader()\n return\n }\n resolveTypeFilter(assetSelectStore.assetType, assetSelectStore.inPodcast)\n const { execute } = useFetchAssetList(damClient, endPointAsset, assetSelectStore.selectedLicenceId)\n // Restart again as the read starts, covering anything requested during the debounce.\n startListAnew()\n const controller = (listController = new AbortController())\n try {\n assetSelectStore.showLoader()\n const items = await execute(pagination, filterData, filterConfig, { signal: controller.signal })\n if (controller.signal.aborted) return\n assetSelectStore.setList(items)\n forgetAssetNotShown()\n } catch (error) {\n if (!controller.signal.aborted) showErrorsDefault(error)\n } finally {\n if (listController === controller) assetSelectStore.hideLoader()\n }\n }\n\n const fetchNextPage = async () => {\n if (assetSelectStore.loader) return\n failedInListTurn = null\n const page = pagination.value.page\n pagination.value.page = page + 1\n resolveTypeFilter(assetSelectStore.assetType, assetSelectStore.inPodcast)\n const { execute } = useFetchAssetList(damClient, endPointAsset, assetSelectStore.selectedLicenceId)\n // A new list (filter submit) aborts this page too: appended, it would be the old filter's page.\n listController?.abort()\n const controller = (listController = new AbortController())\n try {\n assetSelectStore.showLoader()\n const items = await execute(pagination, filterData, filterConfig, { signal: controller.signal })\n if (controller.signal.aborted) return\n assetSelectStore.appendList(items)\n } catch (error) {\n if (controller.signal.aborted) return\n // Not when something has put the page back meanwhile: rolling back would overwrite that.\n if (pagination.value.page === page + 1) pagination.value.page = page\n failedInListTurn = listTurn\n scrolledAtLeave = null\n showErrorsDefault(error)\n } finally {\n if (listController === controller) assetSelectStore.hideLoader()\n }\n }\n\n /**\n * \"Load more\" requests the next page itself when it comes into\n * view. Its directive fires again on every re-render while in view.\n * After a failure it used to retry at once and on each failure, with an error each time.\n * After a failure it no longer auto-requests while in view. A press does, or reappearing\n * after the list was scrolled while it was hidden. A new list auto-requests as before.\n */\n const fetchNextPageInView = (isIntersecting: boolean, entries?: IntersectionObserverEntry[]) => {\n const button = entries?.[0]?.target\n if (!isIntersecting) {\n scrolledAtLeave = scrolledTo(button)\n return\n }\n if (failedInListTurn === listTurn) {\n if (isNull(scrolledAtLeave) || scrolledTo(button) === scrolledAtLeave) return\n failedInListTurn = null\n }\n scrolledAtLeave = null\n if (pagination.value.hasNextPage !== true) return\n fetchNextPage()\n }\n\n const { addToCachedAuthors, fetchCachedAuthors } = useDamCachedAuthors(configName)\n const { addToCachedKeywords, fetchCachedKeywords } = useDamCachedKeywords(configName)\n const { addToCachedUsers, fetchCachedUsers } = useDamCachedUsers(configName)\n\n const onItemClick = async (data: { assetId: DocId; index: number }, extSystem: IntegerId) => {\n const { cachedExtSystemId } = useExtSystemIdForCached(configName)\n if (!mdAndDown.value) openSidebarRight()\n assetSelectStore.toggleSelectedByIndex(data.index)\n assetSelectStore.setActiveByIndex(data.index)\n // Set the ext system for author names at the click, where it is known, not after the read.\n // A pick confirmed before the answer drops the read, and the picked image dialog then used the previous ext system.\n cachedExtSystemId.value = extSystem\n detailLoading.value = true\n const request = ++detailRequest\n try {\n // Not applied over an open detail. A queue row detail may have\n // opened since the click and would show and save into this asset.\n await assetDetailStore.readBesideDetail(\n () => fetchAsset(damClient, endPointAsset, data.assetId),\n () => request === detailRequest,\n (asset) => {\n // Set again for the shown read. The value is per configuration, and another\n // widget may have overwritten it since the click when its upload or copy ended.\n cachedExtSystemId.value = extSystem\n addToCachedAuthors(asset.authors)\n addToCachedKeywords(asset.keywords)\n if (showFileInfoEnabled) {\n addToCachedUsers(asset.modifiedBy, asset.createdBy)\n }\n fetchCachedAuthors()\n fetchCachedKeywords()\n if (showFileInfoEnabled) {\n fetchCachedUsers()\n }\n }\n )\n } catch (e) {\n if (request === detailRequest) {\n showErrorsDefault(e)\n // Mark the item of the asset the side panel still shows, or none. The\n // clicked item was marked beside a panel showing another asset or none.\n assetSelectStore.setActiveByAssetId(assetDetailStore.asset?.id ?? null)\n }\n } finally {\n if (request === detailRequest) {\n detailLoading.value = false\n forgetAssetNotShown()\n }\n }\n }\n\n /**\n * Rereads the active item's asset for the side panel after its detail closed.\n * Ordered with click reads: only the latest is applied and turns the panel loading off.\n * Otherwise a stale answer showed the closed detail's asset beside another active item.\n * Uses the remembered asset even if the current list lacks its item. Reading\n * by the active item alone emptied the panel after editing that asset.\n * `shown`: the asset the closed detail showed when the panel opened it. It is read\n * and made active, because after a failed click read the remembered asset differs.\n */\n const readActiveItemAgain = async (shown: DocId | null = null) => {\n if (!isNull(shown)) assetSelectStore.setActiveByAssetId(shown)\n const assetId = assetSelectStore.getActiveAssetId()\n // Nothing to read: the list remembers no asset, so the panel emptied by the closing detail stays empty.\n if (isNull(assetId)) return\n detailLoading.value = true\n const request = ++detailRequest\n try {\n // Not applied over an open detail. A queue row detail closes itself when\n // its asset cannot be read, and can reopen before this read answers.\n await assetDetailStore.readBesideDetail(\n () => fetchAsset(damClient, endPointAsset, assetId),\n () => request === detailRequest\n )\n } catch (e) {\n if (request === detailRequest) showErrorsDefault(e)\n } finally {\n if (request === detailRequest) {\n detailLoading.value = false\n forgetAssetNotShown()\n }\n }\n }\n\n const { clearAll } = useFilterClearHelpers()\n\n const resetAssetList = async () => {\n clearAll(filterData, filterConfig)\n resolveTypeFilter(assetSelectStore.assetType, assetSelectStore.inPodcast)\n await fetchAssetListDebounced()\n }\n\n /** Drops a pending detail read: its answer is not shown, and loading stops. */\n const giveUpDetailRead = () => {\n detailRequest++\n detailLoading.value = false\n }\n\n const reset = async () => {\n clearAll(filterData, filterConfig)\n // The next opened list starts fresh, without this list's paging state.\n startListAnew()\n assetSelectStore.reset(true)\n // Otherwise its answer would be written into the store emptied here.\n giveUpDetailRead()\n assetDetailStore.reset()\n }\n\n const initStoreContext = (\n selectConfig: DamConfigLicenceExtSystemReturnType[],\n assetType: DamAssetTypeType,\n inPodcast: boolean | null,\n singleMode: boolean,\n minCount: number,\n maxCount: number\n ): void => {\n assetSelectStore.clearSelected()\n assetSelectStore.setAssetType(assetType)\n assetSelectStore.setSelectConfig(selectConfig)\n assetSelectStore.setSingleMode(singleMode)\n assetSelectStore.setMinCount(minCount)\n assetSelectStore.setMaxCount(maxCount)\n assetSelectStore.inPodcast = inPodcast\n }\n\n return {\n damClient,\n filterData,\n filterConfig,\n selectedCount,\n selectedAssets,\n pagination,\n loader,\n detailLoading,\n assetListItems: assetListItems as Ref<Array<AssetSelectListItem>>,\n getSelectedData: assetSelectStore.getSelectedData,\n onItemClick,\n readActiveItemAgain,\n giveUpDetailRead,\n fetchAssetListDebounced,\n fetchNextPage,\n fetchNextPageInView,\n resetAssetList,\n reset,\n initStoreContext,\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assetSelectStore.js","names":["useAssetSelectStore","defineStore","assetListItems","ref","loader","selectedLicenceId","selectConfig","assetType","DamAssetTypeDefault","inPodcast","selectedAssets","singleMode","minCount","maxCount","activeItemIndex","activeAssetId","showLoader","hideLoader","setSelectConfig","value","setSingleMode","setAssetType","setMinCount","setMaxCount","setList","activeIndex","items","item","index","appendList","isNull","assets","asset","toggleSelectedByIndex","isSelectedMax","assetId","selected","one","unselectAllExcept","clearSelected","addToSelected","removeFromSelected","setActiveByIndex","oldActiveIndex","setActiveByAssetId","itemIndex","forgetActiveAsset","getActiveAssetId","assetItem","getSelectedMainFileIds","fileIds","getSelectedAssetIds","getSelectedAssets","toRaw","getSelectedData","type","AssetSelectReturnType","computed","selectedCount","reset","all","selectedSelectConfig","configItem","requireSelectedSelectConfig","config","isUndefined"],"sources":["../../../../../src/domains/dam/assetSelect/store/assetSelectStore.ts"],"sourcesContent":["import { acceptHMRUpdate, defineStore } from 'pinia'\nimport type { AssetSearchListItemDto, DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport { computed, ref, toRaw } from 'vue'\nimport {\n type AssetSelectReturnData,\n AssetSelectReturnType,\n type AssetSelectReturnTypeType,\n} from '@/domains/dam/types/AssetSelect'\nimport type { DamConfigLicenceExtSystemReturnType } from '@/domains/dam/types/DamConfig'\nimport { isNull, isUndefined } from '@/shared/utils/common'\n\nexport interface AssetSelectListItem {\n asset: AssetSearchListItemDto\n selected: boolean\n active: boolean\n}\n\nexport const useAssetSelectStore = defineStore('commonAdminCoreDamAssetSelectStore', () => {\n const assetListItems = ref<Array<AssetSelectListItem>>([])\n const loader = ref(false)\n const selectedLicenceId = ref<IntegerId>(0)\n const selectConfig = ref<DamConfigLicenceExtSystemReturnType[]>([])\n const assetType = ref<DamAssetTypeType>(DamAssetTypeDefault)\n const inPodcast = ref<boolean | null>(null)\n const selectedAssets = ref<Map<DocId, AssetSelectListItem>>(new Map())\n const singleMode = ref(false)\n const minCount = ref(0)\n const maxCount = ref(0)\n const activeItemIndex = ref<null | number>(null)\n // The asset of the active item: a list read anew has it at another place, or not at all, and the active item is\n // found by it. Kept by its place alone, the new list had no active item, and the one that had come to that place\n // could not be made active by a click.\n const activeAssetId = ref<null | DocId>(null)\n\n function showLoader() {\n loader.value = true\n }\n\n function hideLoader() {\n loader.value = false\n }\n\n function setSelectConfig(value: DamConfigLicenceExtSystemReturnType[]) {\n selectConfig.value = value\n if (value.length === 0) {\n selectedLicenceId.value = 0\n return\n }\n selectedLicenceId.value = value[0]!.licence\n }\n\n function setSingleMode(value: boolean) {\n singleMode.value = value\n }\n\n function setAssetType(value: DamAssetTypeType) {\n assetType.value = value\n }\n\n function setMinCount(value: number) {\n minCount.value = value\n }\n\n function setMaxCount(value: number) {\n maxCount.value = value\n }\n\n // The selection outlives the list it was made in: a list read anew (a search, another order) or a further page may\n // bring an asset that is selected. Its item says so, as the count does: drawn unselected, a click on it only put\n // the mark back, and at the full count no click took the asset out.\n function setList(items: AssetSearchListItemDto[]) {\n const activeIndex = items.findIndex((item) => item.id === activeAssetId.value)\n assetListItems.value = items.map((item, index) => {\n return {\n asset: item,\n selected: selectedAssets.value.has(item.id),\n active: index === activeIndex,\n }\n })\n activeItemIndex.value = activeIndex < 0 ? null : activeIndex\n }\n\n function appendList(items: AssetSearchListItemDto[]) {\n // The asset of the active item may come only with a later page of a list read anew.\n const activeIndex = isNull(activeItemIndex.value) ? items.findIndex((item) => item.id === activeAssetId.value) : -1\n const assets = items.map((asset, index) => {\n return {\n asset: asset,\n selected: selectedAssets.value.has(asset.id),\n active: index === activeIndex,\n }\n })\n if (activeIndex >= 0) activeItemIndex.value = assetListItems.value.length + activeIndex\n assetListItems.value = assetListItems.value.concat(assets)\n }\n\n // An asset the list has twice (two pages returned it) is one asset: a click selects it or takes it out, and every\n // item of it says so. One item took the click alone: taken out, the asset kept its check on the other item.\n function toggleSelectedByIndex(index: number) {\n const item = assetListItems.value[index]\n if (!item) return\n\n if (!singleMode.value && isSelectedMax.value && !item.selected) {\n return\n }\n\n const assetId = item.asset.id\n const selected = !item.selected\n assetListItems.value.forEach((one) => {\n if (one.asset.id === assetId) one.selected = selected\n })\n\n if (singleMode.value && selected) {\n unselectAllExcept(assetId)\n clearSelected()\n addToSelected(item)\n return\n }\n\n if (!singleMode.value && selected) {\n addToSelected(item)\n return\n }\n\n removeFromSelected(assetId)\n }\n\n function setActiveByIndex(index: number) {\n const oldActiveIndex = activeItemIndex.value\n if (index === activeItemIndex.value) return\n if (!assetListItems.value[index]) return\n assetListItems.value[index].active = true\n activeItemIndex.value = index\n activeAssetId.value = assetListItems.value[index].asset.id\n if (isNull(oldActiveIndex)) return\n if (!(oldActiveIndex in assetListItems.value)) return\n assetListItems.value[oldActiveIndex]!.active = false\n }\n\n /**\n * The item of the asset the side panel shows is the active one, and that asset is the one the list finds its active\n * item by; none for `null`, or for an asset the list has no item of.\n */\n function setActiveByAssetId(assetId: DocId | null) {\n const index = isNull(assetId) ? -1 : assetListItems.value.findIndex((item) => item.asset.id === assetId)\n assetListItems.value.forEach((item, itemIndex) => {\n item.active = itemIndex === index\n })\n activeItemIndex.value = index < 0 ? null : index\n activeAssetId.value = assetId\n }\n\n /**\n * For a list whose side panel has lost the asset of the item that was active, while the list had no item of it: a\n * list read later is to mark no item beside a panel that shows no asset.\n */\n function forgetActiveAsset() {\n activeAssetId.value = null\n }\n\n /**\n * The asset the list finds its active item by: that of the active item, or of the one that was active, while the\n * list read last has no item of it and it has not been forgotten.\n */\n function getActiveAssetId() {\n return activeAssetId.value\n }\n\n function unselectAllExcept(assetId: DocId) {\n assetListItems.value.forEach((item) => {\n if (item.selected && item.asset.id !== assetId) item.selected = false\n })\n }\n\n function clearSelected() {\n selectedAssets.value.clear()\n }\n\n function addToSelected(assetItem: AssetSelectListItem) {\n if (!selectedAssets.value.has(assetItem.asset.id)) {\n selectedAssets.value.set(assetItem.asset.id, assetItem)\n }\n }\n\n function removeFromSelected(assetId: DocId) {\n if (selectedAssets.value.has(assetId)) {\n selectedAssets.value.delete(assetId)\n }\n }\n\n function getSelectedMainFileIds(): DocId[] {\n const fileIds: Set<DocId> = new Set()\n for (const value of selectedAssets.value.values()) {\n if (value.asset.mainFile?.id) {\n fileIds.add(value.asset.mainFile.id)\n }\n }\n return Array.from(fileIds)\n }\n\n function getSelectedAssetIds(): DocId[] {\n return Array.from(selectedAssets.value.keys())\n }\n\n function getSelectedAssets(): AssetSearchListItemDto[] {\n const assets: Array<AssetSearchListItemDto> = []\n for (const value of selectedAssets.value.values()) {\n assets.push(toRaw(value.asset))\n }\n return assets\n }\n\n function getSelectedData(\n type: AssetSelectReturnTypeType,\n copyToLicence: undefined | IntegerId\n ): AssetSelectReturnData {\n switch (type) {\n case AssetSelectReturnType.AssetId:\n return {\n type: AssetSelectReturnType.AssetId,\n copyToLicence,\n value: getSelectedAssetIds(),\n }\n case AssetSelectReturnType.Asset:\n return {\n type: AssetSelectReturnType.Asset,\n copyToLicence,\n value: getSelectedAssets(),\n }\n case AssetSelectReturnType.MainFileId:\n default:\n return {\n type: AssetSelectReturnType.MainFileId,\n copyToLicence,\n value: getSelectedMainFileIds(),\n }\n }\n }\n\n const isSelectedMax = computed(() => {\n return selectedCount.value >= maxCount.value\n })\n\n const selectedCount = computed(() => {\n return selectedAssets.value.size\n })\n\n function reset(all: boolean) {\n assetListItems.value = []\n activeItemIndex.value = null\n activeAssetId.value = null\n loader.value = false\n clearSelected()\n if (!all) return\n assetType.value = DamAssetTypeDefault\n inPodcast.value = null\n singleMode.value = false\n minCount.value = 0\n maxCount.value = 0\n }\n\n const selectedSelectConfig = computed(() => {\n const found = selectConfig.value.find((configItem) => configItem.licence === selectedLicenceId.value)\n if (found) return found\n return selectConfig.value[0]\n })\n\n // For the image widgets once an asset was picked: the ext system of the licence it came from. The store\n // gets a licence config only when there is one (`initStoreContext` callers return early on an empty\n // list), the list fetch stops without a licence, and nothing empties the config afterwards, so a missing\n // one here is a caller reading it outside that flow. A function rather than the computed throwing: Pinia's\n // devtools read every getter without a try.\n function requireSelectedSelectConfig() {\n const config = selectedSelectConfig.value\n if (isUndefined(config)) {\n throw new Error('assetSelectStore: no licence config selected (the asset select dialog was not opened)')\n }\n return config\n }\n\n return {\n selectedLicenceId,\n selectConfig,\n assetType,\n inPodcast,\n singleMode,\n minCount,\n maxCount,\n selectedCount,\n selectedAssets,\n loader,\n assetListItems,\n setActiveByIndex,\n setActiveByAssetId,\n forgetActiveAsset,\n getActiveAssetId,\n getSelectedData,\n setAssetType,\n setSelectConfig,\n setSingleMode,\n setMinCount,\n setMaxCount,\n showLoader,\n hideLoader,\n setList,\n appendList,\n toggleSelectedByIndex,\n clearSelected,\n reset,\n selectedSelectConfig,\n requireSelectedSelectConfig,\n }\n})\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useAssetSelectStore, import.meta.hot))\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"assetSelectStore.js","names":["useAssetSelectStore","defineStore","assetListItems","ref","loader","selectedLicenceId","selectConfig","assetType","DamAssetTypeDefault","inPodcast","selectedAssets","singleMode","minCount","maxCount","activeItemIndex","activeAssetId","showLoader","hideLoader","setSelectConfig","value","setSingleMode","setAssetType","setMinCount","setMaxCount","setList","activeIndex","items","item","index","appendList","isNull","assets","asset","toggleSelectedByIndex","isSelectedMax","assetId","selected","one","unselectAllExcept","clearSelected","addToSelected","removeFromSelected","setActiveByIndex","oldActiveIndex","setActiveByAssetId","itemIndex","forgetActiveAsset","getActiveAssetId","assetItem","getSelectedMainFileIds","fileIds","getSelectedAssetIds","getSelectedAssets","toRaw","getSelectedData","type","AssetSelectReturnType","computed","selectedCount","reset","all","selectedSelectConfig","configItem","requireSelectedSelectConfig","config","isUndefined"],"sources":["../../../../../src/domains/dam/assetSelect/store/assetSelectStore.ts"],"sourcesContent":["import { acceptHMRUpdate, defineStore } from 'pinia'\nimport type { AssetSearchListItemDto, DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport { computed, ref, toRaw } from 'vue'\nimport {\n type AssetSelectReturnData,\n AssetSelectReturnType,\n type AssetSelectReturnTypeType,\n} from '@/domains/dam/types/AssetSelect'\nimport type { DamConfigLicenceExtSystemReturnType } from '@/domains/dam/types/DamConfig'\nimport { isNull, isUndefined } from '@/shared/utils/common'\n\nexport interface AssetSelectListItem {\n asset: AssetSearchListItemDto\n selected: boolean\n active: boolean\n}\n\nexport const useAssetSelectStore = defineStore('commonAdminCoreDamAssetSelectStore', () => {\n const assetListItems = ref<Array<AssetSelectListItem>>([])\n const loader = ref(false)\n const selectedLicenceId = ref<IntegerId>(0)\n const selectConfig = ref<DamConfigLicenceExtSystemReturnType[]>([])\n const assetType = ref<DamAssetTypeType>(DamAssetTypeDefault)\n const inPodcast = ref<boolean | null>(null)\n const selectedAssets = ref<Map<DocId, AssetSelectListItem>>(new Map())\n const singleMode = ref(false)\n const minCount = ref(0)\n const maxCount = ref(0)\n const activeItemIndex = ref<null | number>(null)\n // The active item is found by its asset id, since a reloaded list may have it at another position or not at all.\n // Tracking by position left the new list without an active item, and\n // the item now at that position could not be activated by a click.\n const activeAssetId = ref<null | DocId>(null)\n\n function showLoader() {\n loader.value = true\n }\n\n function hideLoader() {\n loader.value = false\n }\n\n function setSelectConfig(value: DamConfigLicenceExtSystemReturnType[]) {\n selectConfig.value = value\n if (value.length === 0) {\n selectedLicenceId.value = 0\n return\n }\n selectedLicenceId.value = value[0]!.licence\n }\n\n function setSingleMode(value: boolean) {\n singleMode.value = value\n }\n\n function setAssetType(value: DamAssetTypeType) {\n assetType.value = value\n }\n\n function setMinCount(value: number) {\n minCount.value = value\n }\n\n function setMaxCount(value: number) {\n maxCount.value = value\n }\n\n // The selection outlives the list it was made in. A list read anew or a further page may bring a selected asset.\n // Its item must show it as selected. Otherwise a click only\n // re-marks it, and at the full count no click can deselect it.\n function setList(items: AssetSearchListItemDto[]) {\n const activeIndex = items.findIndex((item) => item.id === activeAssetId.value)\n assetListItems.value = items.map((item, index) => {\n return {\n asset: item,\n selected: selectedAssets.value.has(item.id),\n active: index === activeIndex,\n }\n })\n activeItemIndex.value = activeIndex < 0 ? null : activeIndex\n }\n\n function appendList(items: AssetSearchListItemDto[]) {\n // The active asset may arrive only with a later page of a re-read list.\n const activeIndex = isNull(activeItemIndex.value) ? items.findIndex((item) => item.id === activeAssetId.value) : -1\n const assets = items.map((asset, index) => {\n return {\n asset: asset,\n selected: selectedAssets.value.has(asset.id),\n active: index === activeIndex,\n }\n })\n if (activeIndex >= 0) activeItemIndex.value = assetListItems.value.length + activeIndex\n assetListItems.value = assetListItems.value.concat(assets)\n }\n\n // An asset listed twice (two pages returned it) is one asset. A click toggles it and every item of it reflects that.\n // Otherwise deselecting one item left the check on the other.\n function toggleSelectedByIndex(index: number) {\n const item = assetListItems.value[index]\n if (!item) return\n\n if (!singleMode.value && isSelectedMax.value && !item.selected) {\n return\n }\n\n const assetId = item.asset.id\n const selected = !item.selected\n assetListItems.value.forEach((one) => {\n if (one.asset.id === assetId) one.selected = selected\n })\n\n if (singleMode.value && selected) {\n unselectAllExcept(assetId)\n clearSelected()\n addToSelected(item)\n return\n }\n\n if (!singleMode.value && selected) {\n addToSelected(item)\n return\n }\n\n removeFromSelected(assetId)\n }\n\n function setActiveByIndex(index: number) {\n const oldActiveIndex = activeItemIndex.value\n if (index === activeItemIndex.value) return\n if (!assetListItems.value[index]) return\n assetListItems.value[index].active = true\n activeItemIndex.value = index\n activeAssetId.value = assetListItems.value[index].asset.id\n if (isNull(oldActiveIndex)) return\n if (!(oldActiveIndex in assetListItems.value)) return\n assetListItems.value[oldActiveIndex]!.active = false\n }\n\n /**\n * Marks the item of the asset the side panel shows as active. The list keeps finding its active item by that asset.\n * No item is active for `null` or for an asset the list has no item of.\n */\n function setActiveByAssetId(assetId: DocId | null) {\n const index = isNull(assetId) ? -1 : assetListItems.value.findIndex((item) => item.asset.id === assetId)\n assetListItems.value.forEach((item, itemIndex) => {\n item.active = itemIndex === index\n })\n activeItemIndex.value = index < 0 ? null : index\n activeAssetId.value = assetId\n }\n\n /**\n * Call when the side panel lost the active asset and the list has no item of it.\n * A later list then marks no item beside a panel that shows no asset.\n */\n function forgetActiveAsset() {\n activeAssetId.value = null\n }\n\n /**\n * The asset the list finds its active item by. It persists while the last list has no item of it, until forgotten.\n */\n function getActiveAssetId() {\n return activeAssetId.value\n }\n\n function unselectAllExcept(assetId: DocId) {\n assetListItems.value.forEach((item) => {\n if (item.selected && item.asset.id !== assetId) item.selected = false\n })\n }\n\n function clearSelected() {\n selectedAssets.value.clear()\n }\n\n function addToSelected(assetItem: AssetSelectListItem) {\n if (!selectedAssets.value.has(assetItem.asset.id)) {\n selectedAssets.value.set(assetItem.asset.id, assetItem)\n }\n }\n\n function removeFromSelected(assetId: DocId) {\n if (selectedAssets.value.has(assetId)) {\n selectedAssets.value.delete(assetId)\n }\n }\n\n function getSelectedMainFileIds(): DocId[] {\n const fileIds: Set<DocId> = new Set()\n for (const value of selectedAssets.value.values()) {\n if (value.asset.mainFile?.id) {\n fileIds.add(value.asset.mainFile.id)\n }\n }\n return Array.from(fileIds)\n }\n\n function getSelectedAssetIds(): DocId[] {\n return Array.from(selectedAssets.value.keys())\n }\n\n function getSelectedAssets(): AssetSearchListItemDto[] {\n const assets: Array<AssetSearchListItemDto> = []\n for (const value of selectedAssets.value.values()) {\n assets.push(toRaw(value.asset))\n }\n return assets\n }\n\n function getSelectedData(\n type: AssetSelectReturnTypeType,\n copyToLicence: undefined | IntegerId\n ): AssetSelectReturnData {\n switch (type) {\n case AssetSelectReturnType.AssetId:\n return {\n type: AssetSelectReturnType.AssetId,\n copyToLicence,\n value: getSelectedAssetIds(),\n }\n case AssetSelectReturnType.Asset:\n return {\n type: AssetSelectReturnType.Asset,\n copyToLicence,\n value: getSelectedAssets(),\n }\n case AssetSelectReturnType.MainFileId:\n default:\n return {\n type: AssetSelectReturnType.MainFileId,\n copyToLicence,\n value: getSelectedMainFileIds(),\n }\n }\n }\n\n const isSelectedMax = computed(() => {\n return selectedCount.value >= maxCount.value\n })\n\n const selectedCount = computed(() => {\n return selectedAssets.value.size\n })\n\n function reset(all: boolean) {\n assetListItems.value = []\n activeItemIndex.value = null\n activeAssetId.value = null\n loader.value = false\n clearSelected()\n if (!all) return\n assetType.value = DamAssetTypeDefault\n inPodcast.value = null\n singleMode.value = false\n minCount.value = 0\n maxCount.value = 0\n }\n\n const selectedSelectConfig = computed(() => {\n const found = selectConfig.value.find((configItem) => configItem.licence === selectedLicenceId.value)\n if (found) return found\n return selectConfig.value[0]\n })\n\n // The ext system of the licence a picked asset came from, for the image widgets.\n // The config is always set inside the `initStoreContext` flow,\n // so a missing one means a caller reads it outside that flow.\n // A function, not a throwing computed: Pinia devtools read every getter without a try.\n function requireSelectedSelectConfig() {\n const config = selectedSelectConfig.value\n if (isUndefined(config)) {\n throw new Error('assetSelectStore: no licence config selected (the asset select dialog was not opened)')\n }\n return config\n }\n\n return {\n selectedLicenceId,\n selectConfig,\n assetType,\n inPodcast,\n singleMode,\n minCount,\n maxCount,\n selectedCount,\n selectedAssets,\n loader,\n assetListItems,\n setActiveByIndex,\n setActiveByAssetId,\n forgetActiveAsset,\n getActiveAssetId,\n getSelectedData,\n setAssetType,\n setSelectConfig,\n setSingleMode,\n setMinCount,\n setMaxCount,\n showLoader,\n hideLoader,\n setList,\n appendList,\n toggleSelectedByIndex,\n clearSelected,\n reset,\n selectedSelectConfig,\n requireSelectedSelectConfig,\n }\n})\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useAssetSelectStore, import.meta.hot))\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"authorApi.js","names":["LIST","ENTITY","fetchAuthorListByIds","useApiFetchByIds","SYSTEM_CORE_DAM","endPoint","execute","ids","useFetchAuthorList","useApiFetchList","createAuthor","useApiRequest","data"],"sources":["../../../../../src/domains/dam/author/api/authorApi.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type { DamAuthor } from '@/domains/dam/author/types/DamAuthor'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport { useApiFetchList } from '@/domains/api/composables/useApiFetchList'\nimport { useApiFetchByIds } from '@/domains/api/composables/useApiFetchByIds'\nimport { useApiRequest } from '@/domains/api/composables/useApiRequest'\nimport type { IntegerId } from '@/shared/types/common'\n\n// The address of the authors is the application's to say (`endPointAuthor` of its DAM configuration).\nconst LIST = '/ext-system/:extSystemId'\nexport const ENTITY = 'author'\n\nexport const fetchAuthorListByIds = (\n client: () => AxiosInstance,\n endPoint: string,\n extSystemId: number,\n ids: string[]\n) => {\n const { execute } = useApiFetchByIds<DamAuthor>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + LIST + '/search',\n urlParams: { extSystemId },\n isSearchApi: true,\n })\n\n return execute(ids)\n}\n\nexport const useFetchAuthorList = (client: () => AxiosInstance, endPoint: string, extSystemId: IntegerId) =>\n useApiFetchList<DamAuthor>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + LIST,\n urlParams: { extSystemId },\n })\n\nexport const createAuthor = (client: () => AxiosInstance, endPoint: string, data: DamAuthor) => {\n const { execute } = useApiRequest<DamAuthor, DamAuthor>({\n client,\n method: 'POST',\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint,\n })\n\n return execute({ body: data })\n}\n"],"mappings":";;;;;AASA,IAAMA,IAAO,4BACAC,IAAS,UAETC,KACX,GACA,GACA,GACA,MACG;CACH,IAAM,EAAE,eAAYC,EAA4B;EAC9C;EACA,QAAQC;EACR,QAAQH;EACR,aAAaI,IAAW;EACxB,WAAW,EAAE,eAAY;EACzB,aAAa;CACf,CAAC;CAED,OAAOC,EAAQC,CAAG;AACpB,GAEaC,KAAsB,GAA6B,GAAkB,MAChFC,EAA2B;CACzB;CACA,QAAQL;CACR,QAAQH;CACR,aAAaI,IAAWL;CACxB,WAAW,EAAE,eAAY;AAC3B,CAAC,GAEUU,KAAgB,GAA6B,GAAkB,MAAoB;CAC9F,IAAM,EAAE,eAAYC,EAAoC;EACtD;EACA,QAAQ;EACR,QAAQP;EACR,QAAQH;EACR,aAAaI;CACf,CAAC;CAED,OAAOC,EAAQ,EAAE,MAAMM,EAAK,CAAC;AAC/B"}
1
+ {"version":3,"file":"authorApi.js","names":["LIST","ENTITY","fetchAuthorListByIds","useApiFetchByIds","SYSTEM_CORE_DAM","endPoint","execute","ids","useFetchAuthorList","useApiFetchList","createAuthor","useApiRequest","data"],"sources":["../../../../../src/domains/dam/author/api/authorApi.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type { DamAuthor } from '@/domains/dam/author/types/DamAuthor'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport { useApiFetchList } from '@/domains/api/composables/useApiFetchList'\nimport { useApiFetchByIds } from '@/domains/api/composables/useApiFetchByIds'\nimport { useApiRequest } from '@/domains/api/composables/useApiRequest'\nimport type { IntegerId } from '@/shared/types/common'\n\n// The application sets the authors address (`endPointAuthor` of its DAM configuration).\nconst LIST = '/ext-system/:extSystemId'\nexport const ENTITY = 'author'\n\nexport const fetchAuthorListByIds = (\n client: () => AxiosInstance,\n endPoint: string,\n extSystemId: number,\n ids: string[]\n) => {\n const { execute } = useApiFetchByIds<DamAuthor>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + LIST + '/search',\n urlParams: { extSystemId },\n isSearchApi: true,\n })\n\n return execute(ids)\n}\n\nexport const useFetchAuthorList = (client: () => AxiosInstance, endPoint: string, extSystemId: IntegerId) =>\n useApiFetchList<DamAuthor>({\n client,\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint + LIST,\n urlParams: { extSystemId },\n })\n\nexport const createAuthor = (client: () => AxiosInstance, endPoint: string, data: DamAuthor) => {\n const { execute } = useApiRequest<DamAuthor, DamAuthor>({\n client,\n method: 'POST',\n system: SYSTEM_CORE_DAM,\n entity: ENTITY,\n urlTemplate: endPoint,\n })\n\n return execute({ body: data })\n}\n"],"mappings":";;;;;AASA,IAAMA,IAAO,4BACAC,IAAS,UAETC,KACX,GACA,GACA,GACA,MACG;CACH,IAAM,EAAE,eAAYC,EAA4B;EAC9C;EACA,QAAQC;EACR,QAAQH;EACR,aAAaI,IAAW;EACxB,WAAW,EAAE,eAAY;EACzB,aAAa;CACf,CAAC;CAED,OAAOC,EAAQC,CAAG;AACpB,GAEaC,KAAsB,GAA6B,GAAkB,MAChFC,EAA2B;CACzB;CACA,QAAQL;CACR,QAAQH;CACR,aAAaI,IAAWL;CACxB,WAAW,EAAE,eAAY;AAC3B,CAAC,GAEUU,KAAgB,GAA6B,GAAkB,MAAoB;CAC9F,IAAM,EAAE,eAAYC,EAAoC;EACtD;EACA,QAAQ;EACR,QAAQP;EACR,QAAQH;EACR,aAAaI;CACf,CAAC;CAED,OAAOC,EAAQ,EAAE,MAAMM,EAAK,CAAC;AAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorCreateButton.js","names":["_sfc_main","AuthorCreateButton_vue_vue_type_script_setup_true_lang_default","AuthorCreateButton_default"],"sources":["../../../../../src/domains/dam/author/components/AuthorCreateButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { ADamAuthorCreateValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { DamAuthor } from '@/domains/dam/author/types/DamAuthor'\nimport { useDamAuthorType } from '@/domains/dam/author/types/DamAuthorType'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useAuthorValidation } from '@/domains/dam/author/composables/authorValidation'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { createAuthor } from '@/domains/dam/author/api/authorApi'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport { useDamAuthorFactory } from '@/domains/dam/author/factory/AuthorFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport AFormTextField from '@/domains/form/components/AFormTextField.vue'\nimport AFormValueObjectOptionsSelect from '@/domains/form/components/AFormValueObjectOptionsSelect.vue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n initialValue?: string\n disableRedirect?: boolean\n variant?: 'button' | 'icon' | 'listItem'\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n disabled?: boolean | undefined\n validationScope?: ValidationScope\n /** The DAM configuration to work under. Left out: that of the component it is in, else `default`. */\n configName?: string\n }>(),\n {\n initialValue: '',\n disableRedirect: false,\n variant: 'button',\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: undefined,\n disabled: undefined,\n validationScope: ADamAuthorCreateValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'success', data: DamAuthor): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { damClient, endPointAuthor } = useCommonAdminCoreDamOptions(damConfigName)\nconst { getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configExtSystem = getDamConfigExtSystem(props.extSystem)\nif (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n}\n\nconst { createDefault } = useDamAuthorFactory()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst author = ref<DamAuthor>(createDefault(props.extSystem))\nconst dialog = ref(false)\nconst buttonLoading = ref(false)\n\nconst onClick = (textOverride: string | undefined) => {\n if (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n }\n author.value = createDefault(props.extSystem, true)\n textOverride ? (author.value.name = textOverride) : (author.value.name = props.initialValue)\n dialog.value = true\n}\n\nconst onCancel = () => {\n dialog.value = false\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { v$ } = useAuthorValidation(author, props.validationScope)\nconst { t } = useI18n()\nconst { showValidationError, showRecordWas, showErrorsDefault } = useAlerts()\n\nconst onConfirm = async () => {\n if (buttonLoading.value) return\n try {\n buttonLoading.value = true\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n buttonLoading.value = false\n return\n }\n const res = await createAuthor(damClient, endPointAuthor, author.value)\n emit('success', res)\n showRecordWas('created')\n dialog.value = false\n if (!isUndefined(res.id) && !props.disableRedirect) {\n // router.push({ name: ROUTE.DAM.AUTHOR.DETAIL, params: { id: res.id } })\n }\n } catch (error) {\n showErrorsDefault(error)\n } finally {\n buttonLoading.value = false\n }\n}\n\nconst { authorTypeOptions } = useDamAuthorType()\n\ndefineExpose({\n open: onClick,\n})\n</script>\n\n<template>\n <VListItem v-if=\"variant === 'listItem'\">\n <ABtnSecondary\n size=\"small\"\n :text=\"initialValue\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onClick\"\n />\n </VListItem>\n <ABtnPrimary\n v-else-if=\"variant === 'button'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :disabled=\"disabled\"\n rounded=\"pill\"\n @click.stop=\"onClick(undefined)\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n <VBtn\n v-else\n :aria-label=\"t('common.damImage.author.button.add')\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n :disabled=\"disabled\"\n variant=\"text\"\n size=\"small\"\n @click.stop=\"onClick(undefined)\"\n >\n <VIcon icon=\"mdi-plus\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.author.button.add') }}\n </VTooltip>\n </VBtn>\n <VDialog v-model=\"dialog\">\n <VCard\n v-if=\"dialog\"\n width=\"500\"\n class=\"mt-0 mr-auto ml-auto\"\n data-cy=\"create-panel\"\n >\n <ADialogToolbar @cancel=\"onCancel\">\n {{ t('common.damImage.author.meta.create') }}\n </ADialogToolbar>\n <VCardText>\n <ASystemEntityScope\n :system=\"SYSTEM_CORE_DAM\"\n subject=\"author\"\n >\n <ARow>\n <AFormTextField\n v-model=\"author.name\"\n :label=\"t('common.damImage.author.model.name')\"\n :v=\"v$.author.name\"\n required\n data-cy=\"author-name\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormTextField\n v-model=\"author.identifier\"\n :label=\"t('common.damImage.author.model.identifier')\"\n :v=\"v$.author.identifier\"\n data-cy=\"author-identifier\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormValueObjectOptionsSelect\n v-model=\"author.type\"\n :label=\"t('common.damImage.author.model.type')\"\n :items=\"authorTypeOptions\"\n data-cy=\"author-type\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n </ASystemEntityScope>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n :loading=\"buttonLoading\"\n data-cy=\"button-confirm\"\n @click.stop=\"onConfirm\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AuthorCreateButton.js","names":["_sfc_main","AuthorCreateButton_vue_vue_type_script_setup_true_lang_default","AuthorCreateButton_default"],"sources":["../../../../../src/domains/dam/author/components/AuthorCreateButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { ADamAuthorCreateValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { DamAuthor } from '@/domains/dam/author/types/DamAuthor'\nimport { useDamAuthorType } from '@/domains/dam/author/types/DamAuthorType'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useAuthorValidation } from '@/domains/dam/author/composables/authorValidation'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { createAuthor } from '@/domains/dam/author/api/authorApi'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport { useDamAuthorFactory } from '@/domains/dam/author/factory/AuthorFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport AFormTextField from '@/domains/form/components/AFormTextField.vue'\nimport AFormValueObjectOptionsSelect from '@/domains/form/components/AFormValueObjectOptionsSelect.vue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n initialValue?: string\n disableRedirect?: boolean\n variant?: 'button' | 'icon' | 'listItem'\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n disabled?: boolean | undefined\n validationScope?: ValidationScope\n /** DAM configuration to use. Defaults to the parent component's, else `default`. */\n configName?: string\n }>(),\n {\n initialValue: '',\n disableRedirect: false,\n variant: 'button',\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: undefined,\n disabled: undefined,\n validationScope: ADamAuthorCreateValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'success', data: DamAuthor): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { damClient, endPointAuthor } = useCommonAdminCoreDamOptions(damConfigName)\nconst { getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configExtSystem = getDamConfigExtSystem(props.extSystem)\nif (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n}\n\nconst { createDefault } = useDamAuthorFactory()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst author = ref<DamAuthor>(createDefault(props.extSystem))\nconst dialog = ref(false)\nconst buttonLoading = ref(false)\n\nconst onClick = (textOverride: string | undefined) => {\n if (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n }\n author.value = createDefault(props.extSystem, true)\n textOverride ? (author.value.name = textOverride) : (author.value.name = props.initialValue)\n dialog.value = true\n}\n\nconst onCancel = () => {\n dialog.value = false\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { v$ } = useAuthorValidation(author, props.validationScope)\nconst { t } = useI18n()\nconst { showValidationError, showRecordWas, showErrorsDefault } = useAlerts()\n\nconst onConfirm = async () => {\n if (buttonLoading.value) return\n try {\n buttonLoading.value = true\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n buttonLoading.value = false\n return\n }\n const res = await createAuthor(damClient, endPointAuthor, author.value)\n emit('success', res)\n showRecordWas('created')\n dialog.value = false\n if (!isUndefined(res.id) && !props.disableRedirect) {\n // router.push({ name: ROUTE.DAM.AUTHOR.DETAIL, params: { id: res.id } })\n }\n } catch (error) {\n showErrorsDefault(error)\n } finally {\n buttonLoading.value = false\n }\n}\n\nconst { authorTypeOptions } = useDamAuthorType()\n\ndefineExpose({\n open: onClick,\n})\n</script>\n\n<template>\n <VListItem v-if=\"variant === 'listItem'\">\n <ABtnSecondary\n size=\"small\"\n :text=\"initialValue\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onClick\"\n />\n </VListItem>\n <ABtnPrimary\n v-else-if=\"variant === 'button'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :disabled=\"disabled\"\n rounded=\"pill\"\n @click.stop=\"onClick(undefined)\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n <VBtn\n v-else\n :aria-label=\"t('common.damImage.author.button.add')\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n :disabled=\"disabled\"\n variant=\"text\"\n size=\"small\"\n @click.stop=\"onClick(undefined)\"\n >\n <VIcon icon=\"mdi-plus\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.author.button.add') }}\n </VTooltip>\n </VBtn>\n <VDialog v-model=\"dialog\">\n <VCard\n v-if=\"dialog\"\n width=\"500\"\n class=\"mt-0 mr-auto ml-auto\"\n data-cy=\"create-panel\"\n >\n <ADialogToolbar @cancel=\"onCancel\">\n {{ t('common.damImage.author.meta.create') }}\n </ADialogToolbar>\n <VCardText>\n <ASystemEntityScope\n :system=\"SYSTEM_CORE_DAM\"\n subject=\"author\"\n >\n <ARow>\n <AFormTextField\n v-model=\"author.name\"\n :label=\"t('common.damImage.author.model.name')\"\n :v=\"v$.author.name\"\n required\n data-cy=\"author-name\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormTextField\n v-model=\"author.identifier\"\n :label=\"t('common.damImage.author.model.identifier')\"\n :v=\"v$.author.identifier\"\n data-cy=\"author-identifier\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormValueObjectOptionsSelect\n v-model=\"author.type\"\n :label=\"t('common.damImage.author.model.type')\"\n :items=\"authorTypeOptions\"\n data-cy=\"author-type\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n </ASystemEntityScope>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n :loading=\"buttonLoading\"\n data-cy=\"button-confirm\"\n @click.stop=\"onConfirm\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":""}
@@ -11,7 +11,7 @@ type __VLS_Props = {
11
11
  dataCy?: string;
12
12
  disabled?: boolean | undefined;
13
13
  validationScope?: ValidationScope;
14
- /** The DAM configuration to work under. Left out: that of the component it is in, else `default`. */
14
+ /** DAM configuration to use. Defaults to the parent component's, else `default`. */
15
15
  configName?: string;
16
16
  };
17
17
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorCreateButton.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_createBlock","_component_VListItem","_withCtx","_createVNode","_withModifiers","_normalizeClass","_createTextVNode","_toDisplayString","_unref","_component_VBtn","_component_VIcon","_component_VTooltip","_component_VDialog","_component_VCard","ADialogToolbar","_component_VCardText","ASystemEntityScope","ARow","AFormTextField","_withKeys","AFormValueObjectOptionsSelect","_component_VCardActions","_component_VSpacer","_createCommentVNode","ARow_default","AFormTextField_default","ASystemEntityScope_default","ADialogToolbar_default","AFormValueObjectOptionsSelect_default","AuthorCreateButton_vue_vue_type_script_setup_true_lang_default","ADamAuthorCreateValidationScopeSymbol","__expose","__emit","props","__props","emit","damConfigName","useDamConfigName","useCommonAdminCoreDamOptions","useDamConfigState","configExtSystem","getDamConfigExtSystem","isUndefined","useDamAuthorFactory","author","ref","createDefault","dialog","buttonLoading","onClick","textOverride","onCancel","useAuthorValidation","useI18n","useAlerts","onConfirm","v$","showValidationError","res","createAuthor","damClient","endPointAuthor","showRecordWas","error","useDamAuthorType","_component_ABtnSecondary","resolveComponent","_component_ABtnPrimary","_component_ABtnTertiary","openBlock","createElementBlock","Fragment","createBlock","VListItem","withCtx","createVNode","withModifiers","normalizeClass","_cache","createTextVNode","toDisplayString","unref","t","VBtn","VIcon","VTooltip","VDialog","$event","VCard","VCardText","SYSTEM_CORE_DAM","withKeys","authorTypeOptions","VCardActions","VSpacer","createCommentVNode"],"sources":["../../../../../src/domains/dam/author/components/AuthorCreateButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { ADamAuthorCreateValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { DamAuthor } from '@/domains/dam/author/types/DamAuthor'\nimport { useDamAuthorType } from '@/domains/dam/author/types/DamAuthorType'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useAuthorValidation } from '@/domains/dam/author/composables/authorValidation'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { createAuthor } from '@/domains/dam/author/api/authorApi'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport { useDamAuthorFactory } from '@/domains/dam/author/factory/AuthorFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport AFormTextField from '@/domains/form/components/AFormTextField.vue'\nimport AFormValueObjectOptionsSelect from '@/domains/form/components/AFormValueObjectOptionsSelect.vue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n initialValue?: string\n disableRedirect?: boolean\n variant?: 'button' | 'icon' | 'listItem'\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n disabled?: boolean | undefined\n validationScope?: ValidationScope\n /** The DAM configuration to work under. Left out: that of the component it is in, else `default`. */\n configName?: string\n }>(),\n {\n initialValue: '',\n disableRedirect: false,\n variant: 'button',\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: undefined,\n disabled: undefined,\n validationScope: ADamAuthorCreateValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'success', data: DamAuthor): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { damClient, endPointAuthor } = useCommonAdminCoreDamOptions(damConfigName)\nconst { getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configExtSystem = getDamConfigExtSystem(props.extSystem)\nif (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n}\n\nconst { createDefault } = useDamAuthorFactory()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst author = ref<DamAuthor>(createDefault(props.extSystem))\nconst dialog = ref(false)\nconst buttonLoading = ref(false)\n\nconst onClick = (textOverride: string | undefined) => {\n if (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n }\n author.value = createDefault(props.extSystem, true)\n textOverride ? (author.value.name = textOverride) : (author.value.name = props.initialValue)\n dialog.value = true\n}\n\nconst onCancel = () => {\n dialog.value = false\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { v$ } = useAuthorValidation(author, props.validationScope)\nconst { t } = useI18n()\nconst { showValidationError, showRecordWas, showErrorsDefault } = useAlerts()\n\nconst onConfirm = async () => {\n if (buttonLoading.value) return\n try {\n buttonLoading.value = true\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n buttonLoading.value = false\n return\n }\n const res = await createAuthor(damClient, endPointAuthor, author.value)\n emit('success', res)\n showRecordWas('created')\n dialog.value = false\n if (!isUndefined(res.id) && !props.disableRedirect) {\n // router.push({ name: ROUTE.DAM.AUTHOR.DETAIL, params: { id: res.id } })\n }\n } catch (error) {\n showErrorsDefault(error)\n } finally {\n buttonLoading.value = false\n }\n}\n\nconst { authorTypeOptions } = useDamAuthorType()\n\ndefineExpose({\n open: onClick,\n})\n</script>\n\n<template>\n <VListItem v-if=\"variant === 'listItem'\">\n <ABtnSecondary\n size=\"small\"\n :text=\"initialValue\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onClick\"\n />\n </VListItem>\n <ABtnPrimary\n v-else-if=\"variant === 'button'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :disabled=\"disabled\"\n rounded=\"pill\"\n @click.stop=\"onClick(undefined)\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n <VBtn\n v-else\n :aria-label=\"t('common.damImage.author.button.add')\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n :disabled=\"disabled\"\n variant=\"text\"\n size=\"small\"\n @click.stop=\"onClick(undefined)\"\n >\n <VIcon icon=\"mdi-plus\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.author.button.add') }}\n </VTooltip>\n </VBtn>\n <VDialog v-model=\"dialog\">\n <VCard\n v-if=\"dialog\"\n width=\"500\"\n class=\"mt-0 mr-auto ml-auto\"\n data-cy=\"create-panel\"\n >\n <ADialogToolbar @cancel=\"onCancel\">\n {{ t('common.damImage.author.meta.create') }}\n </ADialogToolbar>\n <VCardText>\n <ASystemEntityScope\n :system=\"SYSTEM_CORE_DAM\"\n subject=\"author\"\n >\n <ARow>\n <AFormTextField\n v-model=\"author.name\"\n :label=\"t('common.damImage.author.model.name')\"\n :v=\"v$.author.name\"\n required\n data-cy=\"author-name\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormTextField\n v-model=\"author.identifier\"\n :label=\"t('common.damImage.author.model.identifier')\"\n :v=\"v$.author.identifier\"\n data-cy=\"author-identifier\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormValueObjectOptionsSelect\n v-model=\"author.type\"\n :label=\"t('common.damImage.author.model.type')\"\n :items=\"authorTypeOptions\"\n data-cy=\"author-type\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n </ASystemEntityScope>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n :loading=\"buttonLoading\"\n data-cy=\"button-confirm\"\n @click.stop=\"onConfirm\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AuthorCreateButton.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_createBlock","_component_VListItem","_withCtx","_createVNode","_withModifiers","_normalizeClass","_createTextVNode","_toDisplayString","_unref","_component_VBtn","_component_VIcon","_component_VTooltip","_component_VDialog","_component_VCard","ADialogToolbar","_component_VCardText","ASystemEntityScope","ARow","AFormTextField","_withKeys","AFormValueObjectOptionsSelect","_component_VCardActions","_component_VSpacer","_createCommentVNode","ARow_default","AFormTextField_default","ASystemEntityScope_default","ADialogToolbar_default","AFormValueObjectOptionsSelect_default","AuthorCreateButton_vue_vue_type_script_setup_true_lang_default","ADamAuthorCreateValidationScopeSymbol","__expose","__emit","props","__props","emit","damConfigName","useDamConfigName","useCommonAdminCoreDamOptions","useDamConfigState","configExtSystem","getDamConfigExtSystem","isUndefined","useDamAuthorFactory","author","ref","createDefault","dialog","buttonLoading","onClick","textOverride","onCancel","useAuthorValidation","useI18n","useAlerts","onConfirm","v$","showValidationError","res","createAuthor","damClient","endPointAuthor","showRecordWas","error","useDamAuthorType","_component_ABtnSecondary","resolveComponent","_component_ABtnPrimary","_component_ABtnTertiary","openBlock","createElementBlock","Fragment","createBlock","VListItem","withCtx","createVNode","withModifiers","normalizeClass","_cache","createTextVNode","toDisplayString","unref","t","VBtn","VIcon","VTooltip","VDialog","$event","VCard","VCardText","SYSTEM_CORE_DAM","withKeys","authorTypeOptions","VCardActions","VSpacer","createCommentVNode"],"sources":["../../../../../src/domains/dam/author/components/AuthorCreateButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { ADamAuthorCreateValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { DamAuthor } from '@/domains/dam/author/types/DamAuthor'\nimport { useDamAuthorType } from '@/domains/dam/author/types/DamAuthorType'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useAuthorValidation } from '@/domains/dam/author/composables/authorValidation'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { createAuthor } from '@/domains/dam/author/api/authorApi'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport { useDamAuthorFactory } from '@/domains/dam/author/factory/AuthorFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport AFormTextField from '@/domains/form/components/AFormTextField.vue'\nimport AFormValueObjectOptionsSelect from '@/domains/form/components/AFormValueObjectOptionsSelect.vue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n initialValue?: string\n disableRedirect?: boolean\n variant?: 'button' | 'icon' | 'listItem'\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n disabled?: boolean | undefined\n validationScope?: ValidationScope\n /** DAM configuration to use. Defaults to the parent component's, else `default`. */\n configName?: string\n }>(),\n {\n initialValue: '',\n disableRedirect: false,\n variant: 'button',\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: undefined,\n disabled: undefined,\n validationScope: ADamAuthorCreateValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'success', data: DamAuthor): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { damClient, endPointAuthor } = useCommonAdminCoreDamOptions(damConfigName)\nconst { getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configExtSystem = getDamConfigExtSystem(props.extSystem)\nif (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n}\n\nconst { createDefault } = useDamAuthorFactory()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst author = ref<DamAuthor>(createDefault(props.extSystem))\nconst dialog = ref(false)\nconst buttonLoading = ref(false)\n\nconst onClick = (textOverride: string | undefined) => {\n if (isUndefined(configExtSystem)) {\n throw new Error('AuthorCreateButton: Ext system must be initialised.')\n }\n author.value = createDefault(props.extSystem, true)\n textOverride ? (author.value.name = textOverride) : (author.value.name = props.initialValue)\n dialog.value = true\n}\n\nconst onCancel = () => {\n dialog.value = false\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { v$ } = useAuthorValidation(author, props.validationScope)\nconst { t } = useI18n()\nconst { showValidationError, showRecordWas, showErrorsDefault } = useAlerts()\n\nconst onConfirm = async () => {\n if (buttonLoading.value) return\n try {\n buttonLoading.value = true\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n buttonLoading.value = false\n return\n }\n const res = await createAuthor(damClient, endPointAuthor, author.value)\n emit('success', res)\n showRecordWas('created')\n dialog.value = false\n if (!isUndefined(res.id) && !props.disableRedirect) {\n // router.push({ name: ROUTE.DAM.AUTHOR.DETAIL, params: { id: res.id } })\n }\n } catch (error) {\n showErrorsDefault(error)\n } finally {\n buttonLoading.value = false\n }\n}\n\nconst { authorTypeOptions } = useDamAuthorType()\n\ndefineExpose({\n open: onClick,\n})\n</script>\n\n<template>\n <VListItem v-if=\"variant === 'listItem'\">\n <ABtnSecondary\n size=\"small\"\n :text=\"initialValue\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onClick\"\n />\n </VListItem>\n <ABtnPrimary\n v-else-if=\"variant === 'button'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :disabled=\"disabled\"\n rounded=\"pill\"\n @click.stop=\"onClick(undefined)\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n <VBtn\n v-else\n :aria-label=\"t('common.damImage.author.button.add')\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n :disabled=\"disabled\"\n variant=\"text\"\n size=\"small\"\n @click.stop=\"onClick(undefined)\"\n >\n <VIcon icon=\"mdi-plus\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.author.button.add') }}\n </VTooltip>\n </VBtn>\n <VDialog v-model=\"dialog\">\n <VCard\n v-if=\"dialog\"\n width=\"500\"\n class=\"mt-0 mr-auto ml-auto\"\n data-cy=\"create-panel\"\n >\n <ADialogToolbar @cancel=\"onCancel\">\n {{ t('common.damImage.author.meta.create') }}\n </ADialogToolbar>\n <VCardText>\n <ASystemEntityScope\n :system=\"SYSTEM_CORE_DAM\"\n subject=\"author\"\n >\n <ARow>\n <AFormTextField\n v-model=\"author.name\"\n :label=\"t('common.damImage.author.model.name')\"\n :v=\"v$.author.name\"\n required\n data-cy=\"author-name\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormTextField\n v-model=\"author.identifier\"\n :label=\"t('common.damImage.author.model.identifier')\"\n :v=\"v$.author.identifier\"\n data-cy=\"author-identifier\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n <ARow>\n <AFormValueObjectOptionsSelect\n v-model=\"author.type\"\n :label=\"t('common.damImage.author.model.type')\"\n :items=\"authorTypeOptions\"\n data-cy=\"author-type\"\n @keyup.enter=\"onConfirm\"\n />\n </ARow>\n </ASystemEntityScope>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n :loading=\"buttonLoading\"\n data-cy=\"button-confirm\"\n @click.stop=\"onConfirm\"\n >\n {{ t(buttonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorRemoteAutocompleteCachedAuthorChip.js","names":["_sfc_main","AuthorRemoteAutocompleteCachedAuthorChip_vue_vue_type_script_setup_true_lang_default","AuthorRemoteAutocompleteCachedAuthorChip_default"],"sources":["../../../../../src/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport {\n libraryUploadQueueSuggestions,\n UploadQueueSuggestionsKey,\n} from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport type { DocId } from '@/shared/types/common'\nimport { useI18n } from 'vue-i18n'\nimport { useCachedItem } from '@/domains/cached/composables/useCachedItem'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n id: null | DocId | undefined\n title?: string\n queueId?: string | undefined\n forceRounded?: boolean\n textOnly?: boolean\n size?: string\n containerClass?: undefined | string\n forceReviewed?: undefined | boolean\n /**\n * The props of the chip slot of the autocomplete the chip is drawn in: with them, the close of a closable chip\n * takes its value out of the autocomplete, as Vuetify's own chip does. Without them it only hid the chip.\n */\n chipProps?: Record<string, unknown>\n /** The DAM configuration whose names the chip shows; inherited when not given. */\n configName?: string\n }>(),\n {\n queueId: undefined,\n title: '',\n forceRounded: false,\n textOnly: false,\n size: 'small',\n containerClass: 'd-inline-flex',\n forceReviewed: undefined,\n chipProps: undefined,\n configName: undefined,\n }\n)\n\nconst { getCachedAuthor, addToCachedAuthors, fetchCachedAuthors, pinCachedAuthor, unpinCachedAuthor } =\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n useDamCachedAuthors(useDamConfigName(props.configName))\n// The application's queues where it provides them, else the library's store, asked for only when a chip needs it.\nconst suggestionsOf = inject(UploadQueueSuggestionsKey, null) ?? libraryUploadQueueSuggestions\n\nconst { cached, loaded, unresolved } = useCachedItem(() => getCachedAuthor(props.id), {\n // The name the chip shows stays in the cache while it shows it. A chip given its title shows no name.\n id: () => (props.title.length > 0 ? null : props.id),\n pin: pinCachedAuthor,\n unpin: unpinCachedAuthor,\n askFor: (id) => {\n addToCachedAuthors([id])\n fetchCachedAuthors()\n },\n})\n\nconst displayNewIcon = computed(() => {\n if (!props.queueId || !cached.value) return undefined\n const suggestions = suggestionsOf(props.queueId)\n if (!suggestions) return undefined\n if (suggestions.newAuthorNames.has(cached.value.name)) return 'mdi-new-box'\n return undefined\n})\n\nconst displayTitle = computed(() => {\n if (props.title.length > 0) return props.title\n // An author the server did not return has only its id to show.\n if (unresolved.value) return '#' + props.id\n if (cached.value) {\n return cached.value.name + (cached.value.identifier?.length > 0 ? ` (${cached.value.identifier})` : '')\n }\n return ''\n})\n\nconst displayReviewed = computed(() => {\n if (props.forceReviewed) return true\n if (cached.value?.reviewed) return true\n return false\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div :class=\"containerClass\">\n <template v-if=\"isNull(id) || isUndefined(id)\">\n <slot name=\"empty\">-</slot>\n </template>\n <div\n v-else-if=\"textOnly\"\n :title=\"unresolved ? t('common.model.cachedUnavailable') : undefined\"\n >\n {{ displayTitle }}\n <VProgressCircular\n v-if=\"!loaded && title.length === 0\"\n :size=\"12\"\n :width=\"2\"\n indeterminate\n class=\"mx-1\"\n />\n <VIcon\n v-if=\"displayReviewed\"\n icon=\"mdi-shield-check\"\n size=\"small\"\n class=\"text-success ml-1\"\n :title=\"t('common.damImage.author.model.flags.reviewed')\"\n />\n </div>\n <VChip\n v-else\n v-bind=\"chipProps\"\n :size=\"size\"\n :append-icon=\"displayNewIcon\"\n :label=\"forceRounded ? undefined : true\"\n :title=\"displayReviewed ? t('common.damImage.author.model.flags.reviewed') : undefined\"\n close-label=\"common.button.remove\"\n >\n {{ displayTitle }}\n <VTooltip\n v-if=\"unresolved\"\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.model.cachedUnavailable') }}\n </VTooltip>\n <VProgressCircular\n v-if=\"!loaded && title.length === 0\"\n :size=\"12\"\n :width=\"2\"\n indeterminate\n class=\"mx-1\"\n />\n <VIcon\n v-if=\"displayReviewed\"\n icon=\"mdi-shield-check\"\n class=\"text-success ml-1\"\n size=\"small\"\n :title=\"t('common.damImage.author.model.flags.reviewed')\"\n />\n </VChip>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AuthorRemoteAutocompleteCachedAuthorChip.js","names":["_sfc_main","AuthorRemoteAutocompleteCachedAuthorChip_vue_vue_type_script_setup_true_lang_default","AuthorRemoteAutocompleteCachedAuthorChip_default"],"sources":["../../../../../src/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport {\n libraryUploadQueueSuggestions,\n UploadQueueSuggestionsKey,\n} from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport type { DocId } from '@/shared/types/common'\nimport { useI18n } from 'vue-i18n'\nimport { useCachedItem } from '@/domains/cached/composables/useCachedItem'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n id: null | DocId | undefined\n title?: string\n queueId?: string | undefined\n forceRounded?: boolean\n textOnly?: boolean\n size?: string\n containerClass?: undefined | string\n forceReviewed?: undefined | boolean\n /**\n * Props of the autocomplete's chip slot. With them, closing a closable chip\n * removes its value from the autocomplete, as Vuetify's own chip does.\n * Without them the close only hides the chip.\n */\n chipProps?: Record<string, unknown>\n /** DAM configuration for the names. Inherited when not given. */\n configName?: string\n }>(),\n {\n queueId: undefined,\n title: '',\n forceRounded: false,\n textOnly: false,\n size: 'small',\n containerClass: 'd-inline-flex',\n forceReviewed: undefined,\n chipProps: undefined,\n configName: undefined,\n }\n)\n\nconst { getCachedAuthor, addToCachedAuthors, fetchCachedAuthors, pinCachedAuthor, unpinCachedAuthor } =\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n useDamCachedAuthors(useDamConfigName(props.configName))\n// Uses the application's queues when provided, else the library's store, created only when a chip needs it.\nconst suggestionsOf = inject(UploadQueueSuggestionsKey, null) ?? libraryUploadQueueSuggestions\n\nconst { cached, loaded, unresolved } = useCachedItem(() => getCachedAuthor(props.id), {\n // Pins the shown name in the cache. A chip given a title shows no cached name.\n id: () => (props.title.length > 0 ? null : props.id),\n pin: pinCachedAuthor,\n unpin: unpinCachedAuthor,\n askFor: (id) => {\n addToCachedAuthors([id])\n fetchCachedAuthors()\n },\n})\n\nconst displayNewIcon = computed(() => {\n if (!props.queueId || !cached.value) return undefined\n const suggestions = suggestionsOf(props.queueId)\n if (!suggestions) return undefined\n if (suggestions.newAuthorNames.has(cached.value.name)) return 'mdi-new-box'\n return undefined\n})\n\nconst displayTitle = computed(() => {\n if (props.title.length > 0) return props.title\n // An author the server did not return has only its id to show.\n if (unresolved.value) return '#' + props.id\n if (cached.value) {\n return cached.value.name + (cached.value.identifier?.length > 0 ? ` (${cached.value.identifier})` : '')\n }\n return ''\n})\n\nconst displayReviewed = computed(() => {\n if (props.forceReviewed) return true\n if (cached.value?.reviewed) return true\n return false\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div :class=\"containerClass\">\n <template v-if=\"isNull(id) || isUndefined(id)\">\n <slot name=\"empty\">-</slot>\n </template>\n <div\n v-else-if=\"textOnly\"\n :title=\"unresolved ? t('common.model.cachedUnavailable') : undefined\"\n >\n {{ displayTitle }}\n <VProgressCircular\n v-if=\"!loaded && title.length === 0\"\n :size=\"12\"\n :width=\"2\"\n indeterminate\n class=\"mx-1\"\n />\n <VIcon\n v-if=\"displayReviewed\"\n icon=\"mdi-shield-check\"\n size=\"small\"\n class=\"text-success ml-1\"\n :title=\"t('common.damImage.author.model.flags.reviewed')\"\n />\n </div>\n <VChip\n v-else\n v-bind=\"chipProps\"\n :size=\"size\"\n :append-icon=\"displayNewIcon\"\n :label=\"forceRounded ? undefined : true\"\n :title=\"displayReviewed ? t('common.damImage.author.model.flags.reviewed') : undefined\"\n close-label=\"common.button.remove\"\n >\n {{ displayTitle }}\n <VTooltip\n v-if=\"unresolved\"\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.model.cachedUnavailable') }}\n </VTooltip>\n <VProgressCircular\n v-if=\"!loaded && title.length === 0\"\n :size=\"12\"\n :width=\"2\"\n indeterminate\n class=\"mx-1\"\n />\n <VIcon\n v-if=\"displayReviewed\"\n icon=\"mdi-shield-check\"\n class=\"text-success ml-1\"\n size=\"small\"\n :title=\"t('common.damImage.author.model.flags.reviewed')\"\n />\n </VChip>\n </div>\n</template>\n"],"mappings":""}
@@ -9,17 +9,20 @@ type __VLS_Props = {
9
9
  containerClass?: undefined | string;
10
10
  forceReviewed?: undefined | boolean;
11
11
  /**
12
- * The props of the chip slot of the autocomplete the chip is drawn in: with them, the close of a closable chip
13
- * takes its value out of the autocomplete, as Vuetify's own chip does. Without them it only hid the chip.
12
+ * Props of the autocomplete's chip slot. With them, closing a closable chip
13
+ * removes its value from the autocomplete, as Vuetify's own chip does.
14
+ * Without them the close only hides the chip.
14
15
  */
15
16
  chipProps?: Record<string, unknown>;
16
- /** The DAM configuration whose names the chip shows; inherited when not given. */
17
+ /** DAM configuration for the names. Inherited when not given. */
17
18
  configName?: string;
18
19
  };
19
- declare var __VLS_1: {};
20
- type __VLS_Slots = {} & {
21
- empty?: (props: typeof __VLS_1) => any;
20
+ declare const __VLS_template: () => {
21
+ __VLS_Slots: {
22
+ empty?: (props: {}) => any;
23
+ };
22
24
  };
25
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
23
26
  declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
24
27
  title: string;
25
28
  size: string;