@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":"KeywordRemoteAutocompleteCachedKeywordChip.js","names":["_sfc_main","KeywordRemoteAutocompleteCachedKeywordChip_vue_vue_type_script_setup_true_lang_default","KeywordRemoteAutocompleteCachedKeywordChip_default"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport type { DocId } from '@/shared/types/common'\nimport { useDamCachedKeywords } from '@/domains/dam/keyword/composables/cachedKeywords'\nimport {\n libraryUploadQueueSuggestions,\n UploadQueueSuggestionsKey,\n} from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport { useCachedItem } from '@/domains/cached/composables/useCachedItem'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useI18n } from 'vue-i18n'\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 /**\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 }>(),\n {\n queueId: undefined,\n title: '',\n forceRounded: false,\n textOnly: false,\n size: 'small',\n containerClass: 'd-inline-flex',\n chipProps: undefined,\n }\n)\n\nconst { getCachedKeyword, addToCachedKeywords, fetchCachedKeywords, pinCachedKeyword, unpinCachedKeyword } =\n useDamCachedKeywords(useDamConfigName())\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(() => getCachedKeyword(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: pinCachedKeyword,\n unpin: unpinCachedKeyword,\n askFor: (id) => {\n addToCachedKeywords([id])\n fetchCachedKeywords()\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.newKeywordNames.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 // A keyword 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\n }\n return ''\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 </div>\n <VChip\n v-else\n v-bind=\"chipProps\"\n :size=\"size\"\n :append-icon=\"displayNewIcon\"\n :label=\"forceRounded ? undefined : true\"\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 </VChip>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"KeywordRemoteAutocompleteCachedKeywordChip.js","names":["_sfc_main","KeywordRemoteAutocompleteCachedKeywordChip_vue_vue_type_script_setup_true_lang_default","KeywordRemoteAutocompleteCachedKeywordChip_default"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport type { DocId } from '@/shared/types/common'\nimport { useDamCachedKeywords } from '@/domains/dam/keyword/composables/cachedKeywords'\nimport {\n libraryUploadQueueSuggestions,\n UploadQueueSuggestionsKey,\n} from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport { useCachedItem } from '@/domains/cached/composables/useCachedItem'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useI18n } from 'vue-i18n'\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 /**\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 }>(),\n {\n queueId: undefined,\n title: '',\n forceRounded: false,\n textOnly: false,\n size: 'small',\n containerClass: 'd-inline-flex',\n chipProps: undefined,\n }\n)\n\nconst { getCachedKeyword, addToCachedKeywords, fetchCachedKeywords, pinCachedKeyword, unpinCachedKeyword } =\n useDamCachedKeywords(useDamConfigName())\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(() => getCachedKeyword(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: pinCachedKeyword,\n unpin: unpinCachedKeyword,\n askFor: (id) => {\n addToCachedKeywords([id])\n fetchCachedKeywords()\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.newKeywordNames.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 // A keyword 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\n }\n return ''\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 </div>\n <VChip\n v-else\n v-bind=\"chipProps\"\n :size=\"size\"\n :append-icon=\"displayNewIcon\"\n :label=\"forceRounded ? undefined : true\"\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 </VChip>\n </div>\n</template>\n"],"mappings":""}
@@ -8,15 +8,18 @@ type __VLS_Props = {
8
8
  size?: string;
9
9
  containerClass?: undefined | string;
10
10
  /**
11
- * The props of the chip slot of the autocomplete the chip is drawn in: with them, the close of a closable chip
12
- * takes its value out of the autocomplete, as Vuetify's own chip does. Without them it only hid the chip.
11
+ * Props of the autocomplete's chip slot. With them, closing a closable chip
12
+ * removes its value from the autocomplete, as Vuetify's own chip does.
13
+ * Without them the close only hides the chip.
13
14
  */
14
15
  chipProps?: Record<string, unknown>;
15
16
  };
16
- declare var __VLS_1: {};
17
- type __VLS_Slots = {} & {
18
- empty?: (props: typeof __VLS_1) => any;
17
+ declare const __VLS_template: () => {
18
+ __VLS_Slots: {
19
+ empty?: (props: {}) => any;
20
+ };
19
21
  };
22
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
20
23
  declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
21
24
  title: string;
22
25
  size: string;
@@ -1 +1 @@
1
- {"version":3,"file":"KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_unref","_renderSlot","_createTextVNode","_toDisplayString","_createBlock","_component_VProgressCircular","_createCommentVNode","_component_VChip","_mergeProps","_withCtx","_component_VTooltip","_hoisted_1","KeywordRemoteAutocompleteCachedKeywordChip_vue_vue_type_script_setup_true_lang_default","props","__props","useDamCachedKeywords","useDamConfigName","suggestionsOf","inject","UploadQueueSuggestionsKey","libraryUploadQueueSuggestions","useCachedItem","getCachedKeyword","pinCachedKeyword","unpinCachedKeyword","addToCachedKeywords","id","fetchCachedKeywords","displayNewIcon","computed","cached","suggestions","displayTitle","unresolved","useI18n","openBlock","createElementBlock","normalizeClass","unref","isNull","isUndefined","renderSlot","_ctx","_cache","createTextVNode","t","toDisplayString","loaded","createBlock","VProgressCircular","createCommentVNode","VChip","mergeProps","withCtx","VTooltip"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport type { DocId } from '@/shared/types/common'\nimport { useDamCachedKeywords } from '@/domains/dam/keyword/composables/cachedKeywords'\nimport {\n libraryUploadQueueSuggestions,\n UploadQueueSuggestionsKey,\n} from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport { useCachedItem } from '@/domains/cached/composables/useCachedItem'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useI18n } from 'vue-i18n'\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 /**\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 }>(),\n {\n queueId: undefined,\n title: '',\n forceRounded: false,\n textOnly: false,\n size: 'small',\n containerClass: 'd-inline-flex',\n chipProps: undefined,\n }\n)\n\nconst { getCachedKeyword, addToCachedKeywords, fetchCachedKeywords, pinCachedKeyword, unpinCachedKeyword } =\n useDamCachedKeywords(useDamConfigName())\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(() => getCachedKeyword(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: pinCachedKeyword,\n unpin: unpinCachedKeyword,\n askFor: (id) => {\n addToCachedKeywords([id])\n fetchCachedKeywords()\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.newKeywordNames.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 // A keyword 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\n }\n return ''\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 </div>\n <VChip\n v-else\n v-bind=\"chipProps\"\n :size=\"size\"\n :append-icon=\"displayNewIcon\"\n :label=\"forceRounded ? undefined : true\"\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 </VChip>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaA,IAAMgB,IAAQC,GA0BR,EAAE,qBAAkB,wBAAqB,wBAAqB,qBAAkB,0BACpFC,EAAqBC,EAAiB,CAAC,GAEnCC,IAAgBC,EAAOC,GAA2B,IAAI,KAAKC,GAE3D,EAAE,WAAQ,WAAQ,kBAAeC,QAAoBC,EAAiBT,EAAM,EAAE,GAAG;GAErF,UAAWA,EAAM,MAAM,SAAS,IAAI,OAAOA,EAAM;GACjD,KAAKU;GACL,OAAOC;GACP,SAAS,MAAO;IAEd,AADAC,EAAoB,CAACC,CAAE,CAAC,GACxBC,EAAoB;GACtB;EACF,CAAC,GAEKC,IAAiBC,QAAe;GACpC,IAAI,CAAChB,EAAM,WAAW,CAACiB,EAAO,OAAO;GACrC,IAAMC,IAAcd,EAAcJ,EAAM,OAAO;GAC/C,IAAKkB,KACDA,EAAY,gBAAgB,IAAID,EAAO,MAAM,IAAI,GAAG,OAAO;EAEjE,CAAC,GAEKE,IAAeH,QACfhB,EAAM,MAAM,SAAS,IAAUA,EAAM,QAErCoB,EAAW,QAAc,MAAMpB,EAAM,KACrCiB,EAAO,QACFA,EAAO,MAAM,OAEf,EACR,GAEK,EAAE,SAAMI,EAAQ;E,kBAIpBrC,EAAA,GAAAC,EAyCM,OAAA,EAzCA,OAAKC,EAAEe,EAAA,cAAc,E,IACTd,EAAAuC,CAAA,CAAM,CAACzB,EAAA,EAAE,KAAKd,EAAAwC,CAAA,CAAW,CAAC1B,EAAA,EAAE,IAC1Cb,EAA2ByC,EAAA,QAAA,SAAA,CAAA,SAAA,CAAR,AAAAC,EAAA,OAAAzC,EAAA,KAAC,EAAA,C,gBAGTY,EAAA,YADbjB,EAAA,GAAAC,EAYM,OAAA;;GAVH,OAAOE,EAAAiC,CAAA,IAAajC,EAAA6C,CAAA,CAAC,CAAA,gCAAA,IAAqC,KAAA;E,IAExD3C,EAAAC,EAAA6B,EAAA,KAAY,IAAG,KAClB,CAAA,GACS,CAAAhC,EAAA+C,CAAA,KAAUjC,EAAA,MAAM,WAAM,KAD/BjB,EAAA,GAAAO,EAMEC,GAAA;;GAJC,MAAM;GACN,OAAO;GACR,eAAA;GACA,OAAM;E,4BAGVR,EAAA,GAAAO,EAuBQG,GAvBRC,EAuBQ,EAAA,KAAA,EAAA,GArBEM,EAAA,WAAS;GAChB,MAAMA,EAAA;GACN,eAAac,EAAA;GACb,OAAO,GAAA,gBAAe,KAAA;GACvB,eAAY;;GAEZ,SAAAnB,QAAkB;IAAfP,EAAAC,EAAA6B,EAAA,KAAY,IAAG,KAClB,CAAA;IACQhC,EAAAiC,CAAA,KADRpC,EAAA,GAAAO,EAMWM,GAAA;;KAJT,WAAU;KACV,UAAS;;KAET,SAAAD,QAAyC,CAAtCP,EAAAC,EAAAH,EAAA6C,CAAA,CAAC,CAAA,gCAAA,CAAA,GAAA,CAAA,C;;;IAGG,CAAA7C,EAAA+C,CAAA,KAAUjC,EAAA,MAAM,WAAM,KAD/BjB,EAAA,GAAAO,EAMEC,GAAA;;KAJC,MAAM;KACN,OAAO;KACR,eAAA;KACA,OAAM"}
1
+ {"version":3,"file":"KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_unref","_renderSlot","_createTextVNode","_toDisplayString","_createBlock","_component_VProgressCircular","_createCommentVNode","_component_VChip","_mergeProps","_withCtx","_component_VTooltip","_hoisted_1","KeywordRemoteAutocompleteCachedKeywordChip_vue_vue_type_script_setup_true_lang_default","props","__props","useDamCachedKeywords","useDamConfigName","suggestionsOf","inject","UploadQueueSuggestionsKey","libraryUploadQueueSuggestions","useCachedItem","getCachedKeyword","pinCachedKeyword","unpinCachedKeyword","addToCachedKeywords","id","fetchCachedKeywords","displayNewIcon","computed","cached","suggestions","displayTitle","unresolved","useI18n","openBlock","createElementBlock","normalizeClass","unref","isNull","isUndefined","renderSlot","_ctx","_cache","createTextVNode","t","toDisplayString","loaded","createBlock","VProgressCircular","createCommentVNode","VChip","mergeProps","withCtx","VTooltip"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport type { DocId } from '@/shared/types/common'\nimport { useDamCachedKeywords } from '@/domains/dam/keyword/composables/cachedKeywords'\nimport {\n libraryUploadQueueSuggestions,\n UploadQueueSuggestionsKey,\n} from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport { useCachedItem } from '@/domains/cached/composables/useCachedItem'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useI18n } from 'vue-i18n'\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 /**\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 }>(),\n {\n queueId: undefined,\n title: '',\n forceRounded: false,\n textOnly: false,\n size: 'small',\n containerClass: 'd-inline-flex',\n chipProps: undefined,\n }\n)\n\nconst { getCachedKeyword, addToCachedKeywords, fetchCachedKeywords, pinCachedKeyword, unpinCachedKeyword } =\n useDamCachedKeywords(useDamConfigName())\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(() => getCachedKeyword(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: pinCachedKeyword,\n unpin: unpinCachedKeyword,\n askFor: (id) => {\n addToCachedKeywords([id])\n fetchCachedKeywords()\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.newKeywordNames.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 // A keyword 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\n }\n return ''\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 </div>\n <VChip\n v-else\n v-bind=\"chipProps\"\n :size=\"size\"\n :append-icon=\"displayNewIcon\"\n :label=\"forceRounded ? undefined : true\"\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 </VChip>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaA,IAAMgB,IAAQC,GA2BR,EAAE,qBAAkB,wBAAqB,wBAAqB,qBAAkB,0BACpFC,EAAqBC,EAAiB,CAAC,GAEnCC,IAAgBC,EAAOC,GAA2B,IAAI,KAAKC,GAE3D,EAAE,WAAQ,WAAQ,kBAAeC,QAAoBC,EAAiBT,EAAM,EAAE,GAAG;GAErF,UAAWA,EAAM,MAAM,SAAS,IAAI,OAAOA,EAAM;GACjD,KAAKU;GACL,OAAOC;GACP,SAAS,MAAO;IAEd,AADAC,EAAoB,CAACC,CAAE,CAAC,GACxBC,EAAoB;GACtB;EACF,CAAC,GAEKC,IAAiBC,QAAe;GACpC,IAAI,CAAChB,EAAM,WAAW,CAACiB,EAAO,OAAO;GACrC,IAAMC,IAAcd,EAAcJ,EAAM,OAAO;GAC/C,IAAKkB,KACDA,EAAY,gBAAgB,IAAID,EAAO,MAAM,IAAI,GAAG,OAAO;EAEjE,CAAC,GAEKE,IAAeH,QACfhB,EAAM,MAAM,SAAS,IAAUA,EAAM,QAErCoB,EAAW,QAAc,MAAMpB,EAAM,KACrCiB,EAAO,QACFA,EAAO,MAAM,OAEf,EACR,GAEK,EAAE,SAAMI,EAAQ;E,kBAIpBrC,EAAA,GAAAC,EAyCM,OAAA,EAzCA,OAAKC,EAAEe,EAAA,cAAc,E,IACTd,EAAAuC,CAAA,CAAM,CAACzB,EAAA,EAAE,KAAKd,EAAAwC,CAAA,CAAW,CAAC1B,EAAA,EAAE,IAC1Cb,EAA2ByC,EAAA,QAAA,SAAA,CAAA,SAAA,CAAR,AAAAC,EAAA,OAAAzC,EAAA,KAAC,EAAA,C,gBAGTY,EAAA,YADbjB,EAAA,GAAAC,EAYM,OAAA;;GAVH,OAAOE,EAAAiC,CAAA,IAAajC,EAAA6C,CAAA,CAAC,CAAA,gCAAA,IAAqC,KAAA;E,IAExD3C,EAAAC,EAAA6B,EAAA,KAAY,IAAG,KAClB,CAAA,GACS,CAAAhC,EAAA+C,CAAA,KAAUjC,EAAA,MAAM,WAAM,KAD/BjB,EAAA,GAAAO,EAMEC,GAAA;;GAJC,MAAM;GACN,OAAO;GACR,eAAA;GACA,OAAM;E,4BAGVR,EAAA,GAAAO,EAuBQG,GAvBRC,EAuBQ,EAAA,KAAA,EAAA,GArBEM,EAAA,WAAS;GAChB,MAAMA,EAAA;GACN,eAAac,EAAA;GACb,OAAO,GAAA,gBAAe,KAAA;GACvB,eAAY;;GAEZ,SAAAnB,QAAkB;IAAfP,EAAAC,EAAA6B,EAAA,KAAY,IAAG,KAClB,CAAA;IACQhC,EAAAiC,CAAA,KADRpC,EAAA,GAAAO,EAMWM,GAAA;;KAJT,WAAU;KACV,UAAS;;KAET,SAAAD,QAAyC,CAAtCP,EAAAC,EAAAH,EAAA6C,CAAA,CAAC,CAAA,gCAAA,CAAA,GAAA,CAAA,C;;;IAGG,CAAA7C,EAAA+C,CAAA,KAAUjC,EAAA,MAAM,WAAM,KAD/BjB,EAAA,GAAAO,EAMEC,GAAA;;KAJC,MAAM;KACN,OAAO;KACR,eAAA;KACA,OAAM"}
@@ -2,7 +2,7 @@ import e from "../../../../_virtual/_plugin-vue_export-helper.js";
2
2
  import t from "./KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js";
3
3
  /* empty css */
4
4
  // src/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue
5
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-a1e96a4c"]]);
5
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-976c0e76"]]);
6
6
  export { n as default };
7
7
 
8
8
  //# sourceMappingURL=KeywordRemoteAutocompleteWithCached.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeywordRemoteAutocompleteWithCached.js","names":["_sfc_main","_plugin_vue_export_helper_default","KeywordRemoteAutocompleteWithCached_vue_vue_type_script_setup_true_lang_default","KeywordRemoteAutocompleteWithCached_default"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { computed, provide, ref } from 'vue'\nimport { useValidate } from '@/shared/validators/vuelidate/useValidate'\nimport useVuelidate from '@vuelidate/core'\nimport { useKeywordSelectActions } from '@/domains/dam/keyword/composables/keywordActions'\nimport {\n useCachedKeywordsForRemoteAutocomplete,\n useDamCachedKeywords,\n} from '@/domains/dam/keyword/composables/cachedKeywords'\nimport type { DamKeyword } from '@/domains/dam/keyword/types/DamKeyword'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport AFormRemoteAutocompleteWithCached from '@/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteCachedKeywordChip from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue'\nimport { createKeyword } from '@/domains/dam/keyword/api/keywordApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamKeywordFactory } from '@/domains/dam/keyword/factory/KeywordFactory'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useKeywordInnerFilter } from '@/domains/dam/keyword/filter/KeywordFilter'\nimport { FilterInnerConfigKey, FilterInnerDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport type { DamFieldsDisabledAs } from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: DocId | null | DocId[] | any\n extSystem: IntegerId\n queueId?: string | undefined\n label?: string | undefined\n required?: boolean | null\n disabled?: boolean | undefined\n multiple?: boolean\n clearable?: boolean\n dataCy?: string\n validationScope?: ValidationScope\n /** While disabled: the chips of the keywords (today's library), or the input switched off. */\n disabledAs?: DamFieldsDisabledAs\n /** The DAM configuration to work under. Left out: that of the component it is in, else `default`. */\n configName?: string\n }>(),\n {\n label: undefined,\n queueId: undefined,\n required: null,\n disabled: undefined,\n multiple: false,\n clearable: false,\n dataCy: undefined,\n validationScope: undefined,\n disabledAs: 'chips',\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DocId | null | DocId[]): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue) {\n emit('update:modelValue', [...newValue])\n },\n})\n\nconst search = ref<string>('')\nconst loadingLocal = ref(false)\nconst fetchedItemsMinimal = ref<Map<IntegerId | DocId, any>>(new Map())\n\nconst requiredComputed = computed(() => !!props.required)\n\nconst { requiredIf } = useValidate()\n\nconst rules = {\n modelValueComputed: {\n required: requiredIf(requiredComputed),\n },\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst v$ = useVuelidate(rules, { modelValueComputed }, { $scope: props.validationScope })\n\nconst { damClient, endPointKeyword, keywordCreateAcl } = useCommonAdminCoreDamOptions(damConfigName)\nconst createAllowed = useAclAllowed(keywordCreateAcl ?? undefined)\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('KeywordRemoteAutocompleteWithCached: Ext system must be initialised.')\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { fetchItemsMinimal } = useKeywordSelectActions(props.extSystem, damConfigName)\n\nconst { filterData, filterConfig } = useKeywordInnerFilter()\nprovide(FilterInnerConfigKey, filterConfig)\nprovide(FilterInnerDataKey, filterData)\n\nconst addNewKeywordText = ref('')\n\nconst searchChange = (newValue: string) => {\n if (newValue.length > 0) addNewKeywordText.value = removeLastComma(newValue)\n}\n\nconst { addManualToCachedKeywords } = useDamCachedKeywords(damConfigName)\n// The cache of its configuration, which the inner input takes once.\nconst useCachedOfName = () => useCachedKeywordsForRemoteAutocomplete(damConfigName)\n\nconst afterCreate = (keyword: DamKeyword) => {\n addManualToCachedKeywords(keyword)\n if (isArray(modelValueComputed.value)) {\n modelValueComputed.value = [...modelValueComputed.value, keyword.id]\n search.value = ''\n return\n }\n modelValueComputed.value = keyword.id\n search.value = ''\n}\n\nconst itemSlotIsSelected = (item: DocId) => {\n if (isArray(modelValueComputed.value)) {\n return modelValueComputed.value.includes(item)\n } else if (modelValueComputed.value) {\n return modelValueComputed.value === item\n }\n return false\n}\n\nconst { showErrorsDefault } = useAlerts()\nconst { createDefault } = useDamKeywordFactory()\n\nconst createOrSelectKeyword = async (name: string) => {\n const keywordCreate = createDefault(props.extSystem, true)\n keywordCreate.name = removeLastComma(name)\n if (keywordCreate.name.length < 2) return\n try {\n const keywordRes = await createKeyword(damClient, endPointKeyword, keywordCreate)\n afterCreate(keywordRes)\n } catch (error) {\n showErrorsDefault(error)\n }\n}\n\nconst removeLastComma = (value: string) => {\n if (value.endsWith(',')) return value.slice(0, -1)\n return value\n}\n\nconst onEnterKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst onCommaKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst showAdd = computed(() => {\n if (!createAllowed.value) return false\n if (loadingLocal.value) return false\n if (search.value.length < 2 || search.value.length > 255) return false\n if (fetchedItemsMinimal.value.size === 0) return true\n return ![...fetchedItemsMinimal.value.values()].some(\n (item) => item.name?.toLowerCase() === search.value!.toLowerCase()\n )\n})\n</script>\n\n<template>\n <div class=\"d-flex\">\n <ARow\n v-if=\"disabled && disabledAs === 'chips' && multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-for=\"id in modelValueComputed\"\n :id=\"id\"\n :key=\"id\"\n :queue-id=\"queueId\"\n force-rounded\n class=\"mr-1 mb-1\"\n />\n </ARow>\n <ARow\n v-else-if=\"disabled && disabledAs === 'chips' && !multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"modelValueComputed\"\n :key=\"modelValueComputed\"\n :queue-id=\"queueId\"\n force-rounded\n />\n </ARow>\n <AFormRemoteAutocompleteWithCached\n v-else\n v-model=\"modelValueComputed\"\n v-model:search=\"search\"\n v-model:loading-local=\"loadingLocal\"\n v-model:fetched-items-minimal=\"fetchedItemsMinimal\"\n :use-cached=\"useCachedOfName\"\n :v=\"v$\"\n :required=\"requiredComputed\"\n :label=\"label\"\n :fetch-items-minimal=\"fetchItemsMinimal\"\n :multiple=\"multiple\"\n :clearable=\"clearable\"\n :disabled=\"disabled || undefined\"\n filter-by-field=\"text\"\n :filter-sort-by=\"null\"\n item-title=\"name\"\n item-value=\"id\"\n :data-cy=\"dataCy\"\n :min-search-chars=\"2\"\n min-search-text=\"common.damImage.keyword.filterMinChars\"\n @search-change=\"searchChange\"\n @keyup.enter=\"onEnterKeyup\"\n @keyup.,=\"onCommaKeyup\"\n >\n <template #item=\"{ props: itemSlotProps, item: itemSlotItem }\">\n <VListItem\n v-if=\"itemSlotItem\"\n v-bind=\"itemSlotProps\"\n @click.prevent=\"\"\n >\n <template\n v-if=\"multiple\"\n #prepend\n >\n <VCheckboxBtn\n :model-value=\"itemSlotIsSelected(itemSlotItem.value)\"\n :ripple=\"false\"\n />\n </template>\n <template #title>\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"itemSlotItem.value\"\n :key=\"itemSlotItem.value\"\n :queue-id=\"queueId\"\n :title=\"itemSlotItem.title\"\n text-only\n />\n </template>\n </VListItem>\n </template>\n <!-- Only the close of the slot's chip: its other props (`onMousedown`) would keep a press on the chip from\n opening the list, as it does. -->\n <template #chip=\"{ props: chipSlotProps, item: chipSlotItem }\">\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-if=\"chipSlotItem\"\n :id=\"chipSlotItem.value\"\n :key=\"chipSlotItem.value\"\n :chip-props=\"{ 'onClick:close': chipSlotProps['onClick:close'] }\"\n :queue-id=\"queueId\"\n :title=\"chipSlotItem.title\"\n force-rounded\n />\n </template>\n <template #append-item>\n <VListItem\n v-if=\"showAdd\"\n class=\"a-keywords-append-item\"\n >\n <ABtnSecondary\n size=\"small\"\n :text=\"addNewKeywordText\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onCommaKeyup\"\n />\n </VListItem>\n </template>\n </AFormRemoteAutocompleteWithCached>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.a-keywords-append-item {\n position: sticky;\n bottom: 0;\n // The menu's own surface: a white bar sat in the dark theme's menu.\n background-color: rgb(var(--v-theme-surface));\n transform: translateY(8px);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"KeywordRemoteAutocompleteWithCached.js","names":["_sfc_main","_plugin_vue_export_helper_default","KeywordRemoteAutocompleteWithCached_vue_vue_type_script_setup_true_lang_default","KeywordRemoteAutocompleteWithCached_default"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { computed, provide, ref } from 'vue'\nimport { useValidate } from '@/shared/validators/vuelidate/useValidate'\nimport useVuelidate from '@vuelidate/core'\nimport { useKeywordSelectActions } from '@/domains/dam/keyword/composables/keywordActions'\nimport {\n useCachedKeywordsForRemoteAutocomplete,\n useDamCachedKeywords,\n} from '@/domains/dam/keyword/composables/cachedKeywords'\nimport type { DamKeyword } from '@/domains/dam/keyword/types/DamKeyword'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport AFormRemoteAutocompleteWithCached from '@/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteCachedKeywordChip from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue'\nimport { createKeyword } from '@/domains/dam/keyword/api/keywordApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamKeywordFactory } from '@/domains/dam/keyword/factory/KeywordFactory'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useKeywordInnerFilter } from '@/domains/dam/keyword/filter/KeywordFilter'\nimport { FilterInnerConfigKey, FilterInnerDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport type { DamFieldsDisabledAs } from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: DocId | null | DocId[] | any\n extSystem: IntegerId\n queueId?: string | undefined\n label?: string | undefined\n required?: boolean | null\n disabled?: boolean | undefined\n multiple?: boolean\n clearable?: boolean\n dataCy?: string\n validationScope?: ValidationScope\n /** How it looks while disabled: keyword chips (current library behaviour), or the input switched off. */\n disabledAs?: DamFieldsDisabledAs\n /** DAM configuration to use. Defaults to the parent component's, else `default`. */\n configName?: string\n }>(),\n {\n label: undefined,\n queueId: undefined,\n required: null,\n disabled: undefined,\n multiple: false,\n clearable: false,\n dataCy: undefined,\n validationScope: undefined,\n disabledAs: 'chips',\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DocId | null | DocId[]): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue) {\n emit('update:modelValue', [...newValue])\n },\n})\n\nconst search = ref<string>('')\nconst loadingLocal = ref(false)\nconst fetchedItemsMinimal = ref<Map<IntegerId | DocId, any>>(new Map())\n\nconst requiredComputed = computed(() => !!props.required)\n\nconst { requiredIf } = useValidate()\n\nconst rules = {\n modelValueComputed: {\n required: requiredIf(requiredComputed),\n },\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst v$ = useVuelidate(rules, { modelValueComputed }, { $scope: props.validationScope })\n\nconst { damClient, endPointKeyword, keywordCreateAcl } = useCommonAdminCoreDamOptions(damConfigName)\nconst createAllowed = useAclAllowed(keywordCreateAcl ?? undefined)\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('KeywordRemoteAutocompleteWithCached: Ext system must be initialised.')\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { fetchItemsMinimal } = useKeywordSelectActions(props.extSystem, damConfigName)\n\nconst { filterData, filterConfig } = useKeywordInnerFilter()\nprovide(FilterInnerConfigKey, filterConfig)\nprovide(FilterInnerDataKey, filterData)\n\nconst addNewKeywordText = ref('')\n\nconst searchChange = (newValue: string) => {\n if (newValue.length > 0) addNewKeywordText.value = removeLastComma(newValue)\n}\n\nconst { addManualToCachedKeywords } = useDamCachedKeywords(damConfigName)\n// The inner input reads this cache only once.\nconst useCachedOfName = () => useCachedKeywordsForRemoteAutocomplete(damConfigName)\n\nconst afterCreate = (keyword: DamKeyword) => {\n addManualToCachedKeywords(keyword)\n if (isArray(modelValueComputed.value)) {\n modelValueComputed.value = [...modelValueComputed.value, keyword.id]\n search.value = ''\n return\n }\n modelValueComputed.value = keyword.id\n search.value = ''\n}\n\nconst itemSlotIsSelected = (item: DocId) => {\n if (isArray(modelValueComputed.value)) {\n return modelValueComputed.value.includes(item)\n } else if (modelValueComputed.value) {\n return modelValueComputed.value === item\n }\n return false\n}\n\nconst { showErrorsDefault } = useAlerts()\nconst { createDefault } = useDamKeywordFactory()\n\nconst createOrSelectKeyword = async (name: string) => {\n const keywordCreate = createDefault(props.extSystem, true)\n keywordCreate.name = removeLastComma(name)\n if (keywordCreate.name.length < 2) return\n try {\n const keywordRes = await createKeyword(damClient, endPointKeyword, keywordCreate)\n afterCreate(keywordRes)\n } catch (error) {\n showErrorsDefault(error)\n }\n}\n\nconst removeLastComma = (value: string) => {\n if (value.endsWith(',')) return value.slice(0, -1)\n return value\n}\n\nconst onEnterKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst onCommaKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst showAdd = computed(() => {\n if (!createAllowed.value) return false\n if (loadingLocal.value) return false\n if (search.value.length < 2 || search.value.length > 255) return false\n if (fetchedItemsMinimal.value.size === 0) return true\n return ![...fetchedItemsMinimal.value.values()].some(\n (item) => item.name?.toLowerCase() === search.value!.toLowerCase()\n )\n})\n</script>\n\n<template>\n <div class=\"d-flex\">\n <ARow\n v-if=\"disabled && disabledAs === 'chips' && multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-for=\"id in modelValueComputed\"\n :id=\"id\"\n :key=\"id\"\n :queue-id=\"queueId\"\n force-rounded\n class=\"mr-1 mb-1\"\n />\n </ARow>\n <ARow\n v-else-if=\"disabled && disabledAs === 'chips' && !multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"modelValueComputed\"\n :key=\"modelValueComputed\"\n :queue-id=\"queueId\"\n force-rounded\n />\n </ARow>\n <AFormRemoteAutocompleteWithCached\n v-else\n v-model=\"modelValueComputed\"\n v-model:search=\"search\"\n v-model:loading-local=\"loadingLocal\"\n v-model:fetched-items-minimal=\"fetchedItemsMinimal\"\n :use-cached=\"useCachedOfName\"\n :v=\"v$\"\n :required=\"requiredComputed\"\n :label=\"label\"\n :fetch-items-minimal=\"fetchItemsMinimal\"\n :multiple=\"multiple\"\n :clearable=\"clearable\"\n :disabled=\"disabled || undefined\"\n filter-by-field=\"text\"\n :filter-sort-by=\"null\"\n item-title=\"name\"\n item-value=\"id\"\n :data-cy=\"dataCy\"\n :min-search-chars=\"2\"\n min-search-text=\"common.damImage.keyword.filterMinChars\"\n @search-change=\"searchChange\"\n @keyup.enter=\"onEnterKeyup\"\n @keyup.,=\"onCommaKeyup\"\n >\n <template #item=\"{ props: itemSlotProps, item: itemSlotItem }\">\n <VListItem\n v-if=\"itemSlotItem\"\n v-bind=\"itemSlotProps\"\n @click.prevent=\"\"\n >\n <template\n v-if=\"multiple\"\n #prepend\n >\n <VCheckboxBtn\n :model-value=\"itemSlotIsSelected(itemSlotItem.value)\"\n :ripple=\"false\"\n />\n </template>\n <template #title>\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"itemSlotItem.value\"\n :key=\"itemSlotItem.value\"\n :queue-id=\"queueId\"\n :title=\"itemSlotItem.title\"\n text-only\n />\n </template>\n </VListItem>\n </template>\n <!--\n Pass only the chip's close. Its other props (`onMousedown`)\n would stop a press on the chip from opening the list.\n -->\n <template #chip=\"{ props: chipSlotProps, item: chipSlotItem }\">\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-if=\"chipSlotItem\"\n :id=\"chipSlotItem.value\"\n :key=\"chipSlotItem.value\"\n :chip-props=\"{ 'onClick:close': chipSlotProps['onClick:close'] }\"\n :queue-id=\"queueId\"\n :title=\"chipSlotItem.title\"\n force-rounded\n />\n </template>\n <template #append-item>\n <VListItem\n v-if=\"showAdd\"\n class=\"a-keywords-append-item\"\n >\n <ABtnSecondary\n size=\"small\"\n :text=\"addNewKeywordText\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onCommaKeyup\"\n />\n </VListItem>\n </template>\n </AFormRemoteAutocompleteWithCached>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.a-keywords-append-item {\n position: sticky;\n bottom: 0;\n // Use the menu surface color. A white bar showed in the dark theme.\n background-color: rgb(var(--v-theme-surface));\n transform: translateY(8px);\n}\n</style>\n"],"mappings":""}
@@ -12,9 +12,9 @@ type __VLS_Props = {
12
12
  clearable?: boolean;
13
13
  dataCy?: string;
14
14
  validationScope?: ValidationScope;
15
- /** While disabled: the chips of the keywords (today's library), or the input switched off. */
15
+ /** How it looks while disabled: keyword chips (current library behaviour), or the input switched off. */
16
16
  disabledAs?: DamFieldsDisabledAs;
17
- /** The DAM configuration to work under. Left out: that of the component it is in, else `default`. */
17
+ /** DAM configuration to use. Defaults to the parent component's, else `default`. */
18
18
  configName?: string;
19
19
  };
20
20
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
@@ -1 +1 @@
1
- {"version":3,"file":"KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_createBlock","ARow","_withCtx","_Fragment","_renderList","KeywordRemoteAutocompleteCachedKeywordChip","AFormRemoteAutocompleteWithCached","_unref","_withKeys","_component_VListItem","_mergeProps","_withModifiers","_createSlots","_createVNode","_component_VCheckboxBtn","_createCommentVNode","ARow_default","AFormRemoteAutocompleteWithCached_default","KeywordRemoteAutocompleteCachedKeywordChip_default","useVuelidate","_hoisted_1","KeywordRemoteAutocompleteWithCached_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","modelValueComputed","computed","newValue","search","ref","loadingLocal","fetchedItemsMinimal","requiredComputed","useValidate","rules","requiredIf","v$","useCommonAdminCoreDamOptions","createAllowed","useAclAllowed","keywordCreateAcl","useDamConfigState","configExtSystem","getDamConfigExtSystem","isUndefined","useKeywordSelectActions","useKeywordInnerFilter","provide","FilterInnerConfigKey","filterConfig","FilterInnerDataKey","filterData","addNewKeywordText","searchChange","removeLastComma","useDamCachedKeywords","useCachedOfName","useCachedKeywordsForRemoteAutocomplete","afterCreate","addManualToCachedKeywords","keyword","isArray","itemSlotIsSelected","item","useAlerts","useDamKeywordFactory","createOrSelectKeyword","keywordCreate","createDefault","name","keywordRes","createKeyword","damClient","endPointKeyword","error","value","onEnterKeyup","onCommaKeyup","showAdd","_component_ABtnSecondary","resolveComponent","openBlock","createElementBlock","createBlock","withCtx","Fragment","renderList","id","_cache","$event","unref","fetchItemsMinimal","withKeys","itemSlotProps","itemSlotItem","VListItem","mergeProps","withModifiers","createSlots","createVNode","VCheckboxBtn","createCommentVNode","chipSlotProps","chipSlotItem"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { computed, provide, ref } from 'vue'\nimport { useValidate } from '@/shared/validators/vuelidate/useValidate'\nimport useVuelidate from '@vuelidate/core'\nimport { useKeywordSelectActions } from '@/domains/dam/keyword/composables/keywordActions'\nimport {\n useCachedKeywordsForRemoteAutocomplete,\n useDamCachedKeywords,\n} from '@/domains/dam/keyword/composables/cachedKeywords'\nimport type { DamKeyword } from '@/domains/dam/keyword/types/DamKeyword'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport AFormRemoteAutocompleteWithCached from '@/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteCachedKeywordChip from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue'\nimport { createKeyword } from '@/domains/dam/keyword/api/keywordApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamKeywordFactory } from '@/domains/dam/keyword/factory/KeywordFactory'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useKeywordInnerFilter } from '@/domains/dam/keyword/filter/KeywordFilter'\nimport { FilterInnerConfigKey, FilterInnerDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport type { DamFieldsDisabledAs } from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: DocId | null | DocId[] | any\n extSystem: IntegerId\n queueId?: string | undefined\n label?: string | undefined\n required?: boolean | null\n disabled?: boolean | undefined\n multiple?: boolean\n clearable?: boolean\n dataCy?: string\n validationScope?: ValidationScope\n /** While disabled: the chips of the keywords (today's library), or the input switched off. */\n disabledAs?: DamFieldsDisabledAs\n /** The DAM configuration to work under. Left out: that of the component it is in, else `default`. */\n configName?: string\n }>(),\n {\n label: undefined,\n queueId: undefined,\n required: null,\n disabled: undefined,\n multiple: false,\n clearable: false,\n dataCy: undefined,\n validationScope: undefined,\n disabledAs: 'chips',\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DocId | null | DocId[]): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue) {\n emit('update:modelValue', [...newValue])\n },\n})\n\nconst search = ref<string>('')\nconst loadingLocal = ref(false)\nconst fetchedItemsMinimal = ref<Map<IntegerId | DocId, any>>(new Map())\n\nconst requiredComputed = computed(() => !!props.required)\n\nconst { requiredIf } = useValidate()\n\nconst rules = {\n modelValueComputed: {\n required: requiredIf(requiredComputed),\n },\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst v$ = useVuelidate(rules, { modelValueComputed }, { $scope: props.validationScope })\n\nconst { damClient, endPointKeyword, keywordCreateAcl } = useCommonAdminCoreDamOptions(damConfigName)\nconst createAllowed = useAclAllowed(keywordCreateAcl ?? undefined)\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('KeywordRemoteAutocompleteWithCached: Ext system must be initialised.')\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { fetchItemsMinimal } = useKeywordSelectActions(props.extSystem, damConfigName)\n\nconst { filterData, filterConfig } = useKeywordInnerFilter()\nprovide(FilterInnerConfigKey, filterConfig)\nprovide(FilterInnerDataKey, filterData)\n\nconst addNewKeywordText = ref('')\n\nconst searchChange = (newValue: string) => {\n if (newValue.length > 0) addNewKeywordText.value = removeLastComma(newValue)\n}\n\nconst { addManualToCachedKeywords } = useDamCachedKeywords(damConfigName)\n// The cache of its configuration, which the inner input takes once.\nconst useCachedOfName = () => useCachedKeywordsForRemoteAutocomplete(damConfigName)\n\nconst afterCreate = (keyword: DamKeyword) => {\n addManualToCachedKeywords(keyword)\n if (isArray(modelValueComputed.value)) {\n modelValueComputed.value = [...modelValueComputed.value, keyword.id]\n search.value = ''\n return\n }\n modelValueComputed.value = keyword.id\n search.value = ''\n}\n\nconst itemSlotIsSelected = (item: DocId) => {\n if (isArray(modelValueComputed.value)) {\n return modelValueComputed.value.includes(item)\n } else if (modelValueComputed.value) {\n return modelValueComputed.value === item\n }\n return false\n}\n\nconst { showErrorsDefault } = useAlerts()\nconst { createDefault } = useDamKeywordFactory()\n\nconst createOrSelectKeyword = async (name: string) => {\n const keywordCreate = createDefault(props.extSystem, true)\n keywordCreate.name = removeLastComma(name)\n if (keywordCreate.name.length < 2) return\n try {\n const keywordRes = await createKeyword(damClient, endPointKeyword, keywordCreate)\n afterCreate(keywordRes)\n } catch (error) {\n showErrorsDefault(error)\n }\n}\n\nconst removeLastComma = (value: string) => {\n if (value.endsWith(',')) return value.slice(0, -1)\n return value\n}\n\nconst onEnterKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst onCommaKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst showAdd = computed(() => {\n if (!createAllowed.value) return false\n if (loadingLocal.value) return false\n if (search.value.length < 2 || search.value.length > 255) return false\n if (fetchedItemsMinimal.value.size === 0) return true\n return ![...fetchedItemsMinimal.value.values()].some(\n (item) => item.name?.toLowerCase() === search.value!.toLowerCase()\n )\n})\n</script>\n\n<template>\n <div class=\"d-flex\">\n <ARow\n v-if=\"disabled && disabledAs === 'chips' && multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-for=\"id in modelValueComputed\"\n :id=\"id\"\n :key=\"id\"\n :queue-id=\"queueId\"\n force-rounded\n class=\"mr-1 mb-1\"\n />\n </ARow>\n <ARow\n v-else-if=\"disabled && disabledAs === 'chips' && !multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"modelValueComputed\"\n :key=\"modelValueComputed\"\n :queue-id=\"queueId\"\n force-rounded\n />\n </ARow>\n <AFormRemoteAutocompleteWithCached\n v-else\n v-model=\"modelValueComputed\"\n v-model:search=\"search\"\n v-model:loading-local=\"loadingLocal\"\n v-model:fetched-items-minimal=\"fetchedItemsMinimal\"\n :use-cached=\"useCachedOfName\"\n :v=\"v$\"\n :required=\"requiredComputed\"\n :label=\"label\"\n :fetch-items-minimal=\"fetchItemsMinimal\"\n :multiple=\"multiple\"\n :clearable=\"clearable\"\n :disabled=\"disabled || undefined\"\n filter-by-field=\"text\"\n :filter-sort-by=\"null\"\n item-title=\"name\"\n item-value=\"id\"\n :data-cy=\"dataCy\"\n :min-search-chars=\"2\"\n min-search-text=\"common.damImage.keyword.filterMinChars\"\n @search-change=\"searchChange\"\n @keyup.enter=\"onEnterKeyup\"\n @keyup.,=\"onCommaKeyup\"\n >\n <template #item=\"{ props: itemSlotProps, item: itemSlotItem }\">\n <VListItem\n v-if=\"itemSlotItem\"\n v-bind=\"itemSlotProps\"\n @click.prevent=\"\"\n >\n <template\n v-if=\"multiple\"\n #prepend\n >\n <VCheckboxBtn\n :model-value=\"itemSlotIsSelected(itemSlotItem.value)\"\n :ripple=\"false\"\n />\n </template>\n <template #title>\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"itemSlotItem.value\"\n :key=\"itemSlotItem.value\"\n :queue-id=\"queueId\"\n :title=\"itemSlotItem.title\"\n text-only\n />\n </template>\n </VListItem>\n </template>\n <!-- Only the close of the slot's chip: its other props (`onMousedown`) would keep a press on the chip from\n opening the list, as it does. -->\n <template #chip=\"{ props: chipSlotProps, item: chipSlotItem }\">\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-if=\"chipSlotItem\"\n :id=\"chipSlotItem.value\"\n :key=\"chipSlotItem.value\"\n :chip-props=\"{ 'onClick:close': chipSlotProps['onClick:close'] }\"\n :queue-id=\"queueId\"\n :title=\"chipSlotItem.title\"\n force-rounded\n />\n </template>\n <template #append-item>\n <VListItem\n v-if=\"showAdd\"\n class=\"a-keywords-append-item\"\n >\n <ABtnSecondary\n size=\"small\"\n :text=\"addNewKeywordText\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onCommaKeyup\"\n />\n </VListItem>\n </template>\n </AFormRemoteAutocompleteWithCached>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.a-keywords-append-item {\n position: sticky;\n bottom: 0;\n // The menu's own surface: a white bar sat in the dark theme's menu.\n background-color: rgb(var(--v-theme-surface));\n transform: translateY(8px);\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_createBlock","ARow","_withCtx","_Fragment","_renderList","KeywordRemoteAutocompleteCachedKeywordChip","AFormRemoteAutocompleteWithCached","_unref","_withKeys","_component_VListItem","_mergeProps","_withModifiers","_createSlots","_createVNode","_component_VCheckboxBtn","_createCommentVNode","ARow_default","AFormRemoteAutocompleteWithCached_default","KeywordRemoteAutocompleteCachedKeywordChip_default","useVuelidate","_hoisted_1","KeywordRemoteAutocompleteWithCached_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","modelValueComputed","computed","newValue","search","ref","loadingLocal","fetchedItemsMinimal","requiredComputed","useValidate","rules","requiredIf","v$","useCommonAdminCoreDamOptions","createAllowed","useAclAllowed","keywordCreateAcl","useDamConfigState","configExtSystem","getDamConfigExtSystem","isUndefined","useKeywordSelectActions","useKeywordInnerFilter","provide","FilterInnerConfigKey","filterConfig","FilterInnerDataKey","filterData","addNewKeywordText","searchChange","removeLastComma","useDamCachedKeywords","useCachedOfName","useCachedKeywordsForRemoteAutocomplete","afterCreate","addManualToCachedKeywords","keyword","isArray","itemSlotIsSelected","item","useAlerts","useDamKeywordFactory","createOrSelectKeyword","keywordCreate","createDefault","name","keywordRes","createKeyword","damClient","endPointKeyword","error","value","onEnterKeyup","onCommaKeyup","showAdd","_component_ABtnSecondary","resolveComponent","openBlock","createElementBlock","createBlock","withCtx","Fragment","renderList","id","_cache","$event","unref","fetchItemsMinimal","withKeys","itemSlotProps","itemSlotItem","VListItem","mergeProps","withModifiers","createSlots","createVNode","VCheckboxBtn","createCommentVNode","chipSlotProps","chipSlotItem"],"sources":["../../../../../src/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { computed, provide, ref } from 'vue'\nimport { useValidate } from '@/shared/validators/vuelidate/useValidate'\nimport useVuelidate from '@vuelidate/core'\nimport { useKeywordSelectActions } from '@/domains/dam/keyword/composables/keywordActions'\nimport {\n useCachedKeywordsForRemoteAutocomplete,\n useDamCachedKeywords,\n} from '@/domains/dam/keyword/composables/cachedKeywords'\nimport type { DamKeyword } from '@/domains/dam/keyword/types/DamKeyword'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport AFormRemoteAutocompleteWithCached from '@/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteCachedKeywordChip from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue'\nimport { createKeyword } from '@/domains/dam/keyword/api/keywordApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamKeywordFactory } from '@/domains/dam/keyword/factory/KeywordFactory'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useKeywordInnerFilter } from '@/domains/dam/keyword/filter/KeywordFilter'\nimport { FilterInnerConfigKey, FilterInnerDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport type { DamFieldsDisabledAs } from '@/domains/dam/uploadQueue/components/uploadQueueBindings'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: DocId | null | DocId[] | any\n extSystem: IntegerId\n queueId?: string | undefined\n label?: string | undefined\n required?: boolean | null\n disabled?: boolean | undefined\n multiple?: boolean\n clearable?: boolean\n dataCy?: string\n validationScope?: ValidationScope\n /** How it looks while disabled: keyword chips (current library behaviour), or the input switched off. */\n disabledAs?: DamFieldsDisabledAs\n /** DAM configuration to use. Defaults to the parent component's, else `default`. */\n configName?: string\n }>(),\n {\n label: undefined,\n queueId: undefined,\n required: null,\n disabled: undefined,\n multiple: false,\n clearable: false,\n dataCy: undefined,\n validationScope: undefined,\n disabledAs: 'chips',\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DocId | null | DocId[]): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue) {\n emit('update:modelValue', [...newValue])\n },\n})\n\nconst search = ref<string>('')\nconst loadingLocal = ref(false)\nconst fetchedItemsMinimal = ref<Map<IntegerId | DocId, any>>(new Map())\n\nconst requiredComputed = computed(() => !!props.required)\n\nconst { requiredIf } = useValidate()\n\nconst rules = {\n modelValueComputed: {\n required: requiredIf(requiredComputed),\n },\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst v$ = useVuelidate(rules, { modelValueComputed }, { $scope: props.validationScope })\n\nconst { damClient, endPointKeyword, keywordCreateAcl } = useCommonAdminCoreDamOptions(damConfigName)\nconst createAllowed = useAclAllowed(keywordCreateAcl ?? undefined)\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('KeywordRemoteAutocompleteWithCached: Ext system must be initialised.')\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { fetchItemsMinimal } = useKeywordSelectActions(props.extSystem, damConfigName)\n\nconst { filterData, filterConfig } = useKeywordInnerFilter()\nprovide(FilterInnerConfigKey, filterConfig)\nprovide(FilterInnerDataKey, filterData)\n\nconst addNewKeywordText = ref('')\n\nconst searchChange = (newValue: string) => {\n if (newValue.length > 0) addNewKeywordText.value = removeLastComma(newValue)\n}\n\nconst { addManualToCachedKeywords } = useDamCachedKeywords(damConfigName)\n// The inner input reads this cache only once.\nconst useCachedOfName = () => useCachedKeywordsForRemoteAutocomplete(damConfigName)\n\nconst afterCreate = (keyword: DamKeyword) => {\n addManualToCachedKeywords(keyword)\n if (isArray(modelValueComputed.value)) {\n modelValueComputed.value = [...modelValueComputed.value, keyword.id]\n search.value = ''\n return\n }\n modelValueComputed.value = keyword.id\n search.value = ''\n}\n\nconst itemSlotIsSelected = (item: DocId) => {\n if (isArray(modelValueComputed.value)) {\n return modelValueComputed.value.includes(item)\n } else if (modelValueComputed.value) {\n return modelValueComputed.value === item\n }\n return false\n}\n\nconst { showErrorsDefault } = useAlerts()\nconst { createDefault } = useDamKeywordFactory()\n\nconst createOrSelectKeyword = async (name: string) => {\n const keywordCreate = createDefault(props.extSystem, true)\n keywordCreate.name = removeLastComma(name)\n if (keywordCreate.name.length < 2) return\n try {\n const keywordRes = await createKeyword(damClient, endPointKeyword, keywordCreate)\n afterCreate(keywordRes)\n } catch (error) {\n showErrorsDefault(error)\n }\n}\n\nconst removeLastComma = (value: string) => {\n if (value.endsWith(',')) return value.slice(0, -1)\n return value\n}\n\nconst onEnterKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst onCommaKeyup = () => {\n if (!createAllowed.value) return\n const value = removeLastComma(search.value)\n createOrSelectKeyword(value)\n}\n\nconst showAdd = computed(() => {\n if (!createAllowed.value) return false\n if (loadingLocal.value) return false\n if (search.value.length < 2 || search.value.length > 255) return false\n if (fetchedItemsMinimal.value.size === 0) return true\n return ![...fetchedItemsMinimal.value.values()].some(\n (item) => item.name?.toLowerCase() === search.value!.toLowerCase()\n )\n})\n</script>\n\n<template>\n <div class=\"d-flex\">\n <ARow\n v-if=\"disabled && disabledAs === 'chips' && multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-for=\"id in modelValueComputed\"\n :id=\"id\"\n :key=\"id\"\n :queue-id=\"queueId\"\n force-rounded\n class=\"mr-1 mb-1\"\n />\n </ARow>\n <ARow\n v-else-if=\"disabled && disabledAs === 'chips' && !multiple\"\n :title=\"label\"\n >\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"modelValueComputed\"\n :key=\"modelValueComputed\"\n :queue-id=\"queueId\"\n force-rounded\n />\n </ARow>\n <AFormRemoteAutocompleteWithCached\n v-else\n v-model=\"modelValueComputed\"\n v-model:search=\"search\"\n v-model:loading-local=\"loadingLocal\"\n v-model:fetched-items-minimal=\"fetchedItemsMinimal\"\n :use-cached=\"useCachedOfName\"\n :v=\"v$\"\n :required=\"requiredComputed\"\n :label=\"label\"\n :fetch-items-minimal=\"fetchItemsMinimal\"\n :multiple=\"multiple\"\n :clearable=\"clearable\"\n :disabled=\"disabled || undefined\"\n filter-by-field=\"text\"\n :filter-sort-by=\"null\"\n item-title=\"name\"\n item-value=\"id\"\n :data-cy=\"dataCy\"\n :min-search-chars=\"2\"\n min-search-text=\"common.damImage.keyword.filterMinChars\"\n @search-change=\"searchChange\"\n @keyup.enter=\"onEnterKeyup\"\n @keyup.,=\"onCommaKeyup\"\n >\n <template #item=\"{ props: itemSlotProps, item: itemSlotItem }\">\n <VListItem\n v-if=\"itemSlotItem\"\n v-bind=\"itemSlotProps\"\n @click.prevent=\"\"\n >\n <template\n v-if=\"multiple\"\n #prepend\n >\n <VCheckboxBtn\n :model-value=\"itemSlotIsSelected(itemSlotItem.value)\"\n :ripple=\"false\"\n />\n </template>\n <template #title>\n <KeywordRemoteAutocompleteCachedKeywordChip\n :id=\"itemSlotItem.value\"\n :key=\"itemSlotItem.value\"\n :queue-id=\"queueId\"\n :title=\"itemSlotItem.title\"\n text-only\n />\n </template>\n </VListItem>\n </template>\n <!--\n Pass only the chip's close. Its other props (`onMousedown`)\n would stop a press on the chip from opening the list.\n -->\n <template #chip=\"{ props: chipSlotProps, item: chipSlotItem }\">\n <KeywordRemoteAutocompleteCachedKeywordChip\n v-if=\"chipSlotItem\"\n :id=\"chipSlotItem.value\"\n :key=\"chipSlotItem.value\"\n :chip-props=\"{ 'onClick:close': chipSlotProps['onClick:close'] }\"\n :queue-id=\"queueId\"\n :title=\"chipSlotItem.title\"\n force-rounded\n />\n </template>\n <template #append-item>\n <VListItem\n v-if=\"showAdd\"\n class=\"a-keywords-append-item\"\n >\n <ABtnSecondary\n size=\"small\"\n :text=\"addNewKeywordText\"\n prepend-icon=\"mdi-plus-circle\"\n @click.stop=\"onCommaKeyup\"\n />\n </VListItem>\n </template>\n </AFormRemoteAutocompleteWithCached>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.a-keywords-append-item {\n position: sticky;\n bottom: 0;\n // Use the menu surface color. A white bar showed in the dark theme.\n background-color: rgb(var(--v-theme-surface));\n transform: translateY(8px);\n}\n</style>\n"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { DamKeyword, DamKeywordMinimal } from '../types/DamKeyword';
2
2
  /**
3
- * The cache of the names of the keywords of the DAM configuration `configName`.
4
- * A name left out is the inherited one while a component sets up, renders or runs a lifecycle hook (not after an
5
- * `await` there), else `default`. Once the plugin has set the options, a configuration the application has not got
6
- * throws on every call and gets no cache; a name asked for before that gets one, and its first request checks it.
3
+ * The keyword name cache of the DAM configuration `configName`.
4
+ * Without a name, the inherited one is used during setup, render
5
+ * or a lifecycle hook (not after an `await`), else `default`.
6
+ * After the plugin sets the options, an unknown configuration throws on every call and gets no cache.
7
+ * A name asked for before that gets a cache, and its first request checks the name.
7
8
  */
8
9
  export declare const useDamCachedKeywords: (configName?: string) => {
9
10
  addManualToCachedKeywords: (data: DamKeyword) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"cachedKeywords.js","names":["mapFullToMinimal","keyword","mapIdToMinimal","defineCachedKeywords","defineCached","useExtSystemIdForCached","configName","useCommonAdminCoreDamOptions","fetchKeywordListByIds","damClient","endPointKeyword","cachedExtSystemId","ids","caches","cacheOf","name","inheritedDamConfigName","cache","useDamCachedKeywords","addManual","addManualMinimal","add","fetch","pin","unpin","toFetch","has","get","isLoaded","useCachedKeywordsForRemoteAutocomplete"],"sources":["../../../../../src/domains/dam/keyword/composables/cachedKeywords.ts"],"sourcesContent":["import type { DocId } from '@/shared/types/common'\nimport { defineCached } from '@/domains/cached/composables/defineCached'\nimport type { DamKeyword, DamKeywordMinimal } from '@/domains/dam/keyword/types/DamKeyword'\nimport { fetchKeywordListByIds } from '@/domains/dam/keyword/api/keywordApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useExtSystemIdForCached } from '@/domains/dam/composables/extSystemIdForCached'\nimport { checkDamConfigName, inheritedDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst mapFullToMinimal = (keyword: DamKeyword): DamKeywordMinimal => ({\n id: keyword.id,\n name: keyword.name,\n})\n\nconst mapIdToMinimal = (id: DocId): DamKeywordMinimal => {\n return { id: id, name: '' }\n}\n\n// The cache of the names of the keywords of a DAM configuration: it asks with that configuration's client, at its\n// address, under its ext system, as they are when it asks.\nconst defineCachedKeywords = (configName: string) =>\n defineCached<DocId, DamKeyword, DamKeywordMinimal>(mapFullToMinimal, mapIdToMinimal, (ids) => {\n const { cachedExtSystemId } = useExtSystemIdForCached(configName)\n const { damClient, endPointKeyword } = useCommonAdminCoreDamOptions(configName)\n return fetchKeywordListByIds(damClient, endPointKeyword, cachedExtSystemId.value, ids)\n })\n\n// One cache per configuration name, made when the name is first asked for; that of `default` with the module.\nconst caches = new Map([['default', defineCachedKeywords('default')]])\nconst cacheOf = (configName?: string) => {\n const name = inheritedDamConfigName(configName)\n // On every call: options set again (a test, a hot update) may have left the name out.\n checkDamConfigName(name)\n let cache = caches.get(name)\n if (!cache) {\n cache = defineCachedKeywords(name)\n caches.set(name, cache)\n }\n return cache\n}\n\n/**\n * The cache of the names of the keywords of the DAM configuration `configName`.\n * A name left out is the inherited one while a component sets up, renders or runs a lifecycle hook (not after an\n * `await` there), else `default`. Once the plugin has set the options, a configuration the application has not got\n * throws on every call and gets no cache; a name asked for before that gets one, and its first request checks it.\n */\nexport const useDamCachedKeywords = (configName?: string) => {\n const { cache, toFetch, fetch, add, addManual, addManualMinimal, pin, unpin, has, get, isLoaded } =\n cacheOf(configName)\n return {\n addManualToCachedKeywords: addManual,\n addManualMinimalToCachedKeywords: addManualMinimal,\n addToCachedKeywords: add,\n fetchCachedKeywords: fetch,\n pinCachedKeyword: pin,\n unpinCachedKeyword: unpin,\n toFetchCachedKeywords: toFetch,\n cachedKeywords: cache,\n hasCachedKeyword: has,\n getCachedKeyword: get,\n isLoadedCachedKeyword: isLoaded,\n }\n}\n\nexport const useCachedKeywordsForRemoteAutocomplete = (configName: string) => {\n const { fetch, add, addManualMinimal } = cacheOf(configName)\n return {\n fetch,\n add,\n addManualMinimal,\n }\n}\n"],"mappings":";;;;;;AAQA,IAAMA,KAAoB,OAA4C;CACpE,IAAIC,EAAQ;CACZ,MAAMA,EAAQ;AAChB,IAEMC,KAAkB,OACf;CAAM;CAAI,MAAM;AAAG,IAKtBC,KAAwB,MAC5BC,EAAmDJ,GAAkBE,IAAiB,MAAQ;CAC5F,IAAM,EAAE,yBAAsBG,EAAwBC,CAAU,GAC1D,EAAE,cAAW,uBAAoBC,EAA6BD,CAAU;CAC9E,OAAOE,EAAsBC,GAAWC,GAAiBC,EAAkB,OAAOC,CAAG;AACvF,CAAC,GAGGC,oBAAS,IAAI,IAAI,CAAC,CAAC,WAAWV,EAAqB,SAAS,CAAC,CAAC,CAAC,GAC/DW,KAAW,MAAwB;CACvC,IAAMC,IAAOC,EAAuBV,CAAU;CAE9C,EAAmBS,CAAI;CACvB,IAAIE,IAAQJ,EAAO,IAAIE,CAAI;CAK3B,OAJKE,MACH,IAAQd,EAAqBY,CAAI,GACjCF,EAAO,IAAIE,GAAME,CAAK,IAEjBA;AACT,GAQaC,KAAwB,MAAwB;CAC3D,IAAM,EAAE,UAAO,YAAS,UAAO,QAAK,cAAW,qBAAkB,QAAK,UAAO,QAAK,QAAK,gBACrFJ,EAAQR,CAAU;CACpB,OAAO;EACL,2BAA2Ba;EAC3B,kCAAkCC;EAClC,qBAAqBC;EACrB,qBAAqBC;EACrB,kBAAkBC;EAClB,oBAAoBC;EACpB,uBAAuBC;EACvB,gBAAgBR;EAChB,kBAAkBS;EAClB,kBAAkBC;EAClB,uBAAuBC;CACzB;AACF,GAEaC,KAA0C,MAAuB;CAC5E,IAAM,EAAE,UAAO,QAAK,wBAAqBf,EAAQR,CAAU;CAC3D,OAAO;EACL;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"cachedKeywords.js","names":["mapFullToMinimal","keyword","mapIdToMinimal","defineCachedKeywords","defineCached","useExtSystemIdForCached","configName","useCommonAdminCoreDamOptions","fetchKeywordListByIds","damClient","endPointKeyword","cachedExtSystemId","ids","caches","cacheOf","name","inheritedDamConfigName","cache","useDamCachedKeywords","addManual","addManualMinimal","add","fetch","pin","unpin","toFetch","has","get","isLoaded","useCachedKeywordsForRemoteAutocomplete"],"sources":["../../../../../src/domains/dam/keyword/composables/cachedKeywords.ts"],"sourcesContent":["import type { DocId } from '@/shared/types/common'\nimport { defineCached } from '@/domains/cached/composables/defineCached'\nimport type { DamKeyword, DamKeywordMinimal } from '@/domains/dam/keyword/types/DamKeyword'\nimport { fetchKeywordListByIds } from '@/domains/dam/keyword/api/keywordApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useExtSystemIdForCached } from '@/domains/dam/composables/extSystemIdForCached'\nimport { checkDamConfigName, inheritedDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst mapFullToMinimal = (keyword: DamKeyword): DamKeywordMinimal => ({\n id: keyword.id,\n name: keyword.name,\n})\n\nconst mapIdToMinimal = (id: DocId): DamKeywordMinimal => {\n return { id: id, name: '' }\n}\n\n// Keyword name cache per DAM configuration, using that configuration's client, endpoint and ext system.\nconst defineCachedKeywords = (configName: string) =>\n defineCached<DocId, DamKeyword, DamKeywordMinimal>(mapFullToMinimal, mapIdToMinimal, (ids) => {\n const { cachedExtSystemId } = useExtSystemIdForCached(configName)\n const { damClient, endPointKeyword } = useCommonAdminCoreDamOptions(configName)\n return fetchKeywordListByIds(damClient, endPointKeyword, cachedExtSystemId.value, ids)\n })\n\n// One cache per configuration name, created on first use. The `default` one is created with the module.\nconst caches = new Map([['default', defineCachedKeywords('default')]])\nconst cacheOf = (configName?: string) => {\n const name = inheritedDamConfigName(configName)\n // Checked on every call: options set again (a test, a hot update) may have removed the name.\n checkDamConfigName(name)\n let cache = caches.get(name)\n if (!cache) {\n cache = defineCachedKeywords(name)\n caches.set(name, cache)\n }\n return cache\n}\n\n/**\n * The keyword name cache of the DAM configuration `configName`.\n * Without a name, the inherited one is used during setup, render\n * or a lifecycle hook (not after an `await`), else `default`.\n * After the plugin sets the options, an unknown configuration throws on every call and gets no cache.\n * A name asked for before that gets a cache, and its first request checks the name.\n */\nexport const useDamCachedKeywords = (configName?: string) => {\n const { cache, toFetch, fetch, add, addManual, addManualMinimal, pin, unpin, has, get, isLoaded } =\n cacheOf(configName)\n return {\n addManualToCachedKeywords: addManual,\n addManualMinimalToCachedKeywords: addManualMinimal,\n addToCachedKeywords: add,\n fetchCachedKeywords: fetch,\n pinCachedKeyword: pin,\n unpinCachedKeyword: unpin,\n toFetchCachedKeywords: toFetch,\n cachedKeywords: cache,\n hasCachedKeyword: has,\n getCachedKeyword: get,\n isLoadedCachedKeyword: isLoaded,\n }\n}\n\nexport const useCachedKeywordsForRemoteAutocomplete = (configName: string) => {\n const { fetch, add, addManualMinimal } = cacheOf(configName)\n return {\n fetch,\n add,\n addManualMinimal,\n }\n}\n"],"mappings":";;;;;;AAQA,IAAMA,KAAoB,OAA4C;CACpE,IAAIC,EAAQ;CACZ,MAAMA,EAAQ;AAChB,IAEMC,KAAkB,OACf;CAAM;CAAI,MAAM;AAAG,IAItBC,KAAwB,MAC5BC,EAAmDJ,GAAkBE,IAAiB,MAAQ;CAC5F,IAAM,EAAE,yBAAsBG,EAAwBC,CAAU,GAC1D,EAAE,cAAW,uBAAoBC,EAA6BD,CAAU;CAC9E,OAAOE,EAAsBC,GAAWC,GAAiBC,EAAkB,OAAOC,CAAG;AACvF,CAAC,GAGGC,oBAAS,IAAI,IAAI,CAAC,CAAC,WAAWV,EAAqB,SAAS,CAAC,CAAC,CAAC,GAC/DW,KAAW,MAAwB;CACvC,IAAMC,IAAOC,EAAuBV,CAAU;CAE9C,EAAmBS,CAAI;CACvB,IAAIE,IAAQJ,EAAO,IAAIE,CAAI;CAK3B,OAJKE,MACH,IAAQd,EAAqBY,CAAI,GACjCF,EAAO,IAAIE,GAAME,CAAK,IAEjBA;AACT,GASaC,KAAwB,MAAwB;CAC3D,IAAM,EAAE,UAAO,YAAS,UAAO,QAAK,cAAW,qBAAkB,QAAK,UAAO,QAAK,QAAK,gBACrFJ,EAAQR,CAAU;CACpB,OAAO;EACL,2BAA2Ba;EAC3B,kCAAkCC;EAClC,qBAAqBC;EACrB,qBAAqBC;EACrB,kBAAkBC;EAClB,oBAAoBC;EACpB,uBAAuBC;EACvB,gBAAgBR;EAChB,kBAAkBS;EAClB,kBAAkBC;EAClB,uBAAuBC;CACzB;AACF,GAEaC,KAA0C,MAAuB;CAC5E,IAAM,EAAE,UAAO,QAAK,wBAAqBf,EAAQR,CAAU;CAC3D,OAAO;EACL;EACA;EACA;CACF;AACF"}
@@ -1,8 +1,8 @@
1
1
  import { DamAssetTypeType } from '../../types/Asset';
2
2
  import { IntegerId } from '../../../../shared/types/common';
3
3
  /**
4
- * The rules of the asset type in the ext system, by the DAM configuration store of `configName`: a name left out is
5
- * the inherited one in a component's setup, else `default`.
4
+ * Asset type rules of the ext system from the DAM configuration store of `configName`.
5
+ * Without a name, uses the inherited one in component setup, else `default`.
6
6
  */
7
7
  export declare const useDamKeywordAssetTypeConfig: (assetType: DamAssetTypeType, extSystem: IntegerId, configName?: string) => {
8
8
  keywordEnabled: import('vue').ComputedRef<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"damKeywordConfig.js","names":["useDamKeywordAssetTypeConfig","useDamConfigState","inheritedDamConfigName","configName","configExtSystem","getDamConfigExtSystem","extSystem","isUndefined","computed","assetType"],"sources":["../../../../../src/domains/dam/keyword/composables/damKeywordConfig.ts"],"sourcesContent":["import { computed } from 'vue'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport { inheritedDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\n/**\n * The rules of the asset type in the ext system, by the DAM configuration store of `configName`: a name left out is\n * the inherited one in a component's setup, else `default`.\n */\nexport const useDamKeywordAssetTypeConfig = (\n assetType: DamAssetTypeType,\n extSystem: IntegerId,\n configName?: string\n) => {\n const { getDamConfigExtSystem } = useDamConfigState(undefined, inheritedDamConfigName(configName))\n\n const configExtSystem = getDamConfigExtSystem(extSystem)\n\n if (isUndefined(configExtSystem)) {\n throw new Error('useDamKeywordAssetTypeConfig: Ext system must be initialised.')\n }\n\n const keywordEnabled = computed(() => {\n return !!configExtSystem[assetType]?.keywords?.enabled\n })\n\n const keywordRequired = computed(() => {\n return !!configExtSystem[assetType]?.keywords?.required\n })\n\n return {\n keywordEnabled,\n keywordRequired,\n }\n}\n"],"mappings":";;;;;AAWA,IAAaA,KACX,GACA,GACA,MACG;CACH,IAAM,EAAE,6BAA0BC,EAAkB,KAAA,GAAWC,EAAuBC,CAAU,CAAC,GAE3FC,IAAkBC,EAAsBC,CAAS;CAEvD,IAAIC,EAAYH,CAAe,GAC7B,MAAU,MAAM,+DAA+D;CAWjF,OAAO;EACL,gBATqBI,QACd,CAAC,CAACJ,EAAgBK,EAAU,EAAE,UAAU,OAQ/C;EACA,iBANsBD,QACf,CAAC,CAACJ,EAAgBK,EAAU,EAAE,UAAU,QAK/C;CACF;AACF"}
1
+ {"version":3,"file":"damKeywordConfig.js","names":["useDamKeywordAssetTypeConfig","useDamConfigState","inheritedDamConfigName","configName","configExtSystem","getDamConfigExtSystem","extSystem","isUndefined","computed","assetType"],"sources":["../../../../../src/domains/dam/keyword/composables/damKeywordConfig.ts"],"sourcesContent":["import { computed } from 'vue'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport { inheritedDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\n\n/**\n * Asset type rules of the ext system from the DAM configuration store of `configName`.\n * Without a name, uses the inherited one in component setup, else `default`.\n */\nexport const useDamKeywordAssetTypeConfig = (\n assetType: DamAssetTypeType,\n extSystem: IntegerId,\n configName?: string\n) => {\n const { getDamConfigExtSystem } = useDamConfigState(undefined, inheritedDamConfigName(configName))\n\n const configExtSystem = getDamConfigExtSystem(extSystem)\n\n if (isUndefined(configExtSystem)) {\n throw new Error('useDamKeywordAssetTypeConfig: Ext system must be initialised.')\n }\n\n const keywordEnabled = computed(() => {\n return !!configExtSystem[assetType]?.keywords?.enabled\n })\n\n const keywordRequired = computed(() => {\n return !!configExtSystem[assetType]?.keywords?.required\n })\n\n return {\n keywordEnabled,\n keywordRequired,\n }\n}\n"],"mappings":";;;;;AAWA,IAAaA,KACX,GACA,GACA,MACG;CACH,IAAM,EAAE,6BAA0BC,EAAkB,KAAA,GAAWC,EAAuBC,CAAU,CAAC,GAE3FC,IAAkBC,EAAsBC,CAAS;CAEvD,IAAIC,EAAYH,CAAe,GAC7B,MAAU,MAAM,+DAA+D;CAWjF,OAAO;EACL,gBATqBI,QACd,CAAC,CAACJ,EAAgBK,EAAU,EAAE,UAAU,OAQ/C;EACA,iBANsBD,QACf,CAAC,CAACJ,EAAgBK,EAAU,EAAE,UAAU,QAK/C;CACF;AACF"}
@@ -31,7 +31,7 @@ export interface AssetFileProperties {
31
31
  fromRss: boolean;
32
32
  width: number;
33
33
  height: number;
34
- /** A synthesized audio (TTS); not every backend says it. */
34
+ /** A synthesized (TTS) audio. Not every backend sends it. */
35
35
  ttsAudio?: boolean;
36
36
  }
37
37
  interface Flags {
@@ -1 +1 @@
1
- {"version":3,"file":"Asset.js","names":["DamAssetStatus","DamAssetStatusDefault","DamAssetType","DamAssetTypeDefault"],"sources":["../../../../src/domains/dam/types/Asset.ts"],"sourcesContent":["import type { DocId, DocIdNullable, IntegerId } from '@/shared/types/common'\nimport type { AnzuUserAndTimeTrackingAware } from '@/shared/types/AnzuUserAndTimeTrackingAware'\nimport type { ResourceNameSystemAware } from '@/shared/types/ResourceNameSystemAware'\nimport type { AssetFile } from '@/domains/dam/types/AssetFile'\n\ninterface Texts {\n displayTitle: string\n}\n\nexport type DamDistributionServiceName = string\n\nexport const DamAssetStatus = {\n Draft: 'draft',\n WithFile: 'with_file',\n Deleting: 'deleting',\n} as const\nexport type DamAssetStatusType = (typeof DamAssetStatus)[keyof typeof DamAssetStatus]\nexport const DamAssetStatusDefault = DamAssetStatus.Draft\n\nexport const DamAssetType = {\n Image: 'image',\n Audio: 'audio',\n Video: 'video',\n Document: 'document',\n} as const\nexport type DamAssetTypeType = (typeof DamAssetType)[keyof typeof DamAssetType]\nexport const DamAssetTypeDefault = DamAssetType.Image\n\ninterface Attributes {\n assetType: DamAssetTypeType\n assetStatus: DamAssetStatusType\n}\n\nexport interface AssetFileProperties {\n distributesInServices: DamDistributionServiceName[]\n slotNames: string[]\n fromRss: boolean\n width: number\n height: number\n /** A synthesized audio (TTS); not every backend says it. */\n ttsAudio?: boolean\n}\n\ninterface Flags {\n described: boolean\n visible: boolean\n}\n\nexport interface AssetMetadataSuggestions extends Record<string, Array<string>> {}\n\nexport type AssetCustomData = Record<string, any>\n\ninterface Metadata {\n authorSuggestions: AssetMetadataSuggestions\n keywordSuggestions: AssetMetadataSuggestions\n customData: any\n}\n\nexport interface AssetSearchListItemDto extends AnzuUserAndTimeTrackingAware, ResourceNameSystemAware {\n id: DocId\n texts: Texts\n attributes: Attributes\n flags: Flags\n licence: IntegerId\n mainFile: null | AssetFile\n podcasts: DocId[]\n assetFileProperties: AssetFileProperties\n mainFileSingleUse: Readonly<boolean | null>\n mainFileInternal: Readonly<boolean | null>\n mainFileOverrideInternal: Readonly<boolean | null>\n}\n\nexport interface AssetDetailItemDto extends AnzuUserAndTimeTrackingAware, ResourceNameSystemAware {\n id: DocId\n texts: Texts\n attributes: Attributes\n flags: Flags\n licence: IntegerId\n mainFile: null | AssetFile\n keywords: DocId[]\n authors: DocId[]\n podcasts: DocId[]\n metadata: Metadata\n siblingToAsset: DocIdNullable\n distributionCategory: DocIdNullable\n assetFileProperties: AssetFileProperties\n mainFileSingleUse: Readonly<boolean | null>\n mainFileInternal: Readonly<boolean | null>\n mainFileOverrideInternal: Readonly<boolean | null>\n}\n\nexport interface AssetMetadataDto extends AnzuUserAndTimeTrackingAware, ResourceNameSystemAware, Metadata {\n id: DocId\n customData: AssetCustomData\n}\n\nexport type AssetExternalProviderId = string | number\nexport type AssetExternalProviderIdNullable = AssetExternalProviderId | null\n\nexport type AssetExternalProviderMetadata = Record<string, string | number | number[] | string[] | boolean>\n\nexport interface DamImageCopyToLicenceRequestItem {\n asset: DocId\n targetAssetLicence: IntegerId\n}\n\nexport type DamImageCopyToLicenceRequest = Array<DamImageCopyToLicenceRequestItem>\n\nexport interface DamImageCopyToLicenceResponseItem {\n asset: DocId\n targetAsset: DocId\n targetMainFile: DocId\n targetAssetLicence: IntegerId\n result: 'exists' | 'copy' | 'notAllowed' | 'unassigned'\n assetConflicts: DocId[]\n}\n\nexport type DamImageCopyToLicenceResponse = Array<DamImageCopyToLicenceResponseItem>\n"],"mappings":";AAWA,IAAaA,IAAiB;CAC5B,OAAO;CACP,UAAU;CACV,UAAU;AACZ,GAEaC,IAAwBD,EAAe,OAEvCE,IAAe;CAC1B,OAAO;CACP,OAAO;CACP,OAAO;CACP,UAAU;AACZ,GAEaC,IAAsBD,EAAa"}
1
+ {"version":3,"file":"Asset.js","names":["DamAssetStatus","DamAssetStatusDefault","DamAssetType","DamAssetTypeDefault"],"sources":["../../../../src/domains/dam/types/Asset.ts"],"sourcesContent":["import type { DocId, DocIdNullable, IntegerId } from '@/shared/types/common'\nimport type { AnzuUserAndTimeTrackingAware } from '@/shared/types/AnzuUserAndTimeTrackingAware'\nimport type { ResourceNameSystemAware } from '@/shared/types/ResourceNameSystemAware'\nimport type { AssetFile } from '@/domains/dam/types/AssetFile'\n\ninterface Texts {\n displayTitle: string\n}\n\nexport type DamDistributionServiceName = string\n\nexport const DamAssetStatus = {\n Draft: 'draft',\n WithFile: 'with_file',\n Deleting: 'deleting',\n} as const\nexport type DamAssetStatusType = (typeof DamAssetStatus)[keyof typeof DamAssetStatus]\nexport const DamAssetStatusDefault = DamAssetStatus.Draft\n\nexport const DamAssetType = {\n Image: 'image',\n Audio: 'audio',\n Video: 'video',\n Document: 'document',\n} as const\nexport type DamAssetTypeType = (typeof DamAssetType)[keyof typeof DamAssetType]\nexport const DamAssetTypeDefault = DamAssetType.Image\n\ninterface Attributes {\n assetType: DamAssetTypeType\n assetStatus: DamAssetStatusType\n}\n\nexport interface AssetFileProperties {\n distributesInServices: DamDistributionServiceName[]\n slotNames: string[]\n fromRss: boolean\n width: number\n height: number\n /** A synthesized (TTS) audio. Not every backend sends it. */\n ttsAudio?: boolean\n}\n\ninterface Flags {\n described: boolean\n visible: boolean\n}\n\nexport interface AssetMetadataSuggestions extends Record<string, Array<string>> {}\n\nexport type AssetCustomData = Record<string, any>\n\ninterface Metadata {\n authorSuggestions: AssetMetadataSuggestions\n keywordSuggestions: AssetMetadataSuggestions\n customData: any\n}\n\nexport interface AssetSearchListItemDto extends AnzuUserAndTimeTrackingAware, ResourceNameSystemAware {\n id: DocId\n texts: Texts\n attributes: Attributes\n flags: Flags\n licence: IntegerId\n mainFile: null | AssetFile\n podcasts: DocId[]\n assetFileProperties: AssetFileProperties\n mainFileSingleUse: Readonly<boolean | null>\n mainFileInternal: Readonly<boolean | null>\n mainFileOverrideInternal: Readonly<boolean | null>\n}\n\nexport interface AssetDetailItemDto extends AnzuUserAndTimeTrackingAware, ResourceNameSystemAware {\n id: DocId\n texts: Texts\n attributes: Attributes\n flags: Flags\n licence: IntegerId\n mainFile: null | AssetFile\n keywords: DocId[]\n authors: DocId[]\n podcasts: DocId[]\n metadata: Metadata\n siblingToAsset: DocIdNullable\n distributionCategory: DocIdNullable\n assetFileProperties: AssetFileProperties\n mainFileSingleUse: Readonly<boolean | null>\n mainFileInternal: Readonly<boolean | null>\n mainFileOverrideInternal: Readonly<boolean | null>\n}\n\nexport interface AssetMetadataDto extends AnzuUserAndTimeTrackingAware, ResourceNameSystemAware, Metadata {\n id: DocId\n customData: AssetCustomData\n}\n\nexport type AssetExternalProviderId = string | number\nexport type AssetExternalProviderIdNullable = AssetExternalProviderId | null\n\nexport type AssetExternalProviderMetadata = Record<string, string | number | number[] | string[] | boolean>\n\nexport interface DamImageCopyToLicenceRequestItem {\n asset: DocId\n targetAssetLicence: IntegerId\n}\n\nexport type DamImageCopyToLicenceRequest = Array<DamImageCopyToLicenceRequestItem>\n\nexport interface DamImageCopyToLicenceResponseItem {\n asset: DocId\n targetAsset: DocId\n targetMainFile: DocId\n targetAssetLicence: IntegerId\n result: 'exists' | 'copy' | 'notAllowed' | 'unassigned'\n assetConflicts: DocId[]\n}\n\nexport type DamImageCopyToLicenceResponse = Array<DamImageCopyToLicenceResponseItem>\n"],"mappings":";AAWA,IAAaA,IAAiB;CAC5B,OAAO;CACP,UAAU;CACV,UAAU;AACZ,GAEaC,IAAwBD,EAAe,OAEvCE,IAAe;CAC1B,OAAO;CACP,OAAO;CACP,OAAO;CACP,UAAU;AACZ,GAEaC,IAAsBD,EAAa"}
@@ -42,16 +42,17 @@ export interface UploadQueueItem {
42
42
  assetId: DocIdNullable;
43
43
  duplicateAssetId: DocIdNullable;
44
44
  /**
45
- * The asset the row pointed to when the server found its file a duplicate: the one its upload made, or for a slot
46
- * or mass-edit row the asset it edits. `assetId` names the original once the row has become it (the library).
47
- * Null while the row is no duplicate.
45
+ * The asset the row pointed to when the server found its file a duplicate.
46
+ * That is the asset its upload made, or for a slot or mass-edit row the asset it edits.
47
+ * Once the row has become the original (library), `assetId`
48
+ * names the original. Null while the row is not a duplicate.
48
49
  */
49
50
  uploadedAssetId?: DocIdNullable;
50
51
  fileId: DocIdNullable;
51
52
  externalProviderAssetId: AssetExternalProviderIdNullable;
52
53
  externalProviderName: string | null;
53
54
  externalProviderMetadata: AssetExternalProviderMetadata;
54
- /** Aborts the chunk request in flight (Stop); a new one per chunk. */
55
+ /** Aborts the chunk request in flight (Stop). A new one is created per chunk. */
55
56
  latestChunkAbortController: AbortController | null;
56
57
  chunkSize: number;
57
58
  currentChunkIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"UploadQueue.js","names":["UploadQueueItemType","UploadQueueItemStatus"],"sources":["../../../../src/domains/dam/types/UploadQueue.ts"],"sourcesContent":["import type { DocId, DocIdNullable, IntegerId } from '@/shared/types/common'\nimport type {\n AssetExternalProviderIdNullable,\n AssetExternalProviderMetadata,\n DamAssetStatusType,\n DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport type { AssetFileFailReasonType, AssetFileLink } from '@/domains/dam/types/AssetFile'\nimport type { ImageAware } from '@/domains/dam/types/ImageAware'\n\nexport type UploadQueueKey = string\n\nexport interface UploadQueue {\n items: UploadQueueItem[]\n totalCount: number\n processedCount: number\n fileInputKey: number // used to reset html input file element\n\n suggestions: {\n newKeywordNames: Set<string>\n newAuthorNames: Set<string>\n }\n}\n\nexport const UploadQueueItemType = {\n File: 'file',\n Asset: 'asset',\n ExternalProviderAsset: 'externalProviderAsset',\n SlotFile: 'slotFile',\n} as const\nexport type UploadQueueItemTypeType = (typeof UploadQueueItemType)[keyof typeof UploadQueueItemType]\n\nexport const UploadQueueItemStatus = {\n Loading: 'loading', // loading additional api data\n Waiting: 'waiting', // waiting to be uploaded\n Uploading: 'uploading', // uploading right now\n Processing: 'processing', // all data sent by FE, server processing, waiting for notification, todo\n Failed: 'failed', // any error\n Uploaded: 'uploaded', // uploaded/ready after loading\n Stop: 'stop', // after hitting stop upload\n} as const\nexport type UploadQueueItemStatusType = (typeof UploadQueueItemStatus)[keyof typeof UploadQueueItemStatus]\n\nexport interface UploadQueueItem {\n key: string\n file: File | null\n status: UploadQueueItemStatusType\n assetStatus: DamAssetStatusType\n isDuplicate: boolean\n type: UploadQueueItemTypeType\n assetType: DamAssetTypeType\n displayTitle: string\n assetId: DocIdNullable\n duplicateAssetId: DocIdNullable\n /**\n * The asset the row pointed to when the server found its file a duplicate: the one its upload made, or for a slot\n * or mass-edit row the asset it edits. `assetId` names the original once the row has become it (the library).\n * Null while the row is no duplicate.\n */\n uploadedAssetId?: DocIdNullable\n fileId: DocIdNullable\n externalProviderAssetId: AssetExternalProviderIdNullable\n externalProviderName: string | null\n externalProviderMetadata: AssetExternalProviderMetadata\n /** Aborts the chunk request in flight (Stop); a new one per chunk. */\n latestChunkAbortController: AbortController | null\n chunkSize: number\n currentChunkIndex: number\n chunkTotalCount: number\n licenceId: IntegerId\n imagePreview?: AssetFileLink\n canEditMetadata: boolean\n keywords: DocId[]\n authors: DocId[]\n customData: any\n authorConflicts: DocId[]\n progress: {\n remainingTime: null | number\n progressPercent: null | number\n speed: null | number\n }\n error: {\n hasError: boolean\n message: string\n assetFileFailReason: AssetFileFailReasonType\n }\n /** @deprecated The queue polls for its rows itself; nothing sets or reads this. */\n notificationFallbackTimer: ReturnType<typeof setTimeout> | undefined\n /** @deprecated The queue polls for its rows itself; nothing reads this. */\n notificationFallbackTry: number\n slotName: string | null\n image: undefined | ImageAware // todo check\n mainFileSingleUse: boolean | null\n mainFileInternal: boolean | null\n}\n\nexport interface DamUploadStartResponse {\n id: DocId\n asset: DocId\n}\n"],"mappings":";AAwBA,IAAaA,IAAsB;CACjC,MAAM;CACN,OAAO;CACP,uBAAuB;CACvB,UAAU;AACZ,GAGaC,IAAwB;CACnC,SAAS;CACT,SAAS;CACT,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,UAAU;CACV,MAAM;AACR"}
1
+ {"version":3,"file":"UploadQueue.js","names":["UploadQueueItemType","UploadQueueItemStatus"],"sources":["../../../../src/domains/dam/types/UploadQueue.ts"],"sourcesContent":["import type { DocId, DocIdNullable, IntegerId } from '@/shared/types/common'\nimport type {\n AssetExternalProviderIdNullable,\n AssetExternalProviderMetadata,\n DamAssetStatusType,\n DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport type { AssetFileFailReasonType, AssetFileLink } from '@/domains/dam/types/AssetFile'\nimport type { ImageAware } from '@/domains/dam/types/ImageAware'\n\nexport type UploadQueueKey = string\n\nexport interface UploadQueue {\n items: UploadQueueItem[]\n totalCount: number\n processedCount: number\n fileInputKey: number // used to reset html input file element\n\n suggestions: {\n newKeywordNames: Set<string>\n newAuthorNames: Set<string>\n }\n}\n\nexport const UploadQueueItemType = {\n File: 'file',\n Asset: 'asset',\n ExternalProviderAsset: 'externalProviderAsset',\n SlotFile: 'slotFile',\n} as const\nexport type UploadQueueItemTypeType = (typeof UploadQueueItemType)[keyof typeof UploadQueueItemType]\n\nexport const UploadQueueItemStatus = {\n Loading: 'loading', // loading additional api data\n Waiting: 'waiting', // waiting to be uploaded\n Uploading: 'uploading', // uploading right now\n Processing: 'processing', // all data sent by FE, server processing, waiting for notification, todo\n Failed: 'failed', // any error\n Uploaded: 'uploaded', // uploaded/ready after loading\n Stop: 'stop', // after hitting stop upload\n} as const\nexport type UploadQueueItemStatusType = (typeof UploadQueueItemStatus)[keyof typeof UploadQueueItemStatus]\n\nexport interface UploadQueueItem {\n key: string\n file: File | null\n status: UploadQueueItemStatusType\n assetStatus: DamAssetStatusType\n isDuplicate: boolean\n type: UploadQueueItemTypeType\n assetType: DamAssetTypeType\n displayTitle: string\n assetId: DocIdNullable\n duplicateAssetId: DocIdNullable\n /**\n * The asset the row pointed to when the server found its file a duplicate.\n * That is the asset its upload made, or for a slot or mass-edit row the asset it edits.\n * Once the row has become the original (library), `assetId`\n * names the original. Null while the row is not a duplicate.\n */\n uploadedAssetId?: DocIdNullable\n fileId: DocIdNullable\n externalProviderAssetId: AssetExternalProviderIdNullable\n externalProviderName: string | null\n externalProviderMetadata: AssetExternalProviderMetadata\n /** Aborts the chunk request in flight (Stop). A new one is created per chunk. */\n latestChunkAbortController: AbortController | null\n chunkSize: number\n currentChunkIndex: number\n chunkTotalCount: number\n licenceId: IntegerId\n imagePreview?: AssetFileLink\n canEditMetadata: boolean\n keywords: DocId[]\n authors: DocId[]\n customData: any\n authorConflicts: DocId[]\n progress: {\n remainingTime: null | number\n progressPercent: null | number\n speed: null | number\n }\n error: {\n hasError: boolean\n message: string\n assetFileFailReason: AssetFileFailReasonType\n }\n /** @deprecated The queue polls for its rows itself; nothing sets or reads this. */\n notificationFallbackTimer: ReturnType<typeof setTimeout> | undefined\n /** @deprecated The queue polls for its rows itself; nothing reads this. */\n notificationFallbackTry: number\n slotName: string | null\n image: undefined | ImageAware // todo check\n mainFileSingleUse: boolean | null\n mainFileInternal: boolean | null\n}\n\nexport interface DamUploadStartResponse {\n id: DocId\n asset: DocId\n}\n"],"mappings":";AAwBA,IAAaA,IAAsB;CACjC,MAAM;CACN,OAAO;CACP,uBAAuB;CACvB,UAAU;AACZ,GAGaC,IAAwB;CACnC,SAAS;CACT,SAAS;CACT,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,UAAU;CACV,MAAM;AACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCustomMetadataFormMassOperations.js","names":["_sfc_main","AssetCustomMetadataFormMassOperations_vue_vue_type_script_setup_true_lang_default","AssetCustomMetadataFormMassOperations_default"],"sources":["../../../../../src/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataFormElement from '@/domains/customDataForm/components/ACustomDataFormElement.vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n }>(),\n {}\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'fillEmptyField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n (e: 'replaceField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n}>()\n\nconst { t } = useI18n()\n\nconst updateModelValue = (data: { property: string; value: any }) => {\n const updated = {} as { [key: string]: any }\n updated[data.property] = data.value\n emit('update:modelValue', { ...props.modelValue, ...updated })\n}\n\nconst fillEmptyField = (elementProperty: string, value: any) => {\n emit('fillEmptyField', { assetType: props.assetType, elementProperty, value })\n}\nconst replaceField = (elementProperty: string, value: any) => {\n emit('replaceField', { assetType: props.assetType, elementProperty, value })\n}\n\nconst { getDamConfigAssetCustomFormElements } = useDamConfigState(undefined, useDamConfigName())\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n// A type whose read failed beside reads that answered is not loaded: the form says so in place of its fields. Thrown,\n// it took the rest of the panel of its host with it.\nconst typeNotLoaded = computed(() => isUndefined(getDamConfigAssetCustomFormElements(props.extSystem, props.assetType)))\n\nconst elements = computed(() => {\n return configAssetCustomFormElements[props.assetType]\n})\n</script>\n\n<template>\n <div class=\"w-100\">\n <div\n v-if=\"typeNotLoaded\"\n class=\"text-error my-2\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <VRow\n v-for=\"element in elements\"\n :key=\"element.id\"\n density=\"compact\"\n class=\"mt-1\"\n >\n <VCol>\n <div v-if=\"element.attributes.readonly\" />\n <div\n v-else\n class=\"d-flex\"\n >\n <ACustomDataFormElement\n :config=\"element\"\n :model-value=\"modelValue[element.property]\"\n :validation-scope=\"false\"\n @update:model-value=\"updateModelValue\"\n />\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.fillOneEmptyField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n class=\"mr-1\"\n @click.stop=\"fillEmptyField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-arrow-left-right-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.fillOneEmpty') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.replaceOneField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n @click.stop=\"replaceField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-replace-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.replaceOne') }}\n </VTooltip>\n </VBtn>\n </div>\n </VCol>\n </VRow>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AssetCustomMetadataFormMassOperations.js","names":["_sfc_main","AssetCustomMetadataFormMassOperations_vue_vue_type_script_setup_true_lang_default","AssetCustomMetadataFormMassOperations_default"],"sources":["../../../../../src/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataFormElement from '@/domains/customDataForm/components/ACustomDataFormElement.vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n }>(),\n {}\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'fillEmptyField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n (e: 'replaceField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n}>()\n\nconst { t } = useI18n()\n\nconst updateModelValue = (data: { property: string; value: any }) => {\n const updated = {} as { [key: string]: any }\n updated[data.property] = data.value\n emit('update:modelValue', { ...props.modelValue, ...updated })\n}\n\nconst fillEmptyField = (elementProperty: string, value: any) => {\n emit('fillEmptyField', { assetType: props.assetType, elementProperty, value })\n}\nconst replaceField = (elementProperty: string, value: any) => {\n emit('replaceField', { assetType: props.assetType, elementProperty, value })\n}\n\nconst { getDamConfigAssetCustomFormElements } = useDamConfigState(undefined, useDamConfigName())\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n// A type whose read failed while other reads succeeded is not loaded. The form shows that instead of its fields.\n// Throwing here would break the rest of the host panel.\nconst typeNotLoaded = computed(() => isUndefined(getDamConfigAssetCustomFormElements(props.extSystem, props.assetType)))\n\nconst elements = computed(() => {\n return configAssetCustomFormElements[props.assetType]\n})\n</script>\n\n<template>\n <div class=\"w-100\">\n <div\n v-if=\"typeNotLoaded\"\n class=\"text-error my-2\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <VRow\n v-for=\"element in elements\"\n :key=\"element.id\"\n density=\"compact\"\n class=\"mt-1\"\n >\n <VCol>\n <div v-if=\"element.attributes.readonly\" />\n <div\n v-else\n class=\"d-flex\"\n >\n <ACustomDataFormElement\n :config=\"element\"\n :model-value=\"modelValue[element.property]\"\n :validation-scope=\"false\"\n @update:model-value=\"updateModelValue\"\n />\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.fillOneEmptyField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n class=\"mr-1\"\n @click.stop=\"fillEmptyField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-arrow-left-right-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.fillOneEmpty') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.replaceOneField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n @click.stop=\"replaceField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-replace-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.replaceOne') }}\n </VTooltip>\n </VBtn>\n </div>\n </VCol>\n </VRow>\n </div>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_toDisplayString","_unref","_createCommentVNode","_Fragment","_renderList","_createBlock","_component_VRow","_withCtx","_createVNode","_component_VCol","ACustomDataFormElement","_component_VBtn","_withModifiers","_component_VIcon","_component_VTooltip","_createTextVNode","ACustomDataFormElement_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AssetCustomMetadataFormMassOperations_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","useI18n","updateModelValue","updated","data","fillEmptyField","replaceField","useDamConfigState","useDamConfigName","configAssetCustomFormElements","getDamConfigAssetCustomFormElements","isUndefined","typeNotLoaded","computed","elements","openBlock","createElementBlock","toDisplayString","unref","t","createCommentVNode","Fragment","renderList","createBlock","VRow","element","withCtx","createVNode","VCol","VBtn","withModifiers","VIcon","VTooltip","createTextVNode"],"sources":["../../../../../src/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataFormElement from '@/domains/customDataForm/components/ACustomDataFormElement.vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n }>(),\n {}\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'fillEmptyField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n (e: 'replaceField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n}>()\n\nconst { t } = useI18n()\n\nconst updateModelValue = (data: { property: string; value: any }) => {\n const updated = {} as { [key: string]: any }\n updated[data.property] = data.value\n emit('update:modelValue', { ...props.modelValue, ...updated })\n}\n\nconst fillEmptyField = (elementProperty: string, value: any) => {\n emit('fillEmptyField', { assetType: props.assetType, elementProperty, value })\n}\nconst replaceField = (elementProperty: string, value: any) => {\n emit('replaceField', { assetType: props.assetType, elementProperty, value })\n}\n\nconst { getDamConfigAssetCustomFormElements } = useDamConfigState(undefined, useDamConfigName())\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n// A type whose read failed beside reads that answered is not loaded: the form says so in place of its fields. Thrown,\n// it took the rest of the panel of its host with it.\nconst typeNotLoaded = computed(() => isUndefined(getDamConfigAssetCustomFormElements(props.extSystem, props.assetType)))\n\nconst elements = computed(() => {\n return configAssetCustomFormElements[props.assetType]\n})\n</script>\n\n<template>\n <div class=\"w-100\">\n <div\n v-if=\"typeNotLoaded\"\n class=\"text-error my-2\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <VRow\n v-for=\"element in elements\"\n :key=\"element.id\"\n density=\"compact\"\n class=\"mt-1\"\n >\n <VCol>\n <div v-if=\"element.attributes.readonly\" />\n <div\n v-else\n class=\"d-flex\"\n >\n <ACustomDataFormElement\n :config=\"element\"\n :model-value=\"modelValue[element.property]\"\n :validation-scope=\"false\"\n @update:model-value=\"updateModelValue\"\n />\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.fillOneEmptyField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n class=\"mr-1\"\n @click.stop=\"fillEmptyField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-arrow-left-right-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.fillOneEmpty') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.replaceOneField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n @click.stop=\"replaceField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-replace-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.replaceOne') }}\n </VTooltip>\n </VBtn>\n </div>\n </VCol>\n </VRow>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUA,IAAMyB,IAAQC,GASRC,IAAOH,GAMP,EAAE,SAAMI,EAAQ,GAEhBC,KAAoB,MAA2C;GACnE,IAAMC,IAAU,CAAC;GAEjB,AADA,EAAQC,EAAK,YAAYA,EAAK,OAC9BJ,EAAK,qBAAqB;IAAE,GAAGF,EAAM;IAAY,GAAGK;GAAQ,CAAC;EAC/D,GAEME,KAAkB,GAAyB,MAAe;GAC9D,EAAK,kBAAkB;IAAE,WAAWP,EAAM;IAAW;IAAiB;GAAM,CAAC;EAC/E,GACMQ,KAAgB,GAAyB,MAAe;GAC5D,EAAK,gBAAgB;IAAE,WAAWR,EAAM;IAAW;IAAiB;GAAM,CAAC;EAC7E,GAEM,EAAE,2CAAwCS,EAAkB,KAAA,GAAWC,EAAiB,CAAC,GAEzFC,IAAgCC,EAAoCZ,EAAM,SAAS;EACzF,IAAIa,EAAYF,CAA6B,GAC3C,MAAU,MAAM,2CAA2C;EAI7D,IAAMG,IAAgBC,QAAeF,EAAYD,EAAoCZ,EAAM,WAAWA,EAAM,SAAS,CAAC,CAAC,GAEjHgB,IAAWD,QACRJ,EAA8BX,EAAM,UAC5C;E,kBAICzB,EAAA,GAAAC,EA2DM,OA3DNkB,GA2DM,CAzDIoB,EAAA,SADRvC,EAAA,GAAAC,EAKM,OALNmB,GAKMlB,EADDC,EAAA2C,CAAA,CAAC,CAAA,qCAAA,CAAA,GAAA,CAAA,K,YAEN9C,EAAA,EAAA,GAAAC,EAmDOI,GAAA,MAAAC,EAlDamC,EAAA,QAAX,OADTzC,EAAA,GAAAO,EAmDOC,GAAA;GAjDJ,KAAK4C,EAAQ;GACd,SAAQ;GACR,OAAM;;GAEN,SAAA3C,QA4CO,CA5CPC,EA4COC,GAAA,MAAA;IA3CL,SAAAF,QAA0C,CAA/B2C,EAAQ,WAAW,YAA9BpD,EAAA,GAAAC,EAA0C,OAAAoB,CAAA,MAC1CrB,EAAA,GAAAC,EAyCM,OAzCNqB,GAyCM;KArCJZ,EAKEE,GAAA;MAJC,QAAQwC;MACR,eAAa1B,EAAA,WAAW0B,EAAQ;MAChC,oBAAkB;MAClB,uBAAoBvB;;KAEvBnB,EAeOG,GAAA;MAdJ,cAAYV,EAAA2C,CAAA,CAAC,CAAA,0DAAA,EAAA,OAAoEM,EAAQ,KAAI,CAAA;MAC9F,MAAA;MACA,MAAK;MACL,SAAQ;MACR,OAAM;MACL,SAAKtC,GAAA,MAAOkB,EAAeoB,EAAQ,UAAU1B,EAAA,WAAW0B,EAAQ,SAAQ,GAAA,CAAA,MAAA,CAAA;;MAEzE,SAAA3C,QAAkD,CAAlDC,EAAkDK,GAAA,EAA3C,MAAK,oCAAmC,CAAA,GAC/CL,EAKWM,GAAA;OAJT,WAAU;OACV,UAAS;;OAET,SAAAP,QAA4D,CAAzDQ,EAAAf,EAAAC,EAAA2C,CAAA,CAAC,CAAA,mDAAA,CAAA,GAAA,CAAA,C;;;;;KAGRpC,EAcOG,GAAA;MAbJ,cAAYV,EAAA2C,CAAA,CAAC,CAAA,wDAAA,EAAA,OAAkEM,EAAQ,KAAI,CAAA;MAC5F,MAAA;MACA,MAAK;MACL,SAAQ;MACP,SAAKtC,GAAA,MAAOmB,EAAamB,EAAQ,UAAU1B,EAAA,WAAW0B,EAAQ,SAAQ,GAAA,CAAA,MAAA,CAAA;;MAEvE,SAAA3C,QAAyC,CAAzCC,EAAyCK,GAAA,EAAlC,MAAK,2BAA0B,CAAA,GACtCL,EAKWM,GAAA;OAJT,WAAU;OACV,UAAS;;OAET,SAAAP,QAA0D,CAAvDQ,EAAAf,EAAAC,EAAA2C,CAAA,CAAC,CAAA,iDAAA,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_toDisplayString","_unref","_createCommentVNode","_Fragment","_renderList","_createBlock","_component_VRow","_withCtx","_createVNode","_component_VCol","ACustomDataFormElement","_component_VBtn","_withModifiers","_component_VIcon","_component_VTooltip","_createTextVNode","ACustomDataFormElement_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AssetCustomMetadataFormMassOperations_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","useI18n","updateModelValue","updated","data","fillEmptyField","replaceField","useDamConfigState","useDamConfigName","configAssetCustomFormElements","getDamConfigAssetCustomFormElements","isUndefined","typeNotLoaded","computed","elements","openBlock","createElementBlock","toDisplayString","unref","t","createCommentVNode","Fragment","renderList","createBlock","VRow","element","withCtx","createVNode","VCol","VBtn","withModifiers","VIcon","VTooltip","createTextVNode"],"sources":["../../../../../src/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataFormElement from '@/domains/customDataForm/components/ACustomDataFormElement.vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n }>(),\n {}\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'fillEmptyField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n (e: 'replaceField', data: { assetType: DamAssetTypeType; elementProperty: string; value: any }): void\n}>()\n\nconst { t } = useI18n()\n\nconst updateModelValue = (data: { property: string; value: any }) => {\n const updated = {} as { [key: string]: any }\n updated[data.property] = data.value\n emit('update:modelValue', { ...props.modelValue, ...updated })\n}\n\nconst fillEmptyField = (elementProperty: string, value: any) => {\n emit('fillEmptyField', { assetType: props.assetType, elementProperty, value })\n}\nconst replaceField = (elementProperty: string, value: any) => {\n emit('replaceField', { assetType: props.assetType, elementProperty, value })\n}\n\nconst { getDamConfigAssetCustomFormElements } = useDamConfigState(undefined, useDamConfigName())\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n// A type whose read failed while other reads succeeded is not loaded. The form shows that instead of its fields.\n// Throwing here would break the rest of the host panel.\nconst typeNotLoaded = computed(() => isUndefined(getDamConfigAssetCustomFormElements(props.extSystem, props.assetType)))\n\nconst elements = computed(() => {\n return configAssetCustomFormElements[props.assetType]\n})\n</script>\n\n<template>\n <div class=\"w-100\">\n <div\n v-if=\"typeNotLoaded\"\n class=\"text-error my-2\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <VRow\n v-for=\"element in elements\"\n :key=\"element.id\"\n density=\"compact\"\n class=\"mt-1\"\n >\n <VCol>\n <div v-if=\"element.attributes.readonly\" />\n <div\n v-else\n class=\"d-flex\"\n >\n <ACustomDataFormElement\n :config=\"element\"\n :model-value=\"modelValue[element.property]\"\n :validation-scope=\"false\"\n @update:model-value=\"updateModelValue\"\n />\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.fillOneEmptyField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n class=\"mr-1\"\n @click.stop=\"fillEmptyField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-arrow-left-right-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.fillOneEmpty') }}\n </VTooltip>\n </VBtn>\n <VBtn\n :aria-label=\"t('common.damImage.asset.massOperations.replaceOneField', { field: element.name })\"\n icon\n size=\"small\"\n variant=\"text\"\n @click.stop=\"replaceField(element.property, modelValue[element.property])\"\n >\n <VIcon icon=\"mdi-file-replace-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.massOperations.replaceOne') }}\n </VTooltip>\n </VBtn>\n </div>\n </VCol>\n </VRow>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUA,IAAMyB,IAAQC,GASRC,IAAOH,GAMP,EAAE,SAAMI,EAAQ,GAEhBC,KAAoB,MAA2C;GACnE,IAAMC,IAAU,CAAC;GAEjB,AADA,EAAQC,EAAK,YAAYA,EAAK,OAC9BJ,EAAK,qBAAqB;IAAE,GAAGF,EAAM;IAAY,GAAGK;GAAQ,CAAC;EAC/D,GAEME,KAAkB,GAAyB,MAAe;GAC9D,EAAK,kBAAkB;IAAE,WAAWP,EAAM;IAAW;IAAiB;GAAM,CAAC;EAC/E,GACMQ,KAAgB,GAAyB,MAAe;GAC5D,EAAK,gBAAgB;IAAE,WAAWR,EAAM;IAAW;IAAiB;GAAM,CAAC;EAC7E,GAEM,EAAE,2CAAwCS,EAAkB,KAAA,GAAWC,EAAiB,CAAC,GAEzFC,IAAgCC,EAAoCZ,EAAM,SAAS;EACzF,IAAIa,EAAYF,CAA6B,GAC3C,MAAU,MAAM,2CAA2C;EAI7D,IAAMG,IAAgBC,QAAeF,EAAYD,EAAoCZ,EAAM,WAAWA,EAAM,SAAS,CAAC,CAAC,GAEjHgB,IAAWD,QACRJ,EAA8BX,EAAM,UAC5C;E,kBAICzB,EAAA,GAAAC,EA2DM,OA3DNkB,GA2DM,CAzDIoB,EAAA,SADRvC,EAAA,GAAAC,EAKM,OALNmB,GAKMlB,EADDC,EAAA2C,CAAA,CAAC,CAAA,qCAAA,CAAA,GAAA,CAAA,K,YAEN9C,EAAA,EAAA,GAAAC,EAmDOI,GAAA,MAAAC,EAlDamC,EAAA,QAAX,OADTzC,EAAA,GAAAO,EAmDOC,GAAA;GAjDJ,KAAK4C,EAAQ;GACd,SAAQ;GACR,OAAM;;GAEN,SAAA3C,QA4CO,CA5CPC,EA4COC,GAAA,MAAA;IA3CL,SAAAF,QAA0C,CAA/B2C,EAAQ,WAAW,YAA9BpD,EAAA,GAAAC,EAA0C,OAAAoB,CAAA,MAC1CrB,EAAA,GAAAC,EAyCM,OAzCNqB,GAyCM;KArCJZ,EAKEE,GAAA;MAJC,QAAQwC;MACR,eAAa1B,EAAA,WAAW0B,EAAQ;MAChC,oBAAkB;MAClB,uBAAoBvB;;KAEvBnB,EAeOG,GAAA;MAdJ,cAAYV,EAAA2C,CAAA,CAAC,CAAA,0DAAA,EAAA,OAAoEM,EAAQ,KAAI,CAAA;MAC9F,MAAA;MACA,MAAK;MACL,SAAQ;MACR,OAAM;MACL,SAAKtC,GAAA,MAAOkB,EAAeoB,EAAQ,UAAU1B,EAAA,WAAW0B,EAAQ,SAAQ,GAAA,CAAA,MAAA,CAAA;;MAEzE,SAAA3C,QAAkD,CAAlDC,EAAkDK,GAAA,EAA3C,MAAK,oCAAmC,CAAA,GAC/CL,EAKWM,GAAA;OAJT,WAAU;OACV,UAAS;;OAET,SAAAP,QAA4D,CAAzDQ,EAAAf,EAAAC,EAAA2C,CAAA,CAAC,CAAA,mDAAA,CAAA,GAAA,CAAA,C;;;;;KAGRpC,EAcOG,GAAA;MAbJ,cAAYV,EAAA2C,CAAA,CAAC,CAAA,wDAAA,EAAA,OAAkEM,EAAQ,KAAI,CAAA;MAC5F,MAAA;MACA,MAAK;MACL,SAAQ;MACP,SAAKtC,GAAA,MAAOmB,EAAamB,EAAQ,UAAU1B,EAAA,WAAW0B,EAAQ,SAAQ,GAAA,CAAA,MAAA,CAAA;;MAEvE,SAAA3C,QAAyC,CAAzCC,EAAyCK,GAAA,EAAlC,MAAK,2BAA0B,CAAA,GACtCL,EAKWM,GAAA;OAJT,WAAU;OACV,UAAS;;OAET,SAAAP,QAA0D,CAAvDQ,EAAAf,EAAAC,EAAA2C,CAAA,CAAC,CAAA,iDAAA,CAAA,GAAA,CAAA,C"}