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

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 (457) hide show
  1. package/dist/domains/anzuUser/components/AAnzuUserDatatable.js.map +1 -1
  2. package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  3. package/dist/domains/anzuUser/components/AAnzuUserFilter.js.map +1 -1
  4. package/dist/domains/anzuUser/components/AAnzuUserFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  5. package/dist/domains/anzuUser/components/AAnzuUserForm.js.map +1 -1
  6. package/dist/domains/anzuUser/components/AAnzuUserForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  7. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.js.map +1 -1
  8. package/dist/domains/anzuUser/components/AUserBulkActionDialog.js.map +1 -1
  9. package/dist/domains/anzuUser/components/AUserBulkActionDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  10. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.js.map +1 -1
  11. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  12. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.js.map +1 -1
  13. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  14. package/dist/domains/anzuUser/components/AUserEnabledSwitch.js.map +1 -1
  15. package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  16. package/dist/domains/anzuUser/components/AUserManageButton.js.map +1 -1
  17. package/dist/domains/anzuUser/components/AUserMetadataForm.js.map +1 -1
  18. package/dist/domains/anzuUser/components/AUserMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.js.map +1 -1
  20. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  21. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.js.map +1 -1
  22. package/dist/domains/anzuUser/components/AUserSystemOverview.js.map +1 -1
  23. package/dist/domains/anzuUser/components/AUserSystemOverview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/domains/anzuUser/components/AUserSystemPanel.js.map +1 -1
  25. package/dist/domains/anzuUser/components/AUserSystemPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  26. package/dist/domains/anzuUser/components/AUserSystemStatusChip.js.map +1 -1
  27. package/dist/domains/anzuUser/components/AUserTabsShell.js.map +1 -1
  28. package/dist/domains/anzuUser/components/AUserTabsShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  29. package/dist/domains/auth/components/Acl.js.map +1 -1
  30. package/dist/domains/auth/components/Acl.vue_vue_type_script_setup_true_lang.js.map +1 -1
  31. package/dist/domains/cached/components/ACachedChip.js.map +1 -1
  32. package/dist/domains/cached/components/ACachedChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/domains/cached/components/ACachedUserChip.js.map +1 -1
  34. package/dist/domains/cached/components/ACachedUserChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  35. package/dist/domains/collab/components/ACollabCountdown.js.map +1 -1
  36. package/dist/domains/collab/components/ACollabCountdown.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/domains/collab/components/ACollabLockedByUser.js.map +1 -1
  38. package/dist/domains/collab/components/ACollabManagement.js.map +1 -1
  39. package/dist/domains/collab/components/ACollabManagement.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/domains/customDataForm/components/ACustomDataForm.js.map +1 -1
  41. package/dist/domains/customDataForm/components/ACustomDataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  42. package/dist/domains/customDataForm/components/ACustomDataFormElement.js.map +1 -1
  43. package/dist/domains/customDataForm/components/ACustomDataFormElement.vue_vue_type_script_setup_true_lang.js.map +1 -1
  44. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.js.map +1 -1
  45. package/dist/domains/dam/assetDetail/components/AColorBox.js.map +1 -1
  46. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.js.map +1 -1
  47. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.js.map +1 -1
  49. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  50. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.js.map +1 -1
  51. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  52. package/dist/domains/dam/assetDetail/components/AssetDetailDialogLoader.js.map +1 -1
  53. package/dist/domains/dam/assetDetail/components/AssetDetailDialogSidebar.js.map +1 -1
  54. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.js.map +1 -1
  55. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.js.map +1 -1
  56. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  57. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.js.map +1 -1
  58. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  59. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.js.map +1 -1
  60. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  61. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.js.map +1 -1
  62. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue_vue_type_script_setup_true_lang.js.map +1 -1
  63. package/dist/domains/dam/assetDetail/components/AssetFileFailReasonChip.js.map +1 -1
  64. package/dist/domains/dam/assetDetail/components/AssetFileFailReasonChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  65. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.js.map +1 -1
  66. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/domains/dam/assetDetail/components/AssetFileRotate.js.map +1 -1
  68. package/dist/domains/dam/assetDetail/components/AssetFileRotate.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/domains/dam/assetDetail/components/AssetImage.js.map +1 -1
  70. package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  71. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.js.map +1 -1
  72. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/domains/dam/assetDetail/components/AssetInfobox.js.map +1 -1
  74. package/dist/domains/dam/assetDetail/components/AssetInfobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  75. package/dist/domains/dam/assetDetail/components/AssetMetadata.js.map +1 -1
  76. package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/domains/dam/assetDetail/components/AssetMetadataImageAttributes.js.map +1 -1
  78. package/dist/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue_vue_type_script_setup_true_lang.js.map +1 -1
  79. package/dist/domains/dam/assetSelect/components/AAssetListInner.js.map +1 -1
  80. package/dist/domains/dam/assetSelect/components/AAssetListInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  81. package/dist/domains/dam/assetSelect/components/AAssetSelect.js.map +1 -1
  82. package/dist/domains/dam/assetSelect/components/AAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  83. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.js.map +1 -1
  84. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.js.map +1 -1
  86. package/dist/domains/dam/assetSelect/components/AssetImagePreview.js.map +1 -1
  87. package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/domains/dam/assetSelect/components/AssetSelectFilter.js.map +1 -1
  89. package/dist/domains/dam/assetSelect/components/AssetSelectFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  90. package/dist/domains/dam/assetSelect/components/AssetSelectFilterForm.js.map +1 -1
  91. package/dist/domains/dam/assetSelect/components/AssetSelectFilterForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  92. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.js.map +1 -1
  93. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  94. package/dist/domains/dam/assetSelect/components/AssetSelectListTable.js.map +1 -1
  95. package/dist/domains/dam/assetSelect/components/AssetSelectListTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  96. package/dist/domains/dam/assetSelect/components/AssetSelectListTiles.js.map +1 -1
  97. package/dist/domains/dam/assetSelect/components/AssetSelectListTiles.vue_vue_type_script_setup_true_lang.js.map +1 -1
  98. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.js.map +1 -1
  99. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.js.map +1 -1
  100. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  101. package/dist/domains/dam/assetSelect/components/FilterPodcastRemoteAutocomplete.js.map +1 -1
  102. package/dist/domains/dam/author/components/AuthorCreateButton.js.map +1 -1
  103. package/dist/domains/dam/author/components/AuthorCreateButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  104. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.js.map +1 -1
  105. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  106. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.js.map +1 -1
  107. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js.map +1 -1
  109. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  110. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.js.map +1 -1
  111. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  112. package/dist/domains/dam/components/DamAdminAssetLink.js.map +1 -1
  113. package/dist/domains/dam/cropper/components/ACropper.js.map +1 -1
  114. package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  115. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.js.map +1 -1
  116. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  117. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.js.map +1 -1
  118. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.vue_vue_type_script_setup_true_lang.js.map +1 -1
  119. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.js.map +1 -1
  120. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  121. package/dist/domains/dam/imageWidget/components/AImagePublicInput.js.map +1 -1
  122. package/dist/domains/dam/imageWidget/components/AImagePublicInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  123. package/dist/domains/dam/imageWidget/components/AImageWidget.js.map +1 -1
  124. package/dist/domains/dam/imageWidget/components/AImageWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  125. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.js.map +1 -1
  126. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  127. package/dist/domains/dam/imageWidget/components/AImageWidgetMultipleSimple.js.map +1 -1
  128. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.js.map +1 -1
  129. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.js.map +1 -1
  131. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.js.map +1 -1
  133. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  134. package/dist/domains/dam/imageWidget/components/ImageMassOperations.js.map +1 -1
  135. package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  136. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.js.map +1 -1
  137. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  138. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.js.map +1 -1
  139. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  140. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.js.map +1 -1
  141. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  142. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.js.map +1 -1
  143. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.js.map +1 -1
  145. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.js.map +1 -1
  147. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  148. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.js.map +1 -1
  149. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.js.map +1 -1
  150. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  151. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js.map +1 -1
  152. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  153. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.js.map +1 -1
  154. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  155. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.js.map +1 -1
  156. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  157. package/dist/domains/dam/uploadQueue/components/UploadQueueButtonStop.js.map +1 -1
  158. package/dist/domains/dam/uploadQueue/components/UploadQueueButtonStop.vue_vue_type_script_setup_true_lang.js.map +1 -1
  159. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.js.map +1 -1
  160. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  161. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.js.map +1 -1
  162. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  163. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.js.map +1 -1
  164. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.js.map +1 -1
  165. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  166. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.js.map +1 -1
  167. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.js.map +1 -1
  169. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  170. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.js.map +1 -1
  171. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  172. package/dist/domains/dam/uploadQueue/components/UploadQueueItemErrorOverlay.js.map +1 -1
  173. package/dist/domains/dam/user/components/DamAssetLicenceGroupRemoteAutocomplete.js.map +1 -1
  174. package/dist/domains/dam/user/components/DamAssetLicenceRemoteAutocomplete.js.map +1 -1
  175. package/dist/domains/dam/user/components/DamDistributionServiceSelect.js.map +1 -1
  176. package/dist/domains/dam/user/components/DamExtSystemRemoteAutocomplete.js.map +1 -1
  177. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.js.map +1 -1
  178. package/dist/domains/dam/user/components/DamUserFilterRemoteAutocomplete.js.map +1 -1
  179. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.js.map +1 -1
  180. package/dist/domains/filters/bookmarks/components/AFilterBookmarkButton.js.map +1 -1
  181. package/dist/domains/filters/bookmarks/components/AFilterBookmarkButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  182. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.js.map +1 -1
  183. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  184. package/dist/domains/filters/bookmarks/components/FilterBookmarks.js.map +1 -1
  185. package/dist/domains/filters/bookmarks/components/FilterBookmarks.vue_vue_type_script_setup_true_lang.js.map +1 -1
  186. package/dist/domains/filters/components/AFilterAdvancedButton.js.map +1 -1
  187. package/dist/domains/filters/components/AFilterBooleanSelect.js.map +1 -1
  188. package/dist/domains/filters/components/AFilterDatetimePicker.js.map +1 -1
  189. package/dist/domains/filters/components/AFilterEmpty.js.map +1 -1
  190. package/dist/domains/filters/components/AFilterInteger.js.map +1 -1
  191. package/dist/domains/filters/components/AFilterResetButton.js.map +1 -1
  192. package/dist/domains/filters/components/AFilterString.js.map +1 -1
  193. package/dist/domains/filters/components/AFilterString.vue.d.ts +3 -0
  194. package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js +8 -2
  195. package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js.map +1 -1
  196. package/dist/domains/filters/components/AFilterSubmitButton.js.map +1 -1
  197. package/dist/domains/filters/components/AFilterTimeInterval.js.map +1 -1
  198. package/dist/domains/filters/components/AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js.map +1 -1
  199. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.js.map +1 -1
  200. package/dist/domains/filters/components/AFilterWrapper.js.map +1 -1
  201. package/dist/domains/filters/components/AFilterWrapper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  202. package/dist/domains/filters/components/AFilterWrapperSidebar.js.map +1 -1
  203. package/dist/domains/filters/components/FilterDetailItem.js.map +1 -1
  204. package/dist/domains/filters/components/FiltersSelected.js.map +1 -1
  205. package/dist/domains/filters/datatable/components/ADatatableConfigButton.js.map +1 -1
  206. package/dist/domains/filters/datatable/components/ADatatableOrdering.js.map +1 -1
  207. package/dist/domains/filters/datatable/components/ADatatablePagination.js.map +1 -1
  208. package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  209. package/dist/domains/form/components/AFormDatetimePicker.js.map +1 -1
  210. package/dist/domains/form/components/AFormDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  211. package/dist/domains/form/components/AFormFlagDatetimePicker.js.map +1 -1
  212. package/dist/domains/form/components/AFormFlagDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  213. package/dist/domains/form/components/AFormRemoteCheckbox.js.map +1 -1
  214. package/dist/domains/form/components/AFormRemoteCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  215. package/dist/domains/form/components/AFormRemoteSwitch.js.map +1 -1
  216. package/dist/domains/form/components/AFormRemoteSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  217. package/dist/domains/form/components/AFormSwitch.js.map +1 -1
  218. package/dist/domains/form/components/AFormSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  219. package/dist/domains/form/components/AFormTextField.js.map +1 -1
  220. package/dist/domains/form/components/AFormTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  221. package/dist/domains/form/components/AFormTextarea.js.map +1 -1
  222. package/dist/domains/form/components/AFormTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  223. package/dist/domains/form/components/AFormValueObjectOptionsSelect.js.map +1 -1
  224. package/dist/domains/form/components/AFormValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  225. package/dist/domains/form/components/ASystemEntityScope.js.map +1 -1
  226. package/dist/domains/job/components/AJobBaseCreateForm.js.map +1 -1
  227. package/dist/domains/job/components/AJobBaseCreateForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  228. package/dist/domains/job/components/AJobDetailCommon.js.map +1 -1
  229. package/dist/domains/job/components/AJobPriorityChip.js.map +1 -1
  230. package/dist/domains/job/components/AJobStatusChip.js.map +1 -1
  231. package/dist/domains/listEditor/components/AListEditor.js.map +1 -1
  232. package/dist/domains/listEditor/components/AListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  233. package/dist/domains/listEditor/components/ANestedSortableListEditor.js.map +1 -1
  234. package/dist/domains/listEditor/components/ANestedSortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  235. package/dist/domains/listEditor/components/ASortableListEditor.js.map +1 -1
  236. package/dist/domains/listEditor/components/ASortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  237. package/dist/domains/listEditor/components/internal/LeChangeParentDialog.js.map +1 -1
  238. package/dist/domains/listEditor/components/internal/LeChangeParentDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  239. package/dist/domains/listEditor/components/internal/LeDeleteDialog.js.map +1 -1
  240. package/dist/domains/listEditor/components/internal/LeDeleteDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/domains/listEditor/components/internal/LeDragHandle.js.map +1 -1
  242. package/dist/domains/listEditor/components/internal/LeEmptyState.js.map +1 -1
  243. package/dist/domains/listEditor/components/internal/LeEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/domains/listEditor/components/internal/LeMoveToPositionDialog.js.map +1 -1
  245. package/dist/domains/listEditor/components/internal/LeMoveToPositionDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  246. package/dist/domains/listEditor/components/internal/LeNestedRow.js.map +1 -1
  247. package/dist/domains/listEditor/components/internal/LeNestedRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  248. package/dist/domains/listEditor/components/internal/LeStatus.js.map +1 -1
  249. package/dist/domains/listEditor/components/internal/LeStatus.vue_vue_type_script_setup_true_lang.js.map +1 -1
  250. package/dist/domains/listEditor/components/internal/LeUnsavedLabel.js.map +1 -1
  251. package/dist/domains/listEditor/components/internal/LeUnsavedLabel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  252. package/dist/domains/log/components/ALogDatatable.js.map +1 -1
  253. package/dist/domains/log/components/ALogDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  254. package/dist/domains/log/components/ALogDetail.js.map +1 -1
  255. package/dist/domains/log/components/ALogDetailView.js.map +1 -1
  256. package/dist/domains/log/components/ALogDetailView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  257. package/dist/domains/log/components/ALogFilter.js.map +1 -1
  258. package/dist/domains/log/components/ALogLevelChip.js.map +1 -1
  259. package/dist/domains/log/components/ALogLevelChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  260. package/dist/domains/log/components/ALogListView.js.map +1 -1
  261. package/dist/domains/permission/components/APermissionEditor.js.map +1 -1
  262. package/dist/domains/permission/components/APermissionEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  263. package/dist/domains/permission/components/APermissionGrantEditor.js.map +1 -1
  264. package/dist/domains/permission/components/APermissionValueChip.js.map +1 -1
  265. package/dist/domains/permission/components/APermissionValueChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  266. package/dist/domains/permission/group/components/APermissionGroupDatatable.js.map +1 -1
  267. package/dist/domains/permission/group/components/APermissionGroupDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  268. package/dist/domains/permission/group/components/APermissionGroupDetail.js.map +1 -1
  269. package/dist/domains/permission/group/components/APermissionGroupFilter.js.map +1 -1
  270. package/dist/domains/permission/group/components/APermissionGroupManage.js.map +1 -1
  271. package/dist/domains/permission/group/components/APermissionGroupManage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  272. package/dist/domains/permission/group/components/APermissionGroupRemoteAutocomplete.js.map +1 -1
  273. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.js.map +1 -1
  274. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  275. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.js.map +1 -1
  276. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.js.map +1 -1
  277. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  278. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.js.map +1 -1
  279. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  280. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.js.map +1 -1
  281. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  282. package/dist/domains/subjectSelect/components/ASubjectSelect.js.map +1 -1
  283. package/dist/domains/subjectSelect/components/ASubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  284. package/dist/domains/system/appShell/components/AActionbar.js.map +1 -1
  285. package/dist/domains/system/appShell/components/AActionbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  286. package/dist/domains/system/appShell/components/AActionbarTarget.js.map +1 -1
  287. package/dist/domains/system/appShell/components/ALayoutLoader.js.map +1 -1
  288. package/dist/domains/system/appShell/components/ALayoutSwitch.js.map +1 -1
  289. package/dist/domains/system/appShell/components/ALayoutSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  290. package/dist/domains/system/components/AAdminSwitcher.js.map +1 -1
  291. package/dist/domains/system/components/AAdminSwitcher.vue_vue_type_script_setup_true_lang.js.map +1 -1
  292. package/dist/domains/system/components/AAlerts.js.map +1 -1
  293. package/dist/domains/system/components/ALanguageSelect.js.map +1 -1
  294. package/dist/domains/system/components/AThemeSelect.js.map +1 -1
  295. package/dist/domains/system/components/AThemeSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  296. package/dist/domains/system/flags/components/FlagCountry.js.map +1 -1
  297. package/dist/domains/system/flags/components/FlagEn.js.map +1 -1
  298. package/dist/domains/system/flags/components/FlagSk.js.map +1 -1
  299. package/dist/domains/system/systemBar/components/ASystemBar.js.map +1 -1
  300. package/dist/domains/system/systemBar/components/ASystemBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  301. package/dist/domains/system/systemBar/components/ASystemBarNewVersion.js.map +1 -1
  302. package/dist/domains/system/systemBar/components/ASystemBarNewVersion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  303. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.js.map +1 -1
  304. package/dist/domains/ui/buttons/action/components/AActionCreateButton.js.map +1 -1
  305. package/dist/domains/ui/buttons/action/components/AActionCreateButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  306. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.js.map +1 -1
  307. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  308. package/dist/domains/ui/buttons/action/components/AActionEditButton.js.map +1 -1
  309. package/dist/domains/ui/buttons/action/components/AActionEditButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  310. package/dist/domains/ui/buttons/action/components/AActionSaveAndCloseButton.js.map +1 -1
  311. package/dist/domains/ui/buttons/action/components/AActionSaveAndCloseButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  312. package/dist/domains/ui/buttons/action/components/AActionSaveButton.js.map +1 -1
  313. package/dist/domains/ui/buttons/action/components/AActionSaveButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  314. package/dist/domains/ui/buttons/components/ABtnSplit.js.map +1 -1
  315. package/dist/domains/ui/buttons/components/ABtnSplit.vue_vue_type_script_setup_true_lang.js.map +1 -1
  316. package/dist/domains/ui/buttons/table/components/ATableCopyIdButton.js.map +1 -1
  317. package/dist/domains/ui/buttons/table/components/ATableCopyIdButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  318. package/dist/domains/ui/buttons/table/components/ATableDetailButton.js.map +1 -1
  319. package/dist/domains/ui/buttons/table/components/ATableDetailButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  320. package/dist/domains/ui/buttons/table/components/ATableEditButton.js.map +1 -1
  321. package/dist/domains/ui/buttons/table/components/ATableEditButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  322. package/dist/domains/ui/components/AAnzuUserAvatar.js.map +1 -1
  323. package/dist/domains/ui/components/AAnzuUserAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  324. package/dist/domains/ui/components/AAvatarColorPicker.js.map +1 -1
  325. package/dist/domains/ui/components/AAvatarColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  326. package/dist/domains/ui/components/ABooleanSelect.js.map +1 -1
  327. package/dist/domains/ui/components/ABooleanValue.js.map +1 -1
  328. package/dist/domains/ui/components/ACard.js.map +1 -1
  329. package/dist/domains/ui/components/ACardLoader.js.map +1 -1
  330. package/dist/domains/ui/components/AChipNoLink.js.map +1 -1
  331. package/dist/domains/ui/components/ACopyText.js.map +1 -1
  332. package/dist/domains/ui/components/ACopyText.vue_vue_type_script_setup_true_lang.js.map +1 -1
  333. package/dist/domains/ui/components/ACreateDialog.js.map +1 -1
  334. package/dist/domains/ui/components/ACreateDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  335. package/dist/domains/ui/components/ACurrentUserDropdown.js.map +1 -1
  336. package/dist/domains/ui/components/ACurrentUserDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -1
  337. package/dist/domains/ui/components/ADialogToolbar.js.map +1 -1
  338. package/dist/domains/ui/components/AIconGroup.js.map +1 -1
  339. package/dist/domains/ui/components/AProgress.js.map +1 -1
  340. package/dist/domains/ui/components/ARow.js.map +1 -1
  341. package/dist/domains/ui/components/ARow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  342. package/dist/domains/ui/components/ATimeTrackingFields.js.map +1 -1
  343. package/dist/domains/ui/components/ATimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  344. package/dist/domains/ui/components/AUserAndTimeTrackingFields.js.map +1 -1
  345. package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  346. package/dist/domains/ui/datetime/components/ADatetime.js.map +1 -1
  347. package/dist/domains/ui/datetime/components/ADatetimePicker.js.map +1 -1
  348. package/dist/domains/ui/datetime/components/ADatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  349. package/dist/domains/ui/datetime/components/TimePicker.js.map +1 -1
  350. package/dist/domains/ui/file/components/AFileDropzone.js.map +1 -1
  351. package/dist/domains/ui/file/components/AFileInput.js.map +1 -1
  352. package/dist/domains/ui/file/components/AFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  353. package/dist/domains/ui/file/components/AFileInputDialog.js.map +1 -1
  354. package/dist/domains/ui/file/components/AFileInputDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  355. package/dist/domains/ui/view/components/AGenericView.js.map +1 -1
  356. package/dist/domains/ui/view/components/AGenericView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  357. package/dist/domains/ui/view/components/ALoginView.js.map +1 -1
  358. package/dist/domains/ui/view/components/ALoginView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  359. package/dist/domains/ui/view/components/ALogoutView.js.map +1 -1
  360. package/dist/domains/ui/view/components/ANotFoundView.js.map +1 -1
  361. package/dist/domains/ui/view/components/AUnauthorizedView.js.map +1 -1
  362. package/dist/domains/ui/view/components/AUnauthorizedView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  363. package/dist/domains/unsavedGuard/components/AUnsavedConfirmDialog.js.map +1 -1
  364. package/dist/locales/cs/common/alert.js.map +1 -1
  365. package/dist/locales/cs/common/anzuUser.js.map +1 -1
  366. package/dist/locales/cs/common/assetSelect.js.map +1 -1
  367. package/dist/locales/cs/common/button.js.map +1 -1
  368. package/dist/locales/cs/common/collab.js.map +1 -1
  369. package/dist/locales/cs/common/confirmDialog.js.map +1 -1
  370. package/dist/locales/cs/common/customForm.js.map +1 -1
  371. package/dist/locales/cs/common/customFormElement.js.map +1 -1
  372. package/dist/locales/cs/common/damImage.js.map +1 -1
  373. package/dist/locales/cs/common/dayOfWeek.js.map +1 -1
  374. package/dist/locales/cs/common/filter.js.map +1 -1
  375. package/dist/locales/cs/common/job.js.map +1 -1
  376. package/dist/locales/cs/common/linkDto.js.map +1 -1
  377. package/dist/locales/cs/common/listItemDto.js.map +1 -1
  378. package/dist/locales/cs/common/log.js.map +1 -1
  379. package/dist/locales/cs/common/model.js.map +1 -1
  380. package/dist/locales/cs/common/permission.js.map +1 -1
  381. package/dist/locales/cs/common/permissionEditor.js.map +1 -1
  382. package/dist/locales/cs/common/permissionGroup.js.map +1 -1
  383. package/dist/locales/cs/common/routeSettings.js.map +1 -1
  384. package/dist/locales/cs/common/sortable.js.map +1 -1
  385. package/dist/locales/cs/common/subjectSelect.js.map +1 -1
  386. package/dist/locales/cs/common/system.js.map +1 -1
  387. package/dist/locales/cs/common/time.js.map +1 -1
  388. package/dist/locales/cs/common/userSystem.js.map +1 -1
  389. package/dist/locales/cs/error/apiDependencyExists.js.map +1 -1
  390. package/dist/locales/cs/error/apiForbiddenOperation.js.map +1 -1
  391. package/dist/locales/cs/error/apiTimedOut.js.map +1 -1
  392. package/dist/locales/cs/error/apiValidation.js.map +1 -1
  393. package/dist/locales/cs/error/jsValidation.js.map +1 -1
  394. package/dist/locales/cs/vuetify.js.map +1 -1
  395. package/dist/locales/en/common/alert.js.map +1 -1
  396. package/dist/locales/en/common/anzuUser.js.map +1 -1
  397. package/dist/locales/en/common/assetSelect.js.map +1 -1
  398. package/dist/locales/en/common/button.js.map +1 -1
  399. package/dist/locales/en/common/collab.js.map +1 -1
  400. package/dist/locales/en/common/confirmDialog.js.map +1 -1
  401. package/dist/locales/en/common/customForm.js.map +1 -1
  402. package/dist/locales/en/common/customFormElement.js.map +1 -1
  403. package/dist/locales/en/common/damImage.js.map +1 -1
  404. package/dist/locales/en/common/dayOfWeek.js.map +1 -1
  405. package/dist/locales/en/common/filter.js.map +1 -1
  406. package/dist/locales/en/common/job.js.map +1 -1
  407. package/dist/locales/en/common/linkDto.js.map +1 -1
  408. package/dist/locales/en/common/listItemDto.js.map +1 -1
  409. package/dist/locales/en/common/log.js.map +1 -1
  410. package/dist/locales/en/common/model.js.map +1 -1
  411. package/dist/locales/en/common/permission.js.map +1 -1
  412. package/dist/locales/en/common/permissionEditor.js.map +1 -1
  413. package/dist/locales/en/common/permissionGroup.js.map +1 -1
  414. package/dist/locales/en/common/routeSettings.js.map +1 -1
  415. package/dist/locales/en/common/sortable.js.map +1 -1
  416. package/dist/locales/en/common/subjectSelect.js.map +1 -1
  417. package/dist/locales/en/common/system.js.map +1 -1
  418. package/dist/locales/en/common/time.js.map +1 -1
  419. package/dist/locales/en/common/userSystem.js.map +1 -1
  420. package/dist/locales/en/error/apiDependencyExists.js.map +1 -1
  421. package/dist/locales/en/error/apiForbiddenOperation.js.map +1 -1
  422. package/dist/locales/en/error/apiTimedOut.js.map +1 -1
  423. package/dist/locales/en/error/apiValidation.js.map +1 -1
  424. package/dist/locales/en/error/jsValidation.js.map +1 -1
  425. package/dist/locales/en/vuetify.js.map +1 -1
  426. package/dist/locales/sk/common/alert.js.map +1 -1
  427. package/dist/locales/sk/common/anzuUser.js.map +1 -1
  428. package/dist/locales/sk/common/assetSelect.js.map +1 -1
  429. package/dist/locales/sk/common/button.js.map +1 -1
  430. package/dist/locales/sk/common/collab.js.map +1 -1
  431. package/dist/locales/sk/common/confirmDialog.js.map +1 -1
  432. package/dist/locales/sk/common/customForm.js.map +1 -1
  433. package/dist/locales/sk/common/customFormElement.js.map +1 -1
  434. package/dist/locales/sk/common/damImage.js.map +1 -1
  435. package/dist/locales/sk/common/dayOfWeek.js.map +1 -1
  436. package/dist/locales/sk/common/filter.js.map +1 -1
  437. package/dist/locales/sk/common/job.js.map +1 -1
  438. package/dist/locales/sk/common/linkDto.js.map +1 -1
  439. package/dist/locales/sk/common/listItemDto.js.map +1 -1
  440. package/dist/locales/sk/common/log.js.map +1 -1
  441. package/dist/locales/sk/common/model.js.map +1 -1
  442. package/dist/locales/sk/common/permission.js.map +1 -1
  443. package/dist/locales/sk/common/permissionEditor.js.map +1 -1
  444. package/dist/locales/sk/common/permissionGroup.js.map +1 -1
  445. package/dist/locales/sk/common/routeSettings.js.map +1 -1
  446. package/dist/locales/sk/common/sortable.js.map +1 -1
  447. package/dist/locales/sk/common/subjectSelect.js.map +1 -1
  448. package/dist/locales/sk/common/system.js.map +1 -1
  449. package/dist/locales/sk/common/time.js.map +1 -1
  450. package/dist/locales/sk/common/userSystem.js.map +1 -1
  451. package/dist/locales/sk/error/apiDependencyExists.js.map +1 -1
  452. package/dist/locales/sk/error/apiForbiddenOperation.js.map +1 -1
  453. package/dist/locales/sk/error/apiTimedOut.js.map +1 -1
  454. package/dist/locales/sk/error/apiValidation.js.map +1 -1
  455. package/dist/locales/sk/error/jsValidation.js.map +1 -1
  456. package/dist/locales/sk/vuetify.js.map +1 -1
  457. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"AssetImage.vue_vue_type_script_setup_true_lang.js","names":["placeholder16x9","_openBlock","_createBlock","_component_VImg","_withCtx","_createElementBlock","_createVNode","_component_VProgressCircular","_createElementVNode","_toDisplayString","_unref","_createCommentVNode","_createTextVNode","_normalizeStyle","_component_VIcon","AssetImageMetaIcons","placeholder16x9_default","AssetImageMetaIcons_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","AssetImage_vue_vue_type_script_setup_true_lang_default","DamAssetType","DamAssetStatus","__emit","props","__props","emit","useI18n","onLoad","onError","icon","computed","uploadingPercentage","value","backgroundColorComputed","iconColor","srcComputed","isUndefined","showIconComputed","useRemainingTime","openBlock","createBlock","VImg","withCtx","_cache","createElementBlock","createVNode","VProgressCircular","createElementVNode","toDisplayString","unref","t","createCommentVNode","createTextVNode","remainingTimeShort","normalizeStyle","VIcon"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImage.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport placeholder16x9 from '@/assets/image/placeholder16x9.svg'\nimport {\n type AssetFileProperties,\n DamAssetStatus,\n type DamAssetStatusType,\n DamAssetType,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n src?: string\n assetType?: DamAssetTypeType\n assetStatus?: DamAssetStatusType\n backgroundColor?: string\n width?: number\n height?: number\n fallbackHeight?: number\n iconSize?: number\n useComponent?: boolean\n cover?: boolean\n aspectRatio?: number\n showUploading?: boolean\n showProcessing?: boolean\n showWaiting?: boolean\n showDone?: boolean\n uploadingColor?: string\n processingColor?: string\n disableProcessingText?: boolean\n uploadingProgress?: number | null\n remainingTime?: number | null\n hideIcon?: boolean\n showMetaIcons?: boolean\n assetFileProperties?: AssetFileProperties | undefined\n /** Passed to the meta icons: shows the synthesized audio (TTS) icon. */\n showTts?: boolean\n /** Passed to the meta icons: shows the badge of the automatic deletion. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Passed to the meta icons: the badge of the asset's licence. */\n licenceBadge?: string\n }>(),\n {\n assetType: DamAssetType.Image,\n assetStatus: DamAssetStatus.WithFile,\n src: undefined,\n backgroundColor: '#ccc',\n width: undefined,\n height: undefined,\n fallbackHeight: 200,\n iconSize: 80,\n useComponent: false,\n cover: false,\n aspectRatio: undefined,\n showUploading: false,\n showProcessing: false,\n showWaiting: false,\n showDone: false,\n uploadingColor: 'primary',\n processingColor: 'primary',\n disableProcessingText: false,\n uploadingProgress: null,\n remainingTime: null,\n hideIcon: false,\n showMetaIcons: false,\n assetFileProperties: undefined,\n showTts: false,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\nconst emit = defineEmits<{\n (e: 'load'): void\n (e: 'error'): void\n}>()\n\nconst { t } = useI18n()\n\nconst onLoad = () => {\n emit('load')\n}\nconst onError = () => {\n emit('error')\n}\n\nconst icon = computed(() => {\n if (props.assetStatus === DamAssetStatus.Deleting) return 'mdi-trash-can'\n switch (props.assetType) {\n case DamAssetType.Audio:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-music' : 'mdi-music-off'\n case DamAssetType.Document:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-note' : 'mdi-note-off'\n case DamAssetType.Video:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-video' : 'mdi-video-off'\n case DamAssetType.Image:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-image' : 'mdi-image-off'\n default:\n return ''\n }\n})\n\nconst uploadingPercentage = computed(() => {\n if (!props.uploadingProgress) return '0%'\n const value = Math.ceil(props.uploadingProgress)\n return value > 100 ? '100%' : value + '%'\n})\n\nconst backgroundColorComputed = computed(() => {\n const grayBackgroundStatuses: readonly DamAssetStatusType[] = [DamAssetStatus.Deleting, DamAssetStatus.Draft]\n return grayBackgroundStatuses.includes(props.assetStatus) ? '#ccc' : props.backgroundColor\n})\n\nconst iconColor = computed(() => {\n return props.assetStatus === DamAssetStatus.WithFile ? '#505050' : '#8f8f8f'\n})\n\nconst srcComputed = computed(() => {\n return isUndefined(props.src) ? placeholder16x9 : props.src\n})\n\nconst showIconComputed = computed(() => {\n if (props.hideIcon) return false\n else if (props.assetType === DamAssetType.Image && props.src) return false\n return true\n})\n\nconst { remainingTimeShort } = useRemainingTime()\n</script>\n\n<template>\n <VImg\n v-if=\"showUploading || showProcessing || showWaiting\"\n :aspect-ratio=\"aspectRatio\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n :cover=\"cover\"\n class=\"asset-image asset-image--loading-bg\"\n @error=\"onError\"\n @load=\"onLoad\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showWaiting\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.waiting') }}\n </div>\n </div>\n <div\n v-if=\"showProcessing\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"processingColor\"\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n />\n <div\n v-if=\"!disableProcessingText\"\n class=\"text-body-small text-center\"\n >\n {{ t('common.damImage.upload.processing') }}\n </div>\n </div>\n <div\n v-else-if=\"showUploading\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"uploadingColor\"\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n :model-value=\"uploadingProgress === null ? undefined : uploadingProgress\"\n >\n {{ uploadingPercentage }}\n </VProgressCircular>\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.uploading') }}\n <span\n v-if=\"remainingTime\"\n class=\"font-weight-bold\"\n >\n {{ remainingTimeShort(remainingTime) }}\n </span>\n </div>\n </div>\n </template>\n </VImg>\n <VImg\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src && useComponent\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n class=\"asset-image asset-image--component position-relative\"\n :cover=\"cover\"\n :aspect-ratio=\"aspectRatio\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </template>\n </VImg>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src\"\n class=\"asset-image asset-image--img position-relative\"\n >\n <img\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n alt=\"\"\n :style=\"'background-color:' + backgroundColorComputed\"\n @onerror=\"onError\"\n />\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n <div\n v-else\n :style=\"{\n height: fallbackHeight + 'px',\n backgroundColor: backgroundColorComputed,\n width: width + 'px',\n }\"\n class=\"asset-image asset-image--placeholder d-flex align-center justify-center\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AssetImage.vue_vue_type_script_setup_true_lang.js","names":["placeholder16x9","_openBlock","_createBlock","_component_VImg","_withCtx","_createElementBlock","_createVNode","_component_VProgressCircular","_createElementVNode","_toDisplayString","_unref","_createTextVNode","_normalizeStyle","_component_VIcon","AssetImageMetaIcons","placeholder16x9_default","AssetImageMetaIcons_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","AssetImage_vue_vue_type_script_setup_true_lang_default","DamAssetType","DamAssetStatus","__emit","props","__props","emit","useI18n","onLoad","onError","icon","computed","uploadingPercentage","value","backgroundColorComputed","iconColor","srcComputed","isUndefined","showIconComputed","useRemainingTime","openBlock","createBlock","VImg","withCtx","_cache","createElementBlock","createVNode","VProgressCircular","createElementVNode","toDisplayString","unref","t","createCommentVNode","createTextVNode","remainingTimeShort","normalizeStyle","VIcon"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImage.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport placeholder16x9 from '@/assets/image/placeholder16x9.svg'\nimport {\n type AssetFileProperties,\n DamAssetStatus,\n type DamAssetStatusType,\n DamAssetType,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n src?: string\n assetType?: DamAssetTypeType\n assetStatus?: DamAssetStatusType\n backgroundColor?: string\n width?: number\n height?: number\n fallbackHeight?: number\n iconSize?: number\n useComponent?: boolean\n cover?: boolean\n aspectRatio?: number\n showUploading?: boolean\n showProcessing?: boolean\n showWaiting?: boolean\n showDone?: boolean\n uploadingColor?: string\n processingColor?: string\n disableProcessingText?: boolean\n uploadingProgress?: number | null\n remainingTime?: number | null\n hideIcon?: boolean\n showMetaIcons?: boolean\n assetFileProperties?: AssetFileProperties | undefined\n /** Passed to the meta icons: shows the synthesized audio (TTS) icon. */\n showTts?: boolean\n /** Passed to the meta icons: shows the badge of the automatic deletion. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Passed to the meta icons: the badge of the asset's licence. */\n licenceBadge?: string\n }>(),\n {\n assetType: DamAssetType.Image,\n assetStatus: DamAssetStatus.WithFile,\n src: undefined,\n backgroundColor: '#ccc',\n width: undefined,\n height: undefined,\n fallbackHeight: 200,\n iconSize: 80,\n useComponent: false,\n cover: false,\n aspectRatio: undefined,\n showUploading: false,\n showProcessing: false,\n showWaiting: false,\n showDone: false,\n uploadingColor: 'primary',\n processingColor: 'primary',\n disableProcessingText: false,\n uploadingProgress: null,\n remainingTime: null,\n hideIcon: false,\n showMetaIcons: false,\n assetFileProperties: undefined,\n showTts: false,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\nconst emit = defineEmits<{\n (e: 'load'): void\n (e: 'error'): void\n}>()\n\nconst { t } = useI18n()\n\nconst onLoad = () => {\n emit('load')\n}\nconst onError = () => {\n emit('error')\n}\n\nconst icon = computed(() => {\n if (props.assetStatus === DamAssetStatus.Deleting) return 'mdi-trash-can'\n switch (props.assetType) {\n case DamAssetType.Audio:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-music' : 'mdi-music-off'\n case DamAssetType.Document:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-note' : 'mdi-note-off'\n case DamAssetType.Video:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-video' : 'mdi-video-off'\n case DamAssetType.Image:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-image' : 'mdi-image-off'\n default:\n return ''\n }\n})\n\nconst uploadingPercentage = computed(() => {\n if (!props.uploadingProgress) return '0%'\n const value = Math.ceil(props.uploadingProgress)\n return value > 100 ? '100%' : value + '%'\n})\n\nconst backgroundColorComputed = computed(() => {\n const grayBackgroundStatuses: readonly DamAssetStatusType[] = [DamAssetStatus.Deleting, DamAssetStatus.Draft]\n return grayBackgroundStatuses.includes(props.assetStatus) ? '#ccc' : props.backgroundColor\n})\n\nconst iconColor = computed(() => {\n return props.assetStatus === DamAssetStatus.WithFile ? '#505050' : '#8f8f8f'\n})\n\nconst srcComputed = computed(() => {\n return isUndefined(props.src) ? placeholder16x9 : props.src\n})\n\nconst showIconComputed = computed(() => {\n if (props.hideIcon) return false\n else if (props.assetType === DamAssetType.Image && props.src) return false\n return true\n})\n\nconst { remainingTimeShort } = useRemainingTime()\n</script>\n\n<template>\n <VImg\n v-if=\"showUploading || showProcessing || showWaiting\"\n :aspect-ratio=\"aspectRatio\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n :cover=\"cover\"\n class=\"asset-image asset-image--loading-bg\"\n @error=\"onError\"\n @load=\"onLoad\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showWaiting\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.waiting') }}\n </div>\n </div>\n <div\n v-if=\"showProcessing\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"processingColor\"\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n />\n <div\n v-if=\"!disableProcessingText\"\n class=\"text-body-small text-center\"\n >\n {{ t('common.damImage.upload.processing') }}\n </div>\n </div>\n <div\n v-else-if=\"showUploading\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"uploadingColor\"\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n :model-value=\"uploadingProgress === null ? undefined : uploadingProgress\"\n >\n {{ uploadingPercentage }}\n </VProgressCircular>\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.uploading') }}\n <span\n v-if=\"remainingTime\"\n class=\"font-weight-bold\"\n >\n {{ remainingTimeShort(remainingTime) }}\n </span>\n </div>\n </div>\n </template>\n </VImg>\n <VImg\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src && useComponent\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n class=\"asset-image asset-image--component position-relative\"\n :cover=\"cover\"\n :aspect-ratio=\"aspectRatio\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </template>\n </VImg>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src\"\n class=\"asset-image asset-image--img position-relative\"\n >\n <img\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n alt=\"\"\n :style=\"'background-color:' + backgroundColorComputed\"\n @onerror=\"onError\"\n />\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n <div\n v-else\n :style=\"{\n height: fallbackHeight + 'px',\n backgroundColor: backgroundColorComputed,\n width: width + 'px',\n }\"\n class=\"asset-image asset-image--placeholder d-flex align-center justify-center\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetImageMetaIcons.js","names":["_sfc_main","AssetImageMetaIcons_vue_vue_type_script_setup_true_lang_default","AssetImageMetaIcons_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImageMetaIcons.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetFileProperties, DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport {\n DIMENSIONS_CONFIG,\n ICON_LOW,\n ICON_RSS,\n ICON_SLOTS,\n ICON_TTS,\n LOW_DIMENSION,\n} from '@/domains/dam/assetDetail/utils/assetImageIconsConfig'\nimport { useDamConfigStoreOf } from '@/domains/dam/config/store/damConfigStore'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport { useAutoDeleteTimeLeft } from '@/domains/dam/assetDetail/composables/autoDeleteTimeLeft'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { dateTimeFriendly } from '@/shared/utils/datetime'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n assetFileProperties: AssetFileProperties\n disableAbsolute?: boolean\n /** Shows the synthesized audio (TTS) icon. Off by default because the backend reports it to every admin. */\n showTts?: boolean\n /** DAM configuration whose distribution services name the icons. Inherited when not given. */\n configName?: string\n /** When DAM deletes the asset: a badge shows the time left. Only admin-dam passes it, the other admins show none. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Badge of the asset's licence, shown as given. Empty shows none. */\n licenceBadge?: string\n }>(),\n {\n disableAbsolute: false,\n showTts: false,\n configName: undefined,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigStore = useDamConfigStoreOf(useDamConfigName(props.configName))\n\nconst { t } = useI18n()\nconst { remainingTimeShort } = useRemainingTime()\n\nconst { secondsLeft } = useAutoDeleteTimeLeft(() => props.autoDeleteAt)\n\nconst autoDeleteBadge = computed(() => {\n if (!props.autoDeleteAt || secondsLeft.value === null) return null\n return {\n text: remainingTimeShort(secondsLeft.value),\n title: t('common.damImage.asset.metaIcons.autoDeleteAt', { date: dateTimeFriendly(props.autoDeleteAt) }),\n }\n})\n\nconst checkDimensions = (icons: string[], titles: string[]) => {\n if (props.assetFileProperties.width === 0 || props.assetFileProperties.height === 0) {\n return\n }\n if (props.assetFileProperties.width < LOW_DIMENSION || props.assetFileProperties.height < LOW_DIMENSION) {\n icons.push(ICON_LOW)\n titles.push(t('common.damImage.asset.metaIcons.low'))\n return\n }\n if (props.assetType !== DamAssetType.Video) return\n for (const dimension of DIMENSIONS_CONFIG) {\n if (props.assetFileProperties.width === dimension.width && props.assetFileProperties.height === dimension.height) {\n icons.push(dimension.svgSrc)\n titles.push(t(dimension.titleT))\n break\n }\n }\n}\n\nconst checkDistributions = (icons: string[], titles: string[]) => {\n for (const serviceName of props.assetFileProperties.distributesInServices) {\n const service = damConfigStore.damPrvConfig.distributionServices[serviceName]\n const iconPath = service?.iconPath\n if (service && iconPath && iconPath.length > 0 && !icons.includes(iconPath)) {\n icons.push(iconPath)\n titles.push(service.title)\n }\n }\n}\n\nconst data = computed(() => {\n const icons: string[] = []\n const titles: string[] = []\n\n if (props.assetFileProperties.slotNames.length > 1) {\n icons.push(ICON_SLOTS)\n titles.push(t('common.damImage.asset.metaIcons.slots'))\n }\n if (props.assetFileProperties.fromRss) {\n icons.push(ICON_RSS)\n titles.push(t('common.damImage.asset.metaIcons.rss'))\n }\n if (props.showTts && props.assetFileProperties.ttsAudio) {\n icons.push(ICON_TTS)\n titles.push(t('common.damImage.asset.metaIcons.tts'))\n }\n checkDimensions(icons, titles)\n checkDistributions(icons, titles)\n\n return { icons, titles }\n})\n</script>\n\n<template>\n <div\n v-show=\"data.icons.length > 0 || autoDeleteBadge || licenceBadge\"\n class=\"asset-image__meta-icons\"\n :class=\"{ 'asset-image__meta-icons-absolute': !disableAbsolute }\"\n >\n <span\n v-if=\"licenceBadge\"\n class=\"asset-image__licence-badge\"\n data-cy=\"asset-licence-badge\"\n >\n {{ licenceBadge }}\n </span>\n <VChip\n v-if=\"autoDeleteBadge\"\n size=\"x-small\"\n variant=\"flat\"\n color=\"warning\"\n class=\"ma-1 align-self-center\"\n :title=\"autoDeleteBadge.title\"\n data-cy=\"asset-auto-delete-badge\"\n >\n {{ autoDeleteBadge.text }}\n </VChip>\n <img\n v-for=\"(item, index) in data.icons\"\n :key=\"item\"\n class=\"img-svg\"\n :src=\"item\"\n alt=\"\"\n :title=\"data.titles[index] || ''\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.asset-image__meta-icons-absolute {\n position: absolute;\n left: 6px;\n top: 163px;\n}\n\n.asset-image__meta-icons {\n display: flex;\n\n img.img-svg {\n height: 30px;\n padding: 2px;\n }\n\n // As the SVG meta icons: a half-transparent black circle with white bold letters.\n .asset-image__licence-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n margin: 2px;\n border-radius: 50%;\n background-color: rgb(0 0 0 / 50%);\n color: #fff;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"AssetImageMetaIcons.js","names":["AssetImageMetaIcons_vue_vue_type_script_setup_true_lang_default","AssetImageMetaIcons_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js","names":["_withDirectives","_openBlock","_createElementBlock","_normalizeClass","_toDisplayString","_createCommentVNode","_createBlock","_component_VChip","_withCtx","_createTextVNode","_Fragment","_renderList","_vShow","_hoisted_1","_hoisted_2","AssetImageMetaIcons_vue_vue_type_script_setup_true_lang_default","props","__props","damConfigStore","useDamConfigStoreOf","useDamConfigName","useI18n","useRemainingTime","useAutoDeleteTimeLeft","autoDeleteBadge","computed","secondsLeft","remainingTimeShort","t","dateTimeFriendly","checkDimensions","icons","ICON_LOW","titles","DamAssetType","dimension","DIMENSIONS_CONFIG","checkDistributions","serviceName","service","iconPath","data","ICON_SLOTS","ICON_RSS","ICON_TTS","withDirectives","openBlock","createElementBlock","normalizeClass","toDisplayString","createCommentVNode","createBlock","VChip","withCtx","createTextVNode","Fragment","renderList","item","index","vShow"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImageMetaIcons.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetFileProperties, DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport {\n DIMENSIONS_CONFIG,\n ICON_LOW,\n ICON_RSS,\n ICON_SLOTS,\n ICON_TTS,\n LOW_DIMENSION,\n} from '@/domains/dam/assetDetail/utils/assetImageIconsConfig'\nimport { useDamConfigStoreOf } from '@/domains/dam/config/store/damConfigStore'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport { useAutoDeleteTimeLeft } from '@/domains/dam/assetDetail/composables/autoDeleteTimeLeft'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { dateTimeFriendly } from '@/shared/utils/datetime'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n assetFileProperties: AssetFileProperties\n disableAbsolute?: boolean\n /** Shows the synthesized audio (TTS) icon. Off by default because the backend reports it to every admin. */\n showTts?: boolean\n /** DAM configuration whose distribution services name the icons. Inherited when not given. */\n configName?: string\n /** When DAM deletes the asset: a badge shows the time left. Only admin-dam passes it, the other admins show none. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Badge of the asset's licence, shown as given. Empty shows none. */\n licenceBadge?: string\n }>(),\n {\n disableAbsolute: false,\n showTts: false,\n configName: undefined,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigStore = useDamConfigStoreOf(useDamConfigName(props.configName))\n\nconst { t } = useI18n()\nconst { remainingTimeShort } = useRemainingTime()\n\nconst { secondsLeft } = useAutoDeleteTimeLeft(() => props.autoDeleteAt)\n\nconst autoDeleteBadge = computed(() => {\n if (!props.autoDeleteAt || secondsLeft.value === null) return null\n return {\n text: remainingTimeShort(secondsLeft.value),\n title: t('common.damImage.asset.metaIcons.autoDeleteAt', { date: dateTimeFriendly(props.autoDeleteAt) }),\n }\n})\n\nconst checkDimensions = (icons: string[], titles: string[]) => {\n if (props.assetFileProperties.width === 0 || props.assetFileProperties.height === 0) {\n return\n }\n if (props.assetFileProperties.width < LOW_DIMENSION || props.assetFileProperties.height < LOW_DIMENSION) {\n icons.push(ICON_LOW)\n titles.push(t('common.damImage.asset.metaIcons.low'))\n return\n }\n if (props.assetType !== DamAssetType.Video) return\n for (const dimension of DIMENSIONS_CONFIG) {\n if (props.assetFileProperties.width === dimension.width && props.assetFileProperties.height === dimension.height) {\n icons.push(dimension.svgSrc)\n titles.push(t(dimension.titleT))\n break\n }\n }\n}\n\nconst checkDistributions = (icons: string[], titles: string[]) => {\n for (const serviceName of props.assetFileProperties.distributesInServices) {\n const service = damConfigStore.damPrvConfig.distributionServices[serviceName]\n const iconPath = service?.iconPath\n if (service && iconPath && iconPath.length > 0 && !icons.includes(iconPath)) {\n icons.push(iconPath)\n titles.push(service.title)\n }\n }\n}\n\nconst data = computed(() => {\n const icons: string[] = []\n const titles: string[] = []\n\n if (props.assetFileProperties.slotNames.length > 1) {\n icons.push(ICON_SLOTS)\n titles.push(t('common.damImage.asset.metaIcons.slots'))\n }\n if (props.assetFileProperties.fromRss) {\n icons.push(ICON_RSS)\n titles.push(t('common.damImage.asset.metaIcons.rss'))\n }\n if (props.showTts && props.assetFileProperties.ttsAudio) {\n icons.push(ICON_TTS)\n titles.push(t('common.damImage.asset.metaIcons.tts'))\n }\n checkDimensions(icons, titles)\n checkDistributions(icons, titles)\n\n return { icons, titles }\n})\n</script>\n\n<template>\n <div\n v-show=\"data.icons.length > 0 || autoDeleteBadge || licenceBadge\"\n class=\"asset-image__meta-icons\"\n :class=\"{ 'asset-image__meta-icons-absolute': !disableAbsolute }\"\n >\n <span\n v-if=\"licenceBadge\"\n class=\"asset-image__licence-badge\"\n data-cy=\"asset-licence-badge\"\n >\n {{ licenceBadge }}\n </span>\n <VChip\n v-if=\"autoDeleteBadge\"\n size=\"x-small\"\n variant=\"flat\"\n color=\"warning\"\n class=\"ma-1 align-self-center\"\n :title=\"autoDeleteBadge.title\"\n data-cy=\"asset-auto-delete-badge\"\n >\n {{ autoDeleteBadge.text }}\n </VChip>\n <img\n v-for=\"(item, index) in data.icons\"\n :key=\"item\"\n class=\"img-svg\"\n :src=\"item\"\n alt=\"\"\n :title=\"data.titles[index] || ''\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.asset-image__meta-icons-absolute {\n position: absolute;\n left: 6px;\n top: 163px;\n}\n\n.asset-image__meta-icons {\n display: flex;\n\n img.img-svg {\n height: 30px;\n padding: 2px;\n }\n\n // As the SVG meta icons: a half-transparent black circle with white bold letters.\n .asset-image__licence-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n margin: 2px;\n border-radius: 50%;\n background-color: rgb(0 0 0 / 50%);\n color: #fff;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n }\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js","names":["_withDirectives","_openBlock","_createElementBlock","_normalizeClass","_toDisplayString","_createBlock","_component_VChip","_withCtx","_createTextVNode","_Fragment","_renderList","_vShow","_hoisted_1","_hoisted_2","AssetImageMetaIcons_vue_vue_type_script_setup_true_lang_default","props","__props","damConfigStore","useDamConfigStoreOf","useDamConfigName","useI18n","useRemainingTime","useAutoDeleteTimeLeft","autoDeleteBadge","computed","secondsLeft","remainingTimeShort","t","dateTimeFriendly","checkDimensions","icons","ICON_LOW","titles","DamAssetType","dimension","DIMENSIONS_CONFIG","checkDistributions","serviceName","service","iconPath","data","ICON_SLOTS","ICON_RSS","ICON_TTS","withDirectives","openBlock","createElementBlock","normalizeClass","toDisplayString","createCommentVNode","createBlock","VChip","withCtx","createTextVNode","Fragment","renderList","item","index","vShow"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImageMetaIcons.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetFileProperties, DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport {\n DIMENSIONS_CONFIG,\n ICON_LOW,\n ICON_RSS,\n ICON_SLOTS,\n ICON_TTS,\n LOW_DIMENSION,\n} from '@/domains/dam/assetDetail/utils/assetImageIconsConfig'\nimport { useDamConfigStoreOf } from '@/domains/dam/config/store/damConfigStore'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport { useAutoDeleteTimeLeft } from '@/domains/dam/assetDetail/composables/autoDeleteTimeLeft'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { dateTimeFriendly } from '@/shared/utils/datetime'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n assetFileProperties: AssetFileProperties\n disableAbsolute?: boolean\n /** Shows the synthesized audio (TTS) icon. Off by default because the backend reports it to every admin. */\n showTts?: boolean\n /** DAM configuration whose distribution services name the icons. Inherited when not given. */\n configName?: string\n /** When DAM deletes the asset: a badge shows the time left. Only admin-dam passes it, the other admins show none. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Badge of the asset's licence, shown as given. Empty shows none. */\n licenceBadge?: string\n }>(),\n {\n disableAbsolute: false,\n showTts: false,\n configName: undefined,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigStore = useDamConfigStoreOf(useDamConfigName(props.configName))\n\nconst { t } = useI18n()\nconst { remainingTimeShort } = useRemainingTime()\n\nconst { secondsLeft } = useAutoDeleteTimeLeft(() => props.autoDeleteAt)\n\nconst autoDeleteBadge = computed(() => {\n if (!props.autoDeleteAt || secondsLeft.value === null) return null\n return {\n text: remainingTimeShort(secondsLeft.value),\n title: t('common.damImage.asset.metaIcons.autoDeleteAt', { date: dateTimeFriendly(props.autoDeleteAt) }),\n }\n})\n\nconst checkDimensions = (icons: string[], titles: string[]) => {\n if (props.assetFileProperties.width === 0 || props.assetFileProperties.height === 0) {\n return\n }\n if (props.assetFileProperties.width < LOW_DIMENSION || props.assetFileProperties.height < LOW_DIMENSION) {\n icons.push(ICON_LOW)\n titles.push(t('common.damImage.asset.metaIcons.low'))\n return\n }\n if (props.assetType !== DamAssetType.Video) return\n for (const dimension of DIMENSIONS_CONFIG) {\n if (props.assetFileProperties.width === dimension.width && props.assetFileProperties.height === dimension.height) {\n icons.push(dimension.svgSrc)\n titles.push(t(dimension.titleT))\n break\n }\n }\n}\n\nconst checkDistributions = (icons: string[], titles: string[]) => {\n for (const serviceName of props.assetFileProperties.distributesInServices) {\n const service = damConfigStore.damPrvConfig.distributionServices[serviceName]\n const iconPath = service?.iconPath\n if (service && iconPath && iconPath.length > 0 && !icons.includes(iconPath)) {\n icons.push(iconPath)\n titles.push(service.title)\n }\n }\n}\n\nconst data = computed(() => {\n const icons: string[] = []\n const titles: string[] = []\n\n if (props.assetFileProperties.slotNames.length > 1) {\n icons.push(ICON_SLOTS)\n titles.push(t('common.damImage.asset.metaIcons.slots'))\n }\n if (props.assetFileProperties.fromRss) {\n icons.push(ICON_RSS)\n titles.push(t('common.damImage.asset.metaIcons.rss'))\n }\n if (props.showTts && props.assetFileProperties.ttsAudio) {\n icons.push(ICON_TTS)\n titles.push(t('common.damImage.asset.metaIcons.tts'))\n }\n checkDimensions(icons, titles)\n checkDistributions(icons, titles)\n\n return { icons, titles }\n})\n</script>\n\n<template>\n <div\n v-show=\"data.icons.length > 0 || autoDeleteBadge || licenceBadge\"\n class=\"asset-image__meta-icons\"\n :class=\"{ 'asset-image__meta-icons-absolute': !disableAbsolute }\"\n >\n <span\n v-if=\"licenceBadge\"\n class=\"asset-image__licence-badge\"\n data-cy=\"asset-licence-badge\"\n >\n {{ licenceBadge }}\n </span>\n <VChip\n v-if=\"autoDeleteBadge\"\n size=\"x-small\"\n variant=\"flat\"\n color=\"warning\"\n class=\"ma-1 align-self-center\"\n :title=\"autoDeleteBadge.title\"\n data-cy=\"asset-auto-delete-badge\"\n >\n {{ autoDeleteBadge.text }}\n </VChip>\n <img\n v-for=\"(item, index) in data.icons\"\n :key=\"item\"\n class=\"img-svg\"\n :src=\"item\"\n alt=\"\"\n :title=\"data.titles[index] || ''\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.asset-image__meta-icons-absolute {\n position: absolute;\n left: 6px;\n top: 163px;\n}\n\n.asset-image__meta-icons {\n display: flex;\n\n img.img-svg {\n height: 30px;\n padding: 2px;\n }\n\n // As the SVG meta icons: a half-transparent black circle with white bold letters.\n .asset-image__licence-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n margin: 2px;\n border-radius: 50%;\n background-color: rgb(0 0 0 / 50%);\n color: #fff;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetInfobox.js","names":["_sfc_main","AssetInfobox_vue_vue_type_script_setup_true_lang_default","AssetInfobox_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetInfobox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport {\n AssetFileFailReason,\n type AssetFileFailReasonType,\n AssetFileProcessStatus,\n type AssetFileProcessStatusType,\n} from '@/domains/dam/types/AssetFile'\nimport { DamAssetStatus, type DamAssetStatusType } from '@/domains/dam/types/Asset'\nimport AssetFileFailReasonChip from '@/domains/dam/assetDetail/components/AssetFileFailReasonChip.vue'\n\nwithDefaults(\n defineProps<{\n assetStatus: DamAssetStatusType\n assetMainFileStatus?: AssetFileProcessStatusType | undefined\n assetMainFileFailReason?: AssetFileFailReasonType | undefined\n }>(),\n {\n assetMainFileStatus: undefined,\n assetMainFileFailReason: undefined,\n }\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div\n v-if=\"assetMainFileStatus && assetMainFileStatus === AssetFileProcessStatus.Duplicate\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"warning\">\n {{ t('common.damImage.asset.detail.info.status.duplicate') }}\n </VAlert>\n </div>\n <div\n v-if=\"assetMainFileStatus && assetMainFileStatus === AssetFileProcessStatus.Failed\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"error\">\n {{ t('common.damImage.asset.detail.info.status.failed') }}\n <!-- Like the queue row: no chip for the `None` reason. -->\n <div v-if=\"assetMainFileFailReason && assetMainFileFailReason !== AssetFileFailReason.None\">\n <br />\n <AssetFileFailReasonChip :reason=\"assetMainFileFailReason\" />\n </div>\n </VAlert>\n </div>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.Deleting\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"error\">\n {{ t('common.damImage.asset.detail.info.status.deleting') }}\n </VAlert>\n </div>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.Draft\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"warning\">\n {{ t('common.damImage.asset.detail.info.status.draft') }}\n </VAlert>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AssetInfobox.js","names":["AssetInfobox_vue_vue_type_script_setup_true_lang_default","AssetInfobox_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetInfobox.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_unref","_createVNode","_component_VAlert","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_createElementVNode","AssetFileFailReasonChip","AssetFileFailReasonChip_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","AssetInfobox_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","Fragment","__props","unref","AssetFileProcessStatus","createVNode","VAlert","withCtx","createTextVNode","toDisplayString","t","createCommentVNode","AssetFileFailReason","_cache","createElementVNode","DamAssetStatus"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetInfobox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport {\n AssetFileFailReason,\n type AssetFileFailReasonType,\n AssetFileProcessStatus,\n type AssetFileProcessStatusType,\n} from '@/domains/dam/types/AssetFile'\nimport { DamAssetStatus, type DamAssetStatusType } from '@/domains/dam/types/Asset'\nimport AssetFileFailReasonChip from '@/domains/dam/assetDetail/components/AssetFileFailReasonChip.vue'\n\nwithDefaults(\n defineProps<{\n assetStatus: DamAssetStatusType\n assetMainFileStatus?: AssetFileProcessStatusType | undefined\n assetMainFileFailReason?: AssetFileFailReasonType | undefined\n }>(),\n {\n assetMainFileStatus: undefined,\n assetMainFileFailReason: undefined,\n }\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div\n v-if=\"assetMainFileStatus && assetMainFileStatus === AssetFileProcessStatus.Duplicate\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"warning\">\n {{ t('common.damImage.asset.detail.info.status.duplicate') }}\n </VAlert>\n </div>\n <div\n v-if=\"assetMainFileStatus && assetMainFileStatus === AssetFileProcessStatus.Failed\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"error\">\n {{ t('common.damImage.asset.detail.info.status.failed') }}\n <!-- Like the queue row: no chip for the `None` reason. -->\n <div v-if=\"assetMainFileFailReason && assetMainFileFailReason !== AssetFileFailReason.None\">\n <br />\n <AssetFileFailReasonChip :reason=\"assetMainFileFailReason\" />\n </div>\n </VAlert>\n </div>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.Deleting\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"error\">\n {{ t('common.damImage.asset.detail.info.status.deleting') }}\n </VAlert>\n </div>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.Draft\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"warning\">\n {{ t('common.damImage.asset.detail.info.status.draft') }}\n </VAlert>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBA,IAAM,EAAE,SAAMmB,EAAQ;E,mCAKZI,EAAA,uBAAuBA,EAAA,wBAAwBpB,EAAAsB,CAAA,CAAsB,CAAC,aAD9EzB,EAAA,GAAAC,EAOM,OAPNY,GAOM,CAHJT,EAESC,GAAA,EAFD,MAAK,UAAS,GAAA;GACpB,SAAAC,QAA6D,CAA1DC,EAAAC,EAAAL,EAAA4B,CAAA,CAAC,CAAA,oDAAA,CAAA,GAAA,CAAA,C;;E,mBAIAR,EAAA,uBAAuBA,EAAA,wBAAwBpB,EAAAsB,CAAA,CAAsB,CAAC,UAD9EzB,EAAA,GAAAC,EAYM,OAZNa,GAYM,CARJV,EAOSC,GAAA,EAPD,MAAK,QAAO,GAAA;GAClB,SAAAC,QAA0D,CAAvDC,EAAAC,EAAAL,EAAA4B,CAAA,CAAC,CAAA,iDAAA,CAAA,IAAsD,KAE1D,CAAA,GAAWR,EAAA,2BAA2BA,EAAA,4BAA4BpB,EAAA8B,CAAA,CAAmB,CAAC,QAAtFjC,EAAA,GAAAC,EAGM,OAAAc,GAAA,CAFJ,AAAAmB,EAAA,OAAAxB,EAAM,MAAA,MAAA,MAAA,EAAA,GACNN,EAA6DO,GAAA,EAAnC,QAAQY,EAAA,wBAAuB,GAAA,MAAA,GAAA,CAAA,QAAA,CAAA,C;;E,QAKlDA,EAAA,gBAAgBpB,EAAAiC,CAAA,CAAc,CAAC,YAD5CpC,EAAA,GAAAC,EAOM,OAPNe,GAOM,CAHJZ,EAESC,GAAA,EAFD,MAAK,QAAO,GAAA;GAClB,SAAAC,QAA4D,CAAzDC,EAAAC,EAAAL,EAAA4B,CAAA,CAAC,CAAA,mDAAA,CAAA,GAAA,CAAA,C;;E,QAIKR,EAAA,gBAAgBpB,EAAAiC,CAAA,CAAc,CAAC,SAD5CpC,EAAA,GAAAC,EAOM,OAPNgB,GAOM,CAHJb,EAESC,GAAA,EAFD,MAAK,UAAS,GAAA;GACpB,SAAAC,QAAyD,CAAtDC,EAAAC,EAAAL,EAAA4B,CAAA,CAAC,CAAA,gDAAA,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"AssetInfobox.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_unref","_createVNode","_component_VAlert","_withCtx","_createTextVNode","_toDisplayString","_createElementVNode","AssetFileFailReasonChip","AssetFileFailReasonChip_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","AssetInfobox_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","Fragment","__props","unref","AssetFileProcessStatus","createVNode","VAlert","withCtx","createTextVNode","toDisplayString","t","createCommentVNode","AssetFileFailReason","_cache","createElementVNode","DamAssetStatus"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetInfobox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport {\n AssetFileFailReason,\n type AssetFileFailReasonType,\n AssetFileProcessStatus,\n type AssetFileProcessStatusType,\n} from '@/domains/dam/types/AssetFile'\nimport { DamAssetStatus, type DamAssetStatusType } from '@/domains/dam/types/Asset'\nimport AssetFileFailReasonChip from '@/domains/dam/assetDetail/components/AssetFileFailReasonChip.vue'\n\nwithDefaults(\n defineProps<{\n assetStatus: DamAssetStatusType\n assetMainFileStatus?: AssetFileProcessStatusType | undefined\n assetMainFileFailReason?: AssetFileFailReasonType | undefined\n }>(),\n {\n assetMainFileStatus: undefined,\n assetMainFileFailReason: undefined,\n }\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div\n v-if=\"assetMainFileStatus && assetMainFileStatus === AssetFileProcessStatus.Duplicate\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"warning\">\n {{ t('common.damImage.asset.detail.info.status.duplicate') }}\n </VAlert>\n </div>\n <div\n v-if=\"assetMainFileStatus && assetMainFileStatus === AssetFileProcessStatus.Failed\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"error\">\n {{ t('common.damImage.asset.detail.info.status.failed') }}\n <!-- Like the queue row: no chip for the `None` reason. -->\n <div v-if=\"assetMainFileFailReason && assetMainFileFailReason !== AssetFileFailReason.None\">\n <br />\n <AssetFileFailReasonChip :reason=\"assetMainFileFailReason\" />\n </div>\n </VAlert>\n </div>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.Deleting\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"error\">\n {{ t('common.damImage.asset.detail.info.status.deleting') }}\n </VAlert>\n </div>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.Draft\"\n class=\"w-100 pa-2 text-body-small\"\n >\n <VAlert type=\"warning\">\n {{ t('common.damImage.asset.detail.info.status.draft') }}\n </VAlert>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBA,IAAM,EAAE,SAAMiB,EAAQ;E,mCAKZI,EAAA,uBAAuBA,EAAA,wBAAwBnB,EAAAqB,CAAA,CAAsB,CAAC,aAD9EvB,EAAA,GAAAC,EAOM,OAPNU,GAOM,CAHJR,EAESC,GAAA,EAFD,MAAK,UAAS,GAAA;GACpB,SAAAC,QAA6D,CAA1DC,EAAAC,EAAAL,EAAA2B,CAAA,CAAC,CAAA,oDAAA,CAAA,GAAA,CAAA,C;;E,mBAIAR,EAAA,uBAAuBA,EAAA,wBAAwBnB,EAAAqB,CAAA,CAAsB,CAAC,UAD9EvB,EAAA,GAAAC,EAYM,OAZNW,GAYM,CARJT,EAOSC,GAAA,EAPD,MAAK,QAAO,GAAA;GAClB,SAAAC,QAA0D,CAAvDC,EAAAC,EAAAL,EAAA2B,CAAA,CAAC,CAAA,iDAAA,CAAA,IAAsD,KAE1D,CAAA,GAAWR,EAAA,2BAA2BA,EAAA,4BAA4BnB,EAAA6B,CAAA,CAAmB,CAAC,QAAtF/B,EAAA,GAAAC,EAGM,OAAAY,GAAA,CAFJ,AAAAmB,EAAA,OAAAxB,EAAM,MAAA,MAAA,MAAA,EAAA,GACNL,EAA6DM,GAAA,EAAnC,QAAQY,EAAA,wBAAuB,GAAA,MAAA,GAAA,CAAA,QAAA,CAAA,C;;E,QAKlDA,EAAA,gBAAgBnB,EAAAgC,CAAA,CAAc,CAAC,YAD5ClC,EAAA,GAAAC,EAOM,OAPNa,GAOM,CAHJX,EAESC,GAAA,EAFD,MAAK,QAAO,GAAA;GAClB,SAAAC,QAA4D,CAAzDC,EAAAC,EAAAL,EAAA2B,CAAA,CAAC,CAAA,mDAAA,CAAA,GAAA,CAAA,C;;E,QAIKR,EAAA,gBAAgBnB,EAAAgC,CAAA,CAAc,CAAC,SAD5ClC,EAAA,GAAAC,EAOM,OAPNc,GAOM,CAHJZ,EAESC,GAAA,EAFD,MAAK,UAAS,GAAA;GACpB,SAAAC,QAAyD,CAAtDC,EAAAC,EAAAL,EAAA2B,CAAA,CAAC,CAAA,gDAAA,CAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetMetadata.js","names":["_sfc_main","AssetMetadata_vue_vue_type_script_setup_true_lang_default","AssetMetadata_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref, watch } from 'vue'\nimport { DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetCustomMetadataForm from '@/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue'\nimport AssetFileInfoPanel from '@/domains/dam/assetDetail/components/AssetFileInfoPanel.vue'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport AuthorRemoteAutocompleteWithCached from '@/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteWithCached from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue'\nimport { useDamKeywordAssetTypeConfig } from '@/domains/dam/keyword/composables/damKeywordConfig'\nimport { useDamAuthorAssetTypeConfig } from '@/domains/dam/author/composables/damAuthorConfig'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useAssetSuggestions } from '@/domains/dam/uploadQueue/composables/assetSuggestions'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\nimport { useAutoDeleteTimeLeft } from '@/domains/dam/assetDetail/composables/autoDeleteTimeLeft'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n readonly?: boolean\n configName?: string\n showEditButton?: boolean\n }>(),\n {\n readonly: false,\n configName: undefined,\n showEditButton: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'editInDam'): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst panels = ref(['metadata', 'file'])\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, metadataAreTouched, mainFileSingleUse } = storeToRefs(assetDetailStore)\n\nconst assetType = computed(() => {\n return asset.value?.attributes.assetType || DamAssetTypeDefault\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { authorRequired, authorEnabled } = useDamAuthorAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { getAuthorConflicts } = useAssetSuggestions()\nconst { addToCachedAuthors, fetchCachedAuthors } = useDamCachedAuthors(damConfigName)\n\n// DAM author suggestions for names read from the file, as the queue row card offers them.\n// Taken from the asset itself, because nothing writes the store field.\n// None in a read-only side panel, or when the authors field is disabled. Such an asset may still carry old suggestions.\nconst authorConflicts = computed<DocId[]>(() =>\n props.readonly || !authorEnabled.value || !asset.value\n ? []\n : getAuthorConflicts(asset.value.metadata.authorSuggestions ?? {})\n)\n// The chips show names from the configuration's cache, as the row's do. Without it a chip spins forever.\nwatch(\n authorConflicts,\n (conflicts) => {\n if (conflicts.length === 0) return\n addToCachedAuthors(conflicts)\n fetchCachedAuthors()\n },\n { immediate: true }\n)\n\nconst onAnyMetadataChange = () => {\n metadataAreTouched.value = true\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { keywordRequired, keywordEnabled } = useDamKeywordAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { mainFileSingleUseEnabled, showFileInfoEnabled, showAutoDeleteEnabled, showLicenceEnabled, editAssetLabel } =\n useCommonAdminCoreDamOptions(damConfigName)\n\n// Only where the configuration turns it on: without it no clock runs.\nconst { secondsLeft: autoDeleteSecondsLeft } = useAutoDeleteTimeLeft(() =>\n showAutoDeleteEnabled ? asset.value?.autoDeleteAt : null\n)\nconst { remainingTimeLong } = useRemainingTime()\nconst autoDeleteIn = computed(() =>\n autoDeleteSecondsLeft.value === null ? null : remainingTimeLong(autoDeleteSecondsLeft.value)\n)\n\nconst { addToCachedUsers, fetchCachedUsers } = useDamCachedUsers(damConfigName)\n// The \"file\" panel chips show creator and modifier from the configuration's user cache.\n// A picker click fills it only for the clicked asset.\n// The \"edit asset\" detail of a widget or a queue row showed two chips spinning forever.\nwatch(\n [() => asset.value?.createdBy, () => asset.value?.modifiedBy],\n ([createdBy, modifiedBy]) => {\n if (!showFileInfoEnabled || (!createdBy && !modifiedBy)) return\n addToCachedUsers(createdBy, modifiedBy)\n fetchCachedUsers()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VBtn\n v-if=\"showEditButton && asset\"\n size=\"small\"\n class=\"ma-2\"\n @click=\"emit('editInDam')\"\n >\n {{ editAssetLabel }}\n </VBtn>\n <VExpansionPanels\n v-if=\"asset\"\n v-model=\"panels\"\n multiple\n class=\"v-expansion-panels--compact\"\n >\n <VExpansionPanel\n elevation=\"0\"\n :title=\"t('common.damImage.asset.detail.info.metadata')\"\n value=\"metadata\"\n >\n <VExpansionPanelText>\n <AssetCustomMetadataForm\n v-if=\"asset\"\n v-model=\"asset.metadata.customData\"\n :ext-system=\"extSystem\"\n :asset-type=\"assetType\"\n :readonly=\"readonly\"\n @any-change=\"onAnyMetadataChange\"\n >\n <template #after-pinned>\n <VRow\n v-if=\"keywordEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"keyword\"\n system=\"dam\"\n >\n <KeywordRemoteAutocompleteWithCached\n v-model=\"asset.keywords\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.keywords')\"\n data-cy=\"custom-field-keywords\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"keywordRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"authorEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"author\"\n system=\"dam\"\n >\n <AuthorRemoteAutocompleteWithCached\n v-model=\"asset.authors\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.authors')\"\n :author-conflicts=\"authorConflicts\"\n data-cy=\"custom-field-authors\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"authorRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"mainFileSingleUseEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ARow\n v-if=\"readonly\"\n :title=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n >\n <ABooleanValue :value=\"mainFileSingleUse\" />\n </ARow>\n <VSwitch\n v-else\n v-model=\"mainFileSingleUse\"\n :label=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n />\n </VCol>\n </VRow>\n <VRow\n v-if=\"autoDeleteIn !== null\"\n density=\"compact\"\n class=\"my-2\"\n data-cy=\"asset-auto-delete\"\n >\n <VCol>\n <ARow :title=\"t('common.damImage.asset.model.autoDelete')\">\n {{ autoDeleteIn }}\n </ARow>\n </VCol>\n </VRow>\n </template>\n </AssetCustomMetadataForm>\n </VExpansionPanelText>\n </VExpansionPanel>\n <!-- The detail wraps text only between words, unlike its card (design 1.10, JS29). -->\n <AssetFileInfoPanel\n v-if=\"showFileInfoEnabled\"\n :asset=\"asset\"\n show-users\n :show-licence=\"showLicenceEnabled\"\n style=\"overflow-wrap: normal\"\n />\n </VExpansionPanels>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AssetMetadata.js","names":["AssetMetadata_vue_vue_type_script_setup_true_lang_default","AssetMetadata_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetMetadata.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_unref","_createBlock","_component_VBtn","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_component_VExpansionPanels","_createVNode","_component_VExpansionPanel","_component_VExpansionPanelText","AssetCustomMetadataForm","_component_VRow","_component_VCol","ASystemEntityScope","KeywordRemoteAutocompleteWithCached","AuthorRemoteAutocompleteWithCached","ARow","ABooleanValue","_component_VSwitch","_isRef","AssetFileInfoPanel","AssetCustomMetadataForm_default","AssetFileInfoPanel_default","ASystemEntityScope_default","AuthorRemoteAutocompleteWithCached_default","KeywordRemoteAutocompleteWithCached_default","ABooleanValue_default","ARow_default","AssetMetadata_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","panels","ref","assetDetailStore","useAssetDetailStore","storeToRefs","assetType","computed","asset","DamAssetTypeDefault","useDamAuthorAssetTypeConfig","useAssetSuggestions","useDamCachedAuthors","authorConflicts","authorEnabled","getAuthorConflicts","conflicts","addToCachedAuthors","fetchCachedAuthors","onAnyMetadataChange","useDamKeywordAssetTypeConfig","useCommonAdminCoreDamOptions","autoDeleteSecondsLeft","useAutoDeleteTimeLeft","showAutoDeleteEnabled","useRemainingTime","autoDeleteIn","remainingTimeLong","useDamCachedUsers","watch","createdBy","modifiedBy","showFileInfoEnabled","addToCachedUsers","fetchCachedUsers","openBlock","createElementBlock","Fragment","unref","createBlock","VBtn","_cache","withCtx","createTextVNode","toDisplayString","editAssetLabel","createCommentVNode","VExpansionPanels","$event","createVNode","VExpansionPanel","t","VExpansionPanelText","keywordEnabled","VRow","VCol","keywordRequired","ADamAssetMetadataValidationScopeSymbol","authorRequired","mainFileSingleUseEnabled","mainFileSingleUse","VSwitch","isRef","showLicenceEnabled"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref, watch } from 'vue'\nimport { DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetCustomMetadataForm from '@/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue'\nimport AssetFileInfoPanel from '@/domains/dam/assetDetail/components/AssetFileInfoPanel.vue'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport AuthorRemoteAutocompleteWithCached from '@/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteWithCached from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue'\nimport { useDamKeywordAssetTypeConfig } from '@/domains/dam/keyword/composables/damKeywordConfig'\nimport { useDamAuthorAssetTypeConfig } from '@/domains/dam/author/composables/damAuthorConfig'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useAssetSuggestions } from '@/domains/dam/uploadQueue/composables/assetSuggestions'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\nimport { useAutoDeleteTimeLeft } from '@/domains/dam/assetDetail/composables/autoDeleteTimeLeft'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n readonly?: boolean\n configName?: string\n showEditButton?: boolean\n }>(),\n {\n readonly: false,\n configName: undefined,\n showEditButton: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'editInDam'): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst panels = ref(['metadata', 'file'])\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, metadataAreTouched, mainFileSingleUse } = storeToRefs(assetDetailStore)\n\nconst assetType = computed(() => {\n return asset.value?.attributes.assetType || DamAssetTypeDefault\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { authorRequired, authorEnabled } = useDamAuthorAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { getAuthorConflicts } = useAssetSuggestions()\nconst { addToCachedAuthors, fetchCachedAuthors } = useDamCachedAuthors(damConfigName)\n\n// DAM author suggestions for names read from the file, as the queue row card offers them.\n// Taken from the asset itself, because nothing writes the store field.\n// None in a read-only side panel, or when the authors field is disabled. Such an asset may still carry old suggestions.\nconst authorConflicts = computed<DocId[]>(() =>\n props.readonly || !authorEnabled.value || !asset.value\n ? []\n : getAuthorConflicts(asset.value.metadata.authorSuggestions ?? {})\n)\n// The chips show names from the configuration's cache, as the row's do. Without it a chip spins forever.\nwatch(\n authorConflicts,\n (conflicts) => {\n if (conflicts.length === 0) return\n addToCachedAuthors(conflicts)\n fetchCachedAuthors()\n },\n { immediate: true }\n)\n\nconst onAnyMetadataChange = () => {\n metadataAreTouched.value = true\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { keywordRequired, keywordEnabled } = useDamKeywordAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { mainFileSingleUseEnabled, showFileInfoEnabled, showAutoDeleteEnabled, showLicenceEnabled, editAssetLabel } =\n useCommonAdminCoreDamOptions(damConfigName)\n\n// Only where the configuration turns it on: without it no clock runs.\nconst { secondsLeft: autoDeleteSecondsLeft } = useAutoDeleteTimeLeft(() =>\n showAutoDeleteEnabled ? asset.value?.autoDeleteAt : null\n)\nconst { remainingTimeLong } = useRemainingTime()\nconst autoDeleteIn = computed(() =>\n autoDeleteSecondsLeft.value === null ? null : remainingTimeLong(autoDeleteSecondsLeft.value)\n)\n\nconst { addToCachedUsers, fetchCachedUsers } = useDamCachedUsers(damConfigName)\n// The \"file\" panel chips show creator and modifier from the configuration's user cache.\n// A picker click fills it only for the clicked asset.\n// The \"edit asset\" detail of a widget or a queue row showed two chips spinning forever.\nwatch(\n [() => asset.value?.createdBy, () => asset.value?.modifiedBy],\n ([createdBy, modifiedBy]) => {\n if (!showFileInfoEnabled || (!createdBy && !modifiedBy)) return\n addToCachedUsers(createdBy, modifiedBy)\n fetchCachedUsers()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VBtn\n v-if=\"showEditButton && asset\"\n size=\"small\"\n class=\"ma-2\"\n @click=\"emit('editInDam')\"\n >\n {{ editAssetLabel }}\n </VBtn>\n <VExpansionPanels\n v-if=\"asset\"\n v-model=\"panels\"\n multiple\n class=\"v-expansion-panels--compact\"\n >\n <VExpansionPanel\n elevation=\"0\"\n :title=\"t('common.damImage.asset.detail.info.metadata')\"\n value=\"metadata\"\n >\n <VExpansionPanelText>\n <AssetCustomMetadataForm\n v-if=\"asset\"\n v-model=\"asset.metadata.customData\"\n :ext-system=\"extSystem\"\n :asset-type=\"assetType\"\n :readonly=\"readonly\"\n @any-change=\"onAnyMetadataChange\"\n >\n <template #after-pinned>\n <VRow\n v-if=\"keywordEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"keyword\"\n system=\"dam\"\n >\n <KeywordRemoteAutocompleteWithCached\n v-model=\"asset.keywords\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.keywords')\"\n data-cy=\"custom-field-keywords\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"keywordRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"authorEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"author\"\n system=\"dam\"\n >\n <AuthorRemoteAutocompleteWithCached\n v-model=\"asset.authors\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.authors')\"\n :author-conflicts=\"authorConflicts\"\n data-cy=\"custom-field-authors\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"authorRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"mainFileSingleUseEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ARow\n v-if=\"readonly\"\n :title=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n >\n <ABooleanValue :value=\"mainFileSingleUse\" />\n </ARow>\n <VSwitch\n v-else\n v-model=\"mainFileSingleUse\"\n :label=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n />\n </VCol>\n </VRow>\n <VRow\n v-if=\"autoDeleteIn !== null\"\n density=\"compact\"\n class=\"my-2\"\n data-cy=\"asset-auto-delete\"\n >\n <VCol>\n <ARow :title=\"t('common.damImage.asset.model.autoDelete')\">\n {{ autoDeleteIn }}\n </ARow>\n </VCol>\n </VRow>\n </template>\n </AssetCustomMetadataForm>\n </VExpansionPanelText>\n </VExpansionPanel>\n <!-- The detail wraps text only between words, unlike its card (design 1.10, JS29). -->\n <AssetFileInfoPanel\n v-if=\"showFileInfoEnabled\"\n :asset=\"asset\"\n show-users\n :show-licence=\"showLicenceEnabled\"\n style=\"overflow-wrap: normal\"\n />\n </VExpansionPanels>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AssetMetadata.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_unref","_createBlock","_component_VBtn","_withCtx","_createTextVNode","_toDisplayString","_component_VExpansionPanels","_createVNode","_component_VExpansionPanel","_component_VExpansionPanelText","AssetCustomMetadataForm","_component_VRow","_component_VCol","ASystemEntityScope","KeywordRemoteAutocompleteWithCached","AuthorRemoteAutocompleteWithCached","ARow","ABooleanValue","_component_VSwitch","_isRef","AssetFileInfoPanel","AssetCustomMetadataForm_default","AssetFileInfoPanel_default","ASystemEntityScope_default","AuthorRemoteAutocompleteWithCached_default","KeywordRemoteAutocompleteWithCached_default","ABooleanValue_default","ARow_default","AssetMetadata_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","panels","ref","assetDetailStore","useAssetDetailStore","storeToRefs","assetType","computed","asset","DamAssetTypeDefault","useDamAuthorAssetTypeConfig","useAssetSuggestions","useDamCachedAuthors","authorConflicts","authorEnabled","getAuthorConflicts","conflicts","addToCachedAuthors","fetchCachedAuthors","onAnyMetadataChange","useDamKeywordAssetTypeConfig","useCommonAdminCoreDamOptions","autoDeleteSecondsLeft","useAutoDeleteTimeLeft","showAutoDeleteEnabled","useRemainingTime","autoDeleteIn","remainingTimeLong","useDamCachedUsers","watch","createdBy","modifiedBy","showFileInfoEnabled","addToCachedUsers","fetchCachedUsers","openBlock","createElementBlock","Fragment","unref","createBlock","VBtn","_cache","withCtx","createTextVNode","toDisplayString","editAssetLabel","createCommentVNode","VExpansionPanels","$event","createVNode","VExpansionPanel","t","VExpansionPanelText","keywordEnabled","VRow","VCol","keywordRequired","ADamAssetMetadataValidationScopeSymbol","authorRequired","mainFileSingleUseEnabled","mainFileSingleUse","VSwitch","isRef","showLicenceEnabled"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref, watch } from 'vue'\nimport { DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetCustomMetadataForm from '@/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue'\nimport AssetFileInfoPanel from '@/domains/dam/assetDetail/components/AssetFileInfoPanel.vue'\nimport ASystemEntityScope from '@/domains/form/components/ASystemEntityScope.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport AuthorRemoteAutocompleteWithCached from '@/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue'\nimport KeywordRemoteAutocompleteWithCached from '@/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue'\nimport { useDamKeywordAssetTypeConfig } from '@/domains/dam/keyword/composables/damKeywordConfig'\nimport { useDamAuthorAssetTypeConfig } from '@/domains/dam/author/composables/damAuthorConfig'\nimport type { DocId, IntegerId } from '@/shared/types/common'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useAssetSuggestions } from '@/domains/dam/uploadQueue/composables/assetSuggestions'\nimport { useDamCachedAuthors } from '@/domains/dam/author/composables/cachedAuthors'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\nimport { useAutoDeleteTimeLeft } from '@/domains/dam/assetDetail/composables/autoDeleteTimeLeft'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\n\nconst props = withDefaults(\n defineProps<{\n extSystem: IntegerId\n readonly?: boolean\n configName?: string\n showEditButton?: boolean\n }>(),\n {\n readonly: false,\n configName: undefined,\n showEditButton: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'editInDam'): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst panels = ref(['metadata', 'file'])\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, metadataAreTouched, mainFileSingleUse } = storeToRefs(assetDetailStore)\n\nconst assetType = computed(() => {\n return asset.value?.attributes.assetType || DamAssetTypeDefault\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { authorRequired, authorEnabled } = useDamAuthorAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { getAuthorConflicts } = useAssetSuggestions()\nconst { addToCachedAuthors, fetchCachedAuthors } = useDamCachedAuthors(damConfigName)\n\n// DAM author suggestions for names read from the file, as the queue row card offers them.\n// Taken from the asset itself, because nothing writes the store field.\n// None in a read-only side panel, or when the authors field is disabled. Such an asset may still carry old suggestions.\nconst authorConflicts = computed<DocId[]>(() =>\n props.readonly || !authorEnabled.value || !asset.value\n ? []\n : getAuthorConflicts(asset.value.metadata.authorSuggestions ?? {})\n)\n// The chips show names from the configuration's cache, as the row's do. Without it a chip spins forever.\nwatch(\n authorConflicts,\n (conflicts) => {\n if (conflicts.length === 0) return\n addToCachedAuthors(conflicts)\n fetchCachedAuthors()\n },\n { immediate: true }\n)\n\nconst onAnyMetadataChange = () => {\n metadataAreTouched.value = true\n}\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { keywordRequired, keywordEnabled } = useDamKeywordAssetTypeConfig(\n // eslint-disable-next-line vue/no-ref-object-reactivity-loss\n assetType.value,\n props.extSystem,\n damConfigName\n)\n\nconst { mainFileSingleUseEnabled, showFileInfoEnabled, showAutoDeleteEnabled, showLicenceEnabled, editAssetLabel } =\n useCommonAdminCoreDamOptions(damConfigName)\n\n// Only where the configuration turns it on: without it no clock runs.\nconst { secondsLeft: autoDeleteSecondsLeft } = useAutoDeleteTimeLeft(() =>\n showAutoDeleteEnabled ? asset.value?.autoDeleteAt : null\n)\nconst { remainingTimeLong } = useRemainingTime()\nconst autoDeleteIn = computed(() =>\n autoDeleteSecondsLeft.value === null ? null : remainingTimeLong(autoDeleteSecondsLeft.value)\n)\n\nconst { addToCachedUsers, fetchCachedUsers } = useDamCachedUsers(damConfigName)\n// The \"file\" panel chips show creator and modifier from the configuration's user cache.\n// A picker click fills it only for the clicked asset.\n// The \"edit asset\" detail of a widget or a queue row showed two chips spinning forever.\nwatch(\n [() => asset.value?.createdBy, () => asset.value?.modifiedBy],\n ([createdBy, modifiedBy]) => {\n if (!showFileInfoEnabled || (!createdBy && !modifiedBy)) return\n addToCachedUsers(createdBy, modifiedBy)\n fetchCachedUsers()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VBtn\n v-if=\"showEditButton && asset\"\n size=\"small\"\n class=\"ma-2\"\n @click=\"emit('editInDam')\"\n >\n {{ editAssetLabel }}\n </VBtn>\n <VExpansionPanels\n v-if=\"asset\"\n v-model=\"panels\"\n multiple\n class=\"v-expansion-panels--compact\"\n >\n <VExpansionPanel\n elevation=\"0\"\n :title=\"t('common.damImage.asset.detail.info.metadata')\"\n value=\"metadata\"\n >\n <VExpansionPanelText>\n <AssetCustomMetadataForm\n v-if=\"asset\"\n v-model=\"asset.metadata.customData\"\n :ext-system=\"extSystem\"\n :asset-type=\"assetType\"\n :readonly=\"readonly\"\n @any-change=\"onAnyMetadataChange\"\n >\n <template #after-pinned>\n <VRow\n v-if=\"keywordEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"keyword\"\n system=\"dam\"\n >\n <KeywordRemoteAutocompleteWithCached\n v-model=\"asset.keywords\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.keywords')\"\n data-cy=\"custom-field-keywords\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"keywordRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"authorEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ASystemEntityScope\n subject=\"author\"\n system=\"dam\"\n >\n <AuthorRemoteAutocompleteWithCached\n v-model=\"asset.authors\"\n :ext-system=\"extSystem\"\n :label=\"t('common.damImage.asset.model.authors')\"\n :author-conflicts=\"authorConflicts\"\n data-cy=\"custom-field-authors\"\n clearable\n multiple\n :disabled=\"readonly\"\n :required=\"authorRequired\"\n :validation-scope=\"ADamAssetMetadataValidationScopeSymbol\"\n @update:model-value=\"onAnyMetadataChange\"\n />\n </ASystemEntityScope>\n </VCol>\n </VRow>\n <VRow\n v-if=\"mainFileSingleUseEnabled\"\n density=\"compact\"\n class=\"my-2\"\n >\n <VCol>\n <ARow\n v-if=\"readonly\"\n :title=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n >\n <ABooleanValue :value=\"mainFileSingleUse\" />\n </ARow>\n <VSwitch\n v-else\n v-model=\"mainFileSingleUse\"\n :label=\"t('common.damImage.asset.model.mainFileSingleUse')\"\n />\n </VCol>\n </VRow>\n <VRow\n v-if=\"autoDeleteIn !== null\"\n density=\"compact\"\n class=\"my-2\"\n data-cy=\"asset-auto-delete\"\n >\n <VCol>\n <ARow :title=\"t('common.damImage.asset.model.autoDelete')\">\n {{ autoDeleteIn }}\n </ARow>\n </VCol>\n </VRow>\n </template>\n </AssetCustomMetadataForm>\n </VExpansionPanelText>\n </VExpansionPanel>\n <!-- The detail wraps text only between words, unlike its card (design 1.10, JS29). -->\n <AssetFileInfoPanel\n v-if=\"showFileInfoEnabled\"\n :asset=\"asset\"\n show-users\n :show-licence=\"showLicenceEnabled\"\n style=\"overflow-wrap: normal\"\n />\n </VExpansionPanels>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetMetadataImageAttributes.js","names":["_sfc_main","AssetMetadataImageAttributes_vue_vue_type_script_setup_true_lang_default","AssetMetadataImageAttributes_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport AColorBox from '@/domains/dam/assetDetail/components/AColorBox.vue'\nimport type { AssetFileImage } from '@/domains/dam/types/AssetFile'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\n\nwithDefaults(\n defineProps<{\n file: AssetFileImage\n }>(),\n {}\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.dominantColor') }}\n </VCol>\n <VCol cols=\"9\">\n <AColorBox :color=\"file.imageAttributes.mostDominantColor\" />\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.width') }}\n </VCol>\n <VCol cols=\"9\">{{ file.imageAttributes.width }} px</VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.height') }}\n </VCol>\n <VCol cols=\"9\">{{ file.imageAttributes.height }} px</VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.ratio') }}\n </VCol>\n <VCol cols=\"9\"> {{ file.imageAttributes.ratioWidth }} / {{ file.imageAttributes.ratioHeight }} </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.animated') }}\n </VCol>\n <VCol cols=\"9\">\n <ABooleanValue :value=\"file.imageAttributes.animated\" />\n </VCol>\n </VRow>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AssetMetadataImageAttributes.js","names":["AssetMetadataImageAttributes_vue_vue_type_script_setup_true_lang_default","AssetMetadataImageAttributes_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetMetadataImageAttributes.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","_component_VRow","_withCtx","_component_VCol","_createTextVNode","_toDisplayString","_unref","AColorBox","ABooleanValue","AColorBox_default","ABooleanValue_default","AssetMetadataImageAttributes_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","Fragment","createVNode","VRow","withCtx","VCol","createTextVNode","toDisplayString","unref","t","__props"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport AColorBox from '@/domains/dam/assetDetail/components/AColorBox.vue'\nimport type { AssetFileImage } from '@/domains/dam/types/AssetFile'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\n\nwithDefaults(\n defineProps<{\n file: AssetFileImage\n }>(),\n {}\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.dominantColor') }}\n </VCol>\n <VCol cols=\"9\">\n <AColorBox :color=\"file.imageAttributes.mostDominantColor\" />\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.width') }}\n </VCol>\n <VCol cols=\"9\">{{ file.imageAttributes.width }} px</VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.height') }}\n </VCol>\n <VCol cols=\"9\">{{ file.imageAttributes.height }} px</VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.ratio') }}\n </VCol>\n <VCol cols=\"9\"> {{ file.imageAttributes.ratioWidth }} / {{ file.imageAttributes.ratioHeight }} </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.animated') }}\n </VCol>\n <VCol cols=\"9\">\n <ABooleanValue :value=\"file.imageAttributes.animated\" />\n </VCol>\n </VRow>\n</template>\n"],"mappings":";;;;;;;;;;EAaA,IAAM,EAAE,SAAMe,EAAQ;;GAIpBZ,EAOOC,GAAA,MAAA;IANL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAgE,CAA7DE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,uDAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAA6D,CAA7DF,EAA6DO,GAAA,EAAjD,OAAOiB,EAAA,KAAK,gBAAgB,kB;;;;;GAG5CxB,EAKOC,GAAA,MAAA;IAJL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAwD,CAArDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,+CAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAAyDG,GAAA,EAAnD,MAAK,IAAG,GAAA;KAAC,SAAAD,QAAgC,CAA7BE,EAAAC,EAAAmB,EAAA,KAAK,gBAAgB,KAAK,IAAG,OAAG,CAAA,C;;;;;GAEpDxB,EAKOC,GAAA,MAAA;IAJL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAyD,CAAtDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,gDAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAA0DG,GAAA,EAApD,MAAK,IAAG,GAAA;KAAC,SAAAD,QAAiC,CAA9BE,EAAAC,EAAAmB,EAAA,KAAK,gBAAgB,MAAM,IAAG,OAAG,CAAA,C;;;;;GAErDxB,EAKOC,GAAA,MAAA;IAJL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAwD,CAArDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,+CAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAAsGG,GAAA,EAAhG,MAAK,IAAG,GAAA;KAAE,SAAAD,QAAqC,CAAlCE,EAAAC,EAAAmB,EAAA,KAAK,gBAAgB,UAAU,IAAG,QAAGnB,EAAGmB,EAAA,KAAK,gBAAgB,WAAW,GAAA,CAAA,C;;;;;GAE7FxB,EAOOC,GAAA,MAAA;IANL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAA2D,CAAxDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,kDAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAwD,CAAxDF,EAAwDQ,GAAA,EAAxC,OAAOgB,EAAA,KAAK,gBAAgB,S"}
1
+ {"version":3,"file":"AssetMetadataImageAttributes.vue_vue_type_script_setup_true_lang.js","names":["_createVNode","_component_VRow","_withCtx","_component_VCol","_createTextVNode","_toDisplayString","_unref","AColorBox","ABooleanValue","AColorBox_default","ABooleanValue_default","AssetMetadataImageAttributes_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","Fragment","createVNode","VRow","withCtx","VCol","createTextVNode","toDisplayString","unref","t","__props"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport AColorBox from '@/domains/dam/assetDetail/components/AColorBox.vue'\nimport type { AssetFileImage } from '@/domains/dam/types/AssetFile'\nimport ABooleanValue from '@/domains/ui/components/ABooleanValue.vue'\n\nwithDefaults(\n defineProps<{\n file: AssetFileImage\n }>(),\n {}\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.dominantColor') }}\n </VCol>\n <VCol cols=\"9\">\n <AColorBox :color=\"file.imageAttributes.mostDominantColor\" />\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.width') }}\n </VCol>\n <VCol cols=\"9\">{{ file.imageAttributes.width }} px</VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.height') }}\n </VCol>\n <VCol cols=\"9\">{{ file.imageAttributes.height }} px</VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.ratio') }}\n </VCol>\n <VCol cols=\"9\"> {{ file.imageAttributes.ratioWidth }} / {{ file.imageAttributes.ratioHeight }} </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.animated') }}\n </VCol>\n <VCol cols=\"9\">\n <ABooleanValue :value=\"file.imageAttributes.animated\" />\n </VCol>\n </VRow>\n</template>\n"],"mappings":";;;;;;;;;;EAaA,IAAM,EAAE,SAAMY,EAAQ;;GAIpBZ,EAOOC,GAAA,MAAA;IANL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAgE,CAA7DE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,uDAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAA6D,CAA7DF,EAA6DO,GAAA,EAAjD,OAAOiB,EAAA,KAAK,gBAAgB,kB;;;;;GAG5CxB,EAKOC,GAAA,MAAA;IAJL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAwD,CAArDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,+CAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAAyDG,GAAA,EAAnD,MAAK,IAAG,GAAA;KAAC,SAAAD,QAAgC,CAA7BE,EAAAC,EAAAmB,EAAA,KAAK,gBAAgB,KAAK,IAAG,OAAG,CAAA,C;;;;;GAEpDxB,EAKOC,GAAA,MAAA;IAJL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAyD,CAAtDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,gDAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAA0DG,GAAA,EAApD,MAAK,IAAG,GAAA;KAAC,SAAAD,QAAiC,CAA9BE,EAAAC,EAAAmB,EAAA,KAAK,gBAAgB,MAAM,IAAG,OAAG,CAAA,C;;;;;GAErDxB,EAKOC,GAAA,MAAA;IAJL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAwD,CAArDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,+CAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAAsGG,GAAA,EAAhG,MAAK,IAAG,GAAA;KAAE,SAAAD,QAAqC,CAAlCE,EAAAC,EAAAmB,EAAA,KAAK,gBAAgB,UAAU,IAAG,QAAGnB,EAAGmB,EAAA,KAAK,gBAAgB,WAAW,GAAA,CAAA,C;;;;;GAE7FxB,EAOOC,GAAA,MAAA;IANL,SAAAC,QAEO,CAFPF,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAA2D,CAAxDE,EAAAC,EAAAC,EAAAiB,CAAA,CAAC,CAAA,kDAAA,CAAA,GAAA,CAAA,C;;I,IAENvB,EAEOG,GAAA,EAFD,MAAK,IAAG,GAAA;KACZ,SAAAD,QAAwD,CAAxDF,EAAwDQ,GAAA,EAAxC,OAAOgB,EAAA,KAAK,gBAAgB,S"}
@@ -1 +1 @@
1
- {"version":3,"file":"AAssetListInner.js","names":["_sfc_main","AAssetListInner_vue_vue_type_script_setup_true_lang_default","AAssetListInner_default"],"sources":["../../../../../src/domains/dam/assetSelect/components/AAssetListInner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onUnmounted, provide, ref, watch } from 'vue'\nimport { useDisplay } from 'vuetify'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetDetailItemDto, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetSelectActions } from '@/domains/dam/assetSelect/composables/assetSelectListActions'\nimport AssetSelectListTable from '@/domains/dam/assetSelect/components/AssetSelectListTable.vue'\nimport AssetSelectListBar from '@/domains/dam/assetSelect/components/AssetSelectListBar.vue'\nimport { AssetSelectGridView, useGridView } from '@/domains/dam/assetSelect/composables/assetSelectGridView'\nimport AssetSelectListTiles from '@/domains/dam/assetSelect/components/AssetSelectListTiles.vue'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport AssetSelectFilterForm from '@/domains/dam/assetSelect/components/AssetSelectFilterForm.vue'\nimport { filterAllowedImageWidgetSelectConfigs } from '@/domains/dam/config/utils/damFilterUserAllowedUploadConfigs'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport type { DamConfigLicenceExtSystemReturnType, DamExtSystemConfig } from '@/domains/dam/types/DamConfig'\nimport { cloneDeep, isDefined, isUndefined } from '@/shared/utils/common'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type DatatableOrderingOption } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport { DatatablePaginationKey, FilterConfigKey, FilterDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport AFilterWrapper from '@/domains/filters/components/AFilterWrapper.vue'\nimport AFilterString from '@/domains/filters/components/AFilterString.vue'\nimport { useFilterHelpers } from '@/domains/filters/composables/filterFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AssetDetailDialog from '@/domains/dam/assetDetail/components/AssetDetailDialog.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { ImageWidgetUploadConfigKey } from '@/domains/dam/imageWidget/utils/imageWidgetInkectionKeys'\nimport { useDamAcceptTypeAndSizeHelper } from '@/domains/dam/config/composables/acceptTypeAndSizeHelper'\nimport { useUploadQueueDialog } from '@/domains/dam/uploadQueue/composables/useUploadQueueDialog'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport UploadQueueDialog from '@/domains/dam/uploadQueue/components/UploadQueueDialog.vue'\nimport AFileInput from '@/domains/ui/file/components/AFileInput.vue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n queueKey: UploadQueueKey\n selectConfigs: DamConfigLicenceExtSystemReturnType[]\n inPodcast?: boolean | null\n configName?: string\n skipCurrentUserCheck?: boolean\n variant?: 'default' | 'inline'\n }>(),\n {\n inPodcast: null,\n configName: undefined,\n skipCurrentUserCheck: false,\n variant: 'default',\n }\n)\n\nconst sortModel = defineModel<number>('sort', { default: 1, required: false })\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst {\n damClient,\n loader,\n pagination,\n fetchNextPage,\n fetchNextPageInView,\n initStoreContext,\n detailLoading,\n readActiveItemAgain,\n fetchAssetListDebounced,\n reset,\n resetAssetList,\n} = useAssetSelectActions(damConfigName)\n// The list bar ordering reads this. Without it the dialog would use the host page's pagination.\nprovide(DatatablePaginationKey, pagination)\n\nconst { assetListEnabledFilters } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst { loadDamConfigAssetCustomFormElements, getDamConfigAssetCustomFormElements } = useDamConfigState(\n damClient,\n damConfigName\n)\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, dialog } = storeToRefs(assetDetailStore)\nconst assetSelectStore = useAssetSelectStore()\nconst { selectedLicenceId } = storeToRefs(assetSelectStore)\n\nconst { sidebarRight, closeSidebarRight, closeSidebarLeft } = useSidebar()\nconst { mdAndDown } = useDisplay()\nconst { showErrorT } = useAlerts()\n\nconst { filterData, filterConfig } = useAssetListFilter()\nprovide(FilterConfigKey, filterConfig)\nprovide(FilterDataKey, filterData)\n\nconst { resetFilter, submitFilter } = useFilterHelpers(filterData, filterConfig, {\n populateUrlParams: false,\n storeFiltersLocalStorage: false,\n})\n\nconst submitFilterAction = () => {\n submitFilter(pagination, fetchAssetListDebounced)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst resetFilterAction = () => {\n resetFilter(pagination, resetAssetList)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst onInit = () => {\n let selectConfigLocal = cloneDeep(props.selectConfigs)\n if (!props.skipCurrentUserCheck) {\n selectConfigLocal = filterAllowedImageWidgetSelectConfigs(props.selectConfigs, damConfigName)\n }\n if (selectConfigLocal.length === 0) {\n showErrorT('common.assetSelect.error.unallowedLicence')\n return\n }\n\n reset()\n initStoreContext(selectConfigLocal, props.assetType, props.inPodcast, false, 0, 0)\n fetchAssetListDebounced()\n}\n\nconst { gridView } = useGridView()\n\nconst componentComputed = computed(() => {\n switch (gridView.value) {\n case AssetSelectGridView.Table:\n return AssetSelectListTable\n default:\n case AssetSelectGridView.Masonry:\n case AssetSelectGridView.Thumbnail:\n return AssetSelectListTiles\n }\n})\n\nconst extId = computed(() => {\n if (props.selectConfigs.length === 0) return undefined\n if (selectedLicenceId.value > 0) {\n const found = props.selectConfigs.find((config) => config.licence === selectedLicenceId.value)\n if (found) return found.extSystem\n }\n return undefined\n})\n\nconst loadingSidebarRight = computed(() => {\n return customFormConfigLoading.value || detailLoading.value\n})\n\nconst { showErrorsDefault } = useAlerts()\nconst customFormConfigLoading = ref(true)\n// The custom fields config could not be read. The side panel shows\n// a notice instead of the asset form, which needs that config.\nconst customFormConfigFailed = ref(false)\n\nconst sortByChange = (option: DatatableOrderingOption) => {\n pagination.value.sortBy = null\n if (option.sortBy) {\n pagination.value.sortBy = { key: option.sortBy.key, order: option.sortBy.order }\n }\n fetchAssetListDebounced()\n}\n\n// Whether the open detail was opened by the side panel's \"edit\".\n// Queue row details are rendered here too, and closing one makes the panel reread its own asset.\nlet detailOfPanel = false\n\nconst onOpenEditDialog = () => {\n if (!asset.value) return\n detailOfPanel = true\n dialog.value = props.queueKey\n}\n\n// The panel rereads the asset its detail showed, not the one the list remembers.\n// They differ after a click made while the panel showed the asset it opened.\nconst onCloseEditDialog = (shown: AssetDetailItemDto | null) => {\n const ofPanel = detailOfPanel\n detailOfPanel = false\n readActiveItemAgain(ofPanel ? (shown?.id ?? null) : null)\n}\n\nconst imageWidgetUploadConfig = inject(ImageWidgetUploadConfigKey, undefined)\nconst uploadEnabled = computed(() => isDefined(imageWidgetUploadConfig) && isDefined(imageWidgetUploadConfig.value))\n\nconst { uploadQueueDialog, uploadQueueDialogSaving, stopQueueLeftBehind } = useUploadQueueDialog()\nconst uploadQueuesStore = useUploadQueuesStore()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { uploadSizes, uploadAccept } = useDamAcceptTypeAndSizeHelper(\n props.assetType,\n (imageWidgetUploadConfig?.value?.extSystemConfig ?? {}) as DamExtSystemConfig\n)\n\nconst uploadQueue = computed(() => {\n return uploadQueuesStore.getQueue(props.queueKey)\n})\n\nconst onFileInput = (files: File[]) => {\n if (files.length === 0) return\n // The page has its own entry points (button, window-wide dropzone) that bypass the dialog.\n // While this queue's dialog saves, no file is accepted. \"Save and apply\" empties\n // the queue, and a file queued meanwhile was lost half uploaded without notice.\n if (uploadQueueDialogSaving.value === props.queueKey) return\n const config = imageWidgetUploadConfig?.value\n if (!config) return\n stopQueueLeftBehind(props.queueKey)\n uploadQueuesStore.addByFiles(props.queueKey, config.extSystem, config.licence, files, damConfigName)\n uploadQueueDialog.value = props.queueKey\n}\n\nconst onUploadApply = () => {\n uploadQueueDialog.value = null\n uploadQueuesStore.stopUpload(props.queueKey)\n fetchAssetListDebounced()\n}\n\nwatch(\n extId,\n async (newValue) => {\n if (isUndefined(newValue)) return\n customFormConfigLoading.value = true\n customFormConfigFailed.value = false\n // Custom fields of the listed type: all types of the ext system if\n // none are loaded, else only this type if its read failed before.\n // Loaded types are not read again.\n const type = props.assetType\n if (isUndefined(getDamConfigAssetCustomFormElements(newValue, type))) {\n try {\n await loadDamConfigAssetCustomFormElements(\n newValue,\n getDamConfigAssetCustomFormElements(newValue) ? [type] : undefined\n )\n } catch (e) {\n showErrorsDefault(e)\n }\n // Ignore an answer for an ext system the list has since left.\n if (extId.value !== newValue) return\n customFormConfigFailed.value = isUndefined(getDamConfigAssetCustomFormElements(newValue, type))\n }\n customFormConfigLoading.value = false\n },\n { immediate: true }\n)\n\nwatch(selectedLicenceId, (newValue, oldValue) => {\n if (newValue === oldValue) return\n resetFilterAction()\n})\n\nonInit()\n\nonUnmounted(() => {\n reset()\n})\n</script>\n\n<template>\n <slot\n v-if=\"uploadEnabled\"\n name=\"upload-activator\"\n :on-file-input=\"onFileInput\"\n :upload-accept=\"uploadAccept\"\n :upload-sizes=\"uploadSizes\"\n >\n <AFileInput\n :file-input-key=\"uploadQueue?.fileInputKey\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n multiple\n @files-input=\"onFileInput\"\n >\n <template #activator=\"{ props: fileInputProps }\">\n <VBtn v-bind=\"fileInputProps\">\n {{ t('common.button.upload') }}\n </VBtn>\n </template>\n </AFileInput>\n </slot>\n <div\n class=\"subject-select__card\"\n :class=\"{ 'subject-select__card--inline': variant === 'inline' }\"\n >\n <div class=\"px-2 pt-2\">\n <slot name=\"filter\">\n <AFilterWrapper\n @submit=\"submitFilterAction\"\n @reset=\"resetFilterAction\"\n >\n <template #search>\n <AFilterString name=\"text\" />\n </template>\n <template #detail>\n <VRow v-if=\"selectConfigs.length > 1\">\n <VCol :cols=\"12\">\n <VSelect\n v-model=\"selectedLicenceId\"\n :label=\"t('common.assetSelect.filter.licence')\"\n :items=\"selectConfigs\"\n item-title=\"licenceName\"\n item-value=\"licence\"\n hide-details\n />\n </VCol>\n </VRow>\n <AssetSelectFilterForm\n use-config-layout\n hide-text-search\n :enabled-filters=\"assetListEnabledFilters\"\n :config-name=\"damConfigName\"\n />\n </template>\n </AFilterWrapper>\n </slot>\n </div>\n <AssetSelectListBar\n v-model:sort=\"sortModel\"\n hide-filter-toggle\n @sort-by-change=\"sortByChange\"\n />\n <div\n class=\"subject-select__main\"\n :class=\"{\n 'subject-select__main--sidebar-right-active': sidebarRight && !mdAndDown,\n }\"\n >\n <div class=\"subject-select__content\">\n <component\n :is=\"componentComputed\"\n v-if=\"extId\"\n :ext-system=\"extId\"\n />\n <div class=\"d-flex w-100 align-center justify-center pa-4\">\n <ABtnSecondary\n v-show=\"pagination.hasNextPage || loader\"\n v-intersect=\"fetchNextPageInView\"\n :loading=\"loader\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n {{ t('common.button.loadMore') }}\n </ABtnSecondary>\n </div>\n </div>\n <div\n v-if=\"!mdAndDown\"\n class=\"subject-select__sidebar-right border-s\"\n >\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"!asset\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.assetSelect.meta.info.noAssetSelected') }}\n </div>\n <div\n v-else\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </div>\n </div>\n <VDialog\n v-if=\"mdAndDown\"\n v-model=\"sidebarRight\"\n scrollable\n @update:model-value=\"\n (v) => {\n if (!v) closeSidebarRight()\n }\n \"\n >\n <VCard>\n <ADialogToolbar @cancel=\"closeSidebarRight\">\n {{ t('common.assetSelect.meta.info.toggle') }}\n </ADialogToolbar>\n <VCardText>\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"asset\"\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn @click=\"closeSidebarRight\">\n {{ t('common.button.close') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n </div>\n <AssetDetailDialog\n v-if=\"dialog === queueKey && extId\"\n :queue-key=\"queueKey\"\n :ext-system=\"extId\"\n @close=\"onCloseEditDialog\"\n />\n <UploadQueueDialog\n v-if=\"uploadEnabled && uploadQueueDialog === queueKey && imageWidgetUploadConfig\"\n :queue-key=\"queueKey\"\n :ext-system=\"imageWidgetUploadConfig.extSystem\"\n :licence-id=\"imageWidgetUploadConfig.licence\"\n :file-input-key=\"uploadQueue?.fileInputKey ?? -1\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n @apply=\"onUploadApply\"\n @files-input=\"onFileInput\"\n @drop=\"onFileInput\"\n />\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AAssetListInner.js","names":["AAssetListInner_vue_vue_type_script_setup_true_lang_default","AAssetListInner_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AAssetListInner.vue_vue_type_script_setup_true_lang.js","names":["_useModel","AssetSelectListTable","AssetSelectListTiles","_resolveComponent","_openBlock","_createElementBlock","_Fragment","_renderSlot","_unref","_createVNode","AFileInput","_withCtx","_component_VBtn","_normalizeProps","_guardReactiveProps","_createTextVNode","_toDisplayString","_createCommentVNode","_createElementVNode","_normalizeClass","AFilterWrapper","AFilterString","_createBlock","_component_VRow","_component_VCol","_component_VSelect","_isRef","AssetSelectFilterForm","AssetSelectListBar","_resolveDynamicComponent","_withDirectives","_vShow","_directive_intersect","_component_VProgressCircular","AssetMetadata","_component_VDialog","_component_VCard","ADialogToolbar","_component_VCardText","_component_VCardActions","_component_VSpacer","AssetDetailDialog","UploadQueueDialog","AssetSelectListTable_default","AssetSelectListBar_default","AssetSelectListTiles_default","AssetSelectFilterForm_default","AssetMetadata_default","AFilterWrapper_default","AFilterString_default","ADialogToolbar_default","AssetDetailDialog_default","UploadQueueDialog_default","AFileInput_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","AAssetListInner_vue_vue_type_script_setup_true_lang_default","\"sort\"","\"sortModifiers\"","props","__props","sortModel","useModel","damConfigName","useDamConfigName","useI18n","useAssetSelectActions","DatatablePaginationKey","pagination","useCommonAdminCoreDamOptions","useDamConfigState","damClient","assetDetailStore","useAssetDetailStore","storeToRefs","assetSelectStore","useAssetSelectStore","useSidebar","useDisplay","useAlerts","useAssetListFilter","provide","FilterConfigKey","filterConfig","FilterDataKey","filterData","useFilterHelpers","submitFilterAction","submitFilter","fetchAssetListDebounced","mdAndDown","closeSidebarLeft","resetFilterAction","resetFilter","resetAssetList","onInit","selectConfigLocal","cloneDeep","filterAllowedImageWidgetSelectConfigs","showErrorT","reset","initStoreContext","useGridView","componentComputed","computed","gridView","AssetSelectGridView","extId","selectedLicenceId","found","config","loadingSidebarRight","customFormConfigLoading","detailLoading","ref","customFormConfigFailed","sortByChange","option","detailOfPanel","onOpenEditDialog","asset","onCloseEditDialog","ofPanel","readActiveItemAgain","shown","imageWidgetUploadConfig","inject","ImageWidgetUploadConfigKey","uploadEnabled","isDefined","useUploadQueueDialog","uploadQueuesStore","useUploadQueuesStore","useDamAcceptTypeAndSizeHelper","uploadQueue","onFileInput","files","uploadQueueDialogSaving","stopQueueLeftBehind","onUploadApply","watch","isUndefined","newValue","type","getDamConfigAssetCustomFormElements","loadDamConfigAssetCustomFormElements","oldValue","onUnmounted","_component_ABtnSecondary","resolveComponent","openBlock","createElementBlock","Fragment","renderSlot","_ctx","unref","uploadAccept","uploadSizes","createVNode","withCtx","fileInputProps","VBtn","normalizeProps","guardReactiveProps","createTextVNode","toDisplayString","t","createCommentVNode","createElementVNode","normalizeClass","createBlock","VRow","VCol","VSelect","_cache","isRef","$event","assetListEnabledFilters","sidebarRight","resolveDynamicComponent","withDirectives","loader","fetchNextPage","vShow","Intersect","fetchNextPageInView","VProgressCircular","VDialog","v","closeSidebarRight","VCard","VCardText","VCardActions","VSpacer","dialog","uploadQueueDialog"],"sources":["../../../../../src/domains/dam/assetSelect/components/AAssetListInner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onUnmounted, provide, ref, watch } from 'vue'\nimport { useDisplay } from 'vuetify'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetDetailItemDto, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetSelectActions } from '@/domains/dam/assetSelect/composables/assetSelectListActions'\nimport AssetSelectListTable from '@/domains/dam/assetSelect/components/AssetSelectListTable.vue'\nimport AssetSelectListBar from '@/domains/dam/assetSelect/components/AssetSelectListBar.vue'\nimport { AssetSelectGridView, useGridView } from '@/domains/dam/assetSelect/composables/assetSelectGridView'\nimport AssetSelectListTiles from '@/domains/dam/assetSelect/components/AssetSelectListTiles.vue'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport AssetSelectFilterForm from '@/domains/dam/assetSelect/components/AssetSelectFilterForm.vue'\nimport { filterAllowedImageWidgetSelectConfigs } from '@/domains/dam/config/utils/damFilterUserAllowedUploadConfigs'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport type { DamConfigLicenceExtSystemReturnType, DamExtSystemConfig } from '@/domains/dam/types/DamConfig'\nimport { cloneDeep, isDefined, isUndefined } from '@/shared/utils/common'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type DatatableOrderingOption } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport { DatatablePaginationKey, FilterConfigKey, FilterDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport AFilterWrapper from '@/domains/filters/components/AFilterWrapper.vue'\nimport AFilterString from '@/domains/filters/components/AFilterString.vue'\nimport { useFilterHelpers } from '@/domains/filters/composables/filterFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AssetDetailDialog from '@/domains/dam/assetDetail/components/AssetDetailDialog.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { ImageWidgetUploadConfigKey } from '@/domains/dam/imageWidget/utils/imageWidgetInkectionKeys'\nimport { useDamAcceptTypeAndSizeHelper } from '@/domains/dam/config/composables/acceptTypeAndSizeHelper'\nimport { useUploadQueueDialog } from '@/domains/dam/uploadQueue/composables/useUploadQueueDialog'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport UploadQueueDialog from '@/domains/dam/uploadQueue/components/UploadQueueDialog.vue'\nimport AFileInput from '@/domains/ui/file/components/AFileInput.vue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n queueKey: UploadQueueKey\n selectConfigs: DamConfigLicenceExtSystemReturnType[]\n inPodcast?: boolean | null\n configName?: string\n skipCurrentUserCheck?: boolean\n variant?: 'default' | 'inline'\n }>(),\n {\n inPodcast: null,\n configName: undefined,\n skipCurrentUserCheck: false,\n variant: 'default',\n }\n)\n\nconst sortModel = defineModel<number>('sort', { default: 1, required: false })\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst {\n damClient,\n loader,\n pagination,\n fetchNextPage,\n fetchNextPageInView,\n initStoreContext,\n detailLoading,\n readActiveItemAgain,\n fetchAssetListDebounced,\n reset,\n resetAssetList,\n} = useAssetSelectActions(damConfigName)\n// The list bar ordering reads this. Without it the dialog would use the host page's pagination.\nprovide(DatatablePaginationKey, pagination)\n\nconst { assetListEnabledFilters } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst { loadDamConfigAssetCustomFormElements, getDamConfigAssetCustomFormElements } = useDamConfigState(\n damClient,\n damConfigName\n)\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, dialog } = storeToRefs(assetDetailStore)\nconst assetSelectStore = useAssetSelectStore()\nconst { selectedLicenceId } = storeToRefs(assetSelectStore)\n\nconst { sidebarRight, closeSidebarRight, closeSidebarLeft } = useSidebar()\nconst { mdAndDown } = useDisplay()\nconst { showErrorT } = useAlerts()\n\nconst { filterData, filterConfig } = useAssetListFilter()\nprovide(FilterConfigKey, filterConfig)\nprovide(FilterDataKey, filterData)\n\nconst { resetFilter, submitFilter } = useFilterHelpers(filterData, filterConfig, {\n populateUrlParams: false,\n storeFiltersLocalStorage: false,\n})\n\nconst submitFilterAction = () => {\n submitFilter(pagination, fetchAssetListDebounced)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst resetFilterAction = () => {\n resetFilter(pagination, resetAssetList)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst onInit = () => {\n let selectConfigLocal = cloneDeep(props.selectConfigs)\n if (!props.skipCurrentUserCheck) {\n selectConfigLocal = filterAllowedImageWidgetSelectConfigs(props.selectConfigs, damConfigName)\n }\n if (selectConfigLocal.length === 0) {\n showErrorT('common.assetSelect.error.unallowedLicence')\n return\n }\n\n reset()\n initStoreContext(selectConfigLocal, props.assetType, props.inPodcast, false, 0, 0)\n fetchAssetListDebounced()\n}\n\nconst { gridView } = useGridView()\n\nconst componentComputed = computed(() => {\n switch (gridView.value) {\n case AssetSelectGridView.Table:\n return AssetSelectListTable\n default:\n case AssetSelectGridView.Masonry:\n case AssetSelectGridView.Thumbnail:\n return AssetSelectListTiles\n }\n})\n\nconst extId = computed(() => {\n if (props.selectConfigs.length === 0) return undefined\n if (selectedLicenceId.value > 0) {\n const found = props.selectConfigs.find((config) => config.licence === selectedLicenceId.value)\n if (found) return found.extSystem\n }\n return undefined\n})\n\nconst loadingSidebarRight = computed(() => {\n return customFormConfigLoading.value || detailLoading.value\n})\n\nconst { showErrorsDefault } = useAlerts()\nconst customFormConfigLoading = ref(true)\n// The custom fields config could not be read. The side panel shows\n// a notice instead of the asset form, which needs that config.\nconst customFormConfigFailed = ref(false)\n\nconst sortByChange = (option: DatatableOrderingOption) => {\n pagination.value.sortBy = null\n if (option.sortBy) {\n pagination.value.sortBy = { key: option.sortBy.key, order: option.sortBy.order }\n }\n fetchAssetListDebounced()\n}\n\n// Whether the open detail was opened by the side panel's \"edit\".\n// Queue row details are rendered here too, and closing one makes the panel reread its own asset.\nlet detailOfPanel = false\n\nconst onOpenEditDialog = () => {\n if (!asset.value) return\n detailOfPanel = true\n dialog.value = props.queueKey\n}\n\n// The panel rereads the asset its detail showed, not the one the list remembers.\n// They differ after a click made while the panel showed the asset it opened.\nconst onCloseEditDialog = (shown: AssetDetailItemDto | null) => {\n const ofPanel = detailOfPanel\n detailOfPanel = false\n readActiveItemAgain(ofPanel ? (shown?.id ?? null) : null)\n}\n\nconst imageWidgetUploadConfig = inject(ImageWidgetUploadConfigKey, undefined)\nconst uploadEnabled = computed(() => isDefined(imageWidgetUploadConfig) && isDefined(imageWidgetUploadConfig.value))\n\nconst { uploadQueueDialog, uploadQueueDialogSaving, stopQueueLeftBehind } = useUploadQueueDialog()\nconst uploadQueuesStore = useUploadQueuesStore()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { uploadSizes, uploadAccept } = useDamAcceptTypeAndSizeHelper(\n props.assetType,\n (imageWidgetUploadConfig?.value?.extSystemConfig ?? {}) as DamExtSystemConfig\n)\n\nconst uploadQueue = computed(() => {\n return uploadQueuesStore.getQueue(props.queueKey)\n})\n\nconst onFileInput = (files: File[]) => {\n if (files.length === 0) return\n // The page has its own entry points (button, window-wide dropzone) that bypass the dialog.\n // While this queue's dialog saves, no file is accepted. \"Save and apply\" empties\n // the queue, and a file queued meanwhile was lost half uploaded without notice.\n if (uploadQueueDialogSaving.value === props.queueKey) return\n const config = imageWidgetUploadConfig?.value\n if (!config) return\n stopQueueLeftBehind(props.queueKey)\n uploadQueuesStore.addByFiles(props.queueKey, config.extSystem, config.licence, files, damConfigName)\n uploadQueueDialog.value = props.queueKey\n}\n\nconst onUploadApply = () => {\n uploadQueueDialog.value = null\n uploadQueuesStore.stopUpload(props.queueKey)\n fetchAssetListDebounced()\n}\n\nwatch(\n extId,\n async (newValue) => {\n if (isUndefined(newValue)) return\n customFormConfigLoading.value = true\n customFormConfigFailed.value = false\n // Custom fields of the listed type: all types of the ext system if\n // none are loaded, else only this type if its read failed before.\n // Loaded types are not read again.\n const type = props.assetType\n if (isUndefined(getDamConfigAssetCustomFormElements(newValue, type))) {\n try {\n await loadDamConfigAssetCustomFormElements(\n newValue,\n getDamConfigAssetCustomFormElements(newValue) ? [type] : undefined\n )\n } catch (e) {\n showErrorsDefault(e)\n }\n // Ignore an answer for an ext system the list has since left.\n if (extId.value !== newValue) return\n customFormConfigFailed.value = isUndefined(getDamConfigAssetCustomFormElements(newValue, type))\n }\n customFormConfigLoading.value = false\n },\n { immediate: true }\n)\n\nwatch(selectedLicenceId, (newValue, oldValue) => {\n if (newValue === oldValue) return\n resetFilterAction()\n})\n\nonInit()\n\nonUnmounted(() => {\n reset()\n})\n</script>\n\n<template>\n <slot\n v-if=\"uploadEnabled\"\n name=\"upload-activator\"\n :on-file-input=\"onFileInput\"\n :upload-accept=\"uploadAccept\"\n :upload-sizes=\"uploadSizes\"\n >\n <AFileInput\n :file-input-key=\"uploadQueue?.fileInputKey\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n multiple\n @files-input=\"onFileInput\"\n >\n <template #activator=\"{ props: fileInputProps }\">\n <VBtn v-bind=\"fileInputProps\">\n {{ t('common.button.upload') }}\n </VBtn>\n </template>\n </AFileInput>\n </slot>\n <div\n class=\"subject-select__card\"\n :class=\"{ 'subject-select__card--inline': variant === 'inline' }\"\n >\n <div class=\"px-2 pt-2\">\n <slot name=\"filter\">\n <AFilterWrapper\n @submit=\"submitFilterAction\"\n @reset=\"resetFilterAction\"\n >\n <template #search>\n <AFilterString name=\"text\" />\n </template>\n <template #detail>\n <VRow v-if=\"selectConfigs.length > 1\">\n <VCol :cols=\"12\">\n <VSelect\n v-model=\"selectedLicenceId\"\n :label=\"t('common.assetSelect.filter.licence')\"\n :items=\"selectConfigs\"\n item-title=\"licenceName\"\n item-value=\"licence\"\n hide-details\n />\n </VCol>\n </VRow>\n <AssetSelectFilterForm\n use-config-layout\n hide-text-search\n :enabled-filters=\"assetListEnabledFilters\"\n :config-name=\"damConfigName\"\n />\n </template>\n </AFilterWrapper>\n </slot>\n </div>\n <AssetSelectListBar\n v-model:sort=\"sortModel\"\n hide-filter-toggle\n @sort-by-change=\"sortByChange\"\n />\n <div\n class=\"subject-select__main\"\n :class=\"{\n 'subject-select__main--sidebar-right-active': sidebarRight && !mdAndDown,\n }\"\n >\n <div class=\"subject-select__content\">\n <component\n :is=\"componentComputed\"\n v-if=\"extId\"\n :ext-system=\"extId\"\n />\n <div class=\"d-flex w-100 align-center justify-center pa-4\">\n <ABtnSecondary\n v-show=\"pagination.hasNextPage || loader\"\n v-intersect=\"fetchNextPageInView\"\n :loading=\"loader\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n {{ t('common.button.loadMore') }}\n </ABtnSecondary>\n </div>\n </div>\n <div\n v-if=\"!mdAndDown\"\n class=\"subject-select__sidebar-right border-s\"\n >\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"!asset\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.assetSelect.meta.info.noAssetSelected') }}\n </div>\n <div\n v-else\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </div>\n </div>\n <VDialog\n v-if=\"mdAndDown\"\n v-model=\"sidebarRight\"\n scrollable\n @update:model-value=\"\n (v) => {\n if (!v) closeSidebarRight()\n }\n \"\n >\n <VCard>\n <ADialogToolbar @cancel=\"closeSidebarRight\">\n {{ t('common.assetSelect.meta.info.toggle') }}\n </ADialogToolbar>\n <VCardText>\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"asset\"\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn @click=\"closeSidebarRight\">\n {{ t('common.button.close') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n </div>\n <AssetDetailDialog\n v-if=\"dialog === queueKey && extId\"\n :queue-key=\"queueKey\"\n :ext-system=\"extId\"\n @close=\"onCloseEditDialog\"\n />\n <UploadQueueDialog\n v-if=\"uploadEnabled && uploadQueueDialog === queueKey && imageWidgetUploadConfig\"\n :queue-key=\"queueKey\"\n :ext-system=\"imageWidgetUploadConfig.extSystem\"\n :licence-id=\"imageWidgetUploadConfig.licence\"\n :file-input-key=\"uploadQueue?.fileInputKey ?? -1\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n @apply=\"onUploadApply\"\n @files-input=\"onFileInput\"\n @drop=\"onFileInput\"\n />\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AAssetListInner.vue_vue_type_script_setup_true_lang.js","names":["_useModel","AssetSelectListTable","AssetSelectListTiles","_openBlock","_createElementBlock","_renderSlot","_unref","_createVNode","AFileInput","_withCtx","_component_VBtn","_normalizeProps","_guardReactiveProps","_createTextVNode","_toDisplayString","_createElementVNode","_normalizeClass","AFilterWrapper","AFilterString","_createBlock","_component_VRow","_component_VCol","_component_VSelect","_isRef","AssetSelectFilterForm","AssetSelectListBar","_resolveDynamicComponent","_withDirectives","_vShow","_directive_intersect","_component_VProgressCircular","AssetMetadata","_component_VDialog","_component_VCard","ADialogToolbar","_component_VCardText","_component_VCardActions","_component_VSpacer","AssetDetailDialog","UploadQueueDialog","AssetSelectListTable_default","AssetSelectListBar_default","AssetSelectListTiles_default","AssetSelectFilterForm_default","AssetMetadata_default","AFilterWrapper_default","AFilterString_default","ADialogToolbar_default","AssetDetailDialog_default","UploadQueueDialog_default","AFileInput_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","AAssetListInner_vue_vue_type_script_setup_true_lang_default","\"sort\"","\"sortModifiers\"","props","__props","sortModel","useModel","damConfigName","useDamConfigName","useI18n","useAssetSelectActions","DatatablePaginationKey","pagination","useCommonAdminCoreDamOptions","useDamConfigState","damClient","assetDetailStore","useAssetDetailStore","storeToRefs","assetSelectStore","useAssetSelectStore","useSidebar","useDisplay","useAlerts","useAssetListFilter","provide","FilterConfigKey","filterConfig","FilterDataKey","filterData","useFilterHelpers","submitFilterAction","submitFilter","fetchAssetListDebounced","mdAndDown","closeSidebarLeft","resetFilterAction","resetFilter","resetAssetList","onInit","selectConfigLocal","cloneDeep","filterAllowedImageWidgetSelectConfigs","showErrorT","reset","initStoreContext","useGridView","componentComputed","computed","gridView","AssetSelectGridView","extId","selectedLicenceId","found","config","loadingSidebarRight","customFormConfigLoading","detailLoading","ref","customFormConfigFailed","sortByChange","option","detailOfPanel","onOpenEditDialog","asset","onCloseEditDialog","ofPanel","readActiveItemAgain","shown","imageWidgetUploadConfig","inject","ImageWidgetUploadConfigKey","uploadEnabled","isDefined","useUploadQueueDialog","uploadQueuesStore","useUploadQueuesStore","useDamAcceptTypeAndSizeHelper","uploadQueue","onFileInput","files","uploadQueueDialogSaving","stopQueueLeftBehind","onUploadApply","watch","isUndefined","newValue","type","getDamConfigAssetCustomFormElements","loadDamConfigAssetCustomFormElements","oldValue","onUnmounted","_component_ABtnSecondary","resolveComponent","openBlock","createElementBlock","Fragment","renderSlot","_ctx","unref","uploadAccept","uploadSizes","createVNode","withCtx","fileInputProps","VBtn","normalizeProps","guardReactiveProps","createTextVNode","toDisplayString","t","createCommentVNode","createElementVNode","normalizeClass","createBlock","VRow","VCol","VSelect","_cache","isRef","$event","assetListEnabledFilters","sidebarRight","resolveDynamicComponent","withDirectives","loader","fetchNextPage","vShow","Intersect","fetchNextPageInView","VProgressCircular","VDialog","v","closeSidebarRight","VCard","VCardText","VCardActions","VSpacer","dialog","uploadQueueDialog"],"sources":["../../../../../src/domains/dam/assetSelect/components/AAssetListInner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject, onUnmounted, provide, ref, watch } from 'vue'\nimport { useDisplay } from 'vuetify'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetDetailItemDto, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetSelectActions } from '@/domains/dam/assetSelect/composables/assetSelectListActions'\nimport AssetSelectListTable from '@/domains/dam/assetSelect/components/AssetSelectListTable.vue'\nimport AssetSelectListBar from '@/domains/dam/assetSelect/components/AssetSelectListBar.vue'\nimport { AssetSelectGridView, useGridView } from '@/domains/dam/assetSelect/composables/assetSelectGridView'\nimport AssetSelectListTiles from '@/domains/dam/assetSelect/components/AssetSelectListTiles.vue'\nimport { useSidebar } from '@/domains/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport AssetSelectFilterForm from '@/domains/dam/assetSelect/components/AssetSelectFilterForm.vue'\nimport { filterAllowedImageWidgetSelectConfigs } from '@/domains/dam/config/utils/damFilterUserAllowedUploadConfigs'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport type { DamConfigLicenceExtSystemReturnType, DamExtSystemConfig } from '@/domains/dam/types/DamConfig'\nimport { cloneDeep, isDefined, isUndefined } from '@/shared/utils/common'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { useAssetSelectStore } from '@/domains/dam/assetSelect/store/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type DatatableOrderingOption } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useAssetListFilter } from '@/domains/dam/assetSelect/filter/AssetFilter'\nimport { DatatablePaginationKey, FilterConfigKey, FilterDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport AFilterWrapper from '@/domains/filters/components/AFilterWrapper.vue'\nimport AFilterString from '@/domains/filters/components/AFilterString.vue'\nimport { useFilterHelpers } from '@/domains/filters/composables/filterFactory'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AssetDetailDialog from '@/domains/dam/assetDetail/components/AssetDetailDialog.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { ImageWidgetUploadConfigKey } from '@/domains/dam/imageWidget/utils/imageWidgetInkectionKeys'\nimport { useDamAcceptTypeAndSizeHelper } from '@/domains/dam/config/composables/acceptTypeAndSizeHelper'\nimport { useUploadQueueDialog } from '@/domains/dam/uploadQueue/composables/useUploadQueueDialog'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport UploadQueueDialog from '@/domains/dam/uploadQueue/components/UploadQueueDialog.vue'\nimport AFileInput from '@/domains/ui/file/components/AFileInput.vue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n queueKey: UploadQueueKey\n selectConfigs: DamConfigLicenceExtSystemReturnType[]\n inPodcast?: boolean | null\n configName?: string\n skipCurrentUserCheck?: boolean\n variant?: 'default' | 'inline'\n }>(),\n {\n inPodcast: null,\n configName: undefined,\n skipCurrentUserCheck: false,\n variant: 'default',\n }\n)\n\nconst sortModel = defineModel<number>('sort', { default: 1, required: false })\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst {\n damClient,\n loader,\n pagination,\n fetchNextPage,\n fetchNextPageInView,\n initStoreContext,\n detailLoading,\n readActiveItemAgain,\n fetchAssetListDebounced,\n reset,\n resetAssetList,\n} = useAssetSelectActions(damConfigName)\n// The list bar ordering reads this. Without it the dialog would use the host page's pagination.\nprovide(DatatablePaginationKey, pagination)\n\nconst { assetListEnabledFilters } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst { loadDamConfigAssetCustomFormElements, getDamConfigAssetCustomFormElements } = useDamConfigState(\n damClient,\n damConfigName\n)\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, dialog } = storeToRefs(assetDetailStore)\nconst assetSelectStore = useAssetSelectStore()\nconst { selectedLicenceId } = storeToRefs(assetSelectStore)\n\nconst { sidebarRight, closeSidebarRight, closeSidebarLeft } = useSidebar()\nconst { mdAndDown } = useDisplay()\nconst { showErrorT } = useAlerts()\n\nconst { filterData, filterConfig } = useAssetListFilter()\nprovide(FilterConfigKey, filterConfig)\nprovide(FilterDataKey, filterData)\n\nconst { resetFilter, submitFilter } = useFilterHelpers(filterData, filterConfig, {\n populateUrlParams: false,\n storeFiltersLocalStorage: false,\n})\n\nconst submitFilterAction = () => {\n submitFilter(pagination, fetchAssetListDebounced)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst resetFilterAction = () => {\n resetFilter(pagination, resetAssetList)\n if (mdAndDown.value) closeSidebarLeft()\n}\n\nconst onInit = () => {\n let selectConfigLocal = cloneDeep(props.selectConfigs)\n if (!props.skipCurrentUserCheck) {\n selectConfigLocal = filterAllowedImageWidgetSelectConfigs(props.selectConfigs, damConfigName)\n }\n if (selectConfigLocal.length === 0) {\n showErrorT('common.assetSelect.error.unallowedLicence')\n return\n }\n\n reset()\n initStoreContext(selectConfigLocal, props.assetType, props.inPodcast, false, 0, 0)\n fetchAssetListDebounced()\n}\n\nconst { gridView } = useGridView()\n\nconst componentComputed = computed(() => {\n switch (gridView.value) {\n case AssetSelectGridView.Table:\n return AssetSelectListTable\n default:\n case AssetSelectGridView.Masonry:\n case AssetSelectGridView.Thumbnail:\n return AssetSelectListTiles\n }\n})\n\nconst extId = computed(() => {\n if (props.selectConfigs.length === 0) return undefined\n if (selectedLicenceId.value > 0) {\n const found = props.selectConfigs.find((config) => config.licence === selectedLicenceId.value)\n if (found) return found.extSystem\n }\n return undefined\n})\n\nconst loadingSidebarRight = computed(() => {\n return customFormConfigLoading.value || detailLoading.value\n})\n\nconst { showErrorsDefault } = useAlerts()\nconst customFormConfigLoading = ref(true)\n// The custom fields config could not be read. The side panel shows\n// a notice instead of the asset form, which needs that config.\nconst customFormConfigFailed = ref(false)\n\nconst sortByChange = (option: DatatableOrderingOption) => {\n pagination.value.sortBy = null\n if (option.sortBy) {\n pagination.value.sortBy = { key: option.sortBy.key, order: option.sortBy.order }\n }\n fetchAssetListDebounced()\n}\n\n// Whether the open detail was opened by the side panel's \"edit\".\n// Queue row details are rendered here too, and closing one makes the panel reread its own asset.\nlet detailOfPanel = false\n\nconst onOpenEditDialog = () => {\n if (!asset.value) return\n detailOfPanel = true\n dialog.value = props.queueKey\n}\n\n// The panel rereads the asset its detail showed, not the one the list remembers.\n// They differ after a click made while the panel showed the asset it opened.\nconst onCloseEditDialog = (shown: AssetDetailItemDto | null) => {\n const ofPanel = detailOfPanel\n detailOfPanel = false\n readActiveItemAgain(ofPanel ? (shown?.id ?? null) : null)\n}\n\nconst imageWidgetUploadConfig = inject(ImageWidgetUploadConfigKey, undefined)\nconst uploadEnabled = computed(() => isDefined(imageWidgetUploadConfig) && isDefined(imageWidgetUploadConfig.value))\n\nconst { uploadQueueDialog, uploadQueueDialogSaving, stopQueueLeftBehind } = useUploadQueueDialog()\nconst uploadQueuesStore = useUploadQueuesStore()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { uploadSizes, uploadAccept } = useDamAcceptTypeAndSizeHelper(\n props.assetType,\n (imageWidgetUploadConfig?.value?.extSystemConfig ?? {}) as DamExtSystemConfig\n)\n\nconst uploadQueue = computed(() => {\n return uploadQueuesStore.getQueue(props.queueKey)\n})\n\nconst onFileInput = (files: File[]) => {\n if (files.length === 0) return\n // The page has its own entry points (button, window-wide dropzone) that bypass the dialog.\n // While this queue's dialog saves, no file is accepted. \"Save and apply\" empties\n // the queue, and a file queued meanwhile was lost half uploaded without notice.\n if (uploadQueueDialogSaving.value === props.queueKey) return\n const config = imageWidgetUploadConfig?.value\n if (!config) return\n stopQueueLeftBehind(props.queueKey)\n uploadQueuesStore.addByFiles(props.queueKey, config.extSystem, config.licence, files, damConfigName)\n uploadQueueDialog.value = props.queueKey\n}\n\nconst onUploadApply = () => {\n uploadQueueDialog.value = null\n uploadQueuesStore.stopUpload(props.queueKey)\n fetchAssetListDebounced()\n}\n\nwatch(\n extId,\n async (newValue) => {\n if (isUndefined(newValue)) return\n customFormConfigLoading.value = true\n customFormConfigFailed.value = false\n // Custom fields of the listed type: all types of the ext system if\n // none are loaded, else only this type if its read failed before.\n // Loaded types are not read again.\n const type = props.assetType\n if (isUndefined(getDamConfigAssetCustomFormElements(newValue, type))) {\n try {\n await loadDamConfigAssetCustomFormElements(\n newValue,\n getDamConfigAssetCustomFormElements(newValue) ? [type] : undefined\n )\n } catch (e) {\n showErrorsDefault(e)\n }\n // Ignore an answer for an ext system the list has since left.\n if (extId.value !== newValue) return\n customFormConfigFailed.value = isUndefined(getDamConfigAssetCustomFormElements(newValue, type))\n }\n customFormConfigLoading.value = false\n },\n { immediate: true }\n)\n\nwatch(selectedLicenceId, (newValue, oldValue) => {\n if (newValue === oldValue) return\n resetFilterAction()\n})\n\nonInit()\n\nonUnmounted(() => {\n reset()\n})\n</script>\n\n<template>\n <slot\n v-if=\"uploadEnabled\"\n name=\"upload-activator\"\n :on-file-input=\"onFileInput\"\n :upload-accept=\"uploadAccept\"\n :upload-sizes=\"uploadSizes\"\n >\n <AFileInput\n :file-input-key=\"uploadQueue?.fileInputKey\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n multiple\n @files-input=\"onFileInput\"\n >\n <template #activator=\"{ props: fileInputProps }\">\n <VBtn v-bind=\"fileInputProps\">\n {{ t('common.button.upload') }}\n </VBtn>\n </template>\n </AFileInput>\n </slot>\n <div\n class=\"subject-select__card\"\n :class=\"{ 'subject-select__card--inline': variant === 'inline' }\"\n >\n <div class=\"px-2 pt-2\">\n <slot name=\"filter\">\n <AFilterWrapper\n @submit=\"submitFilterAction\"\n @reset=\"resetFilterAction\"\n >\n <template #search>\n <AFilterString name=\"text\" />\n </template>\n <template #detail>\n <VRow v-if=\"selectConfigs.length > 1\">\n <VCol :cols=\"12\">\n <VSelect\n v-model=\"selectedLicenceId\"\n :label=\"t('common.assetSelect.filter.licence')\"\n :items=\"selectConfigs\"\n item-title=\"licenceName\"\n item-value=\"licence\"\n hide-details\n />\n </VCol>\n </VRow>\n <AssetSelectFilterForm\n use-config-layout\n hide-text-search\n :enabled-filters=\"assetListEnabledFilters\"\n :config-name=\"damConfigName\"\n />\n </template>\n </AFilterWrapper>\n </slot>\n </div>\n <AssetSelectListBar\n v-model:sort=\"sortModel\"\n hide-filter-toggle\n @sort-by-change=\"sortByChange\"\n />\n <div\n class=\"subject-select__main\"\n :class=\"{\n 'subject-select__main--sidebar-right-active': sidebarRight && !mdAndDown,\n }\"\n >\n <div class=\"subject-select__content\">\n <component\n :is=\"componentComputed\"\n v-if=\"extId\"\n :ext-system=\"extId\"\n />\n <div class=\"d-flex w-100 align-center justify-center pa-4\">\n <ABtnSecondary\n v-show=\"pagination.hasNextPage || loader\"\n v-intersect=\"fetchNextPageInView\"\n :loading=\"loader\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n {{ t('common.button.loadMore') }}\n </ABtnSecondary>\n </div>\n </div>\n <div\n v-if=\"!mdAndDown\"\n class=\"subject-select__sidebar-right border-s\"\n >\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"!asset\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.assetSelect.meta.info.noAssetSelected') }}\n </div>\n <div\n v-else\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </div>\n </div>\n <VDialog\n v-if=\"mdAndDown\"\n v-model=\"sidebarRight\"\n scrollable\n @update:model-value=\"\n (v) => {\n if (!v) closeSidebarRight()\n }\n \"\n >\n <VCard>\n <ADialogToolbar @cancel=\"closeSidebarRight\">\n {{ t('common.assetSelect.meta.info.toggle') }}\n </ADialogToolbar>\n <VCardText>\n <div\n v-if=\"customFormConfigFailed\"\n class=\"d-flex w-100 align-center justify-center text-body-large\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n <div\n v-else-if=\"loadingSidebarRight\"\n class=\"d-flex w-100 align-center justify-center\"\n >\n <VProgressCircular indeterminate />\n </div>\n <div\n v-else-if=\"asset\"\n class=\"w-100\"\n >\n <slot\n name=\"sidebar-prepend\"\n :asset=\"asset\"\n />\n <AssetMetadata\n v-if=\"extId && !customFormConfigLoading\"\n :ext-system=\"extId\"\n readonly\n show-edit-button\n @edit-in-dam=\"onOpenEditDialog\"\n />\n </div>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn @click=\"closeSidebarRight\">\n {{ t('common.button.close') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n </div>\n <AssetDetailDialog\n v-if=\"dialog === queueKey && extId\"\n :queue-key=\"queueKey\"\n :ext-system=\"extId\"\n @close=\"onCloseEditDialog\"\n />\n <UploadQueueDialog\n v-if=\"uploadEnabled && uploadQueueDialog === queueKey && imageWidgetUploadConfig\"\n :queue-key=\"queueKey\"\n :ext-system=\"imageWidgetUploadConfig.extSystem\"\n :licence-id=\"imageWidgetUploadConfig.licence\"\n :file-input-key=\"uploadQueue?.fileInputKey ?? -1\"\n :accept=\"uploadAccept\"\n :max-sizes=\"uploadSizes\"\n @apply=\"onUploadApply\"\n @files-input=\"onFileInput\"\n @drop=\"onFileInput\"\n />\n</template>\n"],"mappings":"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"}