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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/dist/domains/anzuUser/components/AAnzuUserDatatable.js.map +1 -1
  2. package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  3. package/dist/domains/anzuUser/components/AAnzuUserFilter.js.map +1 -1
  4. package/dist/domains/anzuUser/components/AAnzuUserFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  5. package/dist/domains/anzuUser/components/AAnzuUserForm.js.map +1 -1
  6. package/dist/domains/anzuUser/components/AAnzuUserForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  7. package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.js.map +1 -1
  8. package/dist/domains/anzuUser/components/AUserBulkActionDialog.js.map +1 -1
  9. package/dist/domains/anzuUser/components/AUserBulkActionDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  10. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.js.map +1 -1
  11. package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  12. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.js.map +1 -1
  13. package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  14. package/dist/domains/anzuUser/components/AUserEnabledSwitch.js.map +1 -1
  15. package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  16. package/dist/domains/anzuUser/components/AUserManageButton.js.map +1 -1
  17. package/dist/domains/anzuUser/components/AUserMetadataForm.js.map +1 -1
  18. package/dist/domains/anzuUser/components/AUserMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.js.map +1 -1
  20. package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  21. package/dist/domains/anzuUser/components/AUserOtherSystemsTable.js.map +1 -1
  22. package/dist/domains/anzuUser/components/AUserSystemOverview.js.map +1 -1
  23. package/dist/domains/anzuUser/components/AUserSystemOverview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/domains/anzuUser/components/AUserSystemPanel.js.map +1 -1
  25. package/dist/domains/anzuUser/components/AUserSystemPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  26. package/dist/domains/anzuUser/components/AUserSystemStatusChip.js.map +1 -1
  27. package/dist/domains/anzuUser/components/AUserTabsShell.js.map +1 -1
  28. package/dist/domains/anzuUser/components/AUserTabsShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  29. package/dist/domains/auth/components/Acl.js.map +1 -1
  30. package/dist/domains/auth/components/Acl.vue_vue_type_script_setup_true_lang.js.map +1 -1
  31. package/dist/domains/cached/components/ACachedChip.js.map +1 -1
  32. package/dist/domains/cached/components/ACachedChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/domains/cached/components/ACachedUserChip.js.map +1 -1
  34. package/dist/domains/cached/components/ACachedUserChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  35. package/dist/domains/collab/components/ACollabCountdown.js.map +1 -1
  36. package/dist/domains/collab/components/ACollabCountdown.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/domains/collab/components/ACollabLockedByUser.js.map +1 -1
  38. package/dist/domains/collab/components/ACollabManagement.js.map +1 -1
  39. package/dist/domains/collab/components/ACollabManagement.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/domains/customDataForm/components/ACustomDataForm.js.map +1 -1
  41. package/dist/domains/customDataForm/components/ACustomDataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  42. package/dist/domains/customDataForm/components/ACustomDataFormElement.js.map +1 -1
  43. package/dist/domains/customDataForm/components/ACustomDataFormElement.vue_vue_type_script_setup_true_lang.js.map +1 -1
  44. package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.js.map +1 -1
  45. package/dist/domains/dam/assetDetail/components/AColorBox.js.map +1 -1
  46. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.js.map +1 -1
  47. package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.js.map +1 -1
  49. package/dist/domains/dam/assetDetail/components/AssetDetailDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  50. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.js.map +1 -1
  51. package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  52. package/dist/domains/dam/assetDetail/components/AssetDetailDialogLoader.js.map +1 -1
  53. package/dist/domains/dam/assetDetail/components/AssetDetailDialogSidebar.js.map +1 -1
  54. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.js.map +1 -1
  55. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.js.map +1 -1
  56. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  57. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.js.map +1 -1
  58. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  59. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.js.map +1 -1
  60. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  61. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.js.map +1 -1
  62. package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue_vue_type_script_setup_true_lang.js.map +1 -1
  63. package/dist/domains/dam/assetDetail/components/AssetFileFailReasonChip.js.map +1 -1
  64. package/dist/domains/dam/assetDetail/components/AssetFileFailReasonChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  65. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.js.map +1 -1
  66. package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/domains/dam/assetDetail/components/AssetFileRotate.js.map +1 -1
  68. package/dist/domains/dam/assetDetail/components/AssetFileRotate.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/domains/dam/assetDetail/components/AssetImage.js.map +1 -1
  70. package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  71. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.js.map +1 -1
  72. package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/domains/dam/assetDetail/components/AssetInfobox.js.map +1 -1
  74. package/dist/domains/dam/assetDetail/components/AssetInfobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  75. package/dist/domains/dam/assetDetail/components/AssetMetadata.js.map +1 -1
  76. package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/domains/dam/assetDetail/components/AssetMetadataImageAttributes.js.map +1 -1
  78. package/dist/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue_vue_type_script_setup_true_lang.js.map +1 -1
  79. package/dist/domains/dam/assetSelect/components/AAssetListInner.js.map +1 -1
  80. package/dist/domains/dam/assetSelect/components/AAssetListInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  81. package/dist/domains/dam/assetSelect/components/AAssetSelect.js.map +1 -1
  82. package/dist/domains/dam/assetSelect/components/AAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  83. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.js.map +1 -1
  84. package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.js.map +1 -1
  86. package/dist/domains/dam/assetSelect/components/AssetImagePreview.js.map +1 -1
  87. package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/domains/dam/assetSelect/components/AssetSelectFilter.js.map +1 -1
  89. package/dist/domains/dam/assetSelect/components/AssetSelectFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  90. package/dist/domains/dam/assetSelect/components/AssetSelectFilterForm.js.map +1 -1
  91. package/dist/domains/dam/assetSelect/components/AssetSelectFilterForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  92. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.js.map +1 -1
  93. package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  94. package/dist/domains/dam/assetSelect/components/AssetSelectListTable.js.map +1 -1
  95. package/dist/domains/dam/assetSelect/components/AssetSelectListTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  96. package/dist/domains/dam/assetSelect/components/AssetSelectListTiles.js.map +1 -1
  97. package/dist/domains/dam/assetSelect/components/AssetSelectListTiles.vue_vue_type_script_setup_true_lang.js.map +1 -1
  98. package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.js.map +1 -1
  99. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.js.map +1 -1
  100. package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  101. package/dist/domains/dam/assetSelect/components/FilterPodcastRemoteAutocomplete.js.map +1 -1
  102. package/dist/domains/dam/author/components/AuthorCreateButton.js.map +1 -1
  103. package/dist/domains/dam/author/components/AuthorCreateButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  104. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.js.map +1 -1
  105. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  106. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.js.map +1 -1
  107. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js.map +1 -1
  109. package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  110. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.js.map +1 -1
  111. package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  112. package/dist/domains/dam/components/DamAdminAssetLink.js.map +1 -1
  113. package/dist/domains/dam/cropper/components/ACropper.js.map +1 -1
  114. package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  115. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.js.map +1 -1
  116. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  117. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.js.map +1 -1
  118. package/dist/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.vue_vue_type_script_setup_true_lang.js.map +1 -1
  119. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.js.map +1 -1
  120. package/dist/domains/dam/imageWidget/components/AImageMediaWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  121. package/dist/domains/dam/imageWidget/components/AImagePublicInput.js.map +1 -1
  122. package/dist/domains/dam/imageWidget/components/AImagePublicInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  123. package/dist/domains/dam/imageWidget/components/AImageWidget.js.map +1 -1
  124. package/dist/domains/dam/imageWidget/components/AImageWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
  125. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.js.map +1 -1
  126. package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  127. package/dist/domains/dam/imageWidget/components/AImageWidgetMultipleSimple.js.map +1 -1
  128. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.js.map +1 -1
  129. package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.js.map +1 -1
  131. package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.js.map +1 -1
  133. package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  134. package/dist/domains/dam/imageWidget/components/ImageMassOperations.js.map +1 -1
  135. package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  136. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.js.map +1 -1
  137. package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  138. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.js.map +1 -1
  139. package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  140. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.js.map +1 -1
  141. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  142. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.js.map +1 -1
  143. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.js.map +1 -1
  145. package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.js.map +1 -1
  147. package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  148. package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.js.map +1 -1
  149. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.js.map +1 -1
  150. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  151. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js.map +1 -1
  152. package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  153. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.js.map +1 -1
  154. package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
  155. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.js.map +1 -1
  156. package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  157. package/dist/domains/dam/uploadQueue/components/UploadQueueButtonStop.js.map +1 -1
  158. package/dist/domains/dam/uploadQueue/components/UploadQueueButtonStop.vue_vue_type_script_setup_true_lang.js.map +1 -1
  159. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.js.map +1 -1
  160. package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  161. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.js.map +1 -1
  162. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  163. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.js.map +1 -1
  164. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.js.map +1 -1
  165. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
  166. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.js.map +1 -1
  167. package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.js.map +1 -1
  169. package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  170. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.js.map +1 -1
  171. package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  172. package/dist/domains/dam/uploadQueue/components/UploadQueueItemErrorOverlay.js.map +1 -1
  173. package/dist/domains/dam/user/components/DamAssetLicenceGroupRemoteAutocomplete.js.map +1 -1
  174. package/dist/domains/dam/user/components/DamAssetLicenceRemoteAutocomplete.js.map +1 -1
  175. package/dist/domains/dam/user/components/DamDistributionServiceSelect.js.map +1 -1
  176. package/dist/domains/dam/user/components/DamExtSystemRemoteAutocomplete.js.map +1 -1
  177. package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.js.map +1 -1
  178. package/dist/domains/dam/user/components/DamUserFilterRemoteAutocomplete.js.map +1 -1
  179. package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.js.map +1 -1
  180. package/dist/domains/filters/bookmarks/components/AFilterBookmarkButton.js.map +1 -1
  181. package/dist/domains/filters/bookmarks/components/AFilterBookmarkButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  182. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.js.map +1 -1
  183. package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  184. package/dist/domains/filters/bookmarks/components/FilterBookmarks.js.map +1 -1
  185. package/dist/domains/filters/bookmarks/components/FilterBookmarks.vue_vue_type_script_setup_true_lang.js.map +1 -1
  186. package/dist/domains/filters/components/AFilterAdvancedButton.js.map +1 -1
  187. package/dist/domains/filters/components/AFilterBooleanSelect.js.map +1 -1
  188. package/dist/domains/filters/components/AFilterDatetimePicker.js.map +1 -1
  189. package/dist/domains/filters/components/AFilterEmpty.js.map +1 -1
  190. package/dist/domains/filters/components/AFilterInteger.js.map +1 -1
  191. package/dist/domains/filters/components/AFilterResetButton.js.map +1 -1
  192. package/dist/domains/filters/components/AFilterString.js.map +1 -1
  193. package/dist/domains/filters/components/AFilterString.vue.d.ts +3 -0
  194. package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js +8 -2
  195. package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js.map +1 -1
  196. package/dist/domains/filters/components/AFilterSubmitButton.js.map +1 -1
  197. package/dist/domains/filters/components/AFilterTimeInterval.js.map +1 -1
  198. package/dist/domains/filters/components/AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js.map +1 -1
  199. package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.js.map +1 -1
  200. package/dist/domains/filters/components/AFilterWrapper.js.map +1 -1
  201. package/dist/domains/filters/components/AFilterWrapper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  202. package/dist/domains/filters/components/AFilterWrapperSidebar.js.map +1 -1
  203. package/dist/domains/filters/components/FilterDetailItem.js.map +1 -1
  204. package/dist/domains/filters/components/FiltersSelected.js.map +1 -1
  205. package/dist/domains/filters/datatable/components/ADatatableConfigButton.js.map +1 -1
  206. package/dist/domains/filters/datatable/components/ADatatableOrdering.js.map +1 -1
  207. package/dist/domains/filters/datatable/components/ADatatablePagination.js.map +1 -1
  208. package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  209. package/dist/domains/form/components/AFormDatetimePicker.js.map +1 -1
  210. package/dist/domains/form/components/AFormDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  211. package/dist/domains/form/components/AFormFlagDatetimePicker.js.map +1 -1
  212. package/dist/domains/form/components/AFormFlagDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  213. package/dist/domains/form/components/AFormRemoteCheckbox.js.map +1 -1
  214. package/dist/domains/form/components/AFormRemoteCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  215. package/dist/domains/form/components/AFormRemoteSwitch.js.map +1 -1
  216. package/dist/domains/form/components/AFormRemoteSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  217. package/dist/domains/form/components/AFormSwitch.js.map +1 -1
  218. package/dist/domains/form/components/AFormSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  219. package/dist/domains/form/components/AFormTextField.js.map +1 -1
  220. package/dist/domains/form/components/AFormTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  221. package/dist/domains/form/components/AFormTextarea.js.map +1 -1
  222. package/dist/domains/form/components/AFormTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  223. package/dist/domains/form/components/AFormValueObjectOptionsSelect.js.map +1 -1
  224. package/dist/domains/form/components/AFormValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  225. package/dist/domains/form/components/ASystemEntityScope.js.map +1 -1
  226. package/dist/domains/job/components/AJobBaseCreateForm.js.map +1 -1
  227. package/dist/domains/job/components/AJobBaseCreateForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  228. package/dist/domains/job/components/AJobDetailCommon.js.map +1 -1
  229. package/dist/domains/job/components/AJobPriorityChip.js.map +1 -1
  230. package/dist/domains/job/components/AJobStatusChip.js.map +1 -1
  231. package/dist/domains/listEditor/components/AListEditor.js.map +1 -1
  232. package/dist/domains/listEditor/components/AListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  233. package/dist/domains/listEditor/components/ANestedSortableListEditor.js.map +1 -1
  234. package/dist/domains/listEditor/components/ANestedSortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  235. package/dist/domains/listEditor/components/ASortableListEditor.js.map +1 -1
  236. package/dist/domains/listEditor/components/ASortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  237. package/dist/domains/listEditor/components/internal/LeChangeParentDialog.js.map +1 -1
  238. package/dist/domains/listEditor/components/internal/LeChangeParentDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  239. package/dist/domains/listEditor/components/internal/LeDeleteDialog.js.map +1 -1
  240. package/dist/domains/listEditor/components/internal/LeDeleteDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/domains/listEditor/components/internal/LeDragHandle.js.map +1 -1
  242. package/dist/domains/listEditor/components/internal/LeEmptyState.js.map +1 -1
  243. package/dist/domains/listEditor/components/internal/LeEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/domains/listEditor/components/internal/LeMoveToPositionDialog.js.map +1 -1
  245. package/dist/domains/listEditor/components/internal/LeMoveToPositionDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  246. package/dist/domains/listEditor/components/internal/LeNestedRow.js.map +1 -1
  247. package/dist/domains/listEditor/components/internal/LeNestedRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  248. package/dist/domains/listEditor/components/internal/LeStatus.js.map +1 -1
  249. package/dist/domains/listEditor/components/internal/LeStatus.vue_vue_type_script_setup_true_lang.js.map +1 -1
  250. package/dist/domains/listEditor/components/internal/LeUnsavedLabel.js.map +1 -1
  251. package/dist/domains/listEditor/components/internal/LeUnsavedLabel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  252. package/dist/domains/log/components/ALogDatatable.js.map +1 -1
  253. package/dist/domains/log/components/ALogDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  254. package/dist/domains/log/components/ALogDetail.js.map +1 -1
  255. package/dist/domains/log/components/ALogDetailView.js.map +1 -1
  256. package/dist/domains/log/components/ALogDetailView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  257. package/dist/domains/log/components/ALogFilter.js.map +1 -1
  258. package/dist/domains/log/components/ALogLevelChip.js.map +1 -1
  259. package/dist/domains/log/components/ALogLevelChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  260. package/dist/domains/log/components/ALogListView.js.map +1 -1
  261. package/dist/domains/permission/components/APermissionEditor.js.map +1 -1
  262. package/dist/domains/permission/components/APermissionEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
  263. package/dist/domains/permission/components/APermissionGrantEditor.js.map +1 -1
  264. package/dist/domains/permission/components/APermissionValueChip.js.map +1 -1
  265. package/dist/domains/permission/components/APermissionValueChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  266. package/dist/domains/permission/group/components/APermissionGroupDatatable.js.map +1 -1
  267. package/dist/domains/permission/group/components/APermissionGroupDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  268. package/dist/domains/permission/group/components/APermissionGroupDetail.js.map +1 -1
  269. package/dist/domains/permission/group/components/APermissionGroupFilter.js.map +1 -1
  270. package/dist/domains/permission/group/components/APermissionGroupManage.js.map +1 -1
  271. package/dist/domains/permission/group/components/APermissionGroupManage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  272. package/dist/domains/permission/group/components/APermissionGroupRemoteAutocomplete.js.map +1 -1
  273. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.js.map +1 -1
  274. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  275. package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.js.map +1 -1
  276. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.js.map +1 -1
  277. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  278. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.js.map +1 -1
  279. package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
  280. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.js.map +1 -1
  281. package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  282. package/dist/domains/subjectSelect/components/ASubjectSelect.js.map +1 -1
  283. package/dist/domains/subjectSelect/components/ASubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  284. package/dist/domains/system/appShell/components/AActionbar.js.map +1 -1
  285. package/dist/domains/system/appShell/components/AActionbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  286. package/dist/domains/system/appShell/components/AActionbarTarget.js.map +1 -1
  287. package/dist/domains/system/appShell/components/ALayoutLoader.js.map +1 -1
  288. package/dist/domains/system/appShell/components/ALayoutSwitch.js.map +1 -1
  289. package/dist/domains/system/appShell/components/ALayoutSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  290. package/dist/domains/system/components/AAdminSwitcher.js.map +1 -1
  291. package/dist/domains/system/components/AAdminSwitcher.vue_vue_type_script_setup_true_lang.js.map +1 -1
  292. package/dist/domains/system/components/AAlerts.js.map +1 -1
  293. package/dist/domains/system/components/ALanguageSelect.js.map +1 -1
  294. package/dist/domains/system/components/AThemeSelect.js.map +1 -1
  295. package/dist/domains/system/components/AThemeSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  296. package/dist/domains/system/flags/components/FlagCountry.js.map +1 -1
  297. package/dist/domains/system/flags/components/FlagEn.js.map +1 -1
  298. package/dist/domains/system/flags/components/FlagSk.js.map +1 -1
  299. package/dist/domains/system/systemBar/components/ASystemBar.js.map +1 -1
  300. package/dist/domains/system/systemBar/components/ASystemBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  301. package/dist/domains/system/systemBar/components/ASystemBarNewVersion.js.map +1 -1
  302. package/dist/domains/system/systemBar/components/ASystemBarNewVersion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  303. package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.js.map +1 -1
  304. package/dist/domains/ui/buttons/action/components/AActionCreateButton.js.map +1 -1
  305. package/dist/domains/ui/buttons/action/components/AActionCreateButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  306. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.js.map +1 -1
  307. package/dist/domains/ui/buttons/action/components/AActionDeleteButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  308. package/dist/domains/ui/buttons/action/components/AActionEditButton.js.map +1 -1
  309. package/dist/domains/ui/buttons/action/components/AActionEditButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  310. package/dist/domains/ui/buttons/action/components/AActionSaveAndCloseButton.js.map +1 -1
  311. package/dist/domains/ui/buttons/action/components/AActionSaveAndCloseButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  312. package/dist/domains/ui/buttons/action/components/AActionSaveButton.js.map +1 -1
  313. package/dist/domains/ui/buttons/action/components/AActionSaveButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  314. package/dist/domains/ui/buttons/components/ABtnSplit.js.map +1 -1
  315. package/dist/domains/ui/buttons/components/ABtnSplit.vue_vue_type_script_setup_true_lang.js.map +1 -1
  316. package/dist/domains/ui/buttons/table/components/ATableCopyIdButton.js.map +1 -1
  317. package/dist/domains/ui/buttons/table/components/ATableCopyIdButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  318. package/dist/domains/ui/buttons/table/components/ATableDetailButton.js.map +1 -1
  319. package/dist/domains/ui/buttons/table/components/ATableDetailButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  320. package/dist/domains/ui/buttons/table/components/ATableEditButton.js.map +1 -1
  321. package/dist/domains/ui/buttons/table/components/ATableEditButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  322. package/dist/domains/ui/components/AAnzuUserAvatar.js.map +1 -1
  323. package/dist/domains/ui/components/AAnzuUserAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  324. package/dist/domains/ui/components/AAvatarColorPicker.js.map +1 -1
  325. package/dist/domains/ui/components/AAvatarColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  326. package/dist/domains/ui/components/ABooleanSelect.js.map +1 -1
  327. package/dist/domains/ui/components/ABooleanValue.js.map +1 -1
  328. package/dist/domains/ui/components/ACard.js.map +1 -1
  329. package/dist/domains/ui/components/ACardLoader.js.map +1 -1
  330. package/dist/domains/ui/components/AChipNoLink.js.map +1 -1
  331. package/dist/domains/ui/components/ACopyText.js.map +1 -1
  332. package/dist/domains/ui/components/ACopyText.vue_vue_type_script_setup_true_lang.js.map +1 -1
  333. package/dist/domains/ui/components/ACreateDialog.js.map +1 -1
  334. package/dist/domains/ui/components/ACreateDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  335. package/dist/domains/ui/components/ACurrentUserDropdown.js.map +1 -1
  336. package/dist/domains/ui/components/ACurrentUserDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -1
  337. package/dist/domains/ui/components/ADialogToolbar.js.map +1 -1
  338. package/dist/domains/ui/components/AIconGroup.js.map +1 -1
  339. package/dist/domains/ui/components/AProgress.js.map +1 -1
  340. package/dist/domains/ui/components/ARow.js.map +1 -1
  341. package/dist/domains/ui/components/ARow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  342. package/dist/domains/ui/components/ATimeTrackingFields.js.map +1 -1
  343. package/dist/domains/ui/components/ATimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  344. package/dist/domains/ui/components/AUserAndTimeTrackingFields.js.map +1 -1
  345. package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
  346. package/dist/domains/ui/datetime/components/ADatetime.js.map +1 -1
  347. package/dist/domains/ui/datetime/components/ADatetimePicker.js.map +1 -1
  348. package/dist/domains/ui/datetime/components/ADatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  349. package/dist/domains/ui/datetime/components/TimePicker.js.map +1 -1
  350. package/dist/domains/ui/file/components/AFileDropzone.js.map +1 -1
  351. package/dist/domains/ui/file/components/AFileInput.js.map +1 -1
  352. package/dist/domains/ui/file/components/AFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  353. package/dist/domains/ui/file/components/AFileInputDialog.js.map +1 -1
  354. package/dist/domains/ui/file/components/AFileInputDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  355. package/dist/domains/ui/view/components/AGenericView.js.map +1 -1
  356. package/dist/domains/ui/view/components/AGenericView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  357. package/dist/domains/ui/view/components/ALoginView.js.map +1 -1
  358. package/dist/domains/ui/view/components/ALoginView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  359. package/dist/domains/ui/view/components/ALogoutView.js.map +1 -1
  360. package/dist/domains/ui/view/components/ANotFoundView.js.map +1 -1
  361. package/dist/domains/ui/view/components/AUnauthorizedView.js.map +1 -1
  362. package/dist/domains/ui/view/components/AUnauthorizedView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  363. package/dist/domains/unsavedGuard/components/AUnsavedConfirmDialog.js.map +1 -1
  364. package/dist/locales/cs/common/alert.js.map +1 -1
  365. package/dist/locales/cs/common/anzuUser.js.map +1 -1
  366. package/dist/locales/cs/common/assetSelect.js.map +1 -1
  367. package/dist/locales/cs/common/button.js.map +1 -1
  368. package/dist/locales/cs/common/collab.js.map +1 -1
  369. package/dist/locales/cs/common/confirmDialog.js.map +1 -1
  370. package/dist/locales/cs/common/customForm.js.map +1 -1
  371. package/dist/locales/cs/common/customFormElement.js.map +1 -1
  372. package/dist/locales/cs/common/damImage.js.map +1 -1
  373. package/dist/locales/cs/common/dayOfWeek.js.map +1 -1
  374. package/dist/locales/cs/common/filter.js.map +1 -1
  375. package/dist/locales/cs/common/job.js.map +1 -1
  376. package/dist/locales/cs/common/linkDto.js.map +1 -1
  377. package/dist/locales/cs/common/listItemDto.js.map +1 -1
  378. package/dist/locales/cs/common/log.js.map +1 -1
  379. package/dist/locales/cs/common/model.js.map +1 -1
  380. package/dist/locales/cs/common/permission.js.map +1 -1
  381. package/dist/locales/cs/common/permissionEditor.js.map +1 -1
  382. package/dist/locales/cs/common/permissionGroup.js.map +1 -1
  383. package/dist/locales/cs/common/routeSettings.js.map +1 -1
  384. package/dist/locales/cs/common/sortable.js.map +1 -1
  385. package/dist/locales/cs/common/subjectSelect.js.map +1 -1
  386. package/dist/locales/cs/common/system.js.map +1 -1
  387. package/dist/locales/cs/common/time.js.map +1 -1
  388. package/dist/locales/cs/common/userSystem.js.map +1 -1
  389. package/dist/locales/cs/error/apiDependencyExists.js.map +1 -1
  390. package/dist/locales/cs/error/apiForbiddenOperation.js.map +1 -1
  391. package/dist/locales/cs/error/apiTimedOut.js.map +1 -1
  392. package/dist/locales/cs/error/apiValidation.js.map +1 -1
  393. package/dist/locales/cs/error/jsValidation.js.map +1 -1
  394. package/dist/locales/cs/vuetify.js.map +1 -1
  395. package/dist/locales/en/common/alert.js.map +1 -1
  396. package/dist/locales/en/common/anzuUser.js.map +1 -1
  397. package/dist/locales/en/common/assetSelect.js.map +1 -1
  398. package/dist/locales/en/common/button.js.map +1 -1
  399. package/dist/locales/en/common/collab.js.map +1 -1
  400. package/dist/locales/en/common/confirmDialog.js.map +1 -1
  401. package/dist/locales/en/common/customForm.js.map +1 -1
  402. package/dist/locales/en/common/customFormElement.js.map +1 -1
  403. package/dist/locales/en/common/damImage.js.map +1 -1
  404. package/dist/locales/en/common/dayOfWeek.js.map +1 -1
  405. package/dist/locales/en/common/filter.js.map +1 -1
  406. package/dist/locales/en/common/job.js.map +1 -1
  407. package/dist/locales/en/common/linkDto.js.map +1 -1
  408. package/dist/locales/en/common/listItemDto.js.map +1 -1
  409. package/dist/locales/en/common/log.js.map +1 -1
  410. package/dist/locales/en/common/model.js.map +1 -1
  411. package/dist/locales/en/common/permission.js.map +1 -1
  412. package/dist/locales/en/common/permissionEditor.js.map +1 -1
  413. package/dist/locales/en/common/permissionGroup.js.map +1 -1
  414. package/dist/locales/en/common/routeSettings.js.map +1 -1
  415. package/dist/locales/en/common/sortable.js.map +1 -1
  416. package/dist/locales/en/common/subjectSelect.js.map +1 -1
  417. package/dist/locales/en/common/system.js.map +1 -1
  418. package/dist/locales/en/common/time.js.map +1 -1
  419. package/dist/locales/en/common/userSystem.js.map +1 -1
  420. package/dist/locales/en/error/apiDependencyExists.js.map +1 -1
  421. package/dist/locales/en/error/apiForbiddenOperation.js.map +1 -1
  422. package/dist/locales/en/error/apiTimedOut.js.map +1 -1
  423. package/dist/locales/en/error/apiValidation.js.map +1 -1
  424. package/dist/locales/en/error/jsValidation.js.map +1 -1
  425. package/dist/locales/en/vuetify.js.map +1 -1
  426. package/dist/locales/sk/common/alert.js.map +1 -1
  427. package/dist/locales/sk/common/anzuUser.js.map +1 -1
  428. package/dist/locales/sk/common/assetSelect.js.map +1 -1
  429. package/dist/locales/sk/common/button.js.map +1 -1
  430. package/dist/locales/sk/common/collab.js.map +1 -1
  431. package/dist/locales/sk/common/confirmDialog.js.map +1 -1
  432. package/dist/locales/sk/common/customForm.js.map +1 -1
  433. package/dist/locales/sk/common/customFormElement.js.map +1 -1
  434. package/dist/locales/sk/common/damImage.js.map +1 -1
  435. package/dist/locales/sk/common/dayOfWeek.js.map +1 -1
  436. package/dist/locales/sk/common/filter.js.map +1 -1
  437. package/dist/locales/sk/common/job.js.map +1 -1
  438. package/dist/locales/sk/common/linkDto.js.map +1 -1
  439. package/dist/locales/sk/common/listItemDto.js.map +1 -1
  440. package/dist/locales/sk/common/log.js.map +1 -1
  441. package/dist/locales/sk/common/model.js.map +1 -1
  442. package/dist/locales/sk/common/permission.js.map +1 -1
  443. package/dist/locales/sk/common/permissionEditor.js.map +1 -1
  444. package/dist/locales/sk/common/permissionGroup.js.map +1 -1
  445. package/dist/locales/sk/common/routeSettings.js.map +1 -1
  446. package/dist/locales/sk/common/sortable.js.map +1 -1
  447. package/dist/locales/sk/common/subjectSelect.js.map +1 -1
  448. package/dist/locales/sk/common/system.js.map +1 -1
  449. package/dist/locales/sk/common/time.js.map +1 -1
  450. package/dist/locales/sk/common/userSystem.js.map +1 -1
  451. package/dist/locales/sk/error/apiDependencyExists.js.map +1 -1
  452. package/dist/locales/sk/error/apiForbiddenOperation.js.map +1 -1
  453. package/dist/locales/sk/error/apiTimedOut.js.map +1 -1
  454. package/dist/locales/sk/error/apiValidation.js.map +1 -1
  455. package/dist/locales/sk/error/jsValidation.js.map +1 -1
  456. package/dist/locales/sk/vuetify.js.map +1 -1
  457. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"LeChangeParentDialog.js","names":["_sfc_main","LeChangeParentDialog_vue_vue_type_script_setup_true_lang_default","_plugin_vue_export_helper_default","LeChangeParentDialog_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeChangeParentDialog.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"TItem extends Record<string, any>\">\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ListEditorKey, NestedTree, NestedTreeNode } from '@/domains/listEditor/types/listEditorTypes'\n\nexport interface Props<TItem extends Record<string, any>> {\n tree: NestedTree<TItem>\n sourceKey: ListEditorKey | null\n keyField: string\n maxDepth: number\n resolveLabel: (raw: TItem, key: ListEditorKey) => string\n calculateSubtreeDepth: (node: NestedTreeNode<TItem>) => number\n}\n\ninterface Candidate {\n key: ListEditorKey | null\n depth: number\n label: string\n hasChildren: boolean\n disallowed: boolean\n reason: 'self' | 'descendant' | 'maxDepth' | 'currentParent' | null\n}\n\nconst props = defineProps<Props<TItem>>()\n\nconst emit = defineEmits<{\n confirm: [parentId: ListEditorKey | null, position: 'first' | 'last']\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n\nconst { t } = useI18n()\n\nconst selectedKey = ref<ListEditorKey | null | undefined>(undefined)\nconst placement = ref<'first' | 'last'>('last')\n\nwatch(open, (now) => {\n if (now) {\n selectedKey.value = undefined\n placement.value = 'last'\n }\n})\n\n// Walk the source's subtree to gather descendant keys (cycle prevention).\nconst descendantKeys = computed<Set<ListEditorKey>>(() => {\n const out = new Set<ListEditorKey>()\n if (props.sourceKey === null) return out\n const walk = (nodes: NestedTreeNode<TItem>[]): boolean => {\n for (const n of nodes) {\n const k = n.data[props.keyField] as ListEditorKey\n if (k === props.sourceKey) {\n const collect = (sub: NestedTreeNode<TItem>[]) => {\n for (const s of sub) {\n out.add(s.data[props.keyField] as ListEditorKey)\n if (s.children?.length) collect(s.children)\n }\n }\n if (n.children?.length) collect(n.children)\n return true\n }\n if (n.children?.length && walk(n.children)) return true\n }\n return false\n }\n walk(props.tree.children)\n return out\n})\n\nconst sourceNode = computed<NestedTreeNode<TItem> | null>(() => {\n if (props.sourceKey === null) return null\n const find = (nodes: NestedTreeNode<TItem>[]): NestedTreeNode<TItem> | null => {\n for (const n of nodes) {\n if ((n.data[props.keyField] as ListEditorKey) === props.sourceKey) return n\n if (n.children?.length) {\n const hit = find(n.children)\n if (hit) return hit\n }\n }\n return null\n }\n return find(props.tree.children)\n})\n\n// `currentParentKey` = parent of the source row (null if source is at root).\n// We exclude this from candidates because moving to \"the same parent\" is not a\n// \"change parent\" operation (use Move-to-position instead).\nconst currentParentKey = computed<ListEditorKey | null | undefined>(() => {\n if (props.sourceKey === null) return undefined\n const find = (nodes: NestedTreeNode<TItem>[], parentKey: ListEditorKey | null): ListEditorKey | null | undefined => {\n for (const n of nodes) {\n if ((n.data[props.keyField] as ListEditorKey) === props.sourceKey) return parentKey\n if (n.children?.length) {\n const hit = find(n.children, n.data[props.keyField] as ListEditorKey)\n if (hit !== undefined) return hit\n }\n }\n return undefined\n }\n return find(props.tree.children, null)\n})\n\nconst candidates = computed<Candidate[]>(() => {\n const out: Candidate[] = []\n const subtreeDepth = sourceNode.value ? props.calculateSubtreeDepth(sourceNode.value) : 1\n\n out.push({\n key: null,\n depth: 0,\n label: t('common.sortable.changeParent.rootLabel'),\n hasChildren: props.tree.children.length > 0,\n disallowed: currentParentKey.value === null,\n reason: currentParentKey.value === null ? 'currentParent' : null,\n })\n\n const walk = (nodes: NestedTreeNode<TItem>[], depth: number) => {\n for (const n of nodes) {\n const key = n.data[props.keyField] as ListEditorKey\n let disallowed = false\n let reason: Candidate['reason'] = null\n if (key === props.sourceKey) {\n disallowed = true\n reason = 'self'\n } else if (descendantKeys.value.has(key)) {\n disallowed = true\n reason = 'descendant'\n } else if (currentParentKey.value !== undefined && currentParentKey.value === key) {\n disallowed = true\n reason = 'currentParent'\n } else if (depth + 1 + subtreeDepth > props.maxDepth) {\n disallowed = true\n reason = 'maxDepth'\n }\n out.push({\n key,\n depth: depth + 1,\n label: props.resolveLabel(n.data as TItem, key),\n hasChildren: !!(n.children && n.children.length > 0),\n disallowed,\n reason,\n })\n if (n.children?.length) walk(n.children, depth + 1)\n }\n }\n walk(props.tree.children, 0)\n return out\n})\n\nconst validCandidates = computed(() => candidates.value.filter((c) => !c.disallowed))\n\nconst selectedCandidate = computed<Candidate | null>(() =>\n selectedKey.value === undefined ? null : (candidates.value.find((c) => c.key === selectedKey.value) ?? null)\n)\n\nconst showPlacementPicker = computed<boolean>(() => !!selectedCandidate.value && selectedCandidate.value.hasChildren)\n\nconst onCandidateClick = (c: Candidate) => {\n if (c.disallowed) return\n selectedKey.value = c.key\n}\n\nconst onConfirm = () => {\n if (!selectedCandidate.value) return\n emit('confirm', selectedCandidate.value.key, placement.value)\n open.value = false\n}\n\nconst onCancel = () => {\n open.value = false\n}\n\nconst indent = (depth: number): string => `${depth * 16}px`\n\nconst reasonLabel = (reason: Candidate['reason']): string => {\n if (reason === 'maxDepth') return t('common.sortable.changeParent.errorMaxDepth')\n return ''\n}\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"540\"\n persistent\n @keydown.esc=\"onCancel\"\n >\n <VCard>\n <VCardTitle>\n {{ t('common.sortable.changeParent.title') }}\n </VCardTitle>\n\n <VCardText\n v-if=\"validCandidates.length === 0\"\n class=\"text-body-medium\"\n >\n <VAlert\n type=\"info\"\n variant=\"tonal\"\n density=\"compact\"\n >\n <strong>{{ t('common.sortable.changeParent.noTargetsTitle') }}</strong>\n <div>{{ t('common.sortable.changeParent.noTargetsText') }}</div>\n </VAlert>\n </VCardText>\n\n <template v-else>\n <VCardText class=\"pb-1\">\n <VList\n density=\"compact\"\n class=\"le-change-parent__list\"\n >\n <VListItem\n v-for=\"c in candidates\"\n :key=\"c.key === null ? '__root__' : String(c.key)\"\n :disabled=\"c.disallowed\"\n :active=\"selectedKey === c.key\"\n :title=\"c.label\"\n :subtitle=\"reasonLabel(c.reason)\"\n :style=\"{ paddingInlineStart: indent(c.depth) }\"\n :data-disallowed=\"c.disallowed ? 'true' : 'false'\"\n :data-reason=\"c.reason ?? ''\"\n @click=\"onCandidateClick(c)\"\n >\n <template #prepend>\n <VIcon\n v-if=\"c.key === null\"\n icon=\"mdi-folder-home-outline\"\n size=\"18\"\n />\n <VIcon\n v-else-if=\"c.hasChildren\"\n icon=\"mdi-folder-outline\"\n size=\"18\"\n />\n <VIcon\n v-else\n icon=\"mdi-file-outline\"\n size=\"18\"\n />\n </template>\n </VListItem>\n </VList>\n </VCardText>\n\n <VCardText\n v-if=\"showPlacementPicker\"\n class=\"pt-0\"\n >\n <div class=\"text-body-medium mb-2\">\n {{\n t('common.sortable.changeParent.placementHeading', {\n label: selectedCandidate?.label ?? '',\n })\n }}\n </div>\n <VRadioGroup\n v-model=\"placement\"\n density=\"compact\"\n hide-details\n >\n <VRadio\n value=\"first\"\n :label=\"t('common.sortable.changeParent.placeFirst')\"\n />\n <VRadio\n value=\"last\"\n :label=\"t('common.sortable.changeParent.placeLast')\"\n />\n </VRadioGroup>\n </VCardText>\n </template>\n\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n @click=\"onCancel\"\n >\n {{ t('common.sortable.reorderCancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"elevated\"\n :disabled=\"!selectedCandidate || selectedCandidate.disallowed\"\n @click=\"onConfirm\"\n >\n {{ t('common.sortable.changeParent.confirm') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.le-change-parent__list {\n max-height: 340px;\n overflow-y: auto;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"LeChangeParentDialog.js","names":["LeChangeParentDialog_vue_vue_type_script_setup_true_lang_default","_plugin_vue_export_helper_default","LeChangeParentDialog_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeChangeParentDialog.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","_component_VDialog","_withKeys","_withCtx","_createVNode","_component_VCard","_component_VCardTitle","_createTextVNode","_toDisplayString","_unref","_component_VCardText","_component_VAlert","_createElementVNode","_createElementBlock","_Fragment","_component_VList","_renderList","_component_VListItem","_normalizeStyle","_component_VIcon","_component_VRadioGroup","_component_VRadio","_createCommentVNode","_component_VCardActions","_component_VSpacer","_component_VBtn","_hoisted_1","LeChangeParentDialog_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","__emit","props","__props","emit","open","useModel","useI18n","selectedKey","ref","placement","now","descendantKeys","computed","out","walk","n","nodes","collect","s","sub","sourceNode","find","hit","currentParentKey","parentKey","candidates","subtreeDepth","t","key","disallowed","reason","depth","validCandidates","c","selectedCandidate","showPlacementPicker","onCandidateClick","onConfirm","onCancel","indent","reasonLabel","openBlock","createBlock","VDialog","_cache","$event","withKeys","withCtx","createVNode","VCard","VCardTitle","createTextVNode","toDisplayString","unref","VCardText","VAlert","createElementVNode","createElementBlock","Fragment","VList","renderList","VListItem","normalizeStyle","VIcon","VRadioGroup","VRadio","createCommentVNode","VCardActions","VSpacer","VBtn"],"sources":["../../../../../src/domains/listEditor/components/internal/LeChangeParentDialog.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"TItem extends Record<string, any>\">\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ListEditorKey, NestedTree, NestedTreeNode } from '@/domains/listEditor/types/listEditorTypes'\n\nexport interface Props<TItem extends Record<string, any>> {\n tree: NestedTree<TItem>\n sourceKey: ListEditorKey | null\n keyField: string\n maxDepth: number\n resolveLabel: (raw: TItem, key: ListEditorKey) => string\n calculateSubtreeDepth: (node: NestedTreeNode<TItem>) => number\n}\n\ninterface Candidate {\n key: ListEditorKey | null\n depth: number\n label: string\n hasChildren: boolean\n disallowed: boolean\n reason: 'self' | 'descendant' | 'maxDepth' | 'currentParent' | null\n}\n\nconst props = defineProps<Props<TItem>>()\n\nconst emit = defineEmits<{\n confirm: [parentId: ListEditorKey | null, position: 'first' | 'last']\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n\nconst { t } = useI18n()\n\nconst selectedKey = ref<ListEditorKey | null | undefined>(undefined)\nconst placement = ref<'first' | 'last'>('last')\n\nwatch(open, (now) => {\n if (now) {\n selectedKey.value = undefined\n placement.value = 'last'\n }\n})\n\n// Walk the source's subtree to gather descendant keys (cycle prevention).\nconst descendantKeys = computed<Set<ListEditorKey>>(() => {\n const out = new Set<ListEditorKey>()\n if (props.sourceKey === null) return out\n const walk = (nodes: NestedTreeNode<TItem>[]): boolean => {\n for (const n of nodes) {\n const k = n.data[props.keyField] as ListEditorKey\n if (k === props.sourceKey) {\n const collect = (sub: NestedTreeNode<TItem>[]) => {\n for (const s of sub) {\n out.add(s.data[props.keyField] as ListEditorKey)\n if (s.children?.length) collect(s.children)\n }\n }\n if (n.children?.length) collect(n.children)\n return true\n }\n if (n.children?.length && walk(n.children)) return true\n }\n return false\n }\n walk(props.tree.children)\n return out\n})\n\nconst sourceNode = computed<NestedTreeNode<TItem> | null>(() => {\n if (props.sourceKey === null) return null\n const find = (nodes: NestedTreeNode<TItem>[]): NestedTreeNode<TItem> | null => {\n for (const n of nodes) {\n if ((n.data[props.keyField] as ListEditorKey) === props.sourceKey) return n\n if (n.children?.length) {\n const hit = find(n.children)\n if (hit) return hit\n }\n }\n return null\n }\n return find(props.tree.children)\n})\n\n// `currentParentKey` = parent of the source row (null if source is at root).\n// We exclude this from candidates because moving to \"the same parent\" is not a\n// \"change parent\" operation (use Move-to-position instead).\nconst currentParentKey = computed<ListEditorKey | null | undefined>(() => {\n if (props.sourceKey === null) return undefined\n const find = (nodes: NestedTreeNode<TItem>[], parentKey: ListEditorKey | null): ListEditorKey | null | undefined => {\n for (const n of nodes) {\n if ((n.data[props.keyField] as ListEditorKey) === props.sourceKey) return parentKey\n if (n.children?.length) {\n const hit = find(n.children, n.data[props.keyField] as ListEditorKey)\n if (hit !== undefined) return hit\n }\n }\n return undefined\n }\n return find(props.tree.children, null)\n})\n\nconst candidates = computed<Candidate[]>(() => {\n const out: Candidate[] = []\n const subtreeDepth = sourceNode.value ? props.calculateSubtreeDepth(sourceNode.value) : 1\n\n out.push({\n key: null,\n depth: 0,\n label: t('common.sortable.changeParent.rootLabel'),\n hasChildren: props.tree.children.length > 0,\n disallowed: currentParentKey.value === null,\n reason: currentParentKey.value === null ? 'currentParent' : null,\n })\n\n const walk = (nodes: NestedTreeNode<TItem>[], depth: number) => {\n for (const n of nodes) {\n const key = n.data[props.keyField] as ListEditorKey\n let disallowed = false\n let reason: Candidate['reason'] = null\n if (key === props.sourceKey) {\n disallowed = true\n reason = 'self'\n } else if (descendantKeys.value.has(key)) {\n disallowed = true\n reason = 'descendant'\n } else if (currentParentKey.value !== undefined && currentParentKey.value === key) {\n disallowed = true\n reason = 'currentParent'\n } else if (depth + 1 + subtreeDepth > props.maxDepth) {\n disallowed = true\n reason = 'maxDepth'\n }\n out.push({\n key,\n depth: depth + 1,\n label: props.resolveLabel(n.data as TItem, key),\n hasChildren: !!(n.children && n.children.length > 0),\n disallowed,\n reason,\n })\n if (n.children?.length) walk(n.children, depth + 1)\n }\n }\n walk(props.tree.children, 0)\n return out\n})\n\nconst validCandidates = computed(() => candidates.value.filter((c) => !c.disallowed))\n\nconst selectedCandidate = computed<Candidate | null>(() =>\n selectedKey.value === undefined ? null : (candidates.value.find((c) => c.key === selectedKey.value) ?? null)\n)\n\nconst showPlacementPicker = computed<boolean>(() => !!selectedCandidate.value && selectedCandidate.value.hasChildren)\n\nconst onCandidateClick = (c: Candidate) => {\n if (c.disallowed) return\n selectedKey.value = c.key\n}\n\nconst onConfirm = () => {\n if (!selectedCandidate.value) return\n emit('confirm', selectedCandidate.value.key, placement.value)\n open.value = false\n}\n\nconst onCancel = () => {\n open.value = false\n}\n\nconst indent = (depth: number): string => `${depth * 16}px`\n\nconst reasonLabel = (reason: Candidate['reason']): string => {\n if (reason === 'maxDepth') return t('common.sortable.changeParent.errorMaxDepth')\n return ''\n}\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"540\"\n persistent\n @keydown.esc=\"onCancel\"\n >\n <VCard>\n <VCardTitle>\n {{ t('common.sortable.changeParent.title') }}\n </VCardTitle>\n\n <VCardText\n v-if=\"validCandidates.length === 0\"\n class=\"text-body-medium\"\n >\n <VAlert\n type=\"info\"\n variant=\"tonal\"\n density=\"compact\"\n >\n <strong>{{ t('common.sortable.changeParent.noTargetsTitle') }}</strong>\n <div>{{ t('common.sortable.changeParent.noTargetsText') }}</div>\n </VAlert>\n </VCardText>\n\n <template v-else>\n <VCardText class=\"pb-1\">\n <VList\n density=\"compact\"\n class=\"le-change-parent__list\"\n >\n <VListItem\n v-for=\"c in candidates\"\n :key=\"c.key === null ? '__root__' : String(c.key)\"\n :disabled=\"c.disallowed\"\n :active=\"selectedKey === c.key\"\n :title=\"c.label\"\n :subtitle=\"reasonLabel(c.reason)\"\n :style=\"{ paddingInlineStart: indent(c.depth) }\"\n :data-disallowed=\"c.disallowed ? 'true' : 'false'\"\n :data-reason=\"c.reason ?? ''\"\n @click=\"onCandidateClick(c)\"\n >\n <template #prepend>\n <VIcon\n v-if=\"c.key === null\"\n icon=\"mdi-folder-home-outline\"\n size=\"18\"\n />\n <VIcon\n v-else-if=\"c.hasChildren\"\n icon=\"mdi-folder-outline\"\n size=\"18\"\n />\n <VIcon\n v-else\n icon=\"mdi-file-outline\"\n size=\"18\"\n />\n </template>\n </VListItem>\n </VList>\n </VCardText>\n\n <VCardText\n v-if=\"showPlacementPicker\"\n class=\"pt-0\"\n >\n <div class=\"text-body-medium mb-2\">\n {{\n t('common.sortable.changeParent.placementHeading', {\n label: selectedCandidate?.label ?? '',\n })\n }}\n </div>\n <VRadioGroup\n v-model=\"placement\"\n density=\"compact\"\n hide-details\n >\n <VRadio\n value=\"first\"\n :label=\"t('common.sortable.changeParent.placeFirst')\"\n />\n <VRadio\n value=\"last\"\n :label=\"t('common.sortable.changeParent.placeLast')\"\n />\n </VRadioGroup>\n </VCardText>\n </template>\n\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n @click=\"onCancel\"\n >\n {{ t('common.sortable.reorderCancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"elevated\"\n :disabled=\"!selectedCandidate || selectedCandidate.disallowed\"\n @click=\"onConfirm\"\n >\n {{ t('common.sortable.changeParent.confirm') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.le-change-parent__list {\n max-height: 340px;\n overflow-y: auto;\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"LeChangeParentDialog.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","_component_VDialog","_withKeys","_withCtx","_createVNode","_component_VCard","_component_VCardTitle","_createTextVNode","_toDisplayString","_unref","_component_VCardText","_component_VAlert","_createElementVNode","_createElementBlock","_Fragment","_component_VList","_renderList","_component_VListItem","_normalizeStyle","_component_VIcon","_component_VRadioGroup","_component_VRadio","_component_VCardActions","_component_VSpacer","_component_VBtn","_hoisted_1","LeChangeParentDialog_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","__emit","props","__props","emit","open","useModel","useI18n","selectedKey","ref","placement","now","descendantKeys","computed","out","walk","n","nodes","collect","s","sub","sourceNode","find","hit","currentParentKey","parentKey","candidates","subtreeDepth","t","key","disallowed","reason","depth","validCandidates","c","selectedCandidate","showPlacementPicker","onCandidateClick","onConfirm","onCancel","indent","reasonLabel","openBlock","createBlock","VDialog","_cache","$event","withKeys","withCtx","createVNode","VCard","VCardTitle","createTextVNode","toDisplayString","unref","VCardText","VAlert","createElementVNode","createElementBlock","Fragment","VList","renderList","VListItem","normalizeStyle","VIcon","VRadioGroup","VRadio","createCommentVNode","VCardActions","VSpacer","VBtn"],"sources":["../../../../../src/domains/listEditor/components/internal/LeChangeParentDialog.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"TItem extends Record<string, any>\">\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ListEditorKey, NestedTree, NestedTreeNode } from '@/domains/listEditor/types/listEditorTypes'\n\nexport interface Props<TItem extends Record<string, any>> {\n tree: NestedTree<TItem>\n sourceKey: ListEditorKey | null\n keyField: string\n maxDepth: number\n resolveLabel: (raw: TItem, key: ListEditorKey) => string\n calculateSubtreeDepth: (node: NestedTreeNode<TItem>) => number\n}\n\ninterface Candidate {\n key: ListEditorKey | null\n depth: number\n label: string\n hasChildren: boolean\n disallowed: boolean\n reason: 'self' | 'descendant' | 'maxDepth' | 'currentParent' | null\n}\n\nconst props = defineProps<Props<TItem>>()\n\nconst emit = defineEmits<{\n confirm: [parentId: ListEditorKey | null, position: 'first' | 'last']\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n\nconst { t } = useI18n()\n\nconst selectedKey = ref<ListEditorKey | null | undefined>(undefined)\nconst placement = ref<'first' | 'last'>('last')\n\nwatch(open, (now) => {\n if (now) {\n selectedKey.value = undefined\n placement.value = 'last'\n }\n})\n\n// Walk the source's subtree to gather descendant keys (cycle prevention).\nconst descendantKeys = computed<Set<ListEditorKey>>(() => {\n const out = new Set<ListEditorKey>()\n if (props.sourceKey === null) return out\n const walk = (nodes: NestedTreeNode<TItem>[]): boolean => {\n for (const n of nodes) {\n const k = n.data[props.keyField] as ListEditorKey\n if (k === props.sourceKey) {\n const collect = (sub: NestedTreeNode<TItem>[]) => {\n for (const s of sub) {\n out.add(s.data[props.keyField] as ListEditorKey)\n if (s.children?.length) collect(s.children)\n }\n }\n if (n.children?.length) collect(n.children)\n return true\n }\n if (n.children?.length && walk(n.children)) return true\n }\n return false\n }\n walk(props.tree.children)\n return out\n})\n\nconst sourceNode = computed<NestedTreeNode<TItem> | null>(() => {\n if (props.sourceKey === null) return null\n const find = (nodes: NestedTreeNode<TItem>[]): NestedTreeNode<TItem> | null => {\n for (const n of nodes) {\n if ((n.data[props.keyField] as ListEditorKey) === props.sourceKey) return n\n if (n.children?.length) {\n const hit = find(n.children)\n if (hit) return hit\n }\n }\n return null\n }\n return find(props.tree.children)\n})\n\n// `currentParentKey` = parent of the source row (null if source is at root).\n// We exclude this from candidates because moving to \"the same parent\" is not a\n// \"change parent\" operation (use Move-to-position instead).\nconst currentParentKey = computed<ListEditorKey | null | undefined>(() => {\n if (props.sourceKey === null) return undefined\n const find = (nodes: NestedTreeNode<TItem>[], parentKey: ListEditorKey | null): ListEditorKey | null | undefined => {\n for (const n of nodes) {\n if ((n.data[props.keyField] as ListEditorKey) === props.sourceKey) return parentKey\n if (n.children?.length) {\n const hit = find(n.children, n.data[props.keyField] as ListEditorKey)\n if (hit !== undefined) return hit\n }\n }\n return undefined\n }\n return find(props.tree.children, null)\n})\n\nconst candidates = computed<Candidate[]>(() => {\n const out: Candidate[] = []\n const subtreeDepth = sourceNode.value ? props.calculateSubtreeDepth(sourceNode.value) : 1\n\n out.push({\n key: null,\n depth: 0,\n label: t('common.sortable.changeParent.rootLabel'),\n hasChildren: props.tree.children.length > 0,\n disallowed: currentParentKey.value === null,\n reason: currentParentKey.value === null ? 'currentParent' : null,\n })\n\n const walk = (nodes: NestedTreeNode<TItem>[], depth: number) => {\n for (const n of nodes) {\n const key = n.data[props.keyField] as ListEditorKey\n let disallowed = false\n let reason: Candidate['reason'] = null\n if (key === props.sourceKey) {\n disallowed = true\n reason = 'self'\n } else if (descendantKeys.value.has(key)) {\n disallowed = true\n reason = 'descendant'\n } else if (currentParentKey.value !== undefined && currentParentKey.value === key) {\n disallowed = true\n reason = 'currentParent'\n } else if (depth + 1 + subtreeDepth > props.maxDepth) {\n disallowed = true\n reason = 'maxDepth'\n }\n out.push({\n key,\n depth: depth + 1,\n label: props.resolveLabel(n.data as TItem, key),\n hasChildren: !!(n.children && n.children.length > 0),\n disallowed,\n reason,\n })\n if (n.children?.length) walk(n.children, depth + 1)\n }\n }\n walk(props.tree.children, 0)\n return out\n})\n\nconst validCandidates = computed(() => candidates.value.filter((c) => !c.disallowed))\n\nconst selectedCandidate = computed<Candidate | null>(() =>\n selectedKey.value === undefined ? null : (candidates.value.find((c) => c.key === selectedKey.value) ?? null)\n)\n\nconst showPlacementPicker = computed<boolean>(() => !!selectedCandidate.value && selectedCandidate.value.hasChildren)\n\nconst onCandidateClick = (c: Candidate) => {\n if (c.disallowed) return\n selectedKey.value = c.key\n}\n\nconst onConfirm = () => {\n if (!selectedCandidate.value) return\n emit('confirm', selectedCandidate.value.key, placement.value)\n open.value = false\n}\n\nconst onCancel = () => {\n open.value = false\n}\n\nconst indent = (depth: number): string => `${depth * 16}px`\n\nconst reasonLabel = (reason: Candidate['reason']): string => {\n if (reason === 'maxDepth') return t('common.sortable.changeParent.errorMaxDepth')\n return ''\n}\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"540\"\n persistent\n @keydown.esc=\"onCancel\"\n >\n <VCard>\n <VCardTitle>\n {{ t('common.sortable.changeParent.title') }}\n </VCardTitle>\n\n <VCardText\n v-if=\"validCandidates.length === 0\"\n class=\"text-body-medium\"\n >\n <VAlert\n type=\"info\"\n variant=\"tonal\"\n density=\"compact\"\n >\n <strong>{{ t('common.sortable.changeParent.noTargetsTitle') }}</strong>\n <div>{{ t('common.sortable.changeParent.noTargetsText') }}</div>\n </VAlert>\n </VCardText>\n\n <template v-else>\n <VCardText class=\"pb-1\">\n <VList\n density=\"compact\"\n class=\"le-change-parent__list\"\n >\n <VListItem\n v-for=\"c in candidates\"\n :key=\"c.key === null ? '__root__' : String(c.key)\"\n :disabled=\"c.disallowed\"\n :active=\"selectedKey === c.key\"\n :title=\"c.label\"\n :subtitle=\"reasonLabel(c.reason)\"\n :style=\"{ paddingInlineStart: indent(c.depth) }\"\n :data-disallowed=\"c.disallowed ? 'true' : 'false'\"\n :data-reason=\"c.reason ?? ''\"\n @click=\"onCandidateClick(c)\"\n >\n <template #prepend>\n <VIcon\n v-if=\"c.key === null\"\n icon=\"mdi-folder-home-outline\"\n size=\"18\"\n />\n <VIcon\n v-else-if=\"c.hasChildren\"\n icon=\"mdi-folder-outline\"\n size=\"18\"\n />\n <VIcon\n v-else\n icon=\"mdi-file-outline\"\n size=\"18\"\n />\n </template>\n </VListItem>\n </VList>\n </VCardText>\n\n <VCardText\n v-if=\"showPlacementPicker\"\n class=\"pt-0\"\n >\n <div class=\"text-body-medium mb-2\">\n {{\n t('common.sortable.changeParent.placementHeading', {\n label: selectedCandidate?.label ?? '',\n })\n }}\n </div>\n <VRadioGroup\n v-model=\"placement\"\n density=\"compact\"\n hide-details\n >\n <VRadio\n value=\"first\"\n :label=\"t('common.sortable.changeParent.placeFirst')\"\n />\n <VRadio\n value=\"last\"\n :label=\"t('common.sortable.changeParent.placeLast')\"\n />\n </VRadioGroup>\n </VCardText>\n </template>\n\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n @click=\"onCancel\"\n >\n {{ t('common.sortable.reorderCancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"elevated\"\n :disabled=\"!selectedCandidate || selectedCandidate.disallowed\"\n @click=\"onConfirm\"\n >\n {{ t('common.sortable.changeParent.confirm') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.le-change-parent__list {\n max-height: 340px;\n overflow-y: auto;\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeDeleteDialog.js","names":["_sfc_main","LeDeleteDialog_vue_vue_type_script_setup_true_lang_default","LeDeleteDialog_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeDeleteDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// Shared delete-confirmation dialog used by all three list-editor variants.\n// The outer editors keep their own dialog-related state (open flag, in-flight,\n// error message) and supply i18n-resolved title / text / button labels — this\n// component is pure presentation plus confirm/cancel emits.\n\nexport interface Props {\n title: string\n text: string\n confirmLabel?: string\n cancelLabel?: string\n error?: string | null\n inFlight?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n confirmLabel: 'Delete',\n cancelLabel: 'Cancel',\n error: null,\n inFlight: false,\n})\n\ndefineEmits<{\n confirm: []\n cancel: []\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"420\"\n :persistent=\"inFlight\"\n >\n <VCard>\n <VCardTitle class=\"text-headline-small\">\n {{ title }}\n </VCardTitle>\n <VCardText>\n {{ text }}\n <VAlert\n v-if=\"error\"\n type=\"error\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"mt-3\"\n >\n {{ error }}\n </VAlert>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n :disabled=\"inFlight\"\n @click=\"$emit('cancel')\"\n >\n {{ cancelLabel }}\n </VBtn>\n <VBtn\n color=\"error\"\n variant=\"flat\"\n :loading=\"inFlight\"\n :disabled=\"inFlight\"\n @click=\"$emit('confirm')\"\n >\n {{ confirmLabel }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"LeDeleteDialog.js","names":["LeDeleteDialog_vue_vue_type_script_setup_true_lang_default","LeDeleteDialog_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeDeleteDialog.vue_vue_type_script_setup_true_lang.js","names":["$emit","_useModel","_openBlock","_createBlock","_component_VDialog","_withCtx","_createVNode","_component_VCard","_component_VCardTitle","_createTextVNode","_toDisplayString","_component_VCardText","_component_VAlert","_createCommentVNode","_component_VCardActions","_component_VSpacer","_component_VBtn","LeDeleteDialog_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","open","useModel","__props","openBlock","createBlock","VDialog","_cache","$event","withCtx","createVNode","VCard","VCardTitle","createTextVNode","toDisplayString","VCardText","VAlert","createCommentVNode","VCardActions","VSpacer","VBtn","_ctx"],"sources":["../../../../../src/domains/listEditor/components/internal/LeDeleteDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// Shared delete-confirmation dialog used by all three list-editor variants.\n// The outer editors keep their own dialog-related state (open flag, in-flight,\n// error message) and supply i18n-resolved title / text / button labels — this\n// component is pure presentation plus confirm/cancel emits.\n\nexport interface Props {\n title: string\n text: string\n confirmLabel?: string\n cancelLabel?: string\n error?: string | null\n inFlight?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n confirmLabel: 'Delete',\n cancelLabel: 'Cancel',\n error: null,\n inFlight: false,\n})\n\ndefineEmits<{\n confirm: []\n cancel: []\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"420\"\n :persistent=\"inFlight\"\n >\n <VCard>\n <VCardTitle class=\"text-headline-small\">\n {{ title }}\n </VCardTitle>\n <VCardText>\n {{ text }}\n <VAlert\n v-if=\"error\"\n type=\"error\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"mt-3\"\n >\n {{ error }}\n </VAlert>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n :disabled=\"inFlight\"\n @click=\"$emit('cancel')\"\n >\n {{ cancelLabel }}\n </VBtn>\n <VBtn\n color=\"error\"\n variant=\"flat\"\n :loading=\"inFlight\"\n :disabled=\"inFlight\"\n @click=\"$emit('confirm')\"\n >\n {{ confirmLabel }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BA,IAAMoB,IAAOnB,EAAoBqB,GAAA,YAAmB;E,kBAIlDpB,EAAA,GAAAC,EAyCUC,GAAA;GAxCC,YAAAgB,EAAA;GAAA,uBAAA,AAAAM,EAAA,QAAA,MAAA,EAAI,QAAAC;GACb,aAAU;GACT,YAAYL,EAAA;;GAEb,SAAAjB,QAmCQ,CAnCRC,EAmCQC,GAAA,MAAA;IAlCN,SAAAF,QAEa;KAFbC,EAEaE,GAAA,EAFD,OAAM,sBAAqB,GAAA;MACrC,SAAAH,QAAW,CAARI,EAAAC,EAAAY,EAAA,KAAK,GAAA,CAAA,C;;;KAEVhB,EAWYK,GAAA,MAAA;MAVV,SAAAN,QAAU,CAAPI,EAAAC,EAAAY,EAAA,IAAI,IAAG,KACV,CAAA,GACQA,EAAA,SADRpB,EAAA,GAAAC,EAQSS,GAAA;;OANP,MAAK;OACL,SAAQ;OACR,SAAQ;OACR,OAAM;;OAEN,SAAAP,QAAW,CAARI,EAAAC,EAAAY,EAAA,KAAK,GAAA,CAAA,C;;;;;KAGZhB,EAkBeQ,GAAA,MAAA;MAjBb,SAAAT,QAAW;OAAXC,EAAWS,CAAA;OACXT,EAMOU,GAAA;QALL,SAAQ;QACP,UAAUM,EAAA;QACV,SAAK,AAAAI,EAAA,QAAA,MAAE1B,EAAAA,MAAK,QAAA;;QAEb,SAAAK,QAAiB,CAAdI,EAAAC,EAAAY,EAAA,WAAW,GAAA,CAAA,C;;;OAEhBhB,EAQOU,GAAA;QAPL,OAAM;QACN,SAAQ;QACP,SAASM,EAAA;QACT,UAAUA,EAAA;QACV,SAAK,AAAAI,EAAA,QAAA,MAAE1B,EAAAA,MAAK,SAAA;;QAEb,SAAAK,QAAkB,CAAfI,EAAAC,EAAAY,EAAA,YAAY,GAAA,CAAA,C"}
1
+ {"version":3,"file":"LeDeleteDialog.vue_vue_type_script_setup_true_lang.js","names":["$emit","_useModel","_openBlock","_createBlock","_component_VDialog","_withCtx","_createVNode","_component_VCard","_component_VCardTitle","_createTextVNode","_toDisplayString","_component_VCardText","_component_VAlert","_component_VCardActions","_component_VSpacer","_component_VBtn","LeDeleteDialog_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","open","useModel","__props","openBlock","createBlock","VDialog","_cache","$event","withCtx","createVNode","VCard","VCardTitle","createTextVNode","toDisplayString","VCardText","VAlert","createCommentVNode","VCardActions","VSpacer","VBtn","_ctx"],"sources":["../../../../../src/domains/listEditor/components/internal/LeDeleteDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// Shared delete-confirmation dialog used by all three list-editor variants.\n// The outer editors keep their own dialog-related state (open flag, in-flight,\n// error message) and supply i18n-resolved title / text / button labels — this\n// component is pure presentation plus confirm/cancel emits.\n\nexport interface Props {\n title: string\n text: string\n confirmLabel?: string\n cancelLabel?: string\n error?: string | null\n inFlight?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n confirmLabel: 'Delete',\n cancelLabel: 'Cancel',\n error: null,\n inFlight: false,\n})\n\ndefineEmits<{\n confirm: []\n cancel: []\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"420\"\n :persistent=\"inFlight\"\n >\n <VCard>\n <VCardTitle class=\"text-headline-small\">\n {{ title }}\n </VCardTitle>\n <VCardText>\n {{ text }}\n <VAlert\n v-if=\"error\"\n type=\"error\"\n variant=\"tonal\"\n density=\"compact\"\n class=\"mt-3\"\n >\n {{ error }}\n </VAlert>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n :disabled=\"inFlight\"\n @click=\"$emit('cancel')\"\n >\n {{ cancelLabel }}\n </VBtn>\n <VBtn\n color=\"error\"\n variant=\"flat\"\n :loading=\"inFlight\"\n :disabled=\"inFlight\"\n @click=\"$emit('confirm')\"\n >\n {{ confirmLabel }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BA,IAAMmB,IAAOlB,EAAoBoB,GAAA,YAAmB;E,kBAIlDnB,EAAA,GAAAC,EAyCUC,GAAA;GAxCC,YAAAe,EAAA;GAAA,uBAAA,AAAAM,EAAA,QAAA,MAAA,EAAI,QAAAC;GACb,aAAU;GACT,YAAYL,EAAA;;GAEb,SAAAhB,QAmCQ,CAnCRC,EAmCQC,GAAA,MAAA;IAlCN,SAAAF,QAEa;KAFbC,EAEaE,GAAA,EAFD,OAAM,sBAAqB,GAAA;MACrC,SAAAH,QAAW,CAARI,EAAAC,EAAAW,EAAA,KAAK,GAAA,CAAA,C;;;KAEVf,EAWYK,GAAA,MAAA;MAVV,SAAAN,QAAU,CAAPI,EAAAC,EAAAW,EAAA,IAAI,IAAG,KACV,CAAA,GACQA,EAAA,SADRnB,EAAA,GAAAC,EAQSS,GAAA;;OANP,MAAK;OACL,SAAQ;OACR,SAAQ;OACR,OAAM;;OAEN,SAAAP,QAAW,CAARI,EAAAC,EAAAW,EAAA,KAAK,GAAA,CAAA,C;;;;;KAGZf,EAkBeO,GAAA,MAAA;MAjBb,SAAAR,QAAW;OAAXC,EAAWQ,CAAA;OACXR,EAMOS,GAAA;QALL,SAAQ;QACP,UAAUM,EAAA;QACV,SAAK,AAAAI,EAAA,QAAA,MAAEzB,EAAAA,MAAK,QAAA;;QAEb,SAAAK,QAAiB,CAAdI,EAAAC,EAAAW,EAAA,WAAW,GAAA,CAAA,C;;;OAEhBf,EAQOS,GAAA;QAPL,OAAM;QACN,SAAQ;QACP,SAASM,EAAA;QACT,UAAUA,EAAA;QACV,SAAK,AAAAI,EAAA,QAAA,MAAEzB,EAAAA,MAAK,SAAA;;QAEb,SAAAK,QAAkB,CAAfI,EAAAC,EAAAW,EAAA,YAAY,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeDragHandle.js","names":["_sfc_main","LeDragHandle_vue_vue_type_script_setup_true_lang_default","LeDragHandle_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeDragHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// Drag-handle icon. Emits the shared `.a-le-drag-handle` class so SortableJS\n// `handle` selectors ('.a-le-drag-handle') match across every variant.\n</script>\n\n<template>\n <VIcon\n class=\"a-le-drag-handle\"\n icon=\"mdi-drag\"\n size=\"20\"\n />\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"LeDragHandle.js","names":["LeDragHandle_vue_vue_type_script_setup_true_lang_default","LeDragHandle_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeEmptyState.js","names":["_sfc_main","LeEmptyState_vue_vue_type_script_setup_true_lang_default","LeEmptyState_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeEmptyState.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\nexport interface Props {\n title: string\n addLabel?: string | null\n canAdd?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n addLabel: null,\n canAdd: false,\n})\n\ndefineEmits<{\n add: []\n}>()\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"a-le-empty\">\n <h3 class=\"a-le-empty-title\">\n {{ title }}\n </h3>\n <VBtn\n v-if=\"addLabel && canAdd\"\n color=\"primary\"\n variant=\"flat\"\n prepend-icon=\"mdi-plus\"\n @click=\"$emit('add')\"\n >\n {{ addLabel || t('common.sortable.addFirst') }}\n </VBtn>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"LeEmptyState.js","names":["LeEmptyState_vue_vue_type_script_setup_true_lang_default","LeEmptyState_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeEmptyState.vue_vue_type_script_setup_true_lang.js","names":["$emit","_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_createBlock","_component_VBtn","_withCtx","_createTextVNode","_unref","_createCommentVNode","_hoisted_1","_hoisted_2","LeEmptyState_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","createElementVNode","toDisplayString","__props","createBlock","VBtn","_cache","_ctx","withCtx","createTextVNode","unref","t","createCommentVNode"],"sources":["../../../../../src/domains/listEditor/components/internal/LeEmptyState.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\nexport interface Props {\n title: string\n addLabel?: string | null\n canAdd?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n addLabel: null,\n canAdd: false,\n})\n\ndefineEmits<{\n add: []\n}>()\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"a-le-empty\">\n <h3 class=\"a-le-empty-title\">\n {{ title }}\n </h3>\n <VBtn\n v-if=\"addLabel && canAdd\"\n color=\"primary\"\n variant=\"flat\"\n prepend-icon=\"mdi-plus\"\n @click=\"$emit('add')\"\n >\n {{ addLabel || t('common.sortable.addFirst') }}\n </VBtn>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAkBA,IAAM,EAAE,SAAMc,EAAQ;E,kBAIpBb,EAAA,GAAAC,EAaM,OAbNS,GAaM,CAZJR,EAEK,MAFLS,GAEKR,EADAe,EAAA,KAAK,GAAA,CAAA,GAGFA,EAAA,YAAYA,EAAA,UADpBlB,EAAA,GAAAI,EAQOC,GAAA;;GANL,OAAM;GACN,SAAQ;GACR,gBAAa;GACZ,SAAK,AAAAgB,EAAA,QAAA,MAAEtB,EAAAA,MAAK,KAAA;;GAEb,SAAAO,QAA+C,CAA5CC,EAAAJ,EAAAe,EAAA,YAAYV,EAAAkB,CAAA,CAAC,CAAA,0BAAA,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"LeEmptyState.vue_vue_type_script_setup_true_lang.js","names":["$emit","_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_createBlock","_component_VBtn","_withCtx","_createTextVNode","_unref","_hoisted_1","_hoisted_2","LeEmptyState_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","createElementVNode","toDisplayString","__props","createBlock","VBtn","_cache","_ctx","withCtx","createTextVNode","unref","t","createCommentVNode"],"sources":["../../../../../src/domains/listEditor/components/internal/LeEmptyState.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\nexport interface Props {\n title: string\n addLabel?: string | null\n canAdd?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n addLabel: null,\n canAdd: false,\n})\n\ndefineEmits<{\n add: []\n}>()\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"a-le-empty\">\n <h3 class=\"a-le-empty-title\">\n {{ title }}\n </h3>\n <VBtn\n v-if=\"addLabel && canAdd\"\n color=\"primary\"\n variant=\"flat\"\n prepend-icon=\"mdi-plus\"\n @click=\"$emit('add')\"\n >\n {{ addLabel || t('common.sortable.addFirst') }}\n </VBtn>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAkBA,IAAM,EAAE,SAAMa,EAAQ;E,kBAIpBZ,EAAA,GAAAC,EAaM,OAbNQ,GAaM,CAZJP,EAEK,MAFLQ,GAEKP,EADAc,EAAA,KAAK,GAAA,CAAA,GAGFA,EAAA,YAAYA,EAAA,UADpBjB,EAAA,GAAAI,EAQOC,GAAA;;GANL,OAAM;GACN,SAAQ;GACR,gBAAa;GACZ,SAAK,AAAAe,EAAA,QAAA,MAAErB,EAAAA,MAAK,KAAA;;GAEb,SAAAO,QAA+C,CAA5CC,EAAAJ,EAAAc,EAAA,YAAYT,EAAAiB,CAAA,CAAC,CAAA,0BAAA,CAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeMoveToPositionDialog.js","names":["_sfc_main","LeMoveToPositionDialog_vue_vue_type_script_setup_true_lang_default","LeMoveToPositionDialog_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeMoveToPositionDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nexport interface Props {\n total: number\n currentIndex: number\n itemLabel?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n itemLabel: undefined,\n})\n\nconst emit = defineEmits<{\n confirm: [newIndex: number]\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n\nconst { t } = useI18n()\n\n// `currentIndex` is read once at setup to seed the field; subsequent changes\n// to the prop don't reset the user's typed-in value mid-edit, only re-opening\n// the dialog (via the `open` watcher below) does.\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst targetPosition = ref<number>(props.currentIndex + 1)\n\nwatch(open, (now) => {\n if (now) targetPosition.value = props.currentIndex + 1\n})\n\nconst totalLabel = computed(() => Math.max(props.total, 1))\nconst isInvalid = computed<boolean>(\n () => !Number.isFinite(targetPosition.value) || targetPosition.value < 1 || targetPosition.value > totalLabel.value\n)\n\nconst onConfirm = () => {\n if (isInvalid.value) return\n const newIndex = Math.max(0, Math.min(props.total - 1, targetPosition.value - 1))\n emit('confirm', newIndex)\n open.value = false\n}\n\nconst onCancel = () => {\n open.value = false\n}\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"420\"\n persistent\n @keydown.esc=\"onCancel\"\n >\n <VCard>\n <VCardTitle>\n {{ t('common.sortable.moveToPosition.title') }}\n </VCardTitle>\n\n <VCardText>\n <p\n v-if=\"itemLabel\"\n class=\"text-body-medium mb-3\"\n >\n {{ t('common.sortable.moveToPosition.itemDescription', { label: itemLabel }) }}\n </p>\n <VTextField\n v-model.number=\"targetPosition\"\n type=\"number\"\n :min=\"1\"\n :max=\"totalLabel\"\n :label=\"t('common.sortable.moveToPosition.positionLabel', { max: totalLabel })\"\n :hint=\"\n t('common.sortable.moveToPosition.positionHint', {\n current: currentIndex + 1,\n max: totalLabel,\n })\n \"\n :error=\"isInvalid\"\n autofocus\n density=\"comfortable\"\n variant=\"outlined\"\n @keydown.enter.prevent=\"onConfirm\"\n />\n </VCardText>\n\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n @click=\"onCancel\"\n >\n {{ t('common.sortable.reorderCancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"elevated\"\n :disabled=\"isInvalid\"\n @click=\"onConfirm\"\n >\n {{ t('common.sortable.moveToPosition.confirm') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"LeMoveToPositionDialog.js","names":["LeMoveToPositionDialog_vue_vue_type_script_setup_true_lang_default","LeMoveToPositionDialog_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeMoveToPositionDialog.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","_component_VDialog","_withKeys","_withCtx","_createVNode","_component_VCard","_component_VCardTitle","_createTextVNode","_toDisplayString","_unref","_component_VCardText","_createElementBlock","_createCommentVNode","_component_VTextField","_withModifiers","_component_VCardActions","_component_VSpacer","_component_VBtn","_hoisted_1","LeMoveToPositionDialog_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","__emit","props","__props","emit","open","useModel","useI18n","targetPosition","ref","now","totalLabel","computed","isInvalid","onConfirm","newIndex","onCancel","openBlock","createBlock","VDialog","_cache","$event","withKeys","withCtx","createVNode","VCard","VCardTitle","createTextVNode","toDisplayString","unref","t","VCardText","createElementBlock","createCommentVNode","VTextField","withModifiers","VCardActions","VSpacer","VBtn"],"sources":["../../../../../src/domains/listEditor/components/internal/LeMoveToPositionDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nexport interface Props {\n total: number\n currentIndex: number\n itemLabel?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n itemLabel: undefined,\n})\n\nconst emit = defineEmits<{\n confirm: [newIndex: number]\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n\nconst { t } = useI18n()\n\n// `currentIndex` is read once at setup to seed the field; subsequent changes\n// to the prop don't reset the user's typed-in value mid-edit, only re-opening\n// the dialog (via the `open` watcher below) does.\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst targetPosition = ref<number>(props.currentIndex + 1)\n\nwatch(open, (now) => {\n if (now) targetPosition.value = props.currentIndex + 1\n})\n\nconst totalLabel = computed(() => Math.max(props.total, 1))\nconst isInvalid = computed<boolean>(\n () => !Number.isFinite(targetPosition.value) || targetPosition.value < 1 || targetPosition.value > totalLabel.value\n)\n\nconst onConfirm = () => {\n if (isInvalid.value) return\n const newIndex = Math.max(0, Math.min(props.total - 1, targetPosition.value - 1))\n emit('confirm', newIndex)\n open.value = false\n}\n\nconst onCancel = () => {\n open.value = false\n}\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"420\"\n persistent\n @keydown.esc=\"onCancel\"\n >\n <VCard>\n <VCardTitle>\n {{ t('common.sortable.moveToPosition.title') }}\n </VCardTitle>\n\n <VCardText>\n <p\n v-if=\"itemLabel\"\n class=\"text-body-medium mb-3\"\n >\n {{ t('common.sortable.moveToPosition.itemDescription', { label: itemLabel }) }}\n </p>\n <VTextField\n v-model.number=\"targetPosition\"\n type=\"number\"\n :min=\"1\"\n :max=\"totalLabel\"\n :label=\"t('common.sortable.moveToPosition.positionLabel', { max: totalLabel })\"\n :hint=\"\n t('common.sortable.moveToPosition.positionHint', {\n current: currentIndex + 1,\n max: totalLabel,\n })\n \"\n :error=\"isInvalid\"\n autofocus\n density=\"comfortable\"\n variant=\"outlined\"\n @keydown.enter.prevent=\"onConfirm\"\n />\n </VCardText>\n\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n @click=\"onCancel\"\n >\n {{ t('common.sortable.reorderCancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"elevated\"\n :disabled=\"isInvalid\"\n @click=\"onConfirm\"\n >\n {{ t('common.sortable.moveToPosition.confirm') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAUA,IAAMyB,IAAQC,GAIRC,IAAOH,GAIPI,IAAO5B,EAAoB0B,GAAA,YAAmB,GAE9C,EAAE,SAAMI,EAAQ,GAMhBC,IAAiBC,EAAYP,EAAM,eAAe,CAAC;EAEzD,EAAMG,IAAO,MAAQ;GACnB,AAAIK,MAAK,EAAe,QAAQR,EAAM,eAAe;EACvD,CAAC;EAED,IAAMS,IAAaC,QAAe,KAAK,IAAIV,EAAM,OAAO,CAAC,CAAC,GACpDW,IAAYD,QACV,CAAC,OAAO,SAASJ,EAAe,KAAK,KAAKA,EAAe,QAAQ,KAAKA,EAAe,QAAQG,EAAW,KAChH,GAEMG,UAAkB;GACtB,IAAID,EAAU,OAAO;GACrB,IAAME,IAAW,KAAK,IAAI,GAAG,KAAK,IAAIb,EAAM,QAAQ,GAAGM,EAAe,QAAQ,CAAC,CAAC;GAEhF,AADAJ,EAAK,WAAWW,CAAQ,GACxB,EAAK,QAAQ;EACf,GAEMC,UAAiB;GACrB,EAAK,QAAQ;EACf;E,kBAIEtC,EAAA,GAAAC,EAwDUC,GAAA;GAvDC,YAAAyB,EAAA;GAAA,uBAAA,AAAAe,EAAA,QAAA,MAAA,EAAI,QAAAC;GACb,aAAU;GACV,YAAA;GACC,WAAOxC,EAAMmC,GAAQ,CAAA,KAAA,CAAA;;GAEtB,SAAAlC,QAiDQ,CAjDRC,EAiDQC,GAAA,MAAA;IAhDN,SAAAF,QAEa;KAFbC,EAEaE,GAAA,MAAA;MADX,SAAAH,QAA+C,CAA5CI,EAAAC,EAAAC,EAAA0C,CAAA,CAAC,CAAA,sCAAA,CAAA,GAAA,CAAA,C;;;KAGN/C,EAyBYM,GAAA,MAAA;MAxBV,SAAAP,QAKI,CAJIqB,EAAA,aADRzB,EAAA,GAAAY,EAKI,KALJO,GAKIV,EADCC,EAAA0C,CAAA,CAAC,CAAA,kDAAA,EAAA,OAA4D3B,EAAA,UAAS,CAAA,CAAA,GAAA,CAAA,K,WAE3EpB,EAiBES,GAAA;OAhBgB,YAAAgB,EAAA;OAAA,uBAAA,AAAAY,EAAA,QAAA,MAAA,EAAc,QAAAC;OAA9B,gBAAA,EAAA,QAAA,GAAA;OACA,MAAK;OACJ,KAAK;OACL,KAAKV,EAAA;OACL,OAAOvB,EAAA0C,CAAA,CAAC,CAAA,gDAAA,EAAA,KAAwDnB,EAAA,MAAU,CAAA;OAC1E,MAAmBvB,EAAA0C,CAAA,CAAC,CAAA,+CAAA;QAAyE,SAAA3B,EAAA,eAAY;QAAyB,KAAAQ,EAAA;;OAMlI,OAAOE,EAAA;OACR,WAAA;OACA,SAAQ;OACR,SAAQ;OACP,WAAOhC,EAAAY,EAAgBqB,GAAS,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;;;;;;;;;;;KAIrC/B,EAgBeW,GAAA,MAAA;MAfb,SAAAZ,QAAW;OAAXC,EAAWY,CAAA;OACXZ,EAKOa,GAAA;QAJL,SAAQ;QACP,SAAOoB;;QAER,SAAAlC,QAAwC,CAArCI,EAAAC,EAAAC,EAAA0C,CAAA,CAAC,CAAA,+BAAA,CAAA,GAAA,CAAA,C;;;OAEN/C,EAOOa,GAAA;QANL,OAAM;QACN,SAAQ;QACP,UAAUiB,EAAA;QACV,SAAOC;;QAER,SAAAhC,QAAiD,CAA9CI,EAAAC,EAAAC,EAAA0C,CAAA,CAAC,CAAA,wCAAA,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"LeMoveToPositionDialog.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","_component_VDialog","_withKeys","_withCtx","_createVNode","_component_VCard","_component_VCardTitle","_createTextVNode","_toDisplayString","_unref","_component_VCardText","_createElementBlock","_component_VTextField","_withModifiers","_component_VCardActions","_component_VSpacer","_component_VBtn","_hoisted_1","LeMoveToPositionDialog_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","__emit","props","__props","emit","open","useModel","useI18n","targetPosition","ref","now","totalLabel","computed","isInvalid","onConfirm","newIndex","onCancel","openBlock","createBlock","VDialog","_cache","$event","withKeys","withCtx","createVNode","VCard","VCardTitle","createTextVNode","toDisplayString","unref","t","VCardText","createElementBlock","createCommentVNode","VTextField","withModifiers","VCardActions","VSpacer","VBtn"],"sources":["../../../../../src/domains/listEditor/components/internal/LeMoveToPositionDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nexport interface Props {\n total: number\n currentIndex: number\n itemLabel?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n itemLabel: undefined,\n})\n\nconst emit = defineEmits<{\n confirm: [newIndex: number]\n}>()\n\nconst open = defineModel<boolean>({ required: true })\n\nconst { t } = useI18n()\n\n// `currentIndex` is read once at setup to seed the field; subsequent changes\n// to the prop don't reset the user's typed-in value mid-edit, only re-opening\n// the dialog (via the `open` watcher below) does.\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst targetPosition = ref<number>(props.currentIndex + 1)\n\nwatch(open, (now) => {\n if (now) targetPosition.value = props.currentIndex + 1\n})\n\nconst totalLabel = computed(() => Math.max(props.total, 1))\nconst isInvalid = computed<boolean>(\n () => !Number.isFinite(targetPosition.value) || targetPosition.value < 1 || targetPosition.value > totalLabel.value\n)\n\nconst onConfirm = () => {\n if (isInvalid.value) return\n const newIndex = Math.max(0, Math.min(props.total - 1, targetPosition.value - 1))\n emit('confirm', newIndex)\n open.value = false\n}\n\nconst onCancel = () => {\n open.value = false\n}\n</script>\n\n<template>\n <VDialog\n v-model=\"open\"\n max-width=\"420\"\n persistent\n @keydown.esc=\"onCancel\"\n >\n <VCard>\n <VCardTitle>\n {{ t('common.sortable.moveToPosition.title') }}\n </VCardTitle>\n\n <VCardText>\n <p\n v-if=\"itemLabel\"\n class=\"text-body-medium mb-3\"\n >\n {{ t('common.sortable.moveToPosition.itemDescription', { label: itemLabel }) }}\n </p>\n <VTextField\n v-model.number=\"targetPosition\"\n type=\"number\"\n :min=\"1\"\n :max=\"totalLabel\"\n :label=\"t('common.sortable.moveToPosition.positionLabel', { max: totalLabel })\"\n :hint=\"\n t('common.sortable.moveToPosition.positionHint', {\n current: currentIndex + 1,\n max: totalLabel,\n })\n \"\n :error=\"isInvalid\"\n autofocus\n density=\"comfortable\"\n variant=\"outlined\"\n @keydown.enter.prevent=\"onConfirm\"\n />\n </VCardText>\n\n <VCardActions>\n <VSpacer />\n <VBtn\n variant=\"text\"\n @click=\"onCancel\"\n >\n {{ t('common.sortable.reorderCancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"elevated\"\n :disabled=\"isInvalid\"\n @click=\"onConfirm\"\n >\n {{ t('common.sortable.moveToPosition.confirm') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAUA,IAAMwB,IAAQC,GAIRC,IAAOH,GAIPI,IAAO3B,EAAoByB,GAAA,YAAmB,GAE9C,EAAE,SAAMI,EAAQ,GAMhBC,IAAiBC,EAAYP,EAAM,eAAe,CAAC;EAEzD,EAAMG,IAAO,MAAQ;GACnB,AAAIK,MAAK,EAAe,QAAQR,EAAM,eAAe;EACvD,CAAC;EAED,IAAMS,IAAaC,QAAe,KAAK,IAAIV,EAAM,OAAO,CAAC,CAAC,GACpDW,IAAYD,QACV,CAAC,OAAO,SAASJ,EAAe,KAAK,KAAKA,EAAe,QAAQ,KAAKA,EAAe,QAAQG,EAAW,KAChH,GAEMG,UAAkB;GACtB,IAAID,EAAU,OAAO;GACrB,IAAME,IAAW,KAAK,IAAI,GAAG,KAAK,IAAIb,EAAM,QAAQ,GAAGM,EAAe,QAAQ,CAAC,CAAC;GAEhF,AADAJ,EAAK,WAAWW,CAAQ,GACxB,EAAK,QAAQ;EACf,GAEMC,UAAiB;GACrB,EAAK,QAAQ;EACf;E,kBAIErC,EAAA,GAAAC,EAwDUC,GAAA;GAvDC,YAAAwB,EAAA;GAAA,uBAAA,AAAAe,EAAA,QAAA,MAAA,EAAI,QAAAC;GACb,aAAU;GACV,YAAA;GACC,WAAOvC,EAAMkC,GAAQ,CAAA,KAAA,CAAA;;GAEtB,SAAAjC,QAiDQ,CAjDRC,EAiDQC,GAAA,MAAA;IAhDN,SAAAF,QAEa;KAFbC,EAEaE,GAAA,MAAA;MADX,SAAAH,QAA+C,CAA5CI,EAAAC,EAAAC,EAAAyC,CAAA,CAAC,CAAA,sCAAA,CAAA,GAAA,CAAA,C;;;KAGN9C,EAyBYM,GAAA,MAAA;MAxBV,SAAAP,QAKI,CAJIoB,EAAA,aADRxB,EAAA,GAAAY,EAKI,KALJM,GAKIT,EADCC,EAAAyC,CAAA,CAAC,CAAA,kDAAA,EAAA,OAA4D3B,EAAA,UAAS,CAAA,CAAA,GAAA,CAAA,K,WAE3EnB,EAiBEQ,GAAA;OAhBgB,YAAAgB,EAAA;OAAA,uBAAA,AAAAY,EAAA,QAAA,MAAA,EAAc,QAAAC;OAA9B,gBAAA,EAAA,QAAA,GAAA;OACA,MAAK;OACJ,KAAK;OACL,KAAKV,EAAA;OACL,OAAOtB,EAAAyC,CAAA,CAAC,CAAA,gDAAA,EAAA,KAAwDnB,EAAA,MAAU,CAAA;OAC1E,MAAmBtB,EAAAyC,CAAA,CAAC,CAAA,+CAAA;QAAyE,SAAA3B,EAAA,eAAY;QAAyB,KAAAQ,EAAA;;OAMlI,OAAOE,EAAA;OACR,WAAA;OACA,SAAQ;OACR,SAAQ;OACP,WAAO/B,EAAAW,EAAgBqB,GAAS,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;;;;;;;;;;;KAIrC9B,EAgBeU,GAAA,MAAA;MAfb,SAAAX,QAAW;OAAXC,EAAWW,CAAA;OACXX,EAKOY,GAAA;QAJL,SAAQ;QACP,SAAOoB;;QAER,SAAAjC,QAAwC,CAArCI,EAAAC,EAAAC,EAAAyC,CAAA,CAAC,CAAA,+BAAA,CAAA,GAAA,CAAA,C;;;OAEN9C,EAOOY,GAAA;QANL,OAAM;QACN,SAAQ;QACP,UAAUiB,EAAA;QACV,SAAOC;;QAER,SAAA/B,QAAiD,CAA9CI,EAAAC,EAAAC,EAAAyC,CAAA,CAAC,CAAA,wCAAA,CAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeNestedRow.js","names":["_sfc_main","LeNestedRow_vue_vue_type_script_setup_true_lang_default","LeNestedRow_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeNestedRow.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"TItem extends Record<string, any>\">\nimport { useI18n } from 'vue-i18n'\nimport LeNestedRowSelf from './LeNestedRow.vue'\nimport LeDragHandle from '@/domains/listEditor/components/internal/LeDragHandle.vue'\nimport LeUnsavedLabel from '@/domains/listEditor/components/internal/LeUnsavedLabel.vue'\nimport type { ListEditorKey, ListEditorValidationState } from '@/domains/listEditor/types/listEditorTypes'\n\n// Self-recursive row. Interior uses `any` — strong typing lives on the public ANestedSortableListEditor wrapper.\n\nexport type Props = {\n vi: any\n viewItems: any[]\n dragState: any\n context: any\n callbacks: any\n}\nconst props = defineProps<Props>()\n\n// `as any` breaks Vue's circular type inference on self-import.\nconst LeNestedRow = LeNestedRowSelf as any\n\nconst { t } = useI18n()\n\nconst GROUP_CLASS = 'a-nested-list-editor__group'\nconst HANDLE_CLASS = 'a-le-drag-handle'\n\nconst anchorName = (key: ListEditorKey): string => `--row-${String(key).replace(/\\W/g, '_')}`\n\n// Delegate to the parent editor's resolver so the registry + getValidationState\n// prop apply consistently. Falls back to reading raw.validationState if context\n// doesn't supply one.\nconst resolveValidation = (raw: TItem): ListEditorValidationState => {\n if (typeof props.context.resolveValidation === 'function') {\n return props.context.resolveValidation(raw, props.vi.key, props.vi.index)\n }\n const v = raw.validationState\n if (v === 'valid' || v === 'invalid' || v === 'warning') return v\n return null\n}\n\nconst buildSlotProps = () => props.context.buildSlotProps(props.vi)\n\nconst directChildren = (): any[] => props.viewItems.filter((v) => v.parentKey === props.vi.key)\n</script>\n\n<template>\n <div\n :class=\"[\n 'a-le-row-wrapper',\n {\n 'a-le-row-wrapper--drop-disabled': dragState !== null && dragState.sourceKey === vi.key,\n },\n ]\"\n :data-id=\"String(vi.key)\"\n role=\"treeitem\"\n :aria-level=\"vi.depth + 1\"\n :tabindex=\"context.keyboardNav ? context.keyboardNav.rowTabindex(vi.key) : undefined\"\n @keydown=\"context.keyboardNav ? context.keyboardNav.handleKeydown(vi.key, $event) : undefined\"\n >\n <!-- Interstitial slots are SIBLINGS of `.a-le-row` (children of this wrapper),\n so between-row content never inherits the row's unsaved/editing/grabbed/\n validation tint. (QA 85050 BUG-04/05) -->\n <slot\n name=\"before-item\"\n v-bind=\"buildSlotProps()\"\n />\n\n <div\n :class=\"[\n 'a-le-row',\n vi.depth > 0 ? 'a-le-row--child' : null,\n {\n 'a-le-row--editing': vi.editing,\n 'a-le-row--expanded': vi.expanded,\n 'a-le-row--unsaved': vi.unsaved,\n 'a-le-row--reorder': context.reorderMode,\n 'a-le-row--grabbed': context.keyboardNav && context.keyboardNav.isGrabbed(vi.key),\n 'a-le-row--clickable': context.isRowClickable(vi),\n 'a-le-row--drop-source': dragState !== null && dragState.sourceKey === vi.key,\n [`a-le-row--validation-${resolveValidation(vi.raw)}`]: resolveValidation(vi.raw) !== null,\n },\n ]\"\n :style=\"{\n '--nested-depth': vi.depth,\n 'anchor-name': anchorName(vi.key),\n '--parent-anchor': vi.parentKey !== null ? anchorName(vi.parentKey) : 'none',\n }\"\n >\n <div\n class=\"a-le-row-header\"\n @click=\"callbacks.onRowClick(vi)\"\n >\n <LeDragHandle\n v-if=\"context.dragEnabled\"\n :class=\"HANDLE_CLASS\"\n />\n\n <!-- Expand toggle — a small triangular caret rendered uniformly for both\n root and nested rows. For leaf rows (no children) the toggle is\n hidden via `visibility: hidden` so the column stays aligned. -->\n <button\n v-if=\"context.showExpandToggle && vi.childrenAllowed\"\n type=\"button\"\n :class=\"[\n 'a-nested-list-editor__tree-toggle',\n {\n 'a-nested-list-editor__tree-toggle--empty': !vi.hasChildren,\n 'a-nested-list-editor__tree-toggle--open': vi.childrenExpanded,\n },\n ]\"\n :aria-label=\"vi.childrenExpanded ? t('common.sortable.collapse') : t('common.sortable.expand')\"\n :aria-expanded=\"vi.hasChildren ? vi.childrenExpanded : undefined\"\n @click.stop=\"vi.hasChildren && callbacks.onChevronClick(vi)\"\n >\n <span class=\"a-nested-list-editor__tree-toggle-caret\" />\n </button>\n <!-- Spacer for leaf rows that have no caret, so titles align with\n parents having one. -->\n <span\n v-else-if=\"context.showExpandToggle\"\n class=\"a-nested-list-editor__tree-toggle a-nested-list-editor__tree-toggle--spacer\"\n aria-hidden=\"true\"\n />\n\n <div class=\"a-le-row-main\">\n <slot\n name=\"item-compact\"\n v-bind=\"buildSlotProps()\"\n >\n <span class=\"a-le-title\">\n {{ context.resolveCompactText(vi.raw, vi.key) }}\n </span>\n </slot>\n <!-- Visible only inside the SortableJS drag clone — signals that the\n item being moved carries a subtree so the user realises the whole\n branch will follow. Sits right after the title. Hidden in the\n normal DOM via CSS. -->\n <span\n v-if=\"vi.hasChildren\"\n class=\"a-nested-list-editor__drag-count\"\n aria-hidden=\"true\"\n >\n <VIcon\n icon=\"mdi-file-tree\"\n size=\"14\"\n />\n +{{ vi.childrenCount }}\n </span>\n <LeUnsavedLabel v-if=\"vi.unsaved\" />\n </div>\n\n <div\n v-if=\"!context.reorderMode\"\n class=\"a-le-status\"\n >\n <slot\n name=\"item-status\"\n v-bind=\"buildSlotProps()\"\n >\n <span\n v-if=\"context.statusField && vi.raw[context.statusField] != null && vi.raw[context.statusField] !== ''\"\n class=\"a-le-status-badge\"\n >\n {{ vi.raw[context.statusField] }}\n </span>\n </slot>\n </div>\n\n <div class=\"a-le-actions\">\n <slot\n name=\"item-actions\"\n v-bind=\"buildSlotProps()\"\n >\n <template v-if=\"context.reorderMode\">\n <VBtn\n :aria-label=\"t('common.sortable.moveUp')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :disabled=\"vi.firstInParent\"\n class=\"mx-1 a-le-action a-le-action--up\"\n @click.stop=\"callbacks.moveUp(vi.key)\"\n >\n <VIcon\n icon=\"mdi-arrow-up\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.moveUp')\"\n />\n </VBtn>\n <VBtn\n :aria-label=\"t('common.sortable.moveDown')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :disabled=\"vi.lastInParent\"\n class=\"mx-1 a-le-action a-le-action--down\"\n @click.stop=\"callbacks.moveDown(vi.key)\"\n >\n <VIcon\n icon=\"mdi-arrow-down\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.moveDown')\"\n />\n </VBtn>\n <VBtn\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :active=\"false\"\n class=\"mx-1 a-le-action a-le-action--menu\"\n :aria-label=\"t('common.sortable.more')\"\n >\n <VIcon\n icon=\"mdi-dots-vertical\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.more')\"\n />\n <VMenu activator=\"parent\">\n <VList density=\"compact\">\n <VListItem\n :disabled=\"vi.firstInParent\"\n @click.stop=\"callbacks.moveTop(vi.key)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-arrow-collapse-up\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.moveToTop') }}</VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"vi.lastInParent\"\n @click.stop=\"callbacks.moveBottom(vi.key)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-arrow-collapse-down\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.moveToBottom') }}</VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showMoveToPosition && (!vi.firstInParent || !vi.lastInParent)\"\n @click.stop=\"callbacks.openMoveToPosition(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-target\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.moveToPosition.action') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showChangeParent\"\n @click.stop=\"callbacks.openChangeParent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-folder-move-outline\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.changeParent.action') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"!vi.canIndent\"\n @click.stop=\"callbacks.indent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-format-indent-increase\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.indent') }}</VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"!vi.canOutdent\"\n @click.stop=\"callbacks.outdent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-format-indent-decrease\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.outdent') }}</VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showDeleteButton && context.canInteract\"\n @click.stop=\"callbacks.onDeleteClick(vi)\"\n >\n <template #prepend>\n <VIcon\n icon=\"mdi-trash-can-outline\"\n color=\"error\"\n />\n </template>\n <VListItemTitle class=\"text-error\">\n {{ t('common.sortable.delete') }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VMenu>\n </VBtn>\n </template>\n <template v-else>\n <VBtn\n v-if=\"context.showEditButton && context.canInteract\"\n :aria-label=\"t('common.sortable.edit')\"\n icon\n size=\"small\"\n variant=\"tonal\"\n color=\"primary\"\n density=\"comfortable\"\n class=\"mx-1 a-le-action a-le-action--edit\"\n @click.stop=\"callbacks.onEditClick(vi)\"\n >\n <VIcon\n icon=\"mdi-pencil-outline\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.edit')\"\n />\n </VBtn>\n <VBtn\n v-if=\"context.showDeleteButton && context.canInteract\"\n :aria-label=\"t('common.sortable.delete')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n class=\"mx-1 a-le-action a-le-action--delete\"\n @click.stop=\"callbacks.onDeleteClick(vi)\"\n >\n <VIcon\n icon=\"mdi-trash-can-outline\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.delete')\"\n />\n </VBtn>\n <VBtn\n v-if=\"\n context.canInteract && ((context.showAddChildButton && vi.canAddChild) || context.showAddAfterAction)\n \"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :active=\"false\"\n class=\"mx-1 a-le-action a-le-action--menu\"\n :aria-label=\"t('common.sortable.more')\"\n >\n <VIcon\n icon=\"mdi-dots-vertical\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.more')\"\n />\n <VMenu activator=\"parent\">\n <VList density=\"compact\">\n <VListItem\n v-if=\"context.showAddAfterAction\"\n @click.stop=\"callbacks.onAddAfterClick(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-playlist-plus\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.addAfter') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showAddChildButton && vi.canAddChild\"\n @click.stop=\"callbacks.onAddChildClick(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-subdirectory-arrow-right\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.addChild') }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VMenu>\n </VBtn>\n </template>\n </slot>\n </div>\n </div>\n\n <!-- Inline edit body — status badge intentionally NOT rendered here,\n the compact header's status is enough; stacking it in the form body\n was visually noisy. -->\n <template v-if=\"vi.editing && !context.reorderMode && $slots.item\">\n <div class=\"a-le-row-body\">\n <div class=\"a-le-form\">\n <slot\n name=\"item\"\n v-bind=\"buildSlotProps()\"\n />\n </div>\n </div>\n <slot\n name=\"item-footer\"\n v-bind=\"buildSlotProps()\"\n >\n <div\n v-if=\"context.showInlineSaveFooter\"\n class=\"a-le-row-footer\"\n >\n <div class=\"a-le-row-footer-spacer\" />\n <VBtn\n variant=\"text\"\n :disabled=\"vi.loading\"\n @click.stop=\"callbacks.onCancelClick(vi)\"\n >\n {{ t('common.button.cancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"flat\"\n prepend-icon=\"mdi-check\"\n :disabled=\"vi.loading\"\n @click.stop=\"callbacks.onSaveClick(vi)\"\n >\n {{ t('common.button.save') }}\n </VBtn>\n </div>\n </slot>\n </template>\n\n <div\n v-else-if=\"$slots['item-readonly'] && (context.readonly || vi.expanded) && !context.reorderMode\"\n class=\"a-le-row-body\"\n >\n <div class=\"a-le-form\">\n <slot\n name=\"item-readonly\"\n v-bind=\"buildSlotProps()\"\n />\n </div>\n </div>\n </div>\n\n <slot\n name=\"after-item\"\n v-bind=\"buildSlotProps()\"\n />\n\n <!-- Recursive children — any depth level. The `::before` on this wrapper\n renders the single continuous vertical tree line at the parent's\n chevron column (see CSS). One line per group = no per-row gaps. -->\n <div\n v-if=\"vi.hasChildren && vi.childrenExpanded\"\n class=\"a-nested-list-editor__children\"\n :style=\"{ '--parent-depth': vi.depth }\"\n >\n <div\n :class=\"[GROUP_CLASS]\"\n :data-parent-id=\"String(vi.key)\"\n >\n <LeNestedRow\n v-for=\"child in directChildren()\"\n :key=\"String(child.key)\"\n :vi=\"child\"\n :view-items=\"viewItems\"\n :drag-state=\"dragState\"\n :context=\"context\"\n :callbacks=\"callbacks\"\n >\n <template #item=\"slotScope\">\n <slot\n name=\"item\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-compact=\"slotScope\">\n <slot\n name=\"item-compact\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-readonly=\"slotScope\">\n <slot\n name=\"item-readonly\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-status=\"slotScope\">\n <slot\n name=\"item-status\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-footer=\"slotScope\">\n <slot\n name=\"item-footer\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-actions=\"slotScope\">\n <slot\n name=\"item-actions\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #before-item=\"slotScope\">\n <slot\n name=\"before-item\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #after-item=\"slotScope\">\n <slot\n name=\"after-item\"\n v-bind=\"slotScope\"\n />\n </template>\n </LeNestedRow>\n </div>\n </div>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"LeNestedRow.js","names":["LeNestedRow_vue_vue_type_script_setup_true_lang_default","LeNestedRow_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeNestedRow.vue_vue_type_script_setup_true_lang.js","names":["$slots","LeNestedRowSelf","_openBlock","_createElementBlock","_normalizeClass","_renderSlot","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeStyle","_createBlock","LeDragHandle","_createCommentVNode","_unref","_withModifiers","_toDisplayString","_createVNode","_component_VIcon","_createTextVNode","LeUnsavedLabel","_Fragment","_component_VBtn","_withCtx","_component_VTooltip","_component_VMenu","_component_VList","_component_VListItem","_component_VListItemTitle","_renderList","_mergeProps","LeNestedRow_default","LeDragHandle_default","LeUnsavedLabel_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","GROUP_CLASS","HANDLE_CLASS","LeNestedRow_vue_vue_type_script_setup_true_lang_default","props","__props","LeNestedRow","useI18n","anchorName","key","resolveValidation","raw","v","buildSlotProps","directChildren","openBlock","createElementBlock","normalizeClass","_cache","$event","renderSlot","_ctx","normalizeProps","guardReactiveProps","createElementVNode","normalizeStyle","createBlock","createCommentVNode","unref","t","withModifiers","toDisplayString","createVNode","VIcon","createTextVNode","Fragment","VBtn","withCtx","VTooltip","VMenu","VList","VListItem","VListItemTitle","renderList","child","mergeProps","slotScope"],"sources":["../../../../../src/domains/listEditor/components/internal/LeNestedRow.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"TItem extends Record<string, any>\">\nimport { useI18n } from 'vue-i18n'\nimport LeNestedRowSelf from './LeNestedRow.vue'\nimport LeDragHandle from '@/domains/listEditor/components/internal/LeDragHandle.vue'\nimport LeUnsavedLabel from '@/domains/listEditor/components/internal/LeUnsavedLabel.vue'\nimport type { ListEditorKey, ListEditorValidationState } from '@/domains/listEditor/types/listEditorTypes'\n\n// Self-recursive row. Interior uses `any` — strong typing lives on the public ANestedSortableListEditor wrapper.\n\nexport type Props = {\n vi: any\n viewItems: any[]\n dragState: any\n context: any\n callbacks: any\n}\nconst props = defineProps<Props>()\n\n// `as any` breaks Vue's circular type inference on self-import.\nconst LeNestedRow = LeNestedRowSelf as any\n\nconst { t } = useI18n()\n\nconst GROUP_CLASS = 'a-nested-list-editor__group'\nconst HANDLE_CLASS = 'a-le-drag-handle'\n\nconst anchorName = (key: ListEditorKey): string => `--row-${String(key).replace(/\\W/g, '_')}`\n\n// Delegate to the parent editor's resolver so the registry + getValidationState\n// prop apply consistently. Falls back to reading raw.validationState if context\n// doesn't supply one.\nconst resolveValidation = (raw: TItem): ListEditorValidationState => {\n if (typeof props.context.resolveValidation === 'function') {\n return props.context.resolveValidation(raw, props.vi.key, props.vi.index)\n }\n const v = raw.validationState\n if (v === 'valid' || v === 'invalid' || v === 'warning') return v\n return null\n}\n\nconst buildSlotProps = () => props.context.buildSlotProps(props.vi)\n\nconst directChildren = (): any[] => props.viewItems.filter((v) => v.parentKey === props.vi.key)\n</script>\n\n<template>\n <div\n :class=\"[\n 'a-le-row-wrapper',\n {\n 'a-le-row-wrapper--drop-disabled': dragState !== null && dragState.sourceKey === vi.key,\n },\n ]\"\n :data-id=\"String(vi.key)\"\n role=\"treeitem\"\n :aria-level=\"vi.depth + 1\"\n :tabindex=\"context.keyboardNav ? context.keyboardNav.rowTabindex(vi.key) : undefined\"\n @keydown=\"context.keyboardNav ? context.keyboardNav.handleKeydown(vi.key, $event) : undefined\"\n >\n <!-- Interstitial slots are SIBLINGS of `.a-le-row` (children of this wrapper),\n so between-row content never inherits the row's unsaved/editing/grabbed/\n validation tint. (QA 85050 BUG-04/05) -->\n <slot\n name=\"before-item\"\n v-bind=\"buildSlotProps()\"\n />\n\n <div\n :class=\"[\n 'a-le-row',\n vi.depth > 0 ? 'a-le-row--child' : null,\n {\n 'a-le-row--editing': vi.editing,\n 'a-le-row--expanded': vi.expanded,\n 'a-le-row--unsaved': vi.unsaved,\n 'a-le-row--reorder': context.reorderMode,\n 'a-le-row--grabbed': context.keyboardNav && context.keyboardNav.isGrabbed(vi.key),\n 'a-le-row--clickable': context.isRowClickable(vi),\n 'a-le-row--drop-source': dragState !== null && dragState.sourceKey === vi.key,\n [`a-le-row--validation-${resolveValidation(vi.raw)}`]: resolveValidation(vi.raw) !== null,\n },\n ]\"\n :style=\"{\n '--nested-depth': vi.depth,\n 'anchor-name': anchorName(vi.key),\n '--parent-anchor': vi.parentKey !== null ? anchorName(vi.parentKey) : 'none',\n }\"\n >\n <div\n class=\"a-le-row-header\"\n @click=\"callbacks.onRowClick(vi)\"\n >\n <LeDragHandle\n v-if=\"context.dragEnabled\"\n :class=\"HANDLE_CLASS\"\n />\n\n <!-- Expand toggle — a small triangular caret rendered uniformly for both\n root and nested rows. For leaf rows (no children) the toggle is\n hidden via `visibility: hidden` so the column stays aligned. -->\n <button\n v-if=\"context.showExpandToggle && vi.childrenAllowed\"\n type=\"button\"\n :class=\"[\n 'a-nested-list-editor__tree-toggle',\n {\n 'a-nested-list-editor__tree-toggle--empty': !vi.hasChildren,\n 'a-nested-list-editor__tree-toggle--open': vi.childrenExpanded,\n },\n ]\"\n :aria-label=\"vi.childrenExpanded ? t('common.sortable.collapse') : t('common.sortable.expand')\"\n :aria-expanded=\"vi.hasChildren ? vi.childrenExpanded : undefined\"\n @click.stop=\"vi.hasChildren && callbacks.onChevronClick(vi)\"\n >\n <span class=\"a-nested-list-editor__tree-toggle-caret\" />\n </button>\n <!-- Spacer for leaf rows that have no caret, so titles align with\n parents having one. -->\n <span\n v-else-if=\"context.showExpandToggle\"\n class=\"a-nested-list-editor__tree-toggle a-nested-list-editor__tree-toggle--spacer\"\n aria-hidden=\"true\"\n />\n\n <div class=\"a-le-row-main\">\n <slot\n name=\"item-compact\"\n v-bind=\"buildSlotProps()\"\n >\n <span class=\"a-le-title\">\n {{ context.resolveCompactText(vi.raw, vi.key) }}\n </span>\n </slot>\n <!-- Visible only inside the SortableJS drag clone — signals that the\n item being moved carries a subtree so the user realises the whole\n branch will follow. Sits right after the title. Hidden in the\n normal DOM via CSS. -->\n <span\n v-if=\"vi.hasChildren\"\n class=\"a-nested-list-editor__drag-count\"\n aria-hidden=\"true\"\n >\n <VIcon\n icon=\"mdi-file-tree\"\n size=\"14\"\n />\n +{{ vi.childrenCount }}\n </span>\n <LeUnsavedLabel v-if=\"vi.unsaved\" />\n </div>\n\n <div\n v-if=\"!context.reorderMode\"\n class=\"a-le-status\"\n >\n <slot\n name=\"item-status\"\n v-bind=\"buildSlotProps()\"\n >\n <span\n v-if=\"context.statusField && vi.raw[context.statusField] != null && vi.raw[context.statusField] !== ''\"\n class=\"a-le-status-badge\"\n >\n {{ vi.raw[context.statusField] }}\n </span>\n </slot>\n </div>\n\n <div class=\"a-le-actions\">\n <slot\n name=\"item-actions\"\n v-bind=\"buildSlotProps()\"\n >\n <template v-if=\"context.reorderMode\">\n <VBtn\n :aria-label=\"t('common.sortable.moveUp')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :disabled=\"vi.firstInParent\"\n class=\"mx-1 a-le-action a-le-action--up\"\n @click.stop=\"callbacks.moveUp(vi.key)\"\n >\n <VIcon\n icon=\"mdi-arrow-up\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.moveUp')\"\n />\n </VBtn>\n <VBtn\n :aria-label=\"t('common.sortable.moveDown')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :disabled=\"vi.lastInParent\"\n class=\"mx-1 a-le-action a-le-action--down\"\n @click.stop=\"callbacks.moveDown(vi.key)\"\n >\n <VIcon\n icon=\"mdi-arrow-down\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.moveDown')\"\n />\n </VBtn>\n <VBtn\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :active=\"false\"\n class=\"mx-1 a-le-action a-le-action--menu\"\n :aria-label=\"t('common.sortable.more')\"\n >\n <VIcon\n icon=\"mdi-dots-vertical\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.more')\"\n />\n <VMenu activator=\"parent\">\n <VList density=\"compact\">\n <VListItem\n :disabled=\"vi.firstInParent\"\n @click.stop=\"callbacks.moveTop(vi.key)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-arrow-collapse-up\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.moveToTop') }}</VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"vi.lastInParent\"\n @click.stop=\"callbacks.moveBottom(vi.key)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-arrow-collapse-down\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.moveToBottom') }}</VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showMoveToPosition && (!vi.firstInParent || !vi.lastInParent)\"\n @click.stop=\"callbacks.openMoveToPosition(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-target\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.moveToPosition.action') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showChangeParent\"\n @click.stop=\"callbacks.openChangeParent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-folder-move-outline\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.changeParent.action') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"!vi.canIndent\"\n @click.stop=\"callbacks.indent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-format-indent-increase\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.indent') }}</VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"!vi.canOutdent\"\n @click.stop=\"callbacks.outdent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-format-indent-decrease\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.outdent') }}</VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showDeleteButton && context.canInteract\"\n @click.stop=\"callbacks.onDeleteClick(vi)\"\n >\n <template #prepend>\n <VIcon\n icon=\"mdi-trash-can-outline\"\n color=\"error\"\n />\n </template>\n <VListItemTitle class=\"text-error\">\n {{ t('common.sortable.delete') }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VMenu>\n </VBtn>\n </template>\n <template v-else>\n <VBtn\n v-if=\"context.showEditButton && context.canInteract\"\n :aria-label=\"t('common.sortable.edit')\"\n icon\n size=\"small\"\n variant=\"tonal\"\n color=\"primary\"\n density=\"comfortable\"\n class=\"mx-1 a-le-action a-le-action--edit\"\n @click.stop=\"callbacks.onEditClick(vi)\"\n >\n <VIcon\n icon=\"mdi-pencil-outline\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.edit')\"\n />\n </VBtn>\n <VBtn\n v-if=\"context.showDeleteButton && context.canInteract\"\n :aria-label=\"t('common.sortable.delete')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n class=\"mx-1 a-le-action a-le-action--delete\"\n @click.stop=\"callbacks.onDeleteClick(vi)\"\n >\n <VIcon\n icon=\"mdi-trash-can-outline\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.delete')\"\n />\n </VBtn>\n <VBtn\n v-if=\"\n context.canInteract && ((context.showAddChildButton && vi.canAddChild) || context.showAddAfterAction)\n \"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :active=\"false\"\n class=\"mx-1 a-le-action a-le-action--menu\"\n :aria-label=\"t('common.sortable.more')\"\n >\n <VIcon\n icon=\"mdi-dots-vertical\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.more')\"\n />\n <VMenu activator=\"parent\">\n <VList density=\"compact\">\n <VListItem\n v-if=\"context.showAddAfterAction\"\n @click.stop=\"callbacks.onAddAfterClick(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-playlist-plus\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.addAfter') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showAddChildButton && vi.canAddChild\"\n @click.stop=\"callbacks.onAddChildClick(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-subdirectory-arrow-right\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.addChild') }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VMenu>\n </VBtn>\n </template>\n </slot>\n </div>\n </div>\n\n <!-- Inline edit body — status badge intentionally NOT rendered here,\n the compact header's status is enough; stacking it in the form body\n was visually noisy. -->\n <template v-if=\"vi.editing && !context.reorderMode && $slots.item\">\n <div class=\"a-le-row-body\">\n <div class=\"a-le-form\">\n <slot\n name=\"item\"\n v-bind=\"buildSlotProps()\"\n />\n </div>\n </div>\n <slot\n name=\"item-footer\"\n v-bind=\"buildSlotProps()\"\n >\n <div\n v-if=\"context.showInlineSaveFooter\"\n class=\"a-le-row-footer\"\n >\n <div class=\"a-le-row-footer-spacer\" />\n <VBtn\n variant=\"text\"\n :disabled=\"vi.loading\"\n @click.stop=\"callbacks.onCancelClick(vi)\"\n >\n {{ t('common.button.cancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"flat\"\n prepend-icon=\"mdi-check\"\n :disabled=\"vi.loading\"\n @click.stop=\"callbacks.onSaveClick(vi)\"\n >\n {{ t('common.button.save') }}\n </VBtn>\n </div>\n </slot>\n </template>\n\n <div\n v-else-if=\"$slots['item-readonly'] && (context.readonly || vi.expanded) && !context.reorderMode\"\n class=\"a-le-row-body\"\n >\n <div class=\"a-le-form\">\n <slot\n name=\"item-readonly\"\n v-bind=\"buildSlotProps()\"\n />\n </div>\n </div>\n </div>\n\n <slot\n name=\"after-item\"\n v-bind=\"buildSlotProps()\"\n />\n\n <!-- Recursive children — any depth level. The `::before` on this wrapper\n renders the single continuous vertical tree line at the parent's\n chevron column (see CSS). One line per group = no per-row gaps. -->\n <div\n v-if=\"vi.hasChildren && vi.childrenExpanded\"\n class=\"a-nested-list-editor__children\"\n :style=\"{ '--parent-depth': vi.depth }\"\n >\n <div\n :class=\"[GROUP_CLASS]\"\n :data-parent-id=\"String(vi.key)\"\n >\n <LeNestedRow\n v-for=\"child in directChildren()\"\n :key=\"String(child.key)\"\n :vi=\"child\"\n :view-items=\"viewItems\"\n :drag-state=\"dragState\"\n :context=\"context\"\n :callbacks=\"callbacks\"\n >\n <template #item=\"slotScope\">\n <slot\n name=\"item\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-compact=\"slotScope\">\n <slot\n name=\"item-compact\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-readonly=\"slotScope\">\n <slot\n name=\"item-readonly\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-status=\"slotScope\">\n <slot\n name=\"item-status\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-footer=\"slotScope\">\n <slot\n name=\"item-footer\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-actions=\"slotScope\">\n <slot\n name=\"item-actions\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #before-item=\"slotScope\">\n <slot\n name=\"before-item\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #after-item=\"slotScope\">\n <slot\n name=\"after-item\"\n v-bind=\"slotScope\"\n />\n </template>\n </LeNestedRow>\n </div>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"LeNestedRow.vue_vue_type_script_setup_true_lang.js","names":["$slots","LeNestedRowSelf","_openBlock","_createElementBlock","_normalizeClass","_renderSlot","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeStyle","_createBlock","LeDragHandle","_unref","_withModifiers","_toDisplayString","_createVNode","_component_VIcon","_createTextVNode","LeUnsavedLabel","_Fragment","_component_VBtn","_withCtx","_component_VTooltip","_component_VMenu","_component_VList","_component_VListItem","_component_VListItemTitle","_renderList","_mergeProps","LeNestedRow_default","LeDragHandle_default","LeUnsavedLabel_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","GROUP_CLASS","HANDLE_CLASS","LeNestedRow_vue_vue_type_script_setup_true_lang_default","props","__props","LeNestedRow","useI18n","anchorName","key","resolveValidation","raw","v","buildSlotProps","directChildren","openBlock","createElementBlock","normalizeClass","_cache","$event","renderSlot","_ctx","normalizeProps","guardReactiveProps","createElementVNode","normalizeStyle","createBlock","createCommentVNode","unref","t","withModifiers","toDisplayString","createVNode","VIcon","createTextVNode","Fragment","VBtn","withCtx","VTooltip","VMenu","VList","VListItem","VListItemTitle","renderList","child","mergeProps","slotScope"],"sources":["../../../../../src/domains/listEditor/components/internal/LeNestedRow.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"TItem extends Record<string, any>\">\nimport { useI18n } from 'vue-i18n'\nimport LeNestedRowSelf from './LeNestedRow.vue'\nimport LeDragHandle from '@/domains/listEditor/components/internal/LeDragHandle.vue'\nimport LeUnsavedLabel from '@/domains/listEditor/components/internal/LeUnsavedLabel.vue'\nimport type { ListEditorKey, ListEditorValidationState } from '@/domains/listEditor/types/listEditorTypes'\n\n// Self-recursive row. Interior uses `any` — strong typing lives on the public ANestedSortableListEditor wrapper.\n\nexport type Props = {\n vi: any\n viewItems: any[]\n dragState: any\n context: any\n callbacks: any\n}\nconst props = defineProps<Props>()\n\n// `as any` breaks Vue's circular type inference on self-import.\nconst LeNestedRow = LeNestedRowSelf as any\n\nconst { t } = useI18n()\n\nconst GROUP_CLASS = 'a-nested-list-editor__group'\nconst HANDLE_CLASS = 'a-le-drag-handle'\n\nconst anchorName = (key: ListEditorKey): string => `--row-${String(key).replace(/\\W/g, '_')}`\n\n// Delegate to the parent editor's resolver so the registry + getValidationState\n// prop apply consistently. Falls back to reading raw.validationState if context\n// doesn't supply one.\nconst resolveValidation = (raw: TItem): ListEditorValidationState => {\n if (typeof props.context.resolveValidation === 'function') {\n return props.context.resolveValidation(raw, props.vi.key, props.vi.index)\n }\n const v = raw.validationState\n if (v === 'valid' || v === 'invalid' || v === 'warning') return v\n return null\n}\n\nconst buildSlotProps = () => props.context.buildSlotProps(props.vi)\n\nconst directChildren = (): any[] => props.viewItems.filter((v) => v.parentKey === props.vi.key)\n</script>\n\n<template>\n <div\n :class=\"[\n 'a-le-row-wrapper',\n {\n 'a-le-row-wrapper--drop-disabled': dragState !== null && dragState.sourceKey === vi.key,\n },\n ]\"\n :data-id=\"String(vi.key)\"\n role=\"treeitem\"\n :aria-level=\"vi.depth + 1\"\n :tabindex=\"context.keyboardNav ? context.keyboardNav.rowTabindex(vi.key) : undefined\"\n @keydown=\"context.keyboardNav ? context.keyboardNav.handleKeydown(vi.key, $event) : undefined\"\n >\n <!-- Interstitial slots are SIBLINGS of `.a-le-row` (children of this wrapper),\n so between-row content never inherits the row's unsaved/editing/grabbed/\n validation tint. (QA 85050 BUG-04/05) -->\n <slot\n name=\"before-item\"\n v-bind=\"buildSlotProps()\"\n />\n\n <div\n :class=\"[\n 'a-le-row',\n vi.depth > 0 ? 'a-le-row--child' : null,\n {\n 'a-le-row--editing': vi.editing,\n 'a-le-row--expanded': vi.expanded,\n 'a-le-row--unsaved': vi.unsaved,\n 'a-le-row--reorder': context.reorderMode,\n 'a-le-row--grabbed': context.keyboardNav && context.keyboardNav.isGrabbed(vi.key),\n 'a-le-row--clickable': context.isRowClickable(vi),\n 'a-le-row--drop-source': dragState !== null && dragState.sourceKey === vi.key,\n [`a-le-row--validation-${resolveValidation(vi.raw)}`]: resolveValidation(vi.raw) !== null,\n },\n ]\"\n :style=\"{\n '--nested-depth': vi.depth,\n 'anchor-name': anchorName(vi.key),\n '--parent-anchor': vi.parentKey !== null ? anchorName(vi.parentKey) : 'none',\n }\"\n >\n <div\n class=\"a-le-row-header\"\n @click=\"callbacks.onRowClick(vi)\"\n >\n <LeDragHandle\n v-if=\"context.dragEnabled\"\n :class=\"HANDLE_CLASS\"\n />\n\n <!-- Expand toggle — a small triangular caret rendered uniformly for both\n root and nested rows. For leaf rows (no children) the toggle is\n hidden via `visibility: hidden` so the column stays aligned. -->\n <button\n v-if=\"context.showExpandToggle && vi.childrenAllowed\"\n type=\"button\"\n :class=\"[\n 'a-nested-list-editor__tree-toggle',\n {\n 'a-nested-list-editor__tree-toggle--empty': !vi.hasChildren,\n 'a-nested-list-editor__tree-toggle--open': vi.childrenExpanded,\n },\n ]\"\n :aria-label=\"vi.childrenExpanded ? t('common.sortable.collapse') : t('common.sortable.expand')\"\n :aria-expanded=\"vi.hasChildren ? vi.childrenExpanded : undefined\"\n @click.stop=\"vi.hasChildren && callbacks.onChevronClick(vi)\"\n >\n <span class=\"a-nested-list-editor__tree-toggle-caret\" />\n </button>\n <!-- Spacer for leaf rows that have no caret, so titles align with\n parents having one. -->\n <span\n v-else-if=\"context.showExpandToggle\"\n class=\"a-nested-list-editor__tree-toggle a-nested-list-editor__tree-toggle--spacer\"\n aria-hidden=\"true\"\n />\n\n <div class=\"a-le-row-main\">\n <slot\n name=\"item-compact\"\n v-bind=\"buildSlotProps()\"\n >\n <span class=\"a-le-title\">\n {{ context.resolveCompactText(vi.raw, vi.key) }}\n </span>\n </slot>\n <!-- Visible only inside the SortableJS drag clone — signals that the\n item being moved carries a subtree so the user realises the whole\n branch will follow. Sits right after the title. Hidden in the\n normal DOM via CSS. -->\n <span\n v-if=\"vi.hasChildren\"\n class=\"a-nested-list-editor__drag-count\"\n aria-hidden=\"true\"\n >\n <VIcon\n icon=\"mdi-file-tree\"\n size=\"14\"\n />\n +{{ vi.childrenCount }}\n </span>\n <LeUnsavedLabel v-if=\"vi.unsaved\" />\n </div>\n\n <div\n v-if=\"!context.reorderMode\"\n class=\"a-le-status\"\n >\n <slot\n name=\"item-status\"\n v-bind=\"buildSlotProps()\"\n >\n <span\n v-if=\"context.statusField && vi.raw[context.statusField] != null && vi.raw[context.statusField] !== ''\"\n class=\"a-le-status-badge\"\n >\n {{ vi.raw[context.statusField] }}\n </span>\n </slot>\n </div>\n\n <div class=\"a-le-actions\">\n <slot\n name=\"item-actions\"\n v-bind=\"buildSlotProps()\"\n >\n <template v-if=\"context.reorderMode\">\n <VBtn\n :aria-label=\"t('common.sortable.moveUp')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :disabled=\"vi.firstInParent\"\n class=\"mx-1 a-le-action a-le-action--up\"\n @click.stop=\"callbacks.moveUp(vi.key)\"\n >\n <VIcon\n icon=\"mdi-arrow-up\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.moveUp')\"\n />\n </VBtn>\n <VBtn\n :aria-label=\"t('common.sortable.moveDown')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :disabled=\"vi.lastInParent\"\n class=\"mx-1 a-le-action a-le-action--down\"\n @click.stop=\"callbacks.moveDown(vi.key)\"\n >\n <VIcon\n icon=\"mdi-arrow-down\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.moveDown')\"\n />\n </VBtn>\n <VBtn\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :active=\"false\"\n class=\"mx-1 a-le-action a-le-action--menu\"\n :aria-label=\"t('common.sortable.more')\"\n >\n <VIcon\n icon=\"mdi-dots-vertical\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.more')\"\n />\n <VMenu activator=\"parent\">\n <VList density=\"compact\">\n <VListItem\n :disabled=\"vi.firstInParent\"\n @click.stop=\"callbacks.moveTop(vi.key)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-arrow-collapse-up\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.moveToTop') }}</VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"vi.lastInParent\"\n @click.stop=\"callbacks.moveBottom(vi.key)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-arrow-collapse-down\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.moveToBottom') }}</VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showMoveToPosition && (!vi.firstInParent || !vi.lastInParent)\"\n @click.stop=\"callbacks.openMoveToPosition(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-target\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.moveToPosition.action') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showChangeParent\"\n @click.stop=\"callbacks.openChangeParent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-folder-move-outline\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.changeParent.action') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"!vi.canIndent\"\n @click.stop=\"callbacks.indent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-format-indent-increase\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.indent') }}</VListItemTitle>\n </VListItem>\n <VListItem\n :disabled=\"!vi.canOutdent\"\n @click.stop=\"callbacks.outdent(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-format-indent-decrease\" />\n </template>\n <VListItemTitle>{{ t('common.sortable.outdent') }}</VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showDeleteButton && context.canInteract\"\n @click.stop=\"callbacks.onDeleteClick(vi)\"\n >\n <template #prepend>\n <VIcon\n icon=\"mdi-trash-can-outline\"\n color=\"error\"\n />\n </template>\n <VListItemTitle class=\"text-error\">\n {{ t('common.sortable.delete') }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VMenu>\n </VBtn>\n </template>\n <template v-else>\n <VBtn\n v-if=\"context.showEditButton && context.canInteract\"\n :aria-label=\"t('common.sortable.edit')\"\n icon\n size=\"small\"\n variant=\"tonal\"\n color=\"primary\"\n density=\"comfortable\"\n class=\"mx-1 a-le-action a-le-action--edit\"\n @click.stop=\"callbacks.onEditClick(vi)\"\n >\n <VIcon\n icon=\"mdi-pencil-outline\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.edit')\"\n />\n </VBtn>\n <VBtn\n v-if=\"context.showDeleteButton && context.canInteract\"\n :aria-label=\"t('common.sortable.delete')\"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n class=\"mx-1 a-le-action a-le-action--delete\"\n @click.stop=\"callbacks.onDeleteClick(vi)\"\n >\n <VIcon\n icon=\"mdi-trash-can-outline\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.delete')\"\n />\n </VBtn>\n <VBtn\n v-if=\"\n context.canInteract && ((context.showAddChildButton && vi.canAddChild) || context.showAddAfterAction)\n \"\n icon\n size=\"small\"\n variant=\"text\"\n density=\"comfortable\"\n :active=\"false\"\n class=\"mx-1 a-le-action a-le-action--menu\"\n :aria-label=\"t('common.sortable.more')\"\n >\n <VIcon\n icon=\"mdi-dots-vertical\"\n size=\"18\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n :text=\"t('common.sortable.more')\"\n />\n <VMenu activator=\"parent\">\n <VList density=\"compact\">\n <VListItem\n v-if=\"context.showAddAfterAction\"\n @click.stop=\"callbacks.onAddAfterClick(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-playlist-plus\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.addAfter') }}\n </VListItemTitle>\n </VListItem>\n <VListItem\n v-if=\"context.showAddChildButton && vi.canAddChild\"\n @click.stop=\"callbacks.onAddChildClick(vi)\"\n >\n <template #prepend>\n <VIcon icon=\"mdi-subdirectory-arrow-right\" />\n </template>\n <VListItemTitle>\n {{ t('common.sortable.addChild') }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VMenu>\n </VBtn>\n </template>\n </slot>\n </div>\n </div>\n\n <!-- Inline edit body — status badge intentionally NOT rendered here,\n the compact header's status is enough; stacking it in the form body\n was visually noisy. -->\n <template v-if=\"vi.editing && !context.reorderMode && $slots.item\">\n <div class=\"a-le-row-body\">\n <div class=\"a-le-form\">\n <slot\n name=\"item\"\n v-bind=\"buildSlotProps()\"\n />\n </div>\n </div>\n <slot\n name=\"item-footer\"\n v-bind=\"buildSlotProps()\"\n >\n <div\n v-if=\"context.showInlineSaveFooter\"\n class=\"a-le-row-footer\"\n >\n <div class=\"a-le-row-footer-spacer\" />\n <VBtn\n variant=\"text\"\n :disabled=\"vi.loading\"\n @click.stop=\"callbacks.onCancelClick(vi)\"\n >\n {{ t('common.button.cancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n variant=\"flat\"\n prepend-icon=\"mdi-check\"\n :disabled=\"vi.loading\"\n @click.stop=\"callbacks.onSaveClick(vi)\"\n >\n {{ t('common.button.save') }}\n </VBtn>\n </div>\n </slot>\n </template>\n\n <div\n v-else-if=\"$slots['item-readonly'] && (context.readonly || vi.expanded) && !context.reorderMode\"\n class=\"a-le-row-body\"\n >\n <div class=\"a-le-form\">\n <slot\n name=\"item-readonly\"\n v-bind=\"buildSlotProps()\"\n />\n </div>\n </div>\n </div>\n\n <slot\n name=\"after-item\"\n v-bind=\"buildSlotProps()\"\n />\n\n <!-- Recursive children — any depth level. The `::before` on this wrapper\n renders the single continuous vertical tree line at the parent's\n chevron column (see CSS). One line per group = no per-row gaps. -->\n <div\n v-if=\"vi.hasChildren && vi.childrenExpanded\"\n class=\"a-nested-list-editor__children\"\n :style=\"{ '--parent-depth': vi.depth }\"\n >\n <div\n :class=\"[GROUP_CLASS]\"\n :data-parent-id=\"String(vi.key)\"\n >\n <LeNestedRow\n v-for=\"child in directChildren()\"\n :key=\"String(child.key)\"\n :vi=\"child\"\n :view-items=\"viewItems\"\n :drag-state=\"dragState\"\n :context=\"context\"\n :callbacks=\"callbacks\"\n >\n <template #item=\"slotScope\">\n <slot\n name=\"item\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-compact=\"slotScope\">\n <slot\n name=\"item-compact\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-readonly=\"slotScope\">\n <slot\n name=\"item-readonly\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-status=\"slotScope\">\n <slot\n name=\"item-status\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-footer=\"slotScope\">\n <slot\n name=\"item-footer\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #item-actions=\"slotScope\">\n <slot\n name=\"item-actions\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #before-item=\"slotScope\">\n <slot\n name=\"before-item\"\n v-bind=\"slotScope\"\n />\n </template>\n <template #after-item=\"slotScope\">\n <slot\n name=\"after-item\"\n v-bind=\"slotScope\"\n />\n </template>\n </LeNestedRow>\n </div>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeStatus.js","names":["_sfc_main","LeStatus_vue_vue_type_script_setup_true_lang_default","LeStatus_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeStatus.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\n// Reorder-mode header status pill. Emits `.a-le-toolbar-status` on its root,\n// caller adds the `--pending` modifier via class binding. inheritAttrs stays\n// default so additional classes (e.g. the --pending modifier) stick to the\n// root div.\n\nexport interface Props {\n hasPendingChanges: boolean\n pendingCount: number\n error?: string | null\n}\n\nwithDefaults(defineProps<Props>(), {\n error: null,\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"a-le-toolbar-status\">\n <VIcon\n v-if=\"hasPendingChanges\"\n icon=\"mdi-circle-medium\"\n color=\"warning\"\n size=\"18\"\n />\n <span\n v-if=\"error\"\n class=\"text-body-small\"\n >\n {{ error }}\n </span>\n <span\n v-else-if=\"hasPendingChanges\"\n class=\"text-body-small\"\n >\n {{ t('common.sortable.pendingChanges', { count: pendingCount }) }}\n </span>\n <span\n v-else\n class=\"text-body-small text-medium-emphasis\"\n >\n {{ t('common.sortable.noPendingChanges') }}\n </span>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"LeStatus.js","names":["LeStatus_vue_vue_type_script_setup_true_lang_default","LeStatus_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeStatus.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createBlock","_component_VIcon","_createCommentVNode","_toDisplayString","_unref","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","LeStatus_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","__props","createBlock","VIcon","createCommentVNode","toDisplayString","unref","t"],"sources":["../../../../../src/domains/listEditor/components/internal/LeStatus.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\n// Reorder-mode header status pill. Emits `.a-le-toolbar-status` on its root,\n// caller adds the `--pending` modifier via class binding. inheritAttrs stays\n// default so additional classes (e.g. the --pending modifier) stick to the\n// root div.\n\nexport interface Props {\n hasPendingChanges: boolean\n pendingCount: number\n error?: string | null\n}\n\nwithDefaults(defineProps<Props>(), {\n error: null,\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"a-le-toolbar-status\">\n <VIcon\n v-if=\"hasPendingChanges\"\n icon=\"mdi-circle-medium\"\n color=\"warning\"\n size=\"18\"\n />\n <span\n v-if=\"error\"\n class=\"text-body-small\"\n >\n {{ error }}\n </span>\n <span\n v-else-if=\"hasPendingChanges\"\n class=\"text-body-small\"\n >\n {{ t('common.sortable.pendingChanges', { count: pendingCount }) }}\n </span>\n <span\n v-else\n class=\"text-body-small text-medium-emphasis\"\n >\n {{ t('common.sortable.noPendingChanges') }}\n </span>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAkBA,IAAM,EAAE,SAAMY,EAAQ;E,kBAIpBZ,EAAA,GAAAC,EAyBM,OAzBNM,GAyBM,CAvBIQ,EAAA,qBADRf,EAAA,GAAAE,EAKEC,GAAA;;GAHA,MAAK;GACL,OAAM;GACN,MAAK;E,iBAGCY,EAAA,SADRf,EAAA,GAAAC,EAKO,QALPO,GAKOH,EADFU,EAAA,KAAK,GAAA,CAAA,KAGGA,EAAA,qBADbf,EAAA,GAAAC,EAKO,QALPQ,GAKOJ,EADFC,EAAAe,CAAA,CAAC,CAAA,kCAAA,EAAA,OAA4CN,EAAA,aAAY,CAAA,CAAA,GAAA,CAAA,MAE9Df,EAAA,GAAAC,EAKO,QALPS,GAKOL,EADFC,EAAAe,CAAA,CAAC,CAAA,kCAAA,CAAA,GAAA,CAAA,E"}
1
+ {"version":3,"file":"LeStatus.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createBlock","_component_VIcon","_toDisplayString","_unref","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","LeStatus_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","__props","createBlock","VIcon","createCommentVNode","toDisplayString","unref","t"],"sources":["../../../../../src/domains/listEditor/components/internal/LeStatus.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\n// Reorder-mode header status pill. Emits `.a-le-toolbar-status` on its root,\n// caller adds the `--pending` modifier via class binding. inheritAttrs stays\n// default so additional classes (e.g. the --pending modifier) stick to the\n// root div.\n\nexport interface Props {\n hasPendingChanges: boolean\n pendingCount: number\n error?: string | null\n}\n\nwithDefaults(defineProps<Props>(), {\n error: null,\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"a-le-toolbar-status\">\n <VIcon\n v-if=\"hasPendingChanges\"\n icon=\"mdi-circle-medium\"\n color=\"warning\"\n size=\"18\"\n />\n <span\n v-if=\"error\"\n class=\"text-body-small\"\n >\n {{ error }}\n </span>\n <span\n v-else-if=\"hasPendingChanges\"\n class=\"text-body-small\"\n >\n {{ t('common.sortable.pendingChanges', { count: pendingCount }) }}\n </span>\n <span\n v-else\n class=\"text-body-small text-medium-emphasis\"\n >\n {{ t('common.sortable.noPendingChanges') }}\n </span>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAkBA,IAAM,EAAE,SAAMW,EAAQ;E,kBAIpBX,EAAA,GAAAC,EAyBM,OAzBNK,GAyBM,CAvBIQ,EAAA,qBADRd,EAAA,GAAAE,EAKEC,GAAA;;GAHA,MAAK;GACL,OAAM;GACN,MAAK;E,iBAGCW,EAAA,SADRd,EAAA,GAAAC,EAKO,QALPM,GAKOH,EADFU,EAAA,KAAK,GAAA,CAAA,KAGGA,EAAA,qBADbd,EAAA,GAAAC,EAKO,QALPO,GAKOJ,EADFC,EAAAe,CAAA,CAAC,CAAA,kCAAA,EAAA,OAA4CN,EAAA,aAAY,CAAA,CAAA,GAAA,CAAA,MAE9Dd,EAAA,GAAAC,EAKO,QALPQ,GAKOL,EADFC,EAAAe,CAAA,CAAC,CAAA,kCAAA,CAAA,GAAA,CAAA,E"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeUnsavedLabel.js","names":["_sfc_main","LeUnsavedLabel_vue_vue_type_script_setup_true_lang_default","LeUnsavedLabel_default"],"sources":["../../../../../src/domains/listEditor/components/internal/LeUnsavedLabel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\n// Small \"unsaved\" pill (warning dot + translated label). Emits the shared\n// `.a-le-unsaved-label` class directly — the flat `.a-le-*` namespace means\n// every variant shares the same selector, no per-variant BEM prefix needed.\n// `dotOnly` (chips mode) drops the label, leaving just the inline warning dot;\n// the label is kept as a native title tooltip so the marker stays meaningful.\n\nexport interface Props {\n label?: string | null\n dotOnly?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n label: null,\n dotOnly: false,\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <span\n class=\"a-le-unsaved-label\"\n :class=\"{ 'a-le-unsaved-label--dot': dotOnly }\"\n :title=\"dotOnly ? (label ?? t('common.sortable.unsaved')) : undefined\"\n >\n <VIcon\n icon=\"mdi-circle-medium\"\n size=\"12\"\n />\n <template v-if=\"!dotOnly\">\n {{ label ?? t('common.sortable.unsaved') }}\n </template>\n </span>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"LeUnsavedLabel.js","names":["LeUnsavedLabel_vue_vue_type_script_setup_true_lang_default","LeUnsavedLabel_default"],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LeUnsavedLabel.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_component_VIcon","_Fragment","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_1","LeUnsavedLabel_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","normalizeClass","__props","unref","t","createVNode","VIcon","createCommentVNode","Fragment","createTextVNode","toDisplayString"],"sources":["../../../../../src/domains/listEditor/components/internal/LeUnsavedLabel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\n// Small \"unsaved\" pill (warning dot + translated label). Emits the shared\n// `.a-le-unsaved-label` class directly — the flat `.a-le-*` namespace means\n// every variant shares the same selector, no per-variant BEM prefix needed.\n// `dotOnly` (chips mode) drops the label, leaving just the inline warning dot;\n// the label is kept as a native title tooltip so the marker stays meaningful.\n\nexport interface Props {\n label?: string | null\n dotOnly?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n label: null,\n dotOnly: false,\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <span\n class=\"a-le-unsaved-label\"\n :class=\"{ 'a-le-unsaved-label--dot': dotOnly }\"\n :title=\"dotOnly ? (label ?? t('common.sortable.unsaved')) : undefined\"\n >\n <VIcon\n icon=\"mdi-circle-medium\"\n size=\"12\"\n />\n <template v-if=\"!dotOnly\">\n {{ label ?? t('common.sortable.unsaved') }}\n </template>\n </span>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAmBA,IAAM,EAAE,SAAMY,EAAQ;E,kBAIpBZ,EAAA,GAAAC,EAYO,QAAA;GAXL,OAAKC,EAAA,CAAC,sBAAoB,EAAA,2BACWc,EAAA,QAAO,CAAA,CAAA;GAC3C,OAAOA,EAAA,UAAWA,EAAA,SAASb,EAAAe,CAAA,CAAC,CAAA,yBAAA,IAA+B,KAAA;E,IAE5Dd,EAGEC,GAAA;GAFA,MAAK;GACL,MAAK;E,IAEUW,EAAA,U,aAAjBhB,EAAA,GAAAC,EAEWK,GAAA,EAAA,KAAA,EAAA,GAAA,CADNC,EAAAC,EAAAQ,EAAA,SAASb,EAAAe,CAAA,CAAC,CAAA,yBAAA,CAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"LeUnsavedLabel.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_component_VIcon","_Fragment","_createTextVNode","_toDisplayString","_hoisted_1","LeUnsavedLabel_vue_vue_type_script_setup_true_lang_default","useI18n","openBlock","createElementBlock","normalizeClass","__props","unref","t","createVNode","VIcon","createCommentVNode","Fragment","createTextVNode","toDisplayString"],"sources":["../../../../../src/domains/listEditor/components/internal/LeUnsavedLabel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\n\n// Small \"unsaved\" pill (warning dot + translated label). Emits the shared\n// `.a-le-unsaved-label` class directly — the flat `.a-le-*` namespace means\n// every variant shares the same selector, no per-variant BEM prefix needed.\n// `dotOnly` (chips mode) drops the label, leaving just the inline warning dot;\n// the label is kept as a native title tooltip so the marker stays meaningful.\n\nexport interface Props {\n label?: string | null\n dotOnly?: boolean\n}\n\nwithDefaults(defineProps<Props>(), {\n label: null,\n dotOnly: false,\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <span\n class=\"a-le-unsaved-label\"\n :class=\"{ 'a-le-unsaved-label--dot': dotOnly }\"\n :title=\"dotOnly ? (label ?? t('common.sortable.unsaved')) : undefined\"\n >\n <VIcon\n icon=\"mdi-circle-medium\"\n size=\"12\"\n />\n <template v-if=\"!dotOnly\">\n {{ label ?? t('common.sortable.unsaved') }}\n </template>\n </span>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAmBA,IAAM,EAAE,SAAMW,EAAQ;E,kBAIpBX,EAAA,GAAAC,EAYO,QAAA;GAXL,OAAKC,EAAA,CAAC,sBAAoB,EAAA,2BACWa,EAAA,QAAO,CAAA,CAAA;GAC3C,OAAOA,EAAA,UAAWA,EAAA,SAASZ,EAAAc,CAAA,CAAC,CAAA,yBAAA,IAA+B,KAAA;E,IAE5Db,EAGEC,GAAA;GAFA,MAAK;GACL,MAAK;E,IAEUU,EAAA,U,aAAjBf,EAAA,GAAAC,EAEWK,GAAA,EAAA,KAAA,EAAA,GAAA,CADNC,EAAAC,EAAAO,EAAA,SAASZ,EAAAc,CAAA,CAAC,CAAA,yBAAA,CAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ALogDatatable.js","names":["_sfc_main","ALogDatatable_vue_vue_type_script_setup_true_lang_default","ALogDatatable_default"],"sources":["../../../../src/domains/log/components/ALogDatatable.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { inject, onMounted, onBeforeUnmount, provide, watch } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useDebounceFn } from '@vueuse/core'\nimport ACopyText from '@/domains/ui/components/ACopyText.vue'\nimport ADatatableConfigButton from '@/domains/filters/datatable/components/ADatatableConfigButton.vue'\nimport ADatetime from '@/domains/ui/datetime/components/ADatetime.vue'\nimport type { AxiosClientFn } from '@/domains/api/utils/client'\nimport ADatatablePagination from '@/domains/filters/datatable/components/ADatatablePagination.vue'\nimport { createDatatableColumnsConfig } from '@/domains/filters/datatable/composables/createDatatableColumnsConfig'\nimport { DatatablePaginationKey, FilterConfigKey, FilterDataKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { useFilterHelpers } from '@/domains/filters/composables/filterFactory'\nimport { usePagination } from '@/domains/api/composables/pagination'\nimport { SORT_BY_ID } from '@/domains/filters/datatable/utils/datatableColumns'\nimport { useLogListActions } from '@/domains/log/composables/logActions'\nimport { LOG_ENTITY } from '@/domains/log/api/logApi'\nimport { LogType, type LogPaths, type LogTypeType } from '@/domains/log/composables/logType'\nimport type { Log } from '@/domains/log/types/Log'\nimport { isNull, isUndefined } from '@/shared/utils/common'\nimport { isDevelopment } from '@/shared/utils/development'\n\ntype DatatableItem = Log\n\nconst props = defineProps<{\n client: AxiosClientFn\n system: string\n type: LogTypeType\n logPaths: LogPaths\n /** Same mapper the view uses. Needed here so the actions cell stays a real link. */\n detailRoute: (log: Log) => RouteLocationRaw\n}>()\n\nconst emit = defineEmits<{\n (e: 'rowClick', log: Log): void\n}>()\n\n// The spinner belongs to the card above this table, so the flag is owned there.\nconst loading = defineModel<boolean>('loading', { default: false })\n\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\nif (isUndefined(filterConfig) || isUndefined(filterData)) {\n throw new Error('[ALogDatatable] Incorrect provide/inject config.')\n}\n\n// Read once on purpose. These are fixed for this instance's lifetime.\n// The page remounts the view via `:key` on system or type change,\n// because `useApiFetchList` closes over its client and url.\n/* eslint-disable vue/no-setup-props-reactivity-loss */\nconst { t } = useI18n()\nconst { fetchList, listItems, datatableHiddenColumns, cancel } = useLogListActions({\n client: props.client,\n system: props.system,\n logPaths: props.logPaths,\n type: props.type,\n loading,\n})\n\n// No url hash and no local storage. The `logFilter` registry keeps the filter per view in memory.\n// Nothing about a log listing is worth persisting across a reload.\nconst { resetFilter, submitFilter, loadStoredFilters } = useFilterHelpers(filterData, filterConfig, {\n storeFiltersLocalStorage: false,\n populateUrlParams: false,\n})\n\nconst { pagination } = usePagination(SORT_BY_ID)\nprovide(DatatablePaginationKey, pagination)\n\n// Keyed by type, not by system. The column sets differ between app and audit.\n// A column hidden in audit must not disappear from the app table.\nconst { columnsVisible, columnsAll, columnsHidden } = createDatatableColumnsConfig(\n [\n { key: 'id' },\n { key: 'datetime' },\n { key: 'levelName' },\n { key: 'message' },\n { key: 'context.appVersion' },\n { key: 'context.contextId' },\n ...(props.type === LogType.Audit\n ? [{ key: 'context.resourceName' }, { key: 'context.resourceIds' }]\n : [{ key: 'context.httpStatus' }]),\n { key: 'context.userId' },\n { key: 'context.ip' },\n ],\n datatableHiddenColumns,\n 'common',\n LOG_ENTITY,\n { storeColumnsLocalStorage: `table_common_log_${props.type}` }\n)\n/* eslint-enable vue/no-setup-props-reactivity-loss */\n\nconst getList = useDebounceFn(async () => {\n await fetchList(pagination, filterData, filterConfig)\n})\n\nconst onRowClick = (_event: unknown, { item }: { item: DatatableItem }) => {\n if (item.id) emit('rowClick', item)\n}\n\nonMounted(() => {\n // Both persistences are off, so it reads nothing back.\n // It still restores the page a user was on after closing a detail,\n // which `AActionCloseButtonHistory` flags for the next list.\n loadStoredFilters(pagination, getList)\n})\n\n// The code above reads props once, which is only correct while the page remounts this view via `:key`.\n// Otherwise the table would silently keep querying the old endpoint with the old columns.\nif (isDevelopment()) {\n watch(\n () => [props.system, props.type],\n () => {\n console.error(\n '[ALogDatatable] `system` or `type` changed in place. This view must be remounted -- ' +\n 'give it :key=\"`${system}/${type}`\". The endpoint and columns are bound at mount.'\n )\n }\n )\n}\n\nonBeforeUnmount(() => {\n // Both calls, in this order. `cancel()` only invalidates requests already in flight.\n // A pending debounce would fire after unmount, bump the generation past\n // that invalidation and start a request the token treats as current.\n getList.cancel()\n cancel()\n})\n\ndefineExpose({\n refresh: getList,\n resetFilter: () => resetFilter(pagination, getList),\n submitFilter: () => submitFilter(pagination, getList),\n})\n</script>\n\n<template>\n <div>\n <div class=\"d-flex align-center\">\n <VSpacer />\n <ADatatableConfigButton\n v-model:columns-hidden=\"columnsHidden\"\n :columns-all=\"columnsAll\"\n />\n </div>\n <VDataTableServer\n class=\"a-datatable\"\n :headers=\"columnsVisible\"\n :items=\"listItems\"\n :items-length=\"listItems.length\"\n item-value=\"id\"\n @click:row=\"onRowClick\"\n >\n <template #item.datetime=\"{ item }: { item: DatatableItem }\">\n <ADatetime :date-time=\"item.datetime\" />\n </template>\n <template #item.message=\"{ item }: { item: DatatableItem }\">\n <div class=\"a-line-clamp-2\">\n {{ item.message }}\n </div>\n </template>\n <template #item.context.resourceIds=\"{ item }: { item: DatatableItem }\">\n {{ item.context.resourceIds.join(', ') }}\n </template>\n <template #item.context.contextId=\"{ item }: { item: DatatableItem }\">\n <ACopyText :value=\"item.context.contextId\" />\n </template>\n <template #item.context.userId=\"{ item }: { item: DatatableItem }\">\n <ACopyText\n v-if=\"!isNull(item.context.userId)\"\n :value=\"item.context.userId\"\n />\n </template>\n <template #item.actions=\"{ item }: { item: DatatableItem }\">\n <div class=\"d-flex justify-end\">\n <!--\n `:to`, not a click handler. An anchor makes middle-click and open-in-new-tab work.\n The smoke spec also scrapes it to find a row id.\n -->\n <VBtn\n :to=\"detailRoute(item)\"\n class=\"ml-1\"\n icon=\"mdi-information-outline\"\n :aria-label=\"t('common.button.detail')\"\n size=\"x-small\"\n variant=\"text\"\n />\n </div>\n </template>\n <template #bottom>\n <ADatatablePagination @change=\"getList\" />\n </template>\n </VDataTableServer>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ALogDatatable.js","names":["ALogDatatable_vue_vue_type_script_setup_true_lang_default","ALogDatatable_default"],"sources":[],"mappings":""}