@anzusystems/common-admin 2.0.0-rc.10 → 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 (465) 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
  458. package/src/e2e/env.d.mts +46 -0
  459. package/src/e2e/env.mjs +78 -0
  460. package/src/e2e/index.d.mts +3 -0
  461. package/src/e2e/index.mjs +2 -0
  462. package/src/e2e/routeWalk.mjs +2 -1
  463. package/src/e2e/routeWalkConfig.d.mts +16 -0
  464. package/src/e2e/routeWalkConfig.mjs +52 -0
  465. package/src/e2e/types.d.mts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ASubjectSelect.js","names":["_sfc_main","ASubjectSelect_vue_vue_type_script_setup_true_lang_default","ASubjectSelect_default"],"sources":["../../../../src/domains/subjectSelect/components/ASubjectSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"TItem\">\nimport { computed, onMounted, provide, ref, toRaw, withModifiers } from 'vue'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport { useI18n } from 'vue-i18n'\nimport { useDisplay } from 'vuetify'\nimport type { Pagination } from '@/domains/api/composables/pagination'\nimport ADatatablePagination from '@/domains/filters/datatable/components/ADatatablePagination.vue'\nimport { SubjectSelectCloseSidebarKey } from '@/domains/filters/utils/filterInjectionKeys'\n\nconst props = withDefaults(\n defineProps<{\n selectedItems: Array<TItem>\n pagination: Pagination\n loading?: boolean\n minCount?: number\n maxCount?: number\n modelValue?: boolean | undefined // dialog\n dialogTitleT?: string\n paginationMode?: 'standard' | 'more'\n autoOpen?: boolean\n }>(),\n {\n loading: false,\n minCount: 1,\n maxCount: 1,\n modelValue: undefined,\n dialogTitleT: 'common.subjectSelect.texts.title',\n paginationMode: 'standard',\n autoOpen: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: boolean): void\n (e: 'update:pagination', data: Pagination): void\n (e: 'open'): void\n (e: 'pageChange'): void\n (e: 'confirm', data: Array<TItem>): void\n (e: 'fetchNextPage'): void\n}>()\n\nconst dialogLocal = ref(false)\nconst dialog = computed({\n get() {\n if (isUndefined(props.modelValue)) return dialogLocal.value\n return props.modelValue\n },\n set(newValue: boolean) {\n dialogLocal.value = newValue\n emit('update:modelValue', newValue)\n },\n})\n\nconst paginationComputed = computed({\n get: () => props.pagination,\n set: (newValue) => {\n emit('update:pagination', { ...toRaw(newValue) })\n },\n})\n\nconst { mdAndDown } = useDisplay()\nconst sidebarLeft = ref(!mdAndDown.value)\n\nconst closeSidebarOnMobile = () => {\n if (mdAndDown.value) sidebarLeft.value = false\n}\n\nprovide(SubjectSelectCloseSidebarKey, closeSidebarOnMobile)\n\nconst { t } = useI18n()\n\nconst selectedItemsCount = computed(() => {\n return props.selectedItems.length\n})\n\nconst disabledSubmit = computed(() => {\n return selectedItemsCount.value < props.minCount || selectedItemsCount.value > props.maxCount\n})\n\nconst onOpen = () => {\n emit('open')\n sidebarLeft.value = !mdAndDown.value\n dialog.value = true\n}\n\nconst toggleSidebar = () => {\n sidebarLeft.value = !sidebarLeft.value\n}\n\nconst onClose = () => {\n dialog.value = false\n}\n\nconst onConfirm = () => {\n emit(\n 'confirm',\n props.selectedItems.map((item) => toRaw(item))\n )\n onClose()\n}\n\nconst fetchNextPage = () => {\n emit('fetchNextPage')\n}\n\nconst onPageChange = () => {\n emit('pageChange')\n}\n\nconst lastPage = computed(() => {\n return Math.ceil(paginationComputed.value.totalCount / paginationComputed.value.rowsPerPage)\n})\n\n// `>=`, not `===`. An empty list has `lastPage` 0 while `page` is at least 1, so they never meet.\n// The same holds before the first request.\nconst hasNextPage = computed(() => {\n return !(\n (isNull(paginationComputed.value.hasNextPage) && paginationComputed.value.page >= lastPage.value) ||\n paginationComputed.value.hasNextPage === false\n )\n})\n\nconst autoloadOnIntersect = (isIntersecting: boolean) => {\n if (isIntersecting && hasNextPage.value && !props.loading) {\n fetchNextPage()\n }\n}\n\nonMounted(() => {\n if (props.autoOpen) {\n onOpen()\n }\n})\n\ndefineExpose({\n open: onOpen,\n closeSidebarOnMobile,\n})\n</script>\n\n<template>\n <slot\n name=\"activator\"\n :props=\"{ onClick: withModifiers(() => onOpen(), ['stop']) }\"\n />\n <VDialog\n v-bind=\"$attrs\"\n :model-value=\"dialog\"\n fullscreen\n class=\"subject-select\"\n @update:model-value=\"emit('update:modelValue', $event)\"\n >\n <VCard\n v-if=\"dialog\"\n class=\"subject-select__card\"\n >\n <ADialogToolbar\n class=\"subject-select__toolbar border-b\"\n @cancel=\"onClose\"\n >\n <slot name=\"title\">\n {{ t(dialogTitleT) }}\n </slot>\n </ADialogToolbar>\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n :height=\"46\"\n elevation=\"0\"\n class=\"border-b subject-select__second-bar\"\n >\n <slot name=\"second-bar\">\n <div class=\"d-flex flex-column w-100 px-1 align-center\">\n <div class=\"d-flex justify-space-between w-100 align-center\">\n <div class=\"d-flex align-center\">\n <VBtn\n :aria-label=\"t('common.subjectSelect.filter.toggle')\"\n icon\n :width=\"30\"\n :height=\"30\"\n @click=\"toggleSidebar\"\n >\n <VIcon\n icon=\"mdi-tune\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.subjectSelect.filter.toggle') }}\n </VTooltip>\n </VBtn>\n <slot name=\"second-bar-left\" />\n </div>\n <div class=\"d-flex align-center\">\n <slot name=\"second-bar-right\" />\n </div>\n </div>\n </div>\n </slot>\n </VToolbar>\n <div\n class=\"subject-select__main\"\n :class=\"{ 'subject-select__main--sidebar-active': sidebarLeft }\"\n >\n <div class=\"subject-select__sidebar border-e\">\n <div class=\"subject-select-filter\">\n <slot name=\"filter\" />\n </div>\n </div>\n <div class=\"subject-select__content\">\n <slot name=\"content\" />\n <div\n v-if=\"paginationMode === 'more'\"\n class=\"d-flex w-100 align-center justify-center pa-4\"\n >\n <ABtnSecondary\n v-show=\"hasNextPage || loading\"\n v-intersect.quiet=\"autoloadOnIntersect\"\n :loading=\"loading\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.button.loadMore') }}\n </slot>\n </ABtnSecondary>\n </div>\n <ADatatablePagination\n v-else\n v-model=\"paginationComputed\"\n @change=\"onPageChange\"\n />\n </div>\n </div>\n <div class=\"subject-select__actions border-t\">\n <div v-if=\"minCount === maxCount\">\n {{\n t('common.subjectSelect.texts.pickExactCount', {\n count: minCount,\n selected: selectedItemsCount,\n })\n }}\n </div>\n <div v-else>\n {{\n t('common.subjectSelect.texts.pickRangeCount', {\n minCount: minCount,\n maxCount: maxCount,\n selected: selectedItemsCount,\n })\n }}\n </div>\n <VSpacer />\n <ABtnPrimary\n :disabled=\"disabledSubmit\"\n @click.stop=\"onConfirm\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.button.confirm') }}\n </slot>\n </ABtnPrimary>\n </div>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ASubjectSelect.js","names":["ASubjectSelect_vue_vue_type_script_setup_true_lang_default","ASubjectSelect_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ASubjectSelect.vue_vue_type_script_setup_true_lang.js","names":["$attrs","_resolveComponent","_openBlock","_createElementBlock","_Fragment","_renderSlot","_createVNode","_component_VDialog","_mergeProps","_withCtx","_createBlock","_component_VCard","ADialogToolbar","_createTextVNode","_toDisplayString","_unref","_component_VToolbar","_createElementVNode","_component_VBtn","_component_VIcon","_component_VTooltip","_normalizeClass","_withDirectives","_vShow","_directive_intersect","ADatatablePagination","_component_VSpacer","_withModifiers","_createCommentVNode","ADialogToolbar_default","ADatatablePagination_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","ASubjectSelect_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","dialogLocal","ref","dialog","computed","isUndefined","newValue","paginationComputed","toRaw","useDisplay","sidebarLeft","mdAndDown","closeSidebarOnMobile","SubjectSelectCloseSidebarKey","useI18n","selectedItemsCount","disabledSubmit","onOpen","toggleSidebar","onClose","onConfirm","item","fetchNextPage","onPageChange","lastPage","hasNextPage","isNull","autoloadOnIntersect","isIntersecting","onMounted","_component_ABtnSecondary","resolveComponent","_component_ABtnPrimary","openBlock","createElementBlock","Fragment","renderSlot","_ctx","withModifiers","createVNode","VDialog","mergeProps","_cache","$event","withCtx","createBlock","VCard","createTextVNode","toDisplayString","unref","t","VToolbar","createElementVNode","VBtn","VIcon","VTooltip","normalizeClass","withDirectives","vShow","Intersect","VSpacer","createCommentVNode"],"sources":["../../../../src/domains/subjectSelect/components/ASubjectSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"TItem\">\nimport { computed, onMounted, provide, ref, toRaw, withModifiers } from 'vue'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport { useI18n } from 'vue-i18n'\nimport { useDisplay } from 'vuetify'\nimport type { Pagination } from '@/domains/api/composables/pagination'\nimport ADatatablePagination from '@/domains/filters/datatable/components/ADatatablePagination.vue'\nimport { SubjectSelectCloseSidebarKey } from '@/domains/filters/utils/filterInjectionKeys'\n\nconst props = withDefaults(\n defineProps<{\n selectedItems: Array<TItem>\n pagination: Pagination\n loading?: boolean\n minCount?: number\n maxCount?: number\n modelValue?: boolean | undefined // dialog\n dialogTitleT?: string\n paginationMode?: 'standard' | 'more'\n autoOpen?: boolean\n }>(),\n {\n loading: false,\n minCount: 1,\n maxCount: 1,\n modelValue: undefined,\n dialogTitleT: 'common.subjectSelect.texts.title',\n paginationMode: 'standard',\n autoOpen: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: boolean): void\n (e: 'update:pagination', data: Pagination): void\n (e: 'open'): void\n (e: 'pageChange'): void\n (e: 'confirm', data: Array<TItem>): void\n (e: 'fetchNextPage'): void\n}>()\n\nconst dialogLocal = ref(false)\nconst dialog = computed({\n get() {\n if (isUndefined(props.modelValue)) return dialogLocal.value\n return props.modelValue\n },\n set(newValue: boolean) {\n dialogLocal.value = newValue\n emit('update:modelValue', newValue)\n },\n})\n\nconst paginationComputed = computed({\n get: () => props.pagination,\n set: (newValue) => {\n emit('update:pagination', { ...toRaw(newValue) })\n },\n})\n\nconst { mdAndDown } = useDisplay()\nconst sidebarLeft = ref(!mdAndDown.value)\n\nconst closeSidebarOnMobile = () => {\n if (mdAndDown.value) sidebarLeft.value = false\n}\n\nprovide(SubjectSelectCloseSidebarKey, closeSidebarOnMobile)\n\nconst { t } = useI18n()\n\nconst selectedItemsCount = computed(() => {\n return props.selectedItems.length\n})\n\nconst disabledSubmit = computed(() => {\n return selectedItemsCount.value < props.minCount || selectedItemsCount.value > props.maxCount\n})\n\nconst onOpen = () => {\n emit('open')\n sidebarLeft.value = !mdAndDown.value\n dialog.value = true\n}\n\nconst toggleSidebar = () => {\n sidebarLeft.value = !sidebarLeft.value\n}\n\nconst onClose = () => {\n dialog.value = false\n}\n\nconst onConfirm = () => {\n emit(\n 'confirm',\n props.selectedItems.map((item) => toRaw(item))\n )\n onClose()\n}\n\nconst fetchNextPage = () => {\n emit('fetchNextPage')\n}\n\nconst onPageChange = () => {\n emit('pageChange')\n}\n\nconst lastPage = computed(() => {\n return Math.ceil(paginationComputed.value.totalCount / paginationComputed.value.rowsPerPage)\n})\n\n// `>=`, not `===`. An empty list has `lastPage` 0 while `page` is at least 1, so they never meet.\n// The same holds before the first request.\nconst hasNextPage = computed(() => {\n return !(\n (isNull(paginationComputed.value.hasNextPage) && paginationComputed.value.page >= lastPage.value) ||\n paginationComputed.value.hasNextPage === false\n )\n})\n\nconst autoloadOnIntersect = (isIntersecting: boolean) => {\n if (isIntersecting && hasNextPage.value && !props.loading) {\n fetchNextPage()\n }\n}\n\nonMounted(() => {\n if (props.autoOpen) {\n onOpen()\n }\n})\n\ndefineExpose({\n open: onOpen,\n closeSidebarOnMobile,\n})\n</script>\n\n<template>\n <slot\n name=\"activator\"\n :props=\"{ onClick: withModifiers(() => onOpen(), ['stop']) }\"\n />\n <VDialog\n v-bind=\"$attrs\"\n :model-value=\"dialog\"\n fullscreen\n class=\"subject-select\"\n @update:model-value=\"emit('update:modelValue', $event)\"\n >\n <VCard\n v-if=\"dialog\"\n class=\"subject-select__card\"\n >\n <ADialogToolbar\n class=\"subject-select__toolbar border-b\"\n @cancel=\"onClose\"\n >\n <slot name=\"title\">\n {{ t(dialogTitleT) }}\n </slot>\n </ADialogToolbar>\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n :height=\"46\"\n elevation=\"0\"\n class=\"border-b subject-select__second-bar\"\n >\n <slot name=\"second-bar\">\n <div class=\"d-flex flex-column w-100 px-1 align-center\">\n <div class=\"d-flex justify-space-between w-100 align-center\">\n <div class=\"d-flex align-center\">\n <VBtn\n :aria-label=\"t('common.subjectSelect.filter.toggle')\"\n icon\n :width=\"30\"\n :height=\"30\"\n @click=\"toggleSidebar\"\n >\n <VIcon\n icon=\"mdi-tune\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.subjectSelect.filter.toggle') }}\n </VTooltip>\n </VBtn>\n <slot name=\"second-bar-left\" />\n </div>\n <div class=\"d-flex align-center\">\n <slot name=\"second-bar-right\" />\n </div>\n </div>\n </div>\n </slot>\n </VToolbar>\n <div\n class=\"subject-select__main\"\n :class=\"{ 'subject-select__main--sidebar-active': sidebarLeft }\"\n >\n <div class=\"subject-select__sidebar border-e\">\n <div class=\"subject-select-filter\">\n <slot name=\"filter\" />\n </div>\n </div>\n <div class=\"subject-select__content\">\n <slot name=\"content\" />\n <div\n v-if=\"paginationMode === 'more'\"\n class=\"d-flex w-100 align-center justify-center pa-4\"\n >\n <ABtnSecondary\n v-show=\"hasNextPage || loading\"\n v-intersect.quiet=\"autoloadOnIntersect\"\n :loading=\"loading\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.button.loadMore') }}\n </slot>\n </ABtnSecondary>\n </div>\n <ADatatablePagination\n v-else\n v-model=\"paginationComputed\"\n @change=\"onPageChange\"\n />\n </div>\n </div>\n <div class=\"subject-select__actions border-t\">\n <div v-if=\"minCount === maxCount\">\n {{\n t('common.subjectSelect.texts.pickExactCount', {\n count: minCount,\n selected: selectedItemsCount,\n })\n }}\n </div>\n <div v-else>\n {{\n t('common.subjectSelect.texts.pickRangeCount', {\n minCount: minCount,\n maxCount: maxCount,\n selected: selectedItemsCount,\n })\n }}\n </div>\n <VSpacer />\n <ABtnPrimary\n :disabled=\"disabledSubmit\"\n @click.stop=\"onConfirm\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.button.confirm') }}\n </slot>\n </ABtnPrimary>\n </div>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"ASubjectSelect.vue_vue_type_script_setup_true_lang.js","names":["$attrs","_openBlock","_createElementBlock","_renderSlot","_createVNode","_component_VDialog","_mergeProps","_withCtx","_createBlock","_component_VCard","ADialogToolbar","_createTextVNode","_toDisplayString","_unref","_component_VToolbar","_createElementVNode","_component_VBtn","_component_VIcon","_component_VTooltip","_normalizeClass","_withDirectives","_vShow","ADatatablePagination","_component_VSpacer","_withModifiers","ADialogToolbar_default","ADatatablePagination_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","ASubjectSelect_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","dialogLocal","ref","dialog","computed","isUndefined","newValue","paginationComputed","toRaw","useDisplay","sidebarLeft","mdAndDown","closeSidebarOnMobile","SubjectSelectCloseSidebarKey","useI18n","selectedItemsCount","disabledSubmit","onOpen","toggleSidebar","onClose","onConfirm","item","fetchNextPage","onPageChange","lastPage","hasNextPage","isNull","autoloadOnIntersect","isIntersecting","onMounted","_component_ABtnSecondary","resolveComponent","_component_ABtnPrimary","openBlock","createElementBlock","Fragment","renderSlot","_ctx","withModifiers","createVNode","VDialog","mergeProps","_cache","$event","withCtx","createBlock","VCard","createTextVNode","toDisplayString","unref","t","VToolbar","createElementVNode","VBtn","VIcon","VTooltip","normalizeClass","withDirectives","vShow","Intersect","VSpacer","createCommentVNode"],"sources":["../../../../src/domains/subjectSelect/components/ASubjectSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"TItem\">\nimport { computed, onMounted, provide, ref, toRaw, withModifiers } from 'vue'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport { useI18n } from 'vue-i18n'\nimport { useDisplay } from 'vuetify'\nimport type { Pagination } from '@/domains/api/composables/pagination'\nimport ADatatablePagination from '@/domains/filters/datatable/components/ADatatablePagination.vue'\nimport { SubjectSelectCloseSidebarKey } from '@/domains/filters/utils/filterInjectionKeys'\n\nconst props = withDefaults(\n defineProps<{\n selectedItems: Array<TItem>\n pagination: Pagination\n loading?: boolean\n minCount?: number\n maxCount?: number\n modelValue?: boolean | undefined // dialog\n dialogTitleT?: string\n paginationMode?: 'standard' | 'more'\n autoOpen?: boolean\n }>(),\n {\n loading: false,\n minCount: 1,\n maxCount: 1,\n modelValue: undefined,\n dialogTitleT: 'common.subjectSelect.texts.title',\n paginationMode: 'standard',\n autoOpen: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: boolean): void\n (e: 'update:pagination', data: Pagination): void\n (e: 'open'): void\n (e: 'pageChange'): void\n (e: 'confirm', data: Array<TItem>): void\n (e: 'fetchNextPage'): void\n}>()\n\nconst dialogLocal = ref(false)\nconst dialog = computed({\n get() {\n if (isUndefined(props.modelValue)) return dialogLocal.value\n return props.modelValue\n },\n set(newValue: boolean) {\n dialogLocal.value = newValue\n emit('update:modelValue', newValue)\n },\n})\n\nconst paginationComputed = computed({\n get: () => props.pagination,\n set: (newValue) => {\n emit('update:pagination', { ...toRaw(newValue) })\n },\n})\n\nconst { mdAndDown } = useDisplay()\nconst sidebarLeft = ref(!mdAndDown.value)\n\nconst closeSidebarOnMobile = () => {\n if (mdAndDown.value) sidebarLeft.value = false\n}\n\nprovide(SubjectSelectCloseSidebarKey, closeSidebarOnMobile)\n\nconst { t } = useI18n()\n\nconst selectedItemsCount = computed(() => {\n return props.selectedItems.length\n})\n\nconst disabledSubmit = computed(() => {\n return selectedItemsCount.value < props.minCount || selectedItemsCount.value > props.maxCount\n})\n\nconst onOpen = () => {\n emit('open')\n sidebarLeft.value = !mdAndDown.value\n dialog.value = true\n}\n\nconst toggleSidebar = () => {\n sidebarLeft.value = !sidebarLeft.value\n}\n\nconst onClose = () => {\n dialog.value = false\n}\n\nconst onConfirm = () => {\n emit(\n 'confirm',\n props.selectedItems.map((item) => toRaw(item))\n )\n onClose()\n}\n\nconst fetchNextPage = () => {\n emit('fetchNextPage')\n}\n\nconst onPageChange = () => {\n emit('pageChange')\n}\n\nconst lastPage = computed(() => {\n return Math.ceil(paginationComputed.value.totalCount / paginationComputed.value.rowsPerPage)\n})\n\n// `>=`, not `===`. An empty list has `lastPage` 0 while `page` is at least 1, so they never meet.\n// The same holds before the first request.\nconst hasNextPage = computed(() => {\n return !(\n (isNull(paginationComputed.value.hasNextPage) && paginationComputed.value.page >= lastPage.value) ||\n paginationComputed.value.hasNextPage === false\n )\n})\n\nconst autoloadOnIntersect = (isIntersecting: boolean) => {\n if (isIntersecting && hasNextPage.value && !props.loading) {\n fetchNextPage()\n }\n}\n\nonMounted(() => {\n if (props.autoOpen) {\n onOpen()\n }\n})\n\ndefineExpose({\n open: onOpen,\n closeSidebarOnMobile,\n})\n</script>\n\n<template>\n <slot\n name=\"activator\"\n :props=\"{ onClick: withModifiers(() => onOpen(), ['stop']) }\"\n />\n <VDialog\n v-bind=\"$attrs\"\n :model-value=\"dialog\"\n fullscreen\n class=\"subject-select\"\n @update:model-value=\"emit('update:modelValue', $event)\"\n >\n <VCard\n v-if=\"dialog\"\n class=\"subject-select__card\"\n >\n <ADialogToolbar\n class=\"subject-select__toolbar border-b\"\n @cancel=\"onClose\"\n >\n <slot name=\"title\">\n {{ t(dialogTitleT) }}\n </slot>\n </ADialogToolbar>\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n :height=\"46\"\n elevation=\"0\"\n class=\"border-b subject-select__second-bar\"\n >\n <slot name=\"second-bar\">\n <div class=\"d-flex flex-column w-100 px-1 align-center\">\n <div class=\"d-flex justify-space-between w-100 align-center\">\n <div class=\"d-flex align-center\">\n <VBtn\n :aria-label=\"t('common.subjectSelect.filter.toggle')\"\n icon\n :width=\"30\"\n :height=\"30\"\n @click=\"toggleSidebar\"\n >\n <VIcon\n icon=\"mdi-tune\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.subjectSelect.filter.toggle') }}\n </VTooltip>\n </VBtn>\n <slot name=\"second-bar-left\" />\n </div>\n <div class=\"d-flex align-center\">\n <slot name=\"second-bar-right\" />\n </div>\n </div>\n </div>\n </slot>\n </VToolbar>\n <div\n class=\"subject-select__main\"\n :class=\"{ 'subject-select__main--sidebar-active': sidebarLeft }\"\n >\n <div class=\"subject-select__sidebar border-e\">\n <div class=\"subject-select-filter\">\n <slot name=\"filter\" />\n </div>\n </div>\n <div class=\"subject-select__content\">\n <slot name=\"content\" />\n <div\n v-if=\"paginationMode === 'more'\"\n class=\"d-flex w-100 align-center justify-center pa-4\"\n >\n <ABtnSecondary\n v-show=\"hasNextPage || loading\"\n v-intersect.quiet=\"autoloadOnIntersect\"\n :loading=\"loading\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.button.loadMore') }}\n </slot>\n </ABtnSecondary>\n </div>\n <ADatatablePagination\n v-else\n v-model=\"paginationComputed\"\n @change=\"onPageChange\"\n />\n </div>\n </div>\n <div class=\"subject-select__actions border-t\">\n <div v-if=\"minCount === maxCount\">\n {{\n t('common.subjectSelect.texts.pickExactCount', {\n count: minCount,\n selected: selectedItemsCount,\n })\n }}\n </div>\n <div v-else>\n {{\n t('common.subjectSelect.texts.pickRangeCount', {\n minCount: minCount,\n maxCount: maxCount,\n selected: selectedItemsCount,\n })\n }}\n </div>\n <VSpacer />\n <ABtnPrimary\n :disabled=\"disabledSubmit\"\n @click.stop=\"onConfirm\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.button.confirm') }}\n </slot>\n </ABtnPrimary>\n </div>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionbar.js","names":["_sfc_main","AActionbar_vue_vue_type_script_setup_true_lang_default","AActionbar_default"],"sources":["../../../../../src/domains/system/appShell/components/AActionbar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RouteLocationAsRelativeGeneric, RouteLocationRaw } from 'vue-router'\nimport { useRoute } from 'vue-router'\nimport { computed } from 'vue'\nimport { actionbarSlot, type TeleportSlot } from '@/domains/system/appShell/composables/teleportSlot'\nimport type { BreadcrumbItem, Breadcrumbs } from '@/domains/system/composables/breadcrumbs'\nimport { isString, isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n breadcrumbs?: Breadcrumbs | undefined\n /**\n * Where a breadcrumb links to, for a breadcrumb that links at all (not the last one, unless\n * `linkLastItem`). Default: its route name with `routeParams`, or `{ id }` when it has an id.\n */\n resolveBreadcrumbRoute?: (item: BreadcrumbItem) => RouteLocationRaw\n /** Another teleport slot to render into. Default: the app bar's actionbar. */\n target?: TeleportSlot\n }>(),\n {\n breadcrumbs: undefined,\n resolveBreadcrumbRoute: undefined,\n target: undefined,\n }\n)\n\nconst route = useRoute()\n\nconst Source = computed(() => (props.target ?? actionbarSlot).Source)\n\nconst byName = (item: BreadcrumbItem): RouteLocationRaw => {\n const location: RouteLocationAsRelativeGeneric = { name: item.routeName }\n if (!isUndefined(item.routeParams)) {\n location.params = { ...item.routeParams }\n } else if (!isUndefined(item.id)) {\n location.params = { id: item.id }\n }\n // A breadcrumb's route name is only known at runtime, but RouteLocationRaw is a union keyed on\n // literal names. Names are checked at their definition sites by anzu/valid-route-name.\n return location as RouteLocationRaw\n}\n\nconst breadcrumbTo = (item: BreadcrumbItem, index: number): RouteLocationRaw | undefined => {\n if (\n isUndefined(props.breadcrumbs) ||\n (!props.breadcrumbs.options.linkLastItem && index === props.breadcrumbs.items.value.length - 1)\n ) {\n return undefined\n }\n return (props.resolveBreadcrumbRoute ?? byName)(item)\n}\n</script>\n\n<template>\n <component :is=\"Source\">\n <div class=\"flex-grow-1 flex-shrink-1 min-width-0 overflow-hidden\">\n <slot name=\"breadcrumbs\">\n <div\n v-if=\"!isUndefined(breadcrumbs)\"\n class=\"d-flex align-center min-width-0\"\n >\n <VBreadcrumbsDivider\n v-if=\"breadcrumbs.items.value.length > 0\"\n class=\"px-1\"\n >\n &raquo;\n </VBreadcrumbsDivider>\n <VBreadcrumbs\n :key=\"isString(route.name) ? route.name : route.fullPath\"\n class=\"pl-1 min-width-0\"\n density=\"compact\"\n >\n <template\n v-for=\"(breadcrumb, index) in breadcrumbs.items.value\"\n :key=\"breadcrumb.routeName\"\n >\n <VBreadcrumbsItem\n :to=\"breadcrumbTo(breadcrumb, index)\"\n :disabled=\"false\"\n :class=\"{ 'min-width-0': index === breadcrumbs.items.value.length - 1 }\"\n >\n <div class=\"v-breadcrumbs-item__text\">\n {{ breadcrumb.title }}\n </div>\n </VBreadcrumbsItem>\n <VBreadcrumbsDivider v-if=\"index < breadcrumbs.items.value.length - 1\"> &raquo; </VBreadcrumbsDivider>\n </template>\n </VBreadcrumbs>\n </div>\n </slot>\n </div>\n <div class=\"flex-grow-0 flex-shrink-0 pl-2\">\n <slot name=\"buttons\" />\n </div>\n </component>\n</template>\n\n<style lang=\"scss\">\n.v-breadcrumbs-item__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"AActionbar.js","names":["AActionbar_vue_vue_type_script_setup_true_lang_default","AActionbar_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionbar.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_resolveDynamicComponent","_withCtx","_createElementVNode","_renderSlot","_unref","_createElementBlock","_component_VBreadcrumbsDivider","_createTextVNode","_createCommentVNode","_component_VBreadcrumbs","_Fragment","_renderList","_createVNode","_component_VBreadcrumbsItem","_normalizeClass","_toDisplayString","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AActionbar_vue_vue_type_script_setup_true_lang_default","props","__props","route","useRoute","Source","computed","actionbarSlot","byName","location","item","isUndefined","breadcrumbTo","index","openBlock","createBlock","resolveDynamicComponent","withCtx","createElementVNode","renderSlot","_ctx","unref","createCommentVNode","createElementBlock","VBreadcrumbsDivider","_cache","createTextVNode","VBreadcrumbs","isString","Fragment","renderList","breadcrumb","createVNode","VBreadcrumbsItem","normalizeClass","toDisplayString"],"sources":["../../../../../src/domains/system/appShell/components/AActionbar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RouteLocationAsRelativeGeneric, RouteLocationRaw } from 'vue-router'\nimport { useRoute } from 'vue-router'\nimport { computed } from 'vue'\nimport { actionbarSlot, type TeleportSlot } from '@/domains/system/appShell/composables/teleportSlot'\nimport type { BreadcrumbItem, Breadcrumbs } from '@/domains/system/composables/breadcrumbs'\nimport { isString, isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n breadcrumbs?: Breadcrumbs | undefined\n /**\n * Where a breadcrumb links to, for a breadcrumb that links at all (not the last one, unless\n * `linkLastItem`). Default: its route name with `routeParams`, or `{ id }` when it has an id.\n */\n resolveBreadcrumbRoute?: (item: BreadcrumbItem) => RouteLocationRaw\n /** Another teleport slot to render into. Default: the app bar's actionbar. */\n target?: TeleportSlot\n }>(),\n {\n breadcrumbs: undefined,\n resolveBreadcrumbRoute: undefined,\n target: undefined,\n }\n)\n\nconst route = useRoute()\n\nconst Source = computed(() => (props.target ?? actionbarSlot).Source)\n\nconst byName = (item: BreadcrumbItem): RouteLocationRaw => {\n const location: RouteLocationAsRelativeGeneric = { name: item.routeName }\n if (!isUndefined(item.routeParams)) {\n location.params = { ...item.routeParams }\n } else if (!isUndefined(item.id)) {\n location.params = { id: item.id }\n }\n // A breadcrumb's route name is only known at runtime, but RouteLocationRaw is a union keyed on\n // literal names. Names are checked at their definition sites by anzu/valid-route-name.\n return location as RouteLocationRaw\n}\n\nconst breadcrumbTo = (item: BreadcrumbItem, index: number): RouteLocationRaw | undefined => {\n if (\n isUndefined(props.breadcrumbs) ||\n (!props.breadcrumbs.options.linkLastItem && index === props.breadcrumbs.items.value.length - 1)\n ) {\n return undefined\n }\n return (props.resolveBreadcrumbRoute ?? byName)(item)\n}\n</script>\n\n<template>\n <component :is=\"Source\">\n <div class=\"flex-grow-1 flex-shrink-1 min-width-0 overflow-hidden\">\n <slot name=\"breadcrumbs\">\n <div\n v-if=\"!isUndefined(breadcrumbs)\"\n class=\"d-flex align-center min-width-0\"\n >\n <VBreadcrumbsDivider\n v-if=\"breadcrumbs.items.value.length > 0\"\n class=\"px-1\"\n >\n &raquo;\n </VBreadcrumbsDivider>\n <VBreadcrumbs\n :key=\"isString(route.name) ? route.name : route.fullPath\"\n class=\"pl-1 min-width-0\"\n density=\"compact\"\n >\n <template\n v-for=\"(breadcrumb, index) in breadcrumbs.items.value\"\n :key=\"breadcrumb.routeName\"\n >\n <VBreadcrumbsItem\n :to=\"breadcrumbTo(breadcrumb, index)\"\n :disabled=\"false\"\n :class=\"{ 'min-width-0': index === breadcrumbs.items.value.length - 1 }\"\n >\n <div class=\"v-breadcrumbs-item__text\">\n {{ breadcrumb.title }}\n </div>\n </VBreadcrumbsItem>\n <VBreadcrumbsDivider v-if=\"index < breadcrumbs.items.value.length - 1\"> &raquo; </VBreadcrumbsDivider>\n </template>\n </VBreadcrumbs>\n </div>\n </slot>\n </div>\n <div class=\"flex-grow-0 flex-shrink-0 pl-2\">\n <slot name=\"buttons\" />\n </div>\n </component>\n</template>\n\n<style lang=\"scss\">\n.v-breadcrumbs-item__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAQA,IAAMuB,IAAQC,GAkBRC,IAAQC,EAAS,GAEjBC,IAASC,SAAgBL,EAAM,UAAUM,EAAA,CAAe,MAAM,GAE9DC,KAAU,MAA2C;GACzD,IAAMC,IAA2C,EAAE,MAAMC,EAAK,UAAU;GAQxE,OAPKC,EAAYD,EAAK,WAAW,IAErBC,EAAYD,EAAK,EAAE,MAC7B,EAAS,SAAS,EAAE,IAAIA,EAAK,GAAG,KAFhC,EAAS,SAAS,EAAE,GAAGA,EAAK,YAAY,GAMnCD;EACT,GAEMG,KAAgB,GAAsB,MAAgD;GAC1F,IACE,IAAYX,EAAM,WAAW,KAC5B,CAACA,EAAM,YAAY,QAAQ,gBAAgBY,MAAUZ,EAAM,YAAY,MAAM,MAAM,SAAS,IAI/F,QAAQA,EAAM,0BAA0BO,EAAA,CAAQE,CAAI;EACtD;E,kBAIEhC,EAAA,GAAAC,EAwCYC,EAxCIyB,EAAA,KAAM,GAAA,MAAA;GACpB,SAAAxB,QAmCM,CAnCNC,EAmCM,OAnCNc,GAmCM,CAlCJb,EAiCOqC,EAAA,QAAA,eAAA,CAAA,SAAA,CA/BIpC,EAAA2B,CAAA,CAAW,CAACT,EAAA,WAAW,I,aADhCxB,EAAA,GAAAO,EA+BM,OA/BNY,GA+BM,CA1BIK,EAAA,YAAY,MAAM,MAAM,SAAM,KADtCxB,EAAA,GAAAC,EAKsBO,GAAA;;IAHpB,OAAM;;IACP,SAAAL,QAED,CAAA,GAAA,AAAA4C,EAAA,OAAA,CAFCtC,EAAA,OAED,EAAA,C;;G,kBACAT,EAAA,GAAAC,EAoBeU,GAAA;IAnBZ,KAAKL,EAAA4C,CAAA,CAAQ,CAAC5C,EAAAmB,CAAA,CAAK,CAAC,IAAI,IAAInB,EAAAmB,CAAA,CAAK,CAAC,OAAOnB,EAAAmB,CAAA,CAAK,CAAC;IAChD,OAAM;IACN,SAAQ;;IAGN,SAAAtB,QAAsD,EADxDH,EAAA,EAAA,GAAAO,EAcWK,GAAA,MAAAC,EAbqBW,EAAA,YAAY,MAAM,QAAxC,GAAY,O,YACd,KAAA6B,EAAW,U,IAEjBvC,EAQmBC,GAAA;KAPhB,IAAImB,EAAamB,GAAYlB,CAAK;KAClC,UAAU;KACV,OAAKnB,EAAA,EAAA,eAAmBmB,MAAUX,EAAA,YAAY,MAAM,MAAM,SAAM,EAAA,CAAA;;KAEjE,SAAArB,QAEM,CAFNC,EAEM,OAFNgB,GAEMH,EADDoC,EAAW,KAAK,GAAA,CAAA,C;;I,2BAGIlB,IAAQX,EAAA,YAAY,MAAM,MAAM,SAAM,KAAjExB,EAAA,GAAAC,EAAsGO,GAAA,EAAA,KAAA,EAAA,GAAA;KAA/B,SAAAL,QAAS,CAAA,GAAA,AAAA4C,EAAA,OAAA,CAATtC,EAAA,OAAS,EAAA,C;;;;G,YAM1FL,EAEM,OAFNiB,GAEM,CADJhB,EAAuBqC,EAAA,QAAA,SAAA,C"}
1
+ {"version":3,"file":"AActionbar.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_resolveDynamicComponent","_withCtx","_createElementVNode","_renderSlot","_unref","_createElementBlock","_component_VBreadcrumbsDivider","_createTextVNode","_component_VBreadcrumbs","_Fragment","_renderList","_createVNode","_component_VBreadcrumbsItem","_normalizeClass","_toDisplayString","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AActionbar_vue_vue_type_script_setup_true_lang_default","props","__props","route","useRoute","Source","computed","actionbarSlot","byName","location","item","isUndefined","breadcrumbTo","index","openBlock","createBlock","resolveDynamicComponent","withCtx","createElementVNode","renderSlot","_ctx","unref","createCommentVNode","createElementBlock","VBreadcrumbsDivider","_cache","createTextVNode","VBreadcrumbs","isString","Fragment","renderList","breadcrumb","createVNode","VBreadcrumbsItem","normalizeClass","toDisplayString"],"sources":["../../../../../src/domains/system/appShell/components/AActionbar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RouteLocationAsRelativeGeneric, RouteLocationRaw } from 'vue-router'\nimport { useRoute } from 'vue-router'\nimport { computed } from 'vue'\nimport { actionbarSlot, type TeleportSlot } from '@/domains/system/appShell/composables/teleportSlot'\nimport type { BreadcrumbItem, Breadcrumbs } from '@/domains/system/composables/breadcrumbs'\nimport { isString, isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n breadcrumbs?: Breadcrumbs | undefined\n /**\n * Where a breadcrumb links to, for a breadcrumb that links at all (not the last one, unless\n * `linkLastItem`). Default: its route name with `routeParams`, or `{ id }` when it has an id.\n */\n resolveBreadcrumbRoute?: (item: BreadcrumbItem) => RouteLocationRaw\n /** Another teleport slot to render into. Default: the app bar's actionbar. */\n target?: TeleportSlot\n }>(),\n {\n breadcrumbs: undefined,\n resolveBreadcrumbRoute: undefined,\n target: undefined,\n }\n)\n\nconst route = useRoute()\n\nconst Source = computed(() => (props.target ?? actionbarSlot).Source)\n\nconst byName = (item: BreadcrumbItem): RouteLocationRaw => {\n const location: RouteLocationAsRelativeGeneric = { name: item.routeName }\n if (!isUndefined(item.routeParams)) {\n location.params = { ...item.routeParams }\n } else if (!isUndefined(item.id)) {\n location.params = { id: item.id }\n }\n // A breadcrumb's route name is only known at runtime, but RouteLocationRaw is a union keyed on\n // literal names. Names are checked at their definition sites by anzu/valid-route-name.\n return location as RouteLocationRaw\n}\n\nconst breadcrumbTo = (item: BreadcrumbItem, index: number): RouteLocationRaw | undefined => {\n if (\n isUndefined(props.breadcrumbs) ||\n (!props.breadcrumbs.options.linkLastItem && index === props.breadcrumbs.items.value.length - 1)\n ) {\n return undefined\n }\n return (props.resolveBreadcrumbRoute ?? byName)(item)\n}\n</script>\n\n<template>\n <component :is=\"Source\">\n <div class=\"flex-grow-1 flex-shrink-1 min-width-0 overflow-hidden\">\n <slot name=\"breadcrumbs\">\n <div\n v-if=\"!isUndefined(breadcrumbs)\"\n class=\"d-flex align-center min-width-0\"\n >\n <VBreadcrumbsDivider\n v-if=\"breadcrumbs.items.value.length > 0\"\n class=\"px-1\"\n >\n &raquo;\n </VBreadcrumbsDivider>\n <VBreadcrumbs\n :key=\"isString(route.name) ? route.name : route.fullPath\"\n class=\"pl-1 min-width-0\"\n density=\"compact\"\n >\n <template\n v-for=\"(breadcrumb, index) in breadcrumbs.items.value\"\n :key=\"breadcrumb.routeName\"\n >\n <VBreadcrumbsItem\n :to=\"breadcrumbTo(breadcrumb, index)\"\n :disabled=\"false\"\n :class=\"{ 'min-width-0': index === breadcrumbs.items.value.length - 1 }\"\n >\n <div class=\"v-breadcrumbs-item__text\">\n {{ breadcrumb.title }}\n </div>\n </VBreadcrumbsItem>\n <VBreadcrumbsDivider v-if=\"index < breadcrumbs.items.value.length - 1\"> &raquo; </VBreadcrumbsDivider>\n </template>\n </VBreadcrumbs>\n </div>\n </slot>\n </div>\n <div class=\"flex-grow-0 flex-shrink-0 pl-2\">\n <slot name=\"buttons\" />\n </div>\n </component>\n</template>\n\n<style lang=\"scss\">\n.v-breadcrumbs-item__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAQA,IAAMsB,IAAQC,GAkBRC,IAAQC,EAAS,GAEjBC,IAASC,SAAgBL,EAAM,UAAUM,EAAA,CAAe,MAAM,GAE9DC,KAAU,MAA2C;GACzD,IAAMC,IAA2C,EAAE,MAAMC,EAAK,UAAU;GAQxE,OAPKC,EAAYD,EAAK,WAAW,IAErBC,EAAYD,EAAK,EAAE,MAC7B,EAAS,SAAS,EAAE,IAAIA,EAAK,GAAG,KAFhC,EAAS,SAAS,EAAE,GAAGA,EAAK,YAAY,GAMnCD;EACT,GAEMG,KAAgB,GAAsB,MAAgD;GAC1F,IACE,IAAYX,EAAM,WAAW,KAC5B,CAACA,EAAM,YAAY,QAAQ,gBAAgBY,MAAUZ,EAAM,YAAY,MAAM,MAAM,SAAS,IAI/F,QAAQA,EAAM,0BAA0BO,EAAA,CAAQE,CAAI;EACtD;E,kBAIE/B,EAAA,GAAAC,EAwCYC,EAxCIwB,EAAA,KAAM,GAAA,MAAA;GACpB,SAAAvB,QAmCM,CAnCNC,EAmCM,OAnCNa,GAmCM,CAlCJZ,EAiCOoC,EAAA,QAAA,eAAA,CAAA,SAAA,CA/BInC,EAAA0B,CAAA,CAAW,CAACT,EAAA,WAAW,I,aADhCvB,EAAA,GAAAO,EA+BM,OA/BNW,GA+BM,CA1BIK,EAAA,YAAY,MAAM,MAAM,SAAM,KADtCvB,EAAA,GAAAC,EAKsBO,GAAA;;IAHpB,OAAM;;IACP,SAAAL,QAED,CAAA,GAAA,AAAA2C,EAAA,OAAA,CAFCrC,EAAA,OAED,EAAA,C;;G,kBACAT,EAAA,GAAAC,EAoBeS,GAAA;IAnBZ,KAAKJ,EAAA2C,CAAA,CAAQ,CAAC3C,EAAAkB,CAAA,CAAK,CAAC,IAAI,IAAIlB,EAAAkB,CAAA,CAAK,CAAC,OAAOlB,EAAAkB,CAAA,CAAK,CAAC;IAChD,OAAM;IACN,SAAQ;;IAGN,SAAArB,QAAsD,EADxDH,EAAA,EAAA,GAAAO,EAcWI,GAAA,MAAAC,EAbqBW,EAAA,YAAY,MAAM,QAAxC,GAAY,O,YACd,KAAA6B,EAAW,U,IAEjBvC,EAQmBC,GAAA;KAPhB,IAAImB,EAAamB,GAAYlB,CAAK;KAClC,UAAU;KACV,OAAKnB,EAAA,EAAA,eAAmBmB,MAAUX,EAAA,YAAY,MAAM,MAAM,SAAM,EAAA,CAAA;;KAEjE,SAAApB,QAEM,CAFNC,EAEM,OAFNe,GAEMH,EADDoC,EAAW,KAAK,GAAA,CAAA,C;;I,2BAGIlB,IAAQX,EAAA,YAAY,MAAM,MAAM,SAAM,KAAjEvB,EAAA,GAAAC,EAAsGO,GAAA,EAAA,KAAA,EAAA,GAAA;KAA/B,SAAAL,QAAS,CAAA,GAAA,AAAA2C,EAAA,OAAA,CAATrC,EAAA,OAAS,EAAA,C;;;;G,YAM1FL,EAEM,OAFNgB,GAEM,CADJf,EAAuBoC,EAAA,QAAA,SAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionbarTarget.js","names":["_sfc_main","AActionbarTarget_vue_vue_type_script_setup_true_lang_default","AActionbarTarget_default"],"sources":["../../../../../src/domains/system/appShell/components/AActionbarTarget.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { actionbarSlot } from '@/domains/system/appShell/composables/teleportSlot'\n\nconst Target = actionbarSlot.Target\n</script>\n\n<template>\n <!-- The id is not how the actionbar finds its target; the admins' e2e suites select by it. -->\n <Target\n id=\"anzu-actionbar\"\n class=\"d-flex w-100 align-center justify-space-between min-width-0\"\n />\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AActionbarTarget.js","names":["AActionbarTarget_vue_vue_type_script_setup_true_lang_default","AActionbarTarget_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ALayoutLoader.js","names":["_sfc_main","ALayoutLoader_vue_vue_type_script_setup_true_lang_default","ALayoutLoader_default"],"sources":["../../../../../src/domains/system/appShell/components/ALayoutLoader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useTheme } from '@/domains/system/composables/themeSettings'\n\nconst { theme } = useTheme()\n</script>\n\n<template>\n <VApp :theme=\"theme\">\n <VMain class=\"d-flex w-100 h-100 align-center justify-center\">\n <VProgressCircular\n indeterminate\n color=\"primary\"\n />\n </VMain>\n </VApp>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ALayoutLoader.js","names":["ALayoutLoader_vue_vue_type_script_setup_true_lang_default","ALayoutLoader_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ALayoutSwitch.js","names":["_sfc_main","ALayoutSwitch_vue_vue_type_script_setup_true_lang_default","ALayoutSwitch_default"],"sources":["../../../../../src/domains/system/appShell/components/ALayoutSwitch.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { type Component, computed, shallowRef, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport AAlerts from '@/domains/system/components/AAlerts.vue'\n\nconst props = withDefaults(\n defineProps<{\n /** The layouts by the name pages give in `definePage({ meta: { layout } })`. */\n layouts: Record<string, Component>\n /** Until the first route resolves, and for a route without `meta.layout`. */\n defaultLayout?: string\n }>(),\n {\n defaultLayout: 'AppLayoutLoader',\n }\n)\n\nconst route = useRoute()\n\n// Read on a change of the route's meta, not on the first render: until the first navigation resolves,\n// the default layout shows.\nconst routeLayout = shallowRef<string | undefined>(undefined)\n\nwatch(\n () => route.meta,\n (meta) => {\n routeLayout.value = (meta as { layout?: string }).layout\n }\n)\n\n// A name missing from the map renders the page without a layout, rather than hiding it behind the loader.\nconst current = computed(() => {\n const name = routeLayout.value || props.defaultLayout\n const found = props.layouts[name]\n if (!found) console.error(`[ALayoutSwitch] Unknown layout '${name}'.`)\n return found\n})\n</script>\n\n<template>\n <!--\n The single alerts host, outside the layout switch.\n A host inside a layout drops its alerts when the route switches layouts,\n e.g. a start-up error vanished when the drawer replaced the loader.\n -->\n <AAlerts />\n <component\n :is=\"current\"\n v-if=\"current\"\n >\n <slot />\n </component>\n <slot v-else />\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ALayoutSwitch.js","names":["ALayoutSwitch_vue_vue_type_script_setup_true_lang_default","ALayoutSwitch_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ALayoutSwitch.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","AAlerts","_createBlock","_resolveDynamicComponent","_withCtx","_renderSlot","AAlerts_default","ALayoutSwitch_vue_vue_type_script_setup_true_lang_default","props","__props","route","useRoute","routeLayout","shallowRef","meta","current","computed","name","found","openBlock","createElementBlock","Fragment","createVNode","createBlock","resolveDynamicComponent","withCtx","renderSlot","_ctx"],"sources":["../../../../../src/domains/system/appShell/components/ALayoutSwitch.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { type Component, computed, shallowRef, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport AAlerts from '@/domains/system/components/AAlerts.vue'\n\nconst props = withDefaults(\n defineProps<{\n /** The layouts by the name pages give in `definePage({ meta: { layout } })`. */\n layouts: Record<string, Component>\n /** Until the first route resolves, and for a route without `meta.layout`. */\n defaultLayout?: string\n }>(),\n {\n defaultLayout: 'AppLayoutLoader',\n }\n)\n\nconst route = useRoute()\n\n// Read on a change of the route's meta, not on the first render: until the first navigation resolves,\n// the default layout shows.\nconst routeLayout = shallowRef<string | undefined>(undefined)\n\nwatch(\n () => route.meta,\n (meta) => {\n routeLayout.value = (meta as { layout?: string }).layout\n }\n)\n\n// A name missing from the map renders the page without a layout, rather than hiding it behind the loader.\nconst current = computed(() => {\n const name = routeLayout.value || props.defaultLayout\n const found = props.layouts[name]\n if (!found) console.error(`[ALayoutSwitch] Unknown layout '${name}'.`)\n return found\n})\n</script>\n\n<template>\n <!--\n The single alerts host, outside the layout switch.\n A host inside a layout drops its alerts when the route switches layouts,\n e.g. a start-up error vanished when the drawer replaced the loader.\n -->\n <AAlerts />\n <component\n :is=\"current\"\n v-if=\"current\"\n >\n <slot />\n </component>\n <slot v-else />\n</template>\n"],"mappings":";;;;;;;;;;;EAKA,IAAMW,IAAQC,GAYRC,IAAQC,EAAS,GAIjBC,IAAcC,EAA+B,KAAA,CAAS;EAE5D,QACQH,EAAM,OACX,MAAS;GACR,EAAY,QAASI,EAA6B;EACpD,CACF;EAGA,IAAMC,IAAUC,QAAe;GAC7B,IAAMC,IAAOL,EAAY,SAASJ,EAAM,eAClCU,IAAQV,EAAM,QAAQS;GAE5B,OADKC,KAAO,QAAQ,MAAM,mCAAmCD,EAAK,GAAG,GAC9DC;EACT,CAAC;E,mCASClB,EAAWC,CAAA,GAGHc,EAAA,SAFRlB,EAAA,GAAAK,EAKYC,EAJLY,EAAA,KAAO,GAAA,EAAA,KAAA,EAAA,GAAA;GAGZ,SAAAX,QAAQ,CAARC,EAAQsB,EAAA,QAAA,SAAA,C;;E,MAEVtB,EAAesB,EAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"ALayoutSwitch.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createVNode","AAlerts","_createBlock","_resolveDynamicComponent","_withCtx","_renderSlot","AAlerts_default","ALayoutSwitch_vue_vue_type_script_setup_true_lang_default","props","__props","route","useRoute","routeLayout","shallowRef","meta","current","computed","name","found","openBlock","createElementBlock","Fragment","createVNode","createBlock","resolveDynamicComponent","withCtx","renderSlot","_ctx"],"sources":["../../../../../src/domains/system/appShell/components/ALayoutSwitch.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { type Component, computed, shallowRef, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport AAlerts from '@/domains/system/components/AAlerts.vue'\n\nconst props = withDefaults(\n defineProps<{\n /** The layouts by the name pages give in `definePage({ meta: { layout } })`. */\n layouts: Record<string, Component>\n /** Until the first route resolves, and for a route without `meta.layout`. */\n defaultLayout?: string\n }>(),\n {\n defaultLayout: 'AppLayoutLoader',\n }\n)\n\nconst route = useRoute()\n\n// Read on a change of the route's meta, not on the first render: until the first navigation resolves,\n// the default layout shows.\nconst routeLayout = shallowRef<string | undefined>(undefined)\n\nwatch(\n () => route.meta,\n (meta) => {\n routeLayout.value = (meta as { layout?: string }).layout\n }\n)\n\n// A name missing from the map renders the page without a layout, rather than hiding it behind the loader.\nconst current = computed(() => {\n const name = routeLayout.value || props.defaultLayout\n const found = props.layouts[name]\n if (!found) console.error(`[ALayoutSwitch] Unknown layout '${name}'.`)\n return found\n})\n</script>\n\n<template>\n <!--\n The single alerts host, outside the layout switch.\n A host inside a layout drops its alerts when the route switches layouts,\n e.g. a start-up error vanished when the drawer replaced the loader.\n -->\n <AAlerts />\n <component\n :is=\"current\"\n v-if=\"current\"\n >\n <slot />\n </component>\n <slot v-else />\n</template>\n"],"mappings":";;;;;;;;;;;EAKA,IAAMS,IAAQC,GAYRC,IAAQC,EAAS,GAIjBC,IAAcC,EAA+B,KAAA,CAAS;EAE5D,QACQH,EAAM,OACX,MAAS;GACR,EAAY,QAASI,EAA6B;EACpD,CACF;EAGA,IAAMC,IAAUC,QAAe;GAC7B,IAAMC,IAAOL,EAAY,SAASJ,EAAM,eAClCU,IAAQV,EAAM,QAAQS;GAE5B,OADKC,KAAO,QAAQ,MAAM,mCAAmCD,EAAK,GAAG,GAC9DC;EACT,CAAC;E,mCASClB,EAAWC,CAAA,GAGHc,EAAA,SAFRhB,EAAA,GAAAG,EAKYC,EAJLY,EAAA,KAAO,GAAA,EAAA,KAAA,EAAA,GAAA;GAGZ,SAAAX,QAAQ,CAARC,EAAQsB,EAAA,QAAA,SAAA,C;;E,MAEVtB,EAAesB,EAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AAdminSwitcher.js","names":["_sfc_main","AAdminSwitcher_vue_vue_type_script_setup_true_lang_default","AAdminSwitcher_default"],"sources":["../../../../src/domains/system/components/AAdminSwitcher.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\nimport { useFetch } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n configUrl?: string | undefined | null\n }>(),\n {\n configUrl: null,\n }\n)\n\nconst { t } = useI18n()\n\ninterface AdminConfigItem {\n id: string\n title: string\n url: string\n icon: string\n}\n\nconst config = ref<AdminConfigItem[]>([])\n\nonMounted(async () => {\n if (props.configUrl && props.configUrl.length > 0) {\n try {\n const { data } = await useFetch<AdminConfigItem[]>(props.configUrl).get().json()\n // useFetch does not throw on an HTTP error: the body is null then, and the template reads its length.\n config.value = Array.isArray(data.value) ? data.value : []\n } catch (e) {\n //\n }\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"config.length > 0\"\n variant=\"text\"\n size=\"small\"\n icon\n :aria-label=\"t('common.system.adminSwitcher.button')\"\n >\n <VIcon icon=\"mdi-dots-grid\" />\n <VTooltip\n activator=\"parent\"\n location=\"top\"\n >\n {{ t('common.system.adminSwitcher.button') }}\n </VTooltip>\n <VMenu activator=\"parent\">\n <VCard>\n <div class=\"a-admin-switcher__content\">\n <a\n v-for=\"item in config\"\n :key=\"item.id\"\n :href=\"item.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n class=\"a-admin-switcher__item\"\n >\n <img\n :src=\"item.icon\"\n :alt=\"item.title\"\n />\n <span class=\"a-admin-switcher__item-title\">{{ item.title }}</span>\n </a>\n </div>\n </VCard>\n </VMenu>\n </VBtn>\n</template>\n\n<style lang=\"scss\">\n.a-admin-switcher {\n &__content {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: auto;\n padding: 6px;\n }\n\n &__item {\n display: flex;\n width: 96px;\n height: 96px;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-decoration: none;\n color: rgb(var(--v-theme-on-surface), var(--v-hover-opacity));\n\n &:hover {\n background-color: rgb(var(--v-theme-on-surface), 10%);\n border-radius: 8px;\n }\n\n &-title {\n display: flex;\n font-weight: normal;\n font-size: 14px;\n line-height: 14px;\n color: rgb(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));\n padding: 8px 0;\n }\n\n img {\n display: block;\n width: auto;\n height: 50px;\n }\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"AAdminSwitcher.js","names":["AAdminSwitcher_vue_vue_type_script_setup_true_lang_default","AAdminSwitcher_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AAdminSwitcher.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VBtn","_unref","_withCtx","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_component_VMenu","_component_VCard","_createElementVNode","_createElementBlock","_Fragment","_renderList","_createCommentVNode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AAdminSwitcher_vue_vue_type_script_setup_true_lang_default","props","__props","useI18n","config","ref","onMounted","useFetch","data","openBlock","createBlock","VBtn","unref","t","withCtx","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","VMenu","VCard","createElementVNode","createElementBlock","Fragment","renderList","item","createCommentVNode"],"sources":["../../../../src/domains/system/components/AAdminSwitcher.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\nimport { useFetch } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n configUrl?: string | undefined | null\n }>(),\n {\n configUrl: null,\n }\n)\n\nconst { t } = useI18n()\n\ninterface AdminConfigItem {\n id: string\n title: string\n url: string\n icon: string\n}\n\nconst config = ref<AdminConfigItem[]>([])\n\nonMounted(async () => {\n if (props.configUrl && props.configUrl.length > 0) {\n try {\n const { data } = await useFetch<AdminConfigItem[]>(props.configUrl).get().json()\n // useFetch does not throw on an HTTP error: the body is null then, and the template reads its length.\n config.value = Array.isArray(data.value) ? data.value : []\n } catch (e) {\n //\n }\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"config.length > 0\"\n variant=\"text\"\n size=\"small\"\n icon\n :aria-label=\"t('common.system.adminSwitcher.button')\"\n >\n <VIcon icon=\"mdi-dots-grid\" />\n <VTooltip\n activator=\"parent\"\n location=\"top\"\n >\n {{ t('common.system.adminSwitcher.button') }}\n </VTooltip>\n <VMenu activator=\"parent\">\n <VCard>\n <div class=\"a-admin-switcher__content\">\n <a\n v-for=\"item in config\"\n :key=\"item.id\"\n :href=\"item.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n class=\"a-admin-switcher__item\"\n >\n <img\n :src=\"item.icon\"\n :alt=\"item.title\"\n />\n <span class=\"a-admin-switcher__item-title\">{{ item.title }}</span>\n </a>\n </div>\n </VCard>\n </VMenu>\n </VBtn>\n</template>\n\n<style lang=\"scss\">\n.a-admin-switcher {\n &__content {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: auto;\n padding: 6px;\n }\n\n &__item {\n display: flex;\n width: 96px;\n height: 96px;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-decoration: none;\n color: rgb(var(--v-theme-on-surface), var(--v-hover-opacity));\n\n &:hover {\n background-color: rgb(var(--v-theme-on-surface), 10%);\n border-radius: 8px;\n }\n\n &-title {\n display: flex;\n font-weight: normal;\n font-size: 14px;\n line-height: 14px;\n color: rgb(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));\n padding: 8px 0;\n }\n\n img {\n display: block;\n width: auto;\n height: 50px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;EAKA,IAAMsB,IAAQC,GASR,EAAE,SAAMC,EAAQ,GAShBC,IAASC,EAAuB,CAAC,CAAC;E,OAExCC,EAAU,YAAY;GACpB,IAAIL,EAAM,aAAaA,EAAM,UAAU,SAAS,GAC9C,IAAI;IACF,IAAM,EAAE,YAAS,MAAMM,EAA4BN,EAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK;IAE/E,EAAO,QAAQ,MAAM,QAAQO,EAAK,KAAK,IAAIA,EAAK,QAAQ,CAAC;GAC3D,QAAY,CAEZ;EAEJ,CAAC,I,SAKSJ,EAAA,MAAO,SAAM,KADrBzB,EAAA,GAAAC,EAkCOC,GAAA;;GAhCL,SAAQ;GACR,MAAK;GACL,MAAA;GACC,cAAYC,EAAA+B,CAAA,CAAC,CAAA,oCAAA;;GAEd,SAAA9B,QAA8B;IAA9BC,EAA8BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;IAC3BD,EAKWE,GAAA;KAJT,WAAU;KACV,UAAS;;KAET,SAAAH,QAA6C,CAA1CI,EAAAC,EAAAN,EAAA+B,CAAA,CAAC,CAAA,oCAAA,CAAA,GAAA,CAAA,C;;;IAEN7B,EAmBQK,GAAA,EAnBD,WAAU,SAAQ,GAAA;KACvB,SAAAN,QAiBQ,CAjBRC,EAiBQM,GAAA,MAAA;MAhBN,SAAAP,QAeM,CAfNQ,EAeM,OAfNK,GAeM,EAdJjB,EAAA,EAAA,GAAAa,EAaIC,GAAA,MAAAC,EAZaU,EAAA,QAAR,OADTzB,EAAA,GAAAa,EAaI,KAAA;OAXD,KAAKkC,EAAK;OACV,MAAMA,EAAK;OACZ,KAAI;OACJ,QAAO;OACP,OAAM;M,IAENnC,EAGE,OAAA;OAFC,KAAKmC,EAAK;OACV,KAAKA,EAAK;M,gBAEbnC,EAAkE,QAAlEQ,GAAkEX,EAApBsC,EAAK,KAAK,GAAA,CAAA,C"}
1
+ {"version":3,"file":"AAdminSwitcher.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VBtn","_unref","_withCtx","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_component_VMenu","_component_VCard","_createElementVNode","_createElementBlock","_Fragment","_renderList","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","AAdminSwitcher_vue_vue_type_script_setup_true_lang_default","props","__props","useI18n","config","ref","onMounted","useFetch","data","openBlock","createBlock","VBtn","unref","t","withCtx","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","VMenu","VCard","createElementVNode","createElementBlock","Fragment","renderList","item","createCommentVNode"],"sources":["../../../../src/domains/system/components/AAdminSwitcher.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\nimport { useFetch } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n configUrl?: string | undefined | null\n }>(),\n {\n configUrl: null,\n }\n)\n\nconst { t } = useI18n()\n\ninterface AdminConfigItem {\n id: string\n title: string\n url: string\n icon: string\n}\n\nconst config = ref<AdminConfigItem[]>([])\n\nonMounted(async () => {\n if (props.configUrl && props.configUrl.length > 0) {\n try {\n const { data } = await useFetch<AdminConfigItem[]>(props.configUrl).get().json()\n // useFetch does not throw on an HTTP error: the body is null then, and the template reads its length.\n config.value = Array.isArray(data.value) ? data.value : []\n } catch (e) {\n //\n }\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"config.length > 0\"\n variant=\"text\"\n size=\"small\"\n icon\n :aria-label=\"t('common.system.adminSwitcher.button')\"\n >\n <VIcon icon=\"mdi-dots-grid\" />\n <VTooltip\n activator=\"parent\"\n location=\"top\"\n >\n {{ t('common.system.adminSwitcher.button') }}\n </VTooltip>\n <VMenu activator=\"parent\">\n <VCard>\n <div class=\"a-admin-switcher__content\">\n <a\n v-for=\"item in config\"\n :key=\"item.id\"\n :href=\"item.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n class=\"a-admin-switcher__item\"\n >\n <img\n :src=\"item.icon\"\n :alt=\"item.title\"\n />\n <span class=\"a-admin-switcher__item-title\">{{ item.title }}</span>\n </a>\n </div>\n </VCard>\n </VMenu>\n </VBtn>\n</template>\n\n<style lang=\"scss\">\n.a-admin-switcher {\n &__content {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: auto;\n padding: 6px;\n }\n\n &__item {\n display: flex;\n width: 96px;\n height: 96px;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-decoration: none;\n color: rgb(var(--v-theme-on-surface), var(--v-hover-opacity));\n\n &:hover {\n background-color: rgb(var(--v-theme-on-surface), 10%);\n border-radius: 8px;\n }\n\n &-title {\n display: flex;\n font-weight: normal;\n font-size: 14px;\n line-height: 14px;\n color: rgb(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));\n padding: 8px 0;\n }\n\n img {\n display: block;\n width: auto;\n height: 50px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;EAKA,IAAMqB,IAAQC,GASR,EAAE,SAAMC,EAAQ,GAShBC,IAASC,EAAuB,CAAC,CAAC;E,OAExCC,EAAU,YAAY;GACpB,IAAIL,EAAM,aAAaA,EAAM,UAAU,SAAS,GAC9C,IAAI;IACF,IAAM,EAAE,YAAS,MAAMM,EAA4BN,EAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK;IAE/E,EAAO,QAAQ,MAAM,QAAQO,EAAK,KAAK,IAAIA,EAAK,QAAQ,CAAC;GAC3D,QAAY,CAEZ;EAEJ,CAAC,I,SAKSJ,EAAA,MAAO,SAAM,KADrBxB,EAAA,GAAAC,EAkCOC,GAAA;;GAhCL,SAAQ;GACR,MAAK;GACL,MAAA;GACC,cAAYC,EAAA8B,CAAA,CAAC,CAAA,oCAAA;;GAEd,SAAA7B,QAA8B;IAA9BC,EAA8BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;IAC3BD,EAKWE,GAAA;KAJT,WAAU;KACV,UAAS;;KAET,SAAAH,QAA6C,CAA1CI,EAAAC,EAAAN,EAAA8B,CAAA,CAAC,CAAA,oCAAA,CAAA,GAAA,CAAA,C;;;IAEN5B,EAmBQK,GAAA,EAnBD,WAAU,SAAQ,GAAA;KACvB,SAAAN,QAiBQ,CAjBRC,EAiBQM,GAAA,MAAA;MAhBN,SAAAP,QAeM,CAfNQ,EAeM,OAfNI,GAeM,EAdJhB,EAAA,EAAA,GAAAa,EAaIC,GAAA,MAAAC,EAZaS,EAAA,QAAR,OADTxB,EAAA,GAAAa,EAaI,KAAA;OAXD,KAAKiC,EAAK;OACV,MAAMA,EAAK;OACZ,KAAI;OACJ,QAAO;OACP,OAAM;M,IAENlC,EAGE,OAAA;OAFC,KAAKkC,EAAK;OACV,KAAKA,EAAK;M,gBAEblC,EAAkE,QAAlEO,GAAkEV,EAApBqC,EAAK,KAAK,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AAlerts.js","names":["_sfc_main","AAlerts_vue_vue_type_script_setup_true_lang_default","AAlerts_default"],"sources":["../../../../src/domains/system/components/AAlerts.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { nextTick, onMounted } from 'vue'\nimport { type AlertMessage, useAlertsQueue } from '@/domains/system/composables/alertsQueue'\nimport { commonT } from '@/plugins/i18n'\n\nconst props = withDefaults(\n defineProps<{\n max?: number\n group?: string\n position?: string\n width?: string\n customClass?: string | undefined\n }>(),\n {\n max: 5,\n group: 'alerts',\n position: 'top center',\n width: '50%',\n customClass: undefined,\n }\n)\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst queue = useAlertsQueue(props.group)\n\n// The queue's own dismiss reaches only its `actions` slot. That slot stays hidden and hands it over\n// here, so the close icon inside the VAlert closes the alert the way the queue's button would.\nconst dismissers = new WeakMap<object, () => void>()\nconst registerDismiss = (item: object, dismiss: () => void) => {\n dismissers.set(item, dismiss)\n return ''\n}\nconst close = (item: object) => {\n dismissers.get(item)?.()\n}\n\n// VSnackbarQueue picks items up when the queue grows, not the ones already waiting when it mounts:\n// alerts raised while no host was on the page (e.g. during start-up) are handed over again.\nonMounted(() => {\n if (queue.value.length === 0) return\n const waiting = queue.value\n queue.value = []\n nextTick(() => {\n queue.value = [...waiting, ...queue.value]\n })\n})\n</script>\n\n<template>\n <!--\n VAlert inside the snackbar keeps the markup the admins' e2e tests\n select (`.v-alert`, `.v-alert__close`, `data-cy=\"page-title\"`).\n Kept off Vuetify's overlay stack (a private prop, pinned by a test). On it,\n an alert becomes the top overlay and Esc no longer reaches an open dialog.\n Attributes, not a class, reach each snackbar, because the queue drops `class`.\n -->\n <VSnackbarQueue\n v-model=\"queue\"\n :total-visible=\"max\"\n display-strategy=\"overflow\"\n :location=\"position as any\"\n :width=\"width\"\n max-width=\"none\"\n :gap=\"4\"\n variant=\"text\"\n :content-class=\"['a-alerts', customClass]\"\n data-a-alerts-host\n :_disable-global-stack=\"true\"\n >\n <template #text=\"{ item }\">\n <VAlert\n :type=\"(item as AlertMessage).color\"\n :text=\"(item as AlertMessage).text\"\n density=\"compact\"\n data-cy=\"page-title\"\n >\n <template #close>\n <VIcon\n icon=\"mdi-close\"\n :aria-label=\"commonT('common.button.close')\"\n @click.stop=\"close(item)\"\n />\n </template>\n </VAlert>\n </template>\n <template #actions=\"{ item, props: actionProps }\">{{ registerDismiss(item, actionProps.onClick) }}</template>\n </VSnackbarQueue>\n</template>\n\n<style lang=\"scss\">\n@use 'sass:map';\n@use 'vuetify/lib/styles/settings/variables' as vars;\n\n// Above every dialog, including one opened after the alert.\n.v-snackbar[data-a-alerts-host] {\n z-index: 5000 !important;\n}\n\n.a-alerts.v-snackbar__wrapper {\n .v-snackbar__content {\n padding: 0;\n }\n\n // Only there to hand over the dismiss (see the script); the close icon is in the VAlert.\n .v-snackbar__actions {\n display: none;\n }\n\n // Several lines (an API validation error lists one field per line) stay several lines.\n .v-alert__content {\n white-space: pre-line;\n }\n\n @media #{map.get(vars.$display-breakpoints, 'md-and-down')} {\n width: 96% !important;\n min-width: 0;\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"AAlerts.js","names":["AAlerts_vue_vue_type_script_setup_true_lang_default","AAlerts_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ALanguageSelect.js","names":["_sfc_main","ALanguageSelect_vue_vue_type_script_setup_true_lang_default","_plugin_vue_export_helper_default","ALanguageSelect_default"],"sources":["../../../../src/domains/system/components/ALanguageSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Language, LanguageCode } from '@/domains/system/composables/languageSettings'\nimport {\n ALL_LANGUAGES,\n modifyLanguageSettings,\n useLanguageSettings,\n} from '@/domains/system/composables/languageSettings'\nimport { computed, inject } from 'vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport FlagCountry from '@/domains/system/flags/components/FlagCountry.vue'\nimport { AvailableLanguagesSymbol, DefaultLanguageSymbol } from '@/shared/injectionKeys'\n\nconst props = withDefaults(\n defineProps<{\n isAdministrator: boolean\n }>(),\n {}\n)\n\nconst emit = defineEmits<{\n (e: 'afterChange', code: LanguageCode): void\n}>()\n\nconst configAvailableLanguages = inject(AvailableLanguagesSymbol) as LanguageCode[]\nconst configDefaultLanguage = inject(DefaultLanguageSymbol) as LanguageCode\n// @ts-ignore\nconst { setLanguage } = modifyLanguageSettings(configAvailableLanguages, configDefaultLanguage)\nconst { currentLanguageCode } = useLanguageSettings()\n\nconst onLanguageChange = (code: LanguageCode) => {\n const result = setLanguage(code)\n if (result) emit('afterChange', code)\n}\n\nconst currentLocale = computed(() => {\n const found = ALL_LANGUAGES.find((item) => item.code === currentLanguageCode.value)\n if (isUndefined(found)) {\n return ALL_LANGUAGES[0]!\n }\n return found as Language\n})\n\nconst availableLocales = computed(() => {\n return ALL_LANGUAGES.filter(\n (item) =>\n (configAvailableLanguages.includes(item.code) || item.code === 'xx') && (!item.adminOnly || props.isAdministrator)\n )\n})\n</script>\n\n<template>\n <VMenu>\n <template #activator=\"{ props: activatorProps }\">\n <VBtn\n class=\"pl-1\"\n rounded=\"pill\"\n v-bind=\"activatorProps\"\n variant=\"text\"\n data-cy=\"settings-language\"\n >\n <VAvatar\n class=\"mr-1\"\n size=\"30\"\n >\n <FlagCountry :code=\"currentLocale?.code\" />\n </VAvatar>\n {{ currentLocale.title }}\n </VBtn>\n </template>\n <VCard>\n <VList density=\"compact\">\n <VListItem\n v-for=\"locale in availableLocales\"\n :key=\"locale.code\"\n @click.stop=\"onLanguageChange(locale.code)\"\n >\n <VListItemTitle>\n <VAvatar\n class=\"mr-1\"\n size=\"30\"\n >\n <FlagCountry :code=\"locale.code\" />\n </VAvatar>\n {{ locale.title }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n</template>\n\n<style lang=\"scss\" scoped>\n.flag {\n position: relative;\n width: 30px;\n height: 30px;\n\n :deep(svg) {\n width: 90px;\n height: 60px;\n position: absolute;\n top: -15px;\n left: -27px;\n transform: scale(0.7);\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ALanguageSelect.js","names":["ALanguageSelect_vue_vue_type_script_setup_true_lang_default","_plugin_vue_export_helper_default","ALanguageSelect_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AThemeSelect.js","names":["_sfc_main","AThemeSelect_vue_vue_type_script_setup_true_lang_default","AThemeSelect_default"],"sources":["../../../../src/domains/system/components/AThemeSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { ref } from 'vue'\nimport { ThemeSettings, useTheme } from '@/domains/system/composables/themeSettings'\n\nconst { setThemeDark, setThemeAuto, setThemeLight, settings } = useTheme()\n\nconst { t } = useI18n()\n\nconst isOpen = ref(false)\n</script>\n\n<template>\n <VMenu\n v-model=\"isOpen\"\n close-on-content-click\n >\n <template #activator=\"{ props }\">\n <VBtn\n class=\"pl-1\"\n rounded=\"pill\"\n v-bind=\"props\"\n variant=\"text\"\n data-cy=\"settings-theme\"\n >\n <div v-if=\"settings === ThemeSettings.Auto\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-auto\"\n :size=\"32\"\n />{{ t('common.system.theme.auto') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Light\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-7\"\n :size=\"32\"\n />{{ t('common.system.theme.light') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Dark\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-4\"\n :size=\"32\"\n />{{ t('common.system.theme.dark') }}\n </div>\n </VBtn>\n </template>\n <VCard>\n <VList density=\"compact\">\n <VListItem\n :title=\"t('common.system.theme.auto')\"\n @click.stop=\"setThemeAuto\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-auto\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.light')\"\n @click.stop=\"setThemeLight\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-7\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.dark')\"\n @click.stop=\"setThemeDark\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-4\"\n />\n </template>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AThemeSelect.js","names":["AThemeSelect_vue_vue_type_script_setup_true_lang_default","AThemeSelect_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AThemeSelect.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VMenu","_withCtx","_createVNode","_component_VBtn","_mergeProps","_unref","_createElementBlock","_component_VIcon","_createTextVNode","_toDisplayString","_createCommentVNode","_component_VCard","_component_VList","_component_VListItem","_withModifiers","_hoisted_1","_hoisted_2","_hoisted_3","AThemeSelect_vue_vue_type_script_setup_true_lang_default","useTheme","useI18n","isOpen","ref","openBlock","createBlock","VMenu","_cache","$event","withCtx","createVNode","VBtn","mergeProps","props","unref","settings","ThemeSettings","createElementBlock","VIcon","createTextVNode","toDisplayString","t","createCommentVNode","VCard","VList","VListItem","withModifiers","setThemeAuto","setThemeLight","setThemeDark"],"sources":["../../../../src/domains/system/components/AThemeSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { ref } from 'vue'\nimport { ThemeSettings, useTheme } from '@/domains/system/composables/themeSettings'\n\nconst { setThemeDark, setThemeAuto, setThemeLight, settings } = useTheme()\n\nconst { t } = useI18n()\n\nconst isOpen = ref(false)\n</script>\n\n<template>\n <VMenu\n v-model=\"isOpen\"\n close-on-content-click\n >\n <template #activator=\"{ props }\">\n <VBtn\n class=\"pl-1\"\n rounded=\"pill\"\n v-bind=\"props\"\n variant=\"text\"\n data-cy=\"settings-theme\"\n >\n <div v-if=\"settings === ThemeSettings.Auto\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-auto\"\n :size=\"32\"\n />{{ t('common.system.theme.auto') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Light\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-7\"\n :size=\"32\"\n />{{ t('common.system.theme.light') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Dark\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-4\"\n :size=\"32\"\n />{{ t('common.system.theme.dark') }}\n </div>\n </VBtn>\n </template>\n <VCard>\n <VList density=\"compact\">\n <VListItem\n :title=\"t('common.system.theme.auto')\"\n @click.stop=\"setThemeAuto\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-auto\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.light')\"\n @click.stop=\"setThemeLight\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-7\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.dark')\"\n @click.stop=\"setThemeDark\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-4\"\n />\n </template>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n</template>\n"],"mappings":";;;;;;;;;;;;EAKA,IAAM,EAAE,iBAAc,iBAAc,kBAAe,gBAAaqB,EAAS,GAEnE,EAAE,SAAMC,EAAQ,GAEhBC,IAASC,EAAI,EAAK;E,kBAItBxB,EAAA,GAAAC,EAwEQC,GAAA;GAvEG,YAAAqB,EAAA;GAAA,uBAAA,AAAAK,EAAA,QAAA,MAAA,EAAM,QAAAC;GACf,0BAAA;;GAEW,WAAS1B,GA6BX,EA7Be,eAAK,CAC3BC,EA4BOC,GA5BPC,EA4BO;IA3BL,OAAM;IACN,SAAQ;GACA,GAAA4B,GAAK;IACb,SAAQ;IACR,WAAQ;;IAER,SAAA/B,QAMM,CANKI,EAAA6B,CAAA,MAAa7B,EAAA8B,CAAA,CAAa,CAAC,QAAtCrC,EAAA,GAAAQ,EAMM,OAAAS,GAAA,CALJb,EAIEK,GAAA;KAHA,OAAM;KACN,MAAK;KACJ,MAAM;I,IACJC,EAAAC,EAAAJ,EAAAmC,CAAA,CAAC,CAAA,0BAAA,CAAA,GAAA,CAAA,C,MAEQnC,EAAA6B,CAAA,MAAa7B,EAAA8B,CAAA,CAAa,CAAC,SAA3CrC,EAAA,GAAAQ,EAMM,OAAAU,GAAA,CALJd,EAIEK,GAAA;KAHA,OAAM;KACN,MAAK;KACJ,MAAM;I,IACJC,EAAAC,EAAAJ,EAAAmC,CAAA,CAAC,CAAA,2BAAA,CAAA,GAAA,CAAA,C,MAEQnC,EAAA6B,CAAA,MAAa7B,EAAA8B,CAAA,CAAa,CAAC,QAA3CrC,EAAA,GAAAQ,EAMM,OAAAW,GAAA,CALJf,EAIEK,GAAA;KAHA,OAAM;KACN,MAAK;KACJ,MAAM;I,IACJC,EAAAC,EAAAJ,EAAAmC,CAAA,CAAC,CAAA,0BAAA,CAAA,GAAA,CAAA,C;;;GAIZ,SAAAvC,QAoCQ,CApCRC,EAoCQS,GAAA,MAAA;IAnCN,SAAAV,QAkCQ,CAlCRC,EAkCQU,GAAA,EAlCD,SAAQ,UAAS,GAAA;KACtB,SAAAX,QAUY;MAVZC,EAUYW,GAAA;OATT,OAAOR,EAAAmC,CAAA,CAAC,CAAA,0BAAA;OACR,SAAK1B,EAAOT,EAAAyC,CAAA,GAAY,CAAA,MAAA,CAAA;;OAEd,SAAO7C,QAId,CAHFC,EAGEK,GAAA;QAFA,OAAM;QACN,MAAK;;;;MAIXL,EAUYW,GAAA;OATT,OAAOR,EAAAmC,CAAA,CAAC,CAAA,2BAAA;OACR,SAAK1B,EAAOT,EAAA0C,CAAA,GAAa,CAAA,MAAA,CAAA;;OAEf,SAAO9C,QAId,CAHFC,EAGEK,GAAA;QAFA,OAAM;QACN,MAAK;;;;MAIXL,EAUYW,GAAA;OATT,OAAOR,EAAAmC,CAAA,CAAC,CAAA,0BAAA;OACR,SAAK1B,EAAOT,EAAA2C,CAAA,GAAY,CAAA,MAAA,CAAA;;OAEd,SAAO/C,QAId,CAHFC,EAGEK,GAAA;QAFA,OAAM;QACN,MAAK"}
1
+ {"version":3,"file":"AThemeSelect.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VMenu","_withCtx","_createVNode","_component_VBtn","_mergeProps","_unref","_createElementBlock","_component_VIcon","_createTextVNode","_toDisplayString","_component_VCard","_component_VList","_component_VListItem","_withModifiers","_hoisted_1","_hoisted_2","_hoisted_3","AThemeSelect_vue_vue_type_script_setup_true_lang_default","useTheme","useI18n","isOpen","ref","openBlock","createBlock","VMenu","_cache","$event","withCtx","createVNode","VBtn","mergeProps","props","unref","settings","ThemeSettings","createElementBlock","VIcon","createTextVNode","toDisplayString","t","createCommentVNode","VCard","VList","VListItem","withModifiers","setThemeAuto","setThemeLight","setThemeDark"],"sources":["../../../../src/domains/system/components/AThemeSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { ref } from 'vue'\nimport { ThemeSettings, useTheme } from '@/domains/system/composables/themeSettings'\n\nconst { setThemeDark, setThemeAuto, setThemeLight, settings } = useTheme()\n\nconst { t } = useI18n()\n\nconst isOpen = ref(false)\n</script>\n\n<template>\n <VMenu\n v-model=\"isOpen\"\n close-on-content-click\n >\n <template #activator=\"{ props }\">\n <VBtn\n class=\"pl-1\"\n rounded=\"pill\"\n v-bind=\"props\"\n variant=\"text\"\n data-cy=\"settings-theme\"\n >\n <div v-if=\"settings === ThemeSettings.Auto\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-auto\"\n :size=\"32\"\n />{{ t('common.system.theme.auto') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Light\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-7\"\n :size=\"32\"\n />{{ t('common.system.theme.light') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Dark\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-4\"\n :size=\"32\"\n />{{ t('common.system.theme.dark') }}\n </div>\n </VBtn>\n </template>\n <VCard>\n <VList density=\"compact\">\n <VListItem\n :title=\"t('common.system.theme.auto')\"\n @click.stop=\"setThemeAuto\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-auto\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.light')\"\n @click.stop=\"setThemeLight\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-7\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.dark')\"\n @click.stop=\"setThemeDark\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-4\"\n />\n </template>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n</template>\n"],"mappings":";;;;;;;;;;;;EAKA,IAAM,EAAE,iBAAc,iBAAc,kBAAe,gBAAaoB,EAAS,GAEnE,EAAE,SAAMC,EAAQ,GAEhBC,IAASC,EAAI,EAAK;E,kBAItBvB,EAAA,GAAAC,EAwEQC,GAAA;GAvEG,YAAAoB,EAAA;GAAA,uBAAA,AAAAK,EAAA,QAAA,MAAA,EAAM,QAAAC;GACf,0BAAA;;GAEW,WAASzB,GA6BX,EA7Be,eAAK,CAC3BC,EA4BOC,GA5BPC,EA4BO;IA3BL,OAAM;IACN,SAAQ;GACA,GAAA2B,GAAK;IACb,SAAQ;IACR,WAAQ;;IAER,SAAA9B,QAMM,CANKI,EAAA4B,CAAA,MAAa5B,EAAA6B,CAAA,CAAa,CAAC,QAAtCpC,EAAA,GAAAQ,EAMM,OAAAQ,GAAA,CALJZ,EAIEK,GAAA;KAHA,OAAM;KACN,MAAK;KACJ,MAAM;I,IACJC,EAAAC,EAAAJ,EAAAkC,CAAA,CAAC,CAAA,0BAAA,CAAA,GAAA,CAAA,C,MAEQlC,EAAA4B,CAAA,MAAa5B,EAAA6B,CAAA,CAAa,CAAC,SAA3CpC,EAAA,GAAAQ,EAMM,OAAAS,GAAA,CALJb,EAIEK,GAAA;KAHA,OAAM;KACN,MAAK;KACJ,MAAM;I,IACJC,EAAAC,EAAAJ,EAAAkC,CAAA,CAAC,CAAA,2BAAA,CAAA,GAAA,CAAA,C,MAEQlC,EAAA4B,CAAA,MAAa5B,EAAA6B,CAAA,CAAa,CAAC,QAA3CpC,EAAA,GAAAQ,EAMM,OAAAU,GAAA,CALJd,EAIEK,GAAA;KAHA,OAAM;KACN,MAAK;KACJ,MAAM;I,IACJC,EAAAC,EAAAJ,EAAAkC,CAAA,CAAC,CAAA,0BAAA,CAAA,GAAA,CAAA,C;;;GAIZ,SAAAtC,QAoCQ,CApCRC,EAoCQQ,GAAA,MAAA;IAnCN,SAAAT,QAkCQ,CAlCRC,EAkCQS,GAAA,EAlCD,SAAQ,UAAS,GAAA;KACtB,SAAAV,QAUY;MAVZC,EAUYU,GAAA;OATT,OAAOP,EAAAkC,CAAA,CAAC,CAAA,0BAAA;OACR,SAAK1B,EAAOR,EAAAwC,CAAA,GAAY,CAAA,MAAA,CAAA;;OAEd,SAAO5C,QAId,CAHFC,EAGEK,GAAA;QAFA,OAAM;QACN,MAAK;;;;MAIXL,EAUYU,GAAA;OATT,OAAOP,EAAAkC,CAAA,CAAC,CAAA,2BAAA;OACR,SAAK1B,EAAOR,EAAAyC,CAAA,GAAa,CAAA,MAAA,CAAA;;OAEf,SAAO7C,QAId,CAHFC,EAGEK,GAAA;QAFA,OAAM;QACN,MAAK;;;;MAIXL,EAUYU,GAAA;OATT,OAAOP,EAAAkC,CAAA,CAAC,CAAA,0BAAA;OACR,SAAK1B,EAAOR,EAAA0C,CAAA,GAAY,CAAA,MAAA,CAAA;;OAEd,SAAO9C,QAId,CAHFC,EAGEK,GAAA;QAFA,OAAM;QACN,MAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"FlagCountry.js","names":["_sfc_main","FlagCountry_vue_vue_type_script_setup_true_lang_default","FlagCountry_default"],"sources":["../../../../../src/domains/system/flags/components/FlagCountry.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { LanguageCode } from '@/domains/system/composables/languageSettings'\nimport { computed } from 'vue'\nimport FlagSk from '@/domains/system/flags/components/FlagSk.vue'\nimport FlagEn from '@/domains/system/flags/components/FlagEn.vue'\nimport FlagEmpty from '@/domains/system/flags/components/FlagEmpty.vue'\n\n// flag source: https://github.com/hampusborgos/country-flags\n\nconst props = withDefaults(\n defineProps<{\n code?: LanguageCode | undefined\n dataCy?: string\n }>(),\n {\n code: 'xx',\n dataCy: 'flag-country',\n }\n)\n\nconst currentFlagComponent = computed(() => {\n switch (props.code) {\n case 'sk':\n return FlagSk\n case 'en':\n return FlagEn\n default:\n return FlagEmpty\n }\n})\n</script>\n\n<template>\n <div class=\"flag\">\n <component\n :is=\"currentFlagComponent\"\n :data-cy=\"dataCy\"\n />\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"FlagCountry.js","names":["FlagCountry_vue_vue_type_script_setup_true_lang_default","FlagCountry_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"FlagEn.js","names":["_openBlock","_createElementBlock","_createStaticVNode","_plugin_vue_export_helper_default","_sfc_main","_hoisted_1","_sfc_render","openBlock","createElementBlock","_cache","createStaticVNode","FlagEn_default"],"sources":["../../../../../src/domains/system/flags/components/FlagEn.vue"],"sourcesContent":["<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 7410 3900\"\n >\n <path\n fill=\"#b22234\"\n d=\"M0 0h7410v3900H0z\"\n />\n <path\n d=\"M0 450h7410m0 600H0m0 600h7410m0 600H0m0 600h7410m0 600H0\"\n stroke=\"#fff\"\n stroke-width=\"300\"\n />\n <path\n fill=\"#3c3b6e\"\n d=\"M0 0h2964v2100H0z\"\n />\n <g fill=\"#fff\">\n <g id=\"d\">\n <g id=\"c\">\n <g id=\"e\">\n <g id=\"b\">\n <path\n id=\"a\"\n d=\"M247 90l70.534 217.082-184.66-134.164h228.253L176.466 307.082z\"\n />\n <use\n xlink:href=\"#a\"\n y=\"420\"\n />\n <use\n xlink:href=\"#a\"\n y=\"840\"\n />\n <use\n xlink:href=\"#a\"\n y=\"1260\"\n />\n </g>\n <use\n xlink:href=\"#a\"\n y=\"1680\"\n />\n </g>\n <use\n xlink:href=\"#b\"\n x=\"247\"\n y=\"210\"\n />\n </g>\n <use\n xlink:href=\"#c\"\n x=\"494\"\n />\n </g>\n <use\n xlink:href=\"#d\"\n x=\"988\"\n />\n <use\n xlink:href=\"#c\"\n x=\"1976\"\n />\n <use\n xlink:href=\"#e\"\n x=\"2470\"\n />\n </g>\n </svg>\n</template>\n"],"mappings":";;;;CAEI,OAAM;CACN,eAAY;CACZ,SAAQ;;;CAHV,OAAAA,EAAA,GAAAC,EAqEM,OArENI,GAqEM,CAAA,GAAA,AAAAI,EAAA,OAAA,C"}
1
+ {"version":3,"file":"FlagEn.js","names":["_openBlock","_createElementBlock","_plugin_vue_export_helper_default","_sfc_main","_hoisted_1","_sfc_render","openBlock","createElementBlock","_cache","createStaticVNode","FlagEn_default"],"sources":["../../../../../src/domains/system/flags/components/FlagEn.vue"],"sourcesContent":["<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 7410 3900\"\n >\n <path\n fill=\"#b22234\"\n d=\"M0 0h7410v3900H0z\"\n />\n <path\n d=\"M0 450h7410m0 600H0m0 600h7410m0 600H0m0 600h7410m0 600H0\"\n stroke=\"#fff\"\n stroke-width=\"300\"\n />\n <path\n fill=\"#3c3b6e\"\n d=\"M0 0h2964v2100H0z\"\n />\n <g fill=\"#fff\">\n <g id=\"d\">\n <g id=\"c\">\n <g id=\"e\">\n <g id=\"b\">\n <path\n id=\"a\"\n d=\"M247 90l70.534 217.082-184.66-134.164h228.253L176.466 307.082z\"\n />\n <use\n xlink:href=\"#a\"\n y=\"420\"\n />\n <use\n xlink:href=\"#a\"\n y=\"840\"\n />\n <use\n xlink:href=\"#a\"\n y=\"1260\"\n />\n </g>\n <use\n xlink:href=\"#a\"\n y=\"1680\"\n />\n </g>\n <use\n xlink:href=\"#b\"\n x=\"247\"\n y=\"210\"\n />\n </g>\n <use\n xlink:href=\"#c\"\n x=\"494\"\n />\n </g>\n <use\n xlink:href=\"#d\"\n x=\"988\"\n />\n <use\n xlink:href=\"#c\"\n x=\"1976\"\n />\n <use\n xlink:href=\"#e\"\n x=\"2470\"\n />\n </g>\n </svg>\n</template>\n"],"mappings":";;;;CAEI,OAAM;CACN,eAAY;CACZ,SAAQ;;;CAHV,OAAAA,EAAA,GAAAC,EAqEM,OArENG,GAqEM,CAAA,GAAA,AAAAI,EAAA,OAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"FlagSk.js","names":["_openBlock","_createElementBlock","_createStaticVNode","_plugin_vue_export_helper_default","_sfc_main","_hoisted_1","_sfc_render","openBlock","createElementBlock","_cache","createStaticVNode","FlagSk_default"],"sources":["../../../../../src/domains/system/flags/components/FlagSk.vue"],"sourcesContent":["<script lang=\"ts\" setup></script>\n\n<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 900 600\"\n >\n <path\n fill=\"#ee1c25\"\n d=\"M0 0h900v600H0z\"\n />\n <path\n fill=\"#0b4ea2\"\n d=\"M0 0h900v400H0z\"\n />\n <path\n fill=\"#fff\"\n d=\"M0 0h900v200H0z\"\n />\n <path\n d=\"M393.479 141H146.358l-.847 8.059c-.184 1.752-4.511 43.971-4.511 136.69 0 43.563 14.726 82 43.77 114.23 20.349 22.585 46.923 41.6 81.242 58.129l3.9 1.881 3.906-1.881c34.32-16.53 60.9-35.544 81.246-58.129 29.044-32.234 43.771-70.667 43.771-114.23 0-92.718-4.328-134.938-4.512-136.69l-.844-8.059z\"\n fill=\"#fff\"\n />\n <path\n d=\"M269.917 450C220.577 426.234 150 379.062 150 285.749S154.461 150 154.461 150h230.915s4.463 42.437 4.463 135.749S319.261 426.234 269.917 450z\"\n fill=\"#ee1c25\"\n />\n <path\n d=\"M280.484 261.284c13.36.216 39.425.739 62.635-7.027 0 0-.613 8.306-.613 17.98s.613 17.982.613 17.982c-21.289-7.125-47.58-7.273-62.635-7.082v51.539h-21.1v-51.539c-15.055-.191-41.345-.043-62.635 7.082 0 0 .613-8.305.613-17.982s-.613-17.98-.613-17.98c23.21 7.766 49.275 7.243 62.635 7.027v-32.368c-12.177-.108-29.723.473-49.563 7.113 0 0 .613-8.305.613-17.982s-.613-17.981-.613-17.981c19.81 6.628 37.336 7.219 49.509 7.114-.626-20.5-6.6-46.332-6.6-46.332s12.289.959 17.2.959 17.2-.959 17.2-.959-5.969 25.835-6.6 46.33c12.174.106 29.7-.485 49.509-7.114 0 0-.613 8.305-.613 17.981s.613 17.982.613 17.982c-19.839-6.639-37.386-7.221-49.563-7.113v32.37z\"\n fill=\"#fff\"\n />\n <path\n d=\"M269.9 329.094c-24.852 0-38.163 34.469-38.163 34.469a30.466 30.466 0 0 0-27.661-16.344c-13.719 0-23.829 12.2-30.256 23.5 24.959 39.7 64.78 64.207 96.079 79.281 31.305-15.075 71.152-39.571 96.112-79.281-6.427-11.3-16.537-23.5-30.256-23.5a30.539 30.539 0 0 0-27.693 16.344s-13.308-34.469-38.162-34.469z\"\n fill=\"#0b4ea2\"\n />\n </svg>\n</template>\n"],"mappings":";;;;CAII,OAAM;CACN,SAAQ;;;CAFV,OAAAA,EAAA,GAAAC,EAgCM,OAhCNI,GAgCM,CAAA,GAAA,AAAAI,EAAA,OAAA,C"}
1
+ {"version":3,"file":"FlagSk.js","names":["_openBlock","_createElementBlock","_plugin_vue_export_helper_default","_sfc_main","_hoisted_1","_sfc_render","openBlock","createElementBlock","_cache","createStaticVNode","FlagSk_default"],"sources":["../../../../../src/domains/system/flags/components/FlagSk.vue"],"sourcesContent":["<script lang=\"ts\" setup></script>\n\n<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 900 600\"\n >\n <path\n fill=\"#ee1c25\"\n d=\"M0 0h900v600H0z\"\n />\n <path\n fill=\"#0b4ea2\"\n d=\"M0 0h900v400H0z\"\n />\n <path\n fill=\"#fff\"\n d=\"M0 0h900v200H0z\"\n />\n <path\n d=\"M393.479 141H146.358l-.847 8.059c-.184 1.752-4.511 43.971-4.511 136.69 0 43.563 14.726 82 43.77 114.23 20.349 22.585 46.923 41.6 81.242 58.129l3.9 1.881 3.906-1.881c34.32-16.53 60.9-35.544 81.246-58.129 29.044-32.234 43.771-70.667 43.771-114.23 0-92.718-4.328-134.938-4.512-136.69l-.844-8.059z\"\n fill=\"#fff\"\n />\n <path\n d=\"M269.917 450C220.577 426.234 150 379.062 150 285.749S154.461 150 154.461 150h230.915s4.463 42.437 4.463 135.749S319.261 426.234 269.917 450z\"\n fill=\"#ee1c25\"\n />\n <path\n d=\"M280.484 261.284c13.36.216 39.425.739 62.635-7.027 0 0-.613 8.306-.613 17.98s.613 17.982.613 17.982c-21.289-7.125-47.58-7.273-62.635-7.082v51.539h-21.1v-51.539c-15.055-.191-41.345-.043-62.635 7.082 0 0 .613-8.305.613-17.982s-.613-17.98-.613-17.98c23.21 7.766 49.275 7.243 62.635 7.027v-32.368c-12.177-.108-29.723.473-49.563 7.113 0 0 .613-8.305.613-17.982s-.613-17.981-.613-17.981c19.81 6.628 37.336 7.219 49.509 7.114-.626-20.5-6.6-46.332-6.6-46.332s12.289.959 17.2.959 17.2-.959 17.2-.959-5.969 25.835-6.6 46.33c12.174.106 29.7-.485 49.509-7.114 0 0-.613 8.305-.613 17.981s.613 17.982.613 17.982c-19.839-6.639-37.386-7.221-49.563-7.113v32.37z\"\n fill=\"#fff\"\n />\n <path\n d=\"M269.9 329.094c-24.852 0-38.163 34.469-38.163 34.469a30.466 30.466 0 0 0-27.661-16.344c-13.719 0-23.829 12.2-30.256 23.5 24.959 39.7 64.78 64.207 96.079 79.281 31.305-15.075 71.152-39.571 96.112-79.281-6.427-11.3-16.537-23.5-30.256-23.5a30.539 30.539 0 0 0-27.693 16.344s-13.308-34.469-38.162-34.469z\"\n fill=\"#0b4ea2\"\n />\n </svg>\n</template>\n"],"mappings":";;;;CAII,OAAM;CACN,SAAQ;;;CAFV,OAAAA,EAAA,GAAAC,EAgCM,OAhCNG,GAgCM,CAAA,GAAA,AAAAI,EAAA,OAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ASystemBar.js","names":["_sfc_main","ASystemBar_vue_vue_type_script_setup_true_lang_default","ASystemBar_default"],"sources":["../../../../../src/domains/system/systemBar/components/ASystemBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, watch } from 'vue'\nimport { useIntervalFn } from '@vueuse/core'\nimport ASystemBarNewVersion from '@/domains/system/systemBar/components/ASystemBarNewVersion.vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport { AnzuNewVersionFetchError, isAnzuNewVersionFetchError } from '@/shared/error/AnzuNewVersionFetchError'\nimport { useUserActivity } from '@/domains/system/composables/useUserActivity'\nimport { useSystemBar } from '@/domains/system/systemBar/composables/systemBar'\n\nconst props = withDefaults(\n defineProps<{\n currentVersion: string\n checkInterval?: number\n jsonRelativePath?: string\n minInactiveTime?: number\n }>(),\n {\n checkInterval: 60000,\n jsonRelativePath: 'config.json',\n minInactiveTime: 5000,\n }\n)\n\nconst showSystemBar = ref<boolean>(false)\nconst abortController = ref<AbortController | null>(null)\nconst lastInactiveTime = ref<number>(0)\n\nconst CONSECUTIVE_FAILURE_ALERT_THRESHOLD = 5\nlet consecutiveFailures = 0\nlet alertedForCurrentOutage = false\n\nconst { newVersion } = useSystemBar()\n\nconst checkNewVersion = async (): Promise<void> => {\n if (abortController.value) {\n abortController.value.abort()\n }\n\n abortController.value = new AbortController()\n\n const isAbortError = (error: unknown): error is Error => {\n return error instanceof Error && error.name === 'AbortError'\n }\n\n try {\n const res = await fetch(`/${props.jsonRelativePath}?random=${Date.now()}`, {\n signal: abortController.value.signal,\n })\n if (res.ok) {\n const contentType = res.headers.get('content-type')\n if (!contentType || !contentType.includes('application/json')) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect content type.')\n }\n const json = await res.json()\n if (Object.keys(json).length < 1) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response body.')\n }\n showSystemBar.value = !isUndefined(json.appVersion) && json.appVersion !== props.currentVersion\n newVersion.value = showSystemBar.value\n consecutiveFailures = 0\n alertedForCurrentOutage = false\n\n return\n }\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response code.')\n } catch (error) {\n if (isAbortError(error)) {\n return\n }\n if (isAnzuNewVersionFetchError(error)) {\n throw error\n }\n if (error instanceof SyntaxError) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Syntax error.', error)\n }\n if (error instanceof Error) {\n throw new AnzuNewVersionFetchError('Unable to load env config. ' + error.message, error)\n }\n throw new AnzuNewVersionFetchError('Unable to load env config. Unknown error.', error as any)\n }\n}\n\nconst systemBarComponent = computed(() => {\n return ASystemBarNewVersion\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { pause, resume } = useIntervalFn(() => {\n checkNewVersion().catch((error) => {\n if (isAnzuNewVersionFetchError(error)) {\n consecutiveFailures++\n if (consecutiveFailures >= CONSECUTIVE_FAILURE_ALERT_THRESHOLD && !alertedForCurrentOutage) {\n alertedForCurrentOutage = true\n // One signal per outage — ops can alert on this; resets on the next successful poll.\n console.error(`[ASystemBar] Version check failed ${consecutiveFailures} consecutive times:`, error)\n }\n return\n }\n console.warn(error)\n })\n}, props.checkInterval)\n\nconst { isWindowActive } = useUserActivity()\n\n// Only one retry is pending at a time. Untracked, a retry left\n// scheduled after unmount starts a fetch that cannot be aborted.\n// A new check also replaces a pending retry, since returning to\n// the window starts one while a previous retry may be pending.\nlet retryTimer: ReturnType<typeof setTimeout> | undefined = undefined\n\nconst checkNewVersionWithRetry = (attempt = 1, maxAttempts = 3) => {\n const delay = Math.min(1000 * attempt, 3000) // 1000ms, 2000ms, 3000ms\n\n clearTimeout(retryTimer)\n retryTimer = setTimeout(async () => {\n try {\n await checkNewVersion()\n } catch (error) {\n if (\n error instanceof AnzuNewVersionFetchError &&\n (error.message.includes('Failed to fetch') || error.message.includes('NetworkError')) &&\n attempt < maxAttempts\n ) {\n checkNewVersionWithRetry(attempt + 1, maxAttempts)\n } else {\n console.error('Version check failed:', error)\n }\n }\n }, delay)\n}\n\nwatch(\n isWindowActive,\n (newValue: boolean) => {\n const now: number = Date.now()\n\n if (newValue) {\n const inactiveDuration: number = now - lastInactiveTime.value\n resume()\n if (inactiveDuration > props.minInactiveTime) {\n checkNewVersionWithRetry()\n }\n } else {\n lastInactiveTime.value = now\n pause()\n }\n },\n { immediate: true }\n)\n\nonBeforeUnmount(() => {\n clearTimeout(retryTimer)\n if (abortController.value) {\n abortController.value.abort()\n }\n})\n</script>\n\n<template>\n <VAppBar\n v-if=\"showSystemBar\"\n height=\"48\"\n color=\"orange-accent-3\"\n elevation=\"0\"\n :order=\"-1\"\n >\n <div class=\"text-center w-100 text-body-small pb-1\">\n <component :is=\"systemBarComponent\" />\n </div>\n </VAppBar>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ASystemBar.js","names":["ASystemBar_vue_vue_type_script_setup_true_lang_default","ASystemBar_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ASystemBar.vue_vue_type_script_setup_true_lang.js","names":["ASystemBarNewVersion","_openBlock","_createBlock","_component_VAppBar","_withCtx","_createElementVNode","_resolveDynamicComponent","_createCommentVNode","ASystemBarNewVersion_default","_hoisted_1","CONSECUTIVE_FAILURE_ALERT_THRESHOLD","ASystemBar_vue_vue_type_script_setup_true_lang_default","props","__props","showSystemBar","ref","abortController","lastInactiveTime","consecutiveFailures","alertedForCurrentOutage","useSystemBar","checkNewVersion","isAbortError","error","res","contentType","AnzuNewVersionFetchError","json","isUndefined","isAnzuNewVersionFetchError","systemBarComponent","computed","useIntervalFn","useUserActivity","retryTimer","checkNewVersionWithRetry","delay","attempt","maxAttempts","watch","isWindowActive","now","newValue","inactiveDuration","resume","pause","onBeforeUnmount","openBlock","createBlock","VAppBar","withCtx","createElementVNode","resolveDynamicComponent","createCommentVNode"],"sources":["../../../../../src/domains/system/systemBar/components/ASystemBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, watch } from 'vue'\nimport { useIntervalFn } from '@vueuse/core'\nimport ASystemBarNewVersion from '@/domains/system/systemBar/components/ASystemBarNewVersion.vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport { AnzuNewVersionFetchError, isAnzuNewVersionFetchError } from '@/shared/error/AnzuNewVersionFetchError'\nimport { useUserActivity } from '@/domains/system/composables/useUserActivity'\nimport { useSystemBar } from '@/domains/system/systemBar/composables/systemBar'\n\nconst props = withDefaults(\n defineProps<{\n currentVersion: string\n checkInterval?: number\n jsonRelativePath?: string\n minInactiveTime?: number\n }>(),\n {\n checkInterval: 60000,\n jsonRelativePath: 'config.json',\n minInactiveTime: 5000,\n }\n)\n\nconst showSystemBar = ref<boolean>(false)\nconst abortController = ref<AbortController | null>(null)\nconst lastInactiveTime = ref<number>(0)\n\nconst CONSECUTIVE_FAILURE_ALERT_THRESHOLD = 5\nlet consecutiveFailures = 0\nlet alertedForCurrentOutage = false\n\nconst { newVersion } = useSystemBar()\n\nconst checkNewVersion = async (): Promise<void> => {\n if (abortController.value) {\n abortController.value.abort()\n }\n\n abortController.value = new AbortController()\n\n const isAbortError = (error: unknown): error is Error => {\n return error instanceof Error && error.name === 'AbortError'\n }\n\n try {\n const res = await fetch(`/${props.jsonRelativePath}?random=${Date.now()}`, {\n signal: abortController.value.signal,\n })\n if (res.ok) {\n const contentType = res.headers.get('content-type')\n if (!contentType || !contentType.includes('application/json')) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect content type.')\n }\n const json = await res.json()\n if (Object.keys(json).length < 1) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response body.')\n }\n showSystemBar.value = !isUndefined(json.appVersion) && json.appVersion !== props.currentVersion\n newVersion.value = showSystemBar.value\n consecutiveFailures = 0\n alertedForCurrentOutage = false\n\n return\n }\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response code.')\n } catch (error) {\n if (isAbortError(error)) {\n return\n }\n if (isAnzuNewVersionFetchError(error)) {\n throw error\n }\n if (error instanceof SyntaxError) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Syntax error.', error)\n }\n if (error instanceof Error) {\n throw new AnzuNewVersionFetchError('Unable to load env config. ' + error.message, error)\n }\n throw new AnzuNewVersionFetchError('Unable to load env config. Unknown error.', error as any)\n }\n}\n\nconst systemBarComponent = computed(() => {\n return ASystemBarNewVersion\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { pause, resume } = useIntervalFn(() => {\n checkNewVersion().catch((error) => {\n if (isAnzuNewVersionFetchError(error)) {\n consecutiveFailures++\n if (consecutiveFailures >= CONSECUTIVE_FAILURE_ALERT_THRESHOLD && !alertedForCurrentOutage) {\n alertedForCurrentOutage = true\n // One signal per outage — ops can alert on this; resets on the next successful poll.\n console.error(`[ASystemBar] Version check failed ${consecutiveFailures} consecutive times:`, error)\n }\n return\n }\n console.warn(error)\n })\n}, props.checkInterval)\n\nconst { isWindowActive } = useUserActivity()\n\n// Only one retry is pending at a time. Untracked, a retry left\n// scheduled after unmount starts a fetch that cannot be aborted.\n// A new check also replaces a pending retry, since returning to\n// the window starts one while a previous retry may be pending.\nlet retryTimer: ReturnType<typeof setTimeout> | undefined = undefined\n\nconst checkNewVersionWithRetry = (attempt = 1, maxAttempts = 3) => {\n const delay = Math.min(1000 * attempt, 3000) // 1000ms, 2000ms, 3000ms\n\n clearTimeout(retryTimer)\n retryTimer = setTimeout(async () => {\n try {\n await checkNewVersion()\n } catch (error) {\n if (\n error instanceof AnzuNewVersionFetchError &&\n (error.message.includes('Failed to fetch') || error.message.includes('NetworkError')) &&\n attempt < maxAttempts\n ) {\n checkNewVersionWithRetry(attempt + 1, maxAttempts)\n } else {\n console.error('Version check failed:', error)\n }\n }\n }, delay)\n}\n\nwatch(\n isWindowActive,\n (newValue: boolean) => {\n const now: number = Date.now()\n\n if (newValue) {\n const inactiveDuration: number = now - lastInactiveTime.value\n resume()\n if (inactiveDuration > props.minInactiveTime) {\n checkNewVersionWithRetry()\n }\n } else {\n lastInactiveTime.value = now\n pause()\n }\n },\n { immediate: true }\n)\n\nonBeforeUnmount(() => {\n clearTimeout(retryTimer)\n if (abortController.value) {\n abortController.value.abort()\n }\n})\n</script>\n\n<template>\n <VAppBar\n v-if=\"showSystemBar\"\n height=\"48\"\n color=\"orange-accent-3\"\n elevation=\"0\"\n :order=\"-1\"\n >\n <div class=\"text-center w-100 text-body-small pb-1\">\n <component :is=\"systemBarComponent\" />\n </div>\n </VAppBar>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"ASystemBar.vue_vue_type_script_setup_true_lang.js","names":["ASystemBarNewVersion","_openBlock","_createBlock","_component_VAppBar","_withCtx","_createElementVNode","_resolveDynamicComponent","ASystemBarNewVersion_default","_hoisted_1","CONSECUTIVE_FAILURE_ALERT_THRESHOLD","ASystemBar_vue_vue_type_script_setup_true_lang_default","props","__props","showSystemBar","ref","abortController","lastInactiveTime","consecutiveFailures","alertedForCurrentOutage","useSystemBar","checkNewVersion","isAbortError","error","res","contentType","AnzuNewVersionFetchError","json","isUndefined","isAnzuNewVersionFetchError","systemBarComponent","computed","useIntervalFn","useUserActivity","retryTimer","checkNewVersionWithRetry","delay","attempt","maxAttempts","watch","isWindowActive","now","newValue","inactiveDuration","resume","pause","onBeforeUnmount","openBlock","createBlock","VAppBar","withCtx","createElementVNode","resolveDynamicComponent","createCommentVNode"],"sources":["../../../../../src/domains/system/systemBar/components/ASystemBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, watch } from 'vue'\nimport { useIntervalFn } from '@vueuse/core'\nimport ASystemBarNewVersion from '@/domains/system/systemBar/components/ASystemBarNewVersion.vue'\nimport { isUndefined } from '@/shared/utils/common'\nimport { AnzuNewVersionFetchError, isAnzuNewVersionFetchError } from '@/shared/error/AnzuNewVersionFetchError'\nimport { useUserActivity } from '@/domains/system/composables/useUserActivity'\nimport { useSystemBar } from '@/domains/system/systemBar/composables/systemBar'\n\nconst props = withDefaults(\n defineProps<{\n currentVersion: string\n checkInterval?: number\n jsonRelativePath?: string\n minInactiveTime?: number\n }>(),\n {\n checkInterval: 60000,\n jsonRelativePath: 'config.json',\n minInactiveTime: 5000,\n }\n)\n\nconst showSystemBar = ref<boolean>(false)\nconst abortController = ref<AbortController | null>(null)\nconst lastInactiveTime = ref<number>(0)\n\nconst CONSECUTIVE_FAILURE_ALERT_THRESHOLD = 5\nlet consecutiveFailures = 0\nlet alertedForCurrentOutage = false\n\nconst { newVersion } = useSystemBar()\n\nconst checkNewVersion = async (): Promise<void> => {\n if (abortController.value) {\n abortController.value.abort()\n }\n\n abortController.value = new AbortController()\n\n const isAbortError = (error: unknown): error is Error => {\n return error instanceof Error && error.name === 'AbortError'\n }\n\n try {\n const res = await fetch(`/${props.jsonRelativePath}?random=${Date.now()}`, {\n signal: abortController.value.signal,\n })\n if (res.ok) {\n const contentType = res.headers.get('content-type')\n if (!contentType || !contentType.includes('application/json')) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect content type.')\n }\n const json = await res.json()\n if (Object.keys(json).length < 1) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response body.')\n }\n showSystemBar.value = !isUndefined(json.appVersion) && json.appVersion !== props.currentVersion\n newVersion.value = showSystemBar.value\n consecutiveFailures = 0\n alertedForCurrentOutage = false\n\n return\n }\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response code.')\n } catch (error) {\n if (isAbortError(error)) {\n return\n }\n if (isAnzuNewVersionFetchError(error)) {\n throw error\n }\n if (error instanceof SyntaxError) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Syntax error.', error)\n }\n if (error instanceof Error) {\n throw new AnzuNewVersionFetchError('Unable to load env config. ' + error.message, error)\n }\n throw new AnzuNewVersionFetchError('Unable to load env config. Unknown error.', error as any)\n }\n}\n\nconst systemBarComponent = computed(() => {\n return ASystemBarNewVersion\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { pause, resume } = useIntervalFn(() => {\n checkNewVersion().catch((error) => {\n if (isAnzuNewVersionFetchError(error)) {\n consecutiveFailures++\n if (consecutiveFailures >= CONSECUTIVE_FAILURE_ALERT_THRESHOLD && !alertedForCurrentOutage) {\n alertedForCurrentOutage = true\n // One signal per outage — ops can alert on this; resets on the next successful poll.\n console.error(`[ASystemBar] Version check failed ${consecutiveFailures} consecutive times:`, error)\n }\n return\n }\n console.warn(error)\n })\n}, props.checkInterval)\n\nconst { isWindowActive } = useUserActivity()\n\n// Only one retry is pending at a time. Untracked, a retry left\n// scheduled after unmount starts a fetch that cannot be aborted.\n// A new check also replaces a pending retry, since returning to\n// the window starts one while a previous retry may be pending.\nlet retryTimer: ReturnType<typeof setTimeout> | undefined = undefined\n\nconst checkNewVersionWithRetry = (attempt = 1, maxAttempts = 3) => {\n const delay = Math.min(1000 * attempt, 3000) // 1000ms, 2000ms, 3000ms\n\n clearTimeout(retryTimer)\n retryTimer = setTimeout(async () => {\n try {\n await checkNewVersion()\n } catch (error) {\n if (\n error instanceof AnzuNewVersionFetchError &&\n (error.message.includes('Failed to fetch') || error.message.includes('NetworkError')) &&\n attempt < maxAttempts\n ) {\n checkNewVersionWithRetry(attempt + 1, maxAttempts)\n } else {\n console.error('Version check failed:', error)\n }\n }\n }, delay)\n}\n\nwatch(\n isWindowActive,\n (newValue: boolean) => {\n const now: number = Date.now()\n\n if (newValue) {\n const inactiveDuration: number = now - lastInactiveTime.value\n resume()\n if (inactiveDuration > props.minInactiveTime) {\n checkNewVersionWithRetry()\n }\n } else {\n lastInactiveTime.value = now\n pause()\n }\n },\n { immediate: true }\n)\n\nonBeforeUnmount(() => {\n clearTimeout(retryTimer)\n if (abortController.value) {\n abortController.value.abort()\n }\n})\n</script>\n\n<template>\n <VAppBar\n v-if=\"showSystemBar\"\n height=\"48\"\n color=\"orange-accent-3\"\n elevation=\"0\"\n :order=\"-1\"\n >\n <div class=\"text-center w-100 text-body-small pb-1\">\n <component :is=\"systemBarComponent\" />\n </div>\n </VAppBar>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ASystemBarNewVersion.js","names":["_sfc_main","ASystemBarNewVersion_vue_vue_type_script_setup_true_lang_default","ASystemBarNewVersion_default"],"sources":["../../../../../src/domains/system/systemBar/components/ASystemBarNewVersion.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { t } = useI18n()\n\nconst reloadAdmin = () => {\n window.location.reload()\n}\n</script>\n\n<template>\n <span\n v-once\n class=\"system-bar-new-version\"\n >\n {{ t('common.system.newVersionText') }}\n <span\n class=\"text-decoration-underline cursor-pointer\"\n @click.stop=\"reloadAdmin\"\n >\n {{ t('common.system.newVersionReload') }}\n </span>\n </span>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ASystemBarNewVersion.js","names":["ASystemBarNewVersion_vue_vue_type_script_setup_true_lang_default","ASystemBarNewVersion_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ASystemBarNewVersion.vue_vue_type_script_setup_true_lang.js","names":["_setBlockTracking","_createElementVNode","_createTextVNode","_toDisplayString","_unref","_withModifiers","ASystemBarNewVersion_vue_vue_type_script_setup_true_lang_default","useI18n","reloadAdmin","_cache","setBlockTracking","createElementVNode","createTextVNode","toDisplayString","unref","t","withModifiers"],"sources":["../../../../../src/domains/system/systemBar/components/ASystemBarNewVersion.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { t } = useI18n()\n\nconst reloadAdmin = () => {\n window.location.reload()\n}\n</script>\n\n<template>\n <span\n v-once\n class=\"system-bar-new-version\"\n >\n {{ t('common.system.newVersionText') }}\n <span\n class=\"text-decoration-underline cursor-pointer\"\n @click.stop=\"reloadAdmin\"\n >\n {{ t('common.system.newVersionReload') }}\n </span>\n </span>\n</template>\n"],"mappings":";;;;;;EAGA,IAAM,EAAE,SAAMO,EAAQ,GAEhBC,UAAoB;GACxB,OAAO,SAAS,OAAO;EACzB;E,qCAIE,CAAA,EAAA,KAAAP,EAWO,QAAA,EATL,OAAM,yBAAwB,GAAA,CAE3BC,EAAAC,EAAAC,EAAAW,CAAA,CAAC,CAAA,8BAAA,CAAA,IAAmC,KACvC,CAAA,GAAAd,EAKO,QAAA;GAJL,OAAM;GACL,SAAKI,EAAOG,GAAW,CAAA,MAAA,CAAA;EAErB,GAAAL,EAAAC,EAAAW,CAAA,CAAC,CAAA,gCAAA,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"ASystemBarNewVersion.vue_vue_type_script_setup_true_lang.js","names":["_createElementVNode","_createTextVNode","_toDisplayString","_unref","_withModifiers","ASystemBarNewVersion_vue_vue_type_script_setup_true_lang_default","useI18n","reloadAdmin","_cache","setBlockTracking","createElementVNode","createTextVNode","toDisplayString","unref","t","withModifiers"],"sources":["../../../../../src/domains/system/systemBar/components/ASystemBarNewVersion.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { t } = useI18n()\n\nconst reloadAdmin = () => {\n window.location.reload()\n}\n</script>\n\n<template>\n <span\n v-once\n class=\"system-bar-new-version\"\n >\n {{ t('common.system.newVersionText') }}\n <span\n class=\"text-decoration-underline cursor-pointer\"\n @click.stop=\"reloadAdmin\"\n >\n {{ t('common.system.newVersionReload') }}\n </span>\n </span>\n</template>\n"],"mappings":";;;;;;EAGA,IAAM,EAAE,SAAMM,EAAQ,GAEhBC,UAAoB;GACxB,OAAO,SAAS,OAAO;EACzB;E,qCAIE,CAAA,EAAA,KAAAP,EAWO,QAAA,EATL,OAAM,yBAAwB,GAAA,CAE3BC,EAAAC,EAAAC,EAAAW,CAAA,CAAC,CAAA,8BAAA,CAAA,IAAmC,KACvC,CAAA,GAAAd,EAKO,QAAA;GAJL,OAAM;GACL,SAAKI,EAAOG,GAAW,CAAA,MAAA,CAAA;EAErB,GAAAL,EAAAC,EAAAW,CAAA,CAAC,CAAA,gCAAA,CAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionCloseButtonHistory.js","names":["_sfc_main","AActionCloseButtonHistory_vue_vue_type_script_setup_true_lang_default","AActionCloseButtonHistory_default"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { type RouteRecordName, useRouter } from 'vue-router'\nimport { useRouteHistory } from '@/domains/system/composables/routeHistory'\nimport { useDatatablePageStore } from '@/domains/system/store/datatablePageStore'\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Route names that are not a destination: the record's sibling views and its create form.\n * The route the button is on is skipped anyway, so do not list it.\n */\n skipRouteNames?: RouteRecordName[]\n fallbackRouteName?: RouteRecordName\n fallbackRouteParams?: Record<string, any>\n buttonClass?: string\n dataCy?: string\n size?: number\n }>(),\n {\n skipRouteNames: () => [],\n fallbackRouteName: undefined,\n fallbackRouteParams: undefined,\n buttonClass: 'ml-2',\n dataCy: 'button-close',\n size: 36,\n }\n)\n\nconst { t } = useI18n()\nconst router = useRouter()\nconst { navigateBack } = useRouteHistory()\nconst { preservePageForLanding } = useDatatablePageStore()\n\nconst onClick = () => {\n const closing = navigateBack(router, {\n skipRouteNames: props.skipRouteNames,\n fallbackRouteName: props.fallbackRouteName,\n fallbackRouteParams: props.fallbackRouteParams,\n })\n // Right after the push: its guards run first, its `afterEach` later.\n preservePageForLanding(router, closing)\n}\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :aria-label=\"t('common.button.close')\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n variant=\"text\"\n :width=\"size\"\n :height=\"size\"\n :active=\"false\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-close\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.button.close') }}\n </VTooltip>\n </VBtn>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AActionCloseButtonHistory.js","names":["AActionCloseButtonHistory_vue_vue_type_script_setup_true_lang_default","AActionCloseButtonHistory_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionCreateButton.js","names":["_sfc_main","AActionCreateButton_vue_vue_type_script_setup_true_lang_default","AActionCreateButton_default"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionCreateButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RegisteredAclValue } from '@/domains/auth/types/Permission'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport { useI18n } from 'vue-i18n'\nimport type { ButtonVariant } from '@/shared/types/commonAdmin'\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n size?: number\n variant?: ButtonVariant\n // Shown only when the current user passes it; no ACL, no check. An array is evaluated with AND.\n acl?: RegisteredAclValue | RegisteredAclValue[]\n subject?: object\n }>(),\n {\n acl: undefined,\n subject: undefined,\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: 'button-create',\n size: 36,\n variant: 'primary',\n }\n)\n\nconst aclAllowed = useAclAllowed(\n () => props.acl,\n () => props.subject\n)\n\nconst { t } = useI18n()\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"aclAllowed && variant === 'icon'\"\n :aria-label=\"t(buttonT)\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n :width=\"size\"\n :height=\"size\"\n >\n <VIcon icon=\"mdi-plus\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else-if=\"aclAllowed\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n color=\"primary\"\n rounded=\"pill\"\n :height=\"size\"\n >\n {{ t(buttonT) }}\n </VBtn>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AActionCreateButton.js","names":["AActionCreateButton_vue_vue_type_script_setup_true_lang_default","AActionCreateButton_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionCreateButton.vue_vue_type_script_setup_true_lang.js","names":["_unref","_openBlock","_createBlock","_component_VBtn","_normalizeClass","_withCtx","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_createCommentVNode","AActionCreateButton_vue_vue_type_script_setup_true_lang_default","props","__props","aclAllowed","useAclAllowed","useI18n","variantComputed","computed","unref","openBlock","createBlock","VBtn","t","normalizeClass","withCtx","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","createCommentVNode"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionCreateButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RegisteredAclValue } from '@/domains/auth/types/Permission'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport { useI18n } from 'vue-i18n'\nimport type { ButtonVariant } from '@/shared/types/commonAdmin'\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n size?: number\n variant?: ButtonVariant\n // Shown only when the current user passes it; no ACL, no check. An array is evaluated with AND.\n acl?: RegisteredAclValue | RegisteredAclValue[]\n subject?: object\n }>(),\n {\n acl: undefined,\n subject: undefined,\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: 'button-create',\n size: 36,\n variant: 'primary',\n }\n)\n\nconst aclAllowed = useAclAllowed(\n () => props.acl,\n () => props.subject\n)\n\nconst { t } = useI18n()\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"aclAllowed && variant === 'icon'\"\n :aria-label=\"t(buttonT)\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n :width=\"size\"\n :height=\"size\"\n >\n <VIcon icon=\"mdi-plus\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else-if=\"aclAllowed\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n color=\"primary\"\n rounded=\"pill\"\n :height=\"size\"\n >\n {{ t(buttonT) }}\n </VBtn>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAOA,IAAMa,IAAQC,GAuBRC,IAAaC,QACXH,EAAM,WACNA,EAAM,OACd,GAEM,EAAE,SAAMI,EAAQ,GAEhBC,IAAkBC,QAAe;GACrC,QAAQN,EAAM,SAAd;IACE,KAAK,aACH,OAAO;IACT,KAAK;IACL,KAAK,QACH,OAAO;IACT,SACE,OAAO;GACX;EACF,CAAC;E,iBAKSb,EAAAe,CAAA,KAAcD,EAAA,YAAO,UAD7Bb,EAAA,GAAAC,EAmBOC,GAAA;;GAjBJ,cAAYH,EAAAwB,CAAA,CAAC,CAACV,EAAA,OAAO;GACrB,OAAKV,EAAEU,EAAA,WAAW;GAClB,WAASA,EAAA;GACV,MAAA;GACA,MAAK;GACJ,SAASI,EAAA;GACT,IAAE,EAAA,MAAUJ,EAAA,UAAS;GACrB,OAAOA,EAAA;GACP,QAAQA,EAAA;;GAET,SAAAT,QAAyB,CAAzBC,EAAyBC,GAAA,EAAlB,MAAK,WAAU,CAAA,GACtBD,EAKWE,GAAA;IAJT,WAAU;IACV,UAAS;;IAET,SAAAH,QAAgB,CAAbI,EAAAC,EAAAV,EAAAwB,CAAA,CAAC,CAACV,EAAA,OAAO,CAAA,GAAA,CAAA,C;;;;;;;;;;;;E,MAIHd,EAAAe,CAAA,KADbd,EAAA,GAAAC,EAWOC,GAAA;;GATJ,OAAKC,EAAEU,EAAA,WAAW;GAClB,WAASA,EAAA;GACT,SAASI,EAAA;GACT,IAAE,EAAA,MAAUJ,EAAA,UAAS;GACtB,OAAM;GACN,SAAQ;GACP,QAAQA,EAAA;;GAET,SAAAT,QAAgB,CAAbI,EAAAC,EAAAV,EAAAwB,CAAA,CAAC,CAACV,EAAA,OAAO,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"AActionCreateButton.vue_vue_type_script_setup_true_lang.js","names":["_unref","_openBlock","_createBlock","_component_VBtn","_normalizeClass","_withCtx","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","AActionCreateButton_vue_vue_type_script_setup_true_lang_default","props","__props","aclAllowed","useAclAllowed","useI18n","variantComputed","computed","unref","openBlock","createBlock","VBtn","t","normalizeClass","withCtx","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","createCommentVNode"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionCreateButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RegisteredAclValue } from '@/domains/auth/types/Permission'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport { useI18n } from 'vue-i18n'\nimport type { ButtonVariant } from '@/shared/types/commonAdmin'\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n size?: number\n variant?: ButtonVariant\n // Shown only when the current user passes it; no ACL, no check. An array is evaluated with AND.\n acl?: RegisteredAclValue | RegisteredAclValue[]\n subject?: object\n }>(),\n {\n acl: undefined,\n subject: undefined,\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: 'button-create',\n size: 36,\n variant: 'primary',\n }\n)\n\nconst aclAllowed = useAclAllowed(\n () => props.acl,\n () => props.subject\n)\n\nconst { t } = useI18n()\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"aclAllowed && variant === 'icon'\"\n :aria-label=\"t(buttonT)\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n :width=\"size\"\n :height=\"size\"\n >\n <VIcon icon=\"mdi-plus\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else-if=\"aclAllowed\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n color=\"primary\"\n rounded=\"pill\"\n :height=\"size\"\n >\n {{ t(buttonT) }}\n </VBtn>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAOA,IAAMY,IAAQC,GAuBRC,IAAaC,QACXH,EAAM,WACNA,EAAM,OACd,GAEM,EAAE,SAAMI,EAAQ,GAEhBC,IAAkBC,QAAe;GACrC,QAAQN,EAAM,SAAd;IACE,KAAK,aACH,OAAO;IACT,KAAK;IACL,KAAK,QACH,OAAO;IACT,SACE,OAAO;GACX;EACF,CAAC;E,iBAKSZ,EAAAc,CAAA,KAAcD,EAAA,YAAO,UAD7BZ,EAAA,GAAAC,EAmBOC,GAAA;;GAjBJ,cAAYH,EAAAuB,CAAA,CAAC,CAACV,EAAA,OAAO;GACrB,OAAKT,EAAES,EAAA,WAAW;GAClB,WAASA,EAAA;GACV,MAAA;GACA,MAAK;GACJ,SAASI,EAAA;GACT,IAAE,EAAA,MAAUJ,EAAA,UAAS;GACrB,OAAOA,EAAA;GACP,QAAQA,EAAA;;GAET,SAAAR,QAAyB,CAAzBC,EAAyBC,GAAA,EAAlB,MAAK,WAAU,CAAA,GACtBD,EAKWE,GAAA;IAJT,WAAU;IACV,UAAS;;IAET,SAAAH,QAAgB,CAAbI,EAAAC,EAAAV,EAAAuB,CAAA,CAAC,CAACV,EAAA,OAAO,CAAA,GAAA,CAAA,C;;;;;;;;;;;;E,MAIHb,EAAAc,CAAA,KADbb,EAAA,GAAAC,EAWOC,GAAA;;GATJ,OAAKC,EAAES,EAAA,WAAW;GAClB,WAASA,EAAA;GACT,SAASI,EAAA;GACT,IAAE,EAAA,MAAUJ,EAAA,UAAS;GACtB,OAAM;GACN,SAAQ;GACP,QAAQA,EAAA;;GAET,SAAAR,QAAgB,CAAbI,EAAAC,EAAAV,EAAAuB,CAAA,CAAC,CAACV,EAAA,OAAO,CAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionDeleteButton.js","names":["_sfc_main","AActionDeleteButton_vue_vue_type_script_setup_true_lang_default","AActionDeleteButton_default"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionDeleteButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RegisteredAclValue } from '@/domains/auth/types/Permission'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport { computed, ref } from 'vue'\nimport { eventClickBlur } from '@/shared/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport type { ButtonVariant } from '@/shared/types/commonAdmin'\n\nconst props = withDefaults(\n defineProps<{\n variant?: ButtonVariant\n buttonT?: string\n buttonClass?: string\n dialogMessageT?: string\n dialogConfirmButtonT?: string\n dialogCancelButtonT?: string\n dialogConfirmColor?: string\n dataCy?: string\n disabled?: boolean\n disableCloseAfterConfirm?: boolean\n loading?: boolean\n color?: string | undefined\n size?: number\n // When set, deleting acknowledges the unsaved-changes guard first,\n // so the follow-up navigation shows no stale prompt. (BUG-08)\n guard?: { acknowledge: () => void }\n // Shown only when the current user passes it; no ACL, no check. An array is evaluated with AND.\n acl?: RegisteredAclValue | RegisteredAclValue[]\n subject?: object\n }>(),\n {\n acl: undefined,\n subject: undefined,\n variant: 'icon',\n buttonT: 'common.button.delete',\n buttonClass: 'ml-2',\n dialogMessageT: 'common.system.modal.confirmDelete',\n dialogConfirmButtonT: 'common.button.delete',\n dialogCancelButtonT: 'common.button.cancel',\n dialogConfirmColor: 'primary',\n dataCy: 'button-delete',\n disabled: false,\n disableCloseAfterConfirm: false,\n color: undefined,\n size: 36,\n guard: undefined,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'deleteRecord'): void\n}>()\n\nconst aclAllowed = useAclAllowed(\n () => props.acl,\n () => props.subject\n)\n\nconst dialog = ref(false)\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n dialog.value = true\n}\nconst onConfirm = () => {\n props.guard?.acknowledge()\n emit('deleteRecord')\n if (!props.disableCloseAfterConfirm) closeDialog()\n}\n\nconst closeDialog = () => {\n dialog.value = false\n}\n\nconst onCancel = () => {\n closeDialog()\n}\n\nconst { t } = useI18n()\n\ndefineExpose({\n closeDialog,\n})\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <template v-if=\"aclAllowed\">\n <VBtn\n v-if=\"variant === 'icon'\"\n :aria-label=\"t(buttonT)\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :disabled=\"disabled\"\n :color=\"color\"\n :loading=\"loading\"\n :width=\"size\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-trash-can-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :color=\"color\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n rounded=\"pill\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n {{ t(buttonT) }}\n </VBtn>\n <VDialog\n v-model=\"dialog\"\n persistent\n :width=\"500\"\n no-click-animation\n @keydown.esc=\"onCancel\"\n >\n <VCard\n v-if=\"dialog\"\n data-cy=\"delete-panel\"\n >\n <ADialogToolbar @cancel=\"onCancel\">\n {{ t(dialogMessageT) }}\n </ADialogToolbar>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n :disabled=\"loading\"\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t(dialogCancelButtonT) }}\n </ABtnTertiary>\n <ABtnPrimary\n :color=\"dialogConfirmColor\"\n :loading=\"loading\"\n data-cy=\"button-confirm-delete\"\n @click.stop=\"onConfirm\"\n >\n {{ t(dialogConfirmButtonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n </template>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AActionDeleteButton.js","names":["AActionDeleteButton_vue_vue_type_script_setup_true_lang_default","AActionDeleteButton_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionDeleteButton.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_unref","_openBlock","_createElementBlock","_Fragment","_createBlock","_component_VBtn","_normalizeClass","_withModifiers","_withCtx","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_component_VDialog","_withKeys","_component_VCard","ADialogToolbar","_component_VCardActions","_component_VSpacer","_createCommentVNode","ADialogToolbar_default","AActionDeleteButton_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","aclAllowed","useAclAllowed","dialog","ref","onClick","eventClickBlur","event","onConfirm","closeDialog","onCancel","useI18n","variantComputed","computed","_component_ABtnTertiary","resolveComponent","_component_ABtnPrimary","unref","openBlock","createElementBlock","Fragment","createBlock","VBtn","t","normalizeClass","withModifiers","withCtx","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","VDialog","_cache","$event","withKeys","VCard","VCardActions","VSpacer","createCommentVNode"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionDeleteButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RegisteredAclValue } from '@/domains/auth/types/Permission'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport { computed, ref } from 'vue'\nimport { eventClickBlur } from '@/shared/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport type { ButtonVariant } from '@/shared/types/commonAdmin'\n\nconst props = withDefaults(\n defineProps<{\n variant?: ButtonVariant\n buttonT?: string\n buttonClass?: string\n dialogMessageT?: string\n dialogConfirmButtonT?: string\n dialogCancelButtonT?: string\n dialogConfirmColor?: string\n dataCy?: string\n disabled?: boolean\n disableCloseAfterConfirm?: boolean\n loading?: boolean\n color?: string | undefined\n size?: number\n // When set, deleting acknowledges the unsaved-changes guard first,\n // so the follow-up navigation shows no stale prompt. (BUG-08)\n guard?: { acknowledge: () => void }\n // Shown only when the current user passes it; no ACL, no check. An array is evaluated with AND.\n acl?: RegisteredAclValue | RegisteredAclValue[]\n subject?: object\n }>(),\n {\n acl: undefined,\n subject: undefined,\n variant: 'icon',\n buttonT: 'common.button.delete',\n buttonClass: 'ml-2',\n dialogMessageT: 'common.system.modal.confirmDelete',\n dialogConfirmButtonT: 'common.button.delete',\n dialogCancelButtonT: 'common.button.cancel',\n dialogConfirmColor: 'primary',\n dataCy: 'button-delete',\n disabled: false,\n disableCloseAfterConfirm: false,\n color: undefined,\n size: 36,\n guard: undefined,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'deleteRecord'): void\n}>()\n\nconst aclAllowed = useAclAllowed(\n () => props.acl,\n () => props.subject\n)\n\nconst dialog = ref(false)\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n dialog.value = true\n}\nconst onConfirm = () => {\n props.guard?.acknowledge()\n emit('deleteRecord')\n if (!props.disableCloseAfterConfirm) closeDialog()\n}\n\nconst closeDialog = () => {\n dialog.value = false\n}\n\nconst onCancel = () => {\n closeDialog()\n}\n\nconst { t } = useI18n()\n\ndefineExpose({\n closeDialog,\n})\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <template v-if=\"aclAllowed\">\n <VBtn\n v-if=\"variant === 'icon'\"\n :aria-label=\"t(buttonT)\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :disabled=\"disabled\"\n :color=\"color\"\n :loading=\"loading\"\n :width=\"size\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-trash-can-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :color=\"color\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n rounded=\"pill\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n {{ t(buttonT) }}\n </VBtn>\n <VDialog\n v-model=\"dialog\"\n persistent\n :width=\"500\"\n no-click-animation\n @keydown.esc=\"onCancel\"\n >\n <VCard\n v-if=\"dialog\"\n data-cy=\"delete-panel\"\n >\n <ADialogToolbar @cancel=\"onCancel\">\n {{ t(dialogMessageT) }}\n </ADialogToolbar>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n :disabled=\"loading\"\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t(dialogCancelButtonT) }}\n </ABtnTertiary>\n <ABtnPrimary\n :color=\"dialogConfirmColor\"\n :loading=\"loading\"\n data-cy=\"button-confirm-delete\"\n @click.stop=\"onConfirm\"\n >\n {{ t(dialogConfirmButtonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n </template>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"AActionDeleteButton.vue_vue_type_script_setup_true_lang.js","names":["_unref","_openBlock","_createElementBlock","_Fragment","_createBlock","_component_VBtn","_normalizeClass","_withModifiers","_withCtx","_createVNode","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_component_VDialog","_withKeys","_component_VCard","ADialogToolbar","_component_VCardActions","_component_VSpacer","ADialogToolbar_default","AActionDeleteButton_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","aclAllowed","useAclAllowed","dialog","ref","onClick","eventClickBlur","event","onConfirm","closeDialog","onCancel","useI18n","variantComputed","computed","_component_ABtnTertiary","resolveComponent","_component_ABtnPrimary","unref","openBlock","createElementBlock","Fragment","createBlock","VBtn","t","normalizeClass","withModifiers","withCtx","createVNode","VIcon","VTooltip","createTextVNode","toDisplayString","VDialog","_cache","$event","withKeys","VCard","VCardActions","VSpacer","createCommentVNode"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionDeleteButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RegisteredAclValue } from '@/domains/auth/types/Permission'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport { computed, ref } from 'vue'\nimport { eventClickBlur } from '@/shared/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport type { ButtonVariant } from '@/shared/types/commonAdmin'\n\nconst props = withDefaults(\n defineProps<{\n variant?: ButtonVariant\n buttonT?: string\n buttonClass?: string\n dialogMessageT?: string\n dialogConfirmButtonT?: string\n dialogCancelButtonT?: string\n dialogConfirmColor?: string\n dataCy?: string\n disabled?: boolean\n disableCloseAfterConfirm?: boolean\n loading?: boolean\n color?: string | undefined\n size?: number\n // When set, deleting acknowledges the unsaved-changes guard first,\n // so the follow-up navigation shows no stale prompt. (BUG-08)\n guard?: { acknowledge: () => void }\n // Shown only when the current user passes it; no ACL, no check. An array is evaluated with AND.\n acl?: RegisteredAclValue | RegisteredAclValue[]\n subject?: object\n }>(),\n {\n acl: undefined,\n subject: undefined,\n variant: 'icon',\n buttonT: 'common.button.delete',\n buttonClass: 'ml-2',\n dialogMessageT: 'common.system.modal.confirmDelete',\n dialogConfirmButtonT: 'common.button.delete',\n dialogCancelButtonT: 'common.button.cancel',\n dialogConfirmColor: 'primary',\n dataCy: 'button-delete',\n disabled: false,\n disableCloseAfterConfirm: false,\n color: undefined,\n size: 36,\n guard: undefined,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'deleteRecord'): void\n}>()\n\nconst aclAllowed = useAclAllowed(\n () => props.acl,\n () => props.subject\n)\n\nconst dialog = ref(false)\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n dialog.value = true\n}\nconst onConfirm = () => {\n props.guard?.acknowledge()\n emit('deleteRecord')\n if (!props.disableCloseAfterConfirm) closeDialog()\n}\n\nconst closeDialog = () => {\n dialog.value = false\n}\n\nconst onCancel = () => {\n closeDialog()\n}\n\nconst { t } = useI18n()\n\ndefineExpose({\n closeDialog,\n})\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <template v-if=\"aclAllowed\">\n <VBtn\n v-if=\"variant === 'icon'\"\n :aria-label=\"t(buttonT)\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :disabled=\"disabled\"\n :color=\"color\"\n :loading=\"loading\"\n :width=\"size\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-trash-can-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :color=\"color\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n rounded=\"pill\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n {{ t(buttonT) }}\n </VBtn>\n <VDialog\n v-model=\"dialog\"\n persistent\n :width=\"500\"\n no-click-animation\n @keydown.esc=\"onCancel\"\n >\n <VCard\n v-if=\"dialog\"\n data-cy=\"delete-panel\"\n >\n <ADialogToolbar @cancel=\"onCancel\">\n {{ t(dialogMessageT) }}\n </ADialogToolbar>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n :disabled=\"loading\"\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t(dialogCancelButtonT) }}\n </ABtnTertiary>\n <ABtnPrimary\n :color=\"dialogConfirmColor\"\n :loading=\"loading\"\n data-cy=\"button-confirm-delete\"\n @click.stop=\"onConfirm\"\n >\n {{ t(dialogConfirmButtonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n </template>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AActionEditButton.js","names":["_sfc_main","AActionEditButton_vue_vue_type_script_setup_true_lang_default","AActionEditButton_default"],"sources":["../../../../../../src/domains/ui/buttons/action/components/AActionEditButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RegisteredAclValue } from '@/domains/auth/types/Permission'\nimport { useAclAllowed } from '@/domains/auth/composables/aclAllowed'\nimport { useRouter } from 'vue-router'\nimport { eventClickBlur } from '@/shared/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport type { ButtonVariant } from '@/shared/types/commonAdmin'\nimport { computed } from 'vue'\nimport { isUndefined } from '@/shared/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n recordId?: number | string | undefined\n routeParams?: any | undefined\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n loading?: boolean\n size?: number\n variant?: ButtonVariant\n // Shown only when the current user passes it; no ACL, no check. An array is evaluated with AND.\n acl?: RegisteredAclValue | RegisteredAclValue[]\n subject?: object\n }>(),\n {\n acl: undefined,\n subject: undefined,\n recordId: undefined,\n routeParams: undefined,\n buttonT: 'common.button.edit',\n buttonClass: 'ml-2',\n dataCy: 'button-edit',\n loading: false,\n size: 36,\n variant: 'primary',\n }\n)\n\nconst emit = defineEmits<{\n (e: 'editRecord'): void\n}>()\n\nconst aclAllowed = useAclAllowed(\n () => props.acl,\n () => props.subject\n)\n\nconst { t } = useI18n()\n\nconst router = useRouter()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n emit('editRecord')\n router.push(routerToComputed.value)\n}\n\nconst routerToComputed = computed(() => {\n if (!isUndefined(props.routeParams)) {\n return { name: props.routeName, params: { ...props.routeParams } }\n }\n return { name: props.routeName, params: { id: props.recordId } }\n})\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"aclAllowed && variant === 'icon'\"\n :aria-label=\"t(buttonT)\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :loading=\"loading\"\n :width=\"size\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-pencil\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else-if=\"aclAllowed\"\n :class=\"buttonClass\"\n :variant=\"variantComputed\"\n :data-cy=\"dataCy\"\n :loading=\"loading\"\n color=\"primary\"\n rounded=\"pill\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <span>{{ t(buttonT) }}</span>\n </VBtn>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AActionEditButton.js","names":["AActionEditButton_vue_vue_type_script_setup_true_lang_default","AActionEditButton_default"],"sources":[],"mappings":""}