@xen-orchestra/web-core 0.58.0 → 0.59.0

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 (220) hide show
  1. package/lib/components/card/VtsCardRowKeyValue.vue +1 -1
  2. package/lib/components/cell-object/VtsCellObject.vue +1 -1
  3. package/lib/components/cell-text/VtsCellText.vue +1 -1
  4. package/lib/components/console/VtsActionsConsole.vue +1 -1
  5. package/lib/components/console/VtsClipboardConsole.vue +1 -1
  6. package/lib/components/console/VtsLayoutConsole.vue +1 -1
  7. package/lib/components/console/VtsRemoteConsole.vue +1 -1
  8. package/lib/components/copy-button/VtsCopyButton.vue +1 -1
  9. package/lib/components/delete-button/VtsDeleteButton.vue +1 -1
  10. package/lib/components/icon/VtsIcon.vue +1 -1
  11. package/lib/components/input-wrapper/VtsInputWrapper.vue +3 -3
  12. package/lib/components/key-value-pair/VtsKeyValuePair.vue +1 -1
  13. package/lib/components/layout/VtsContentSidePanel.vue +2 -2
  14. package/lib/components/linear-chart/VtsLinearChart.vue +1 -1
  15. package/lib/components/menu/MenuItem.vue +2 -2
  16. package/lib/components/menu/MenuList.vue +2 -2
  17. package/lib/components/menu/MenuSeparator.vue +1 -1
  18. package/lib/components/modal/VtsActionModal.vue +52 -13
  19. package/lib/components/modal/VtsBlockedModal.vue +7 -7
  20. package/lib/components/modal/VtsDeleteModal.vue +20 -15
  21. package/lib/components/modal/VtsErrorModal.vue +10 -6
  22. package/lib/components/panel/VtsPanel.vue +1 -1
  23. package/lib/components/panel/VtsSidePanel.vue +3 -3
  24. package/lib/components/query-builder/VtsQueryBuilder.vue +3 -3
  25. package/lib/components/query-builder/VtsQueryBuilderButton.vue +17 -11
  26. package/lib/components/query-builder/VtsQueryBuilderFilter.vue +1 -1
  27. package/lib/components/query-builder/VtsQueryBuilderGroup.vue +1 -1
  28. package/lib/components/query-builder/VtsQueryBuilderModal.vue +13 -8
  29. package/lib/components/query-builder/VtsQueryBuilderRow.vue +1 -1
  30. package/lib/components/relative-time/VtsRelativeTime.vue +2 -2
  31. package/lib/components/space-card/VtsSpaceCard.vue +11 -7
  32. package/lib/components/sr-connection-modal/VtsSrConnectionModal.vue +77 -0
  33. package/lib/components/stacked-bar-with-legend/VtsStackedBarWithLegend.vue +1 -1
  34. package/lib/components/state-hero/VtsStateHero.vue +1 -1
  35. package/lib/components/status/VtsStatus.vue +1 -1
  36. package/lib/components/tab/TabItem.vue +2 -2
  37. package/lib/components/tab/TabList.vue +1 -1
  38. package/lib/components/table/VtsTable.vue +3 -3
  39. package/lib/components/table/cells/VtsCollapsedListCell.vue +1 -1
  40. package/lib/components/table/cells/VtsLinkCell.vue +2 -2
  41. package/lib/components/table/cells/VtsStatusCell.vue +3 -3
  42. package/lib/components/table/cells/VtsTagCell.vue +2 -2
  43. package/lib/components/table/cells/VtsTextCell.vue +1 -1
  44. package/lib/components/tag/VtsTag.vue +1 -1
  45. package/lib/components/task/VtsQuickTaskButton.vue +1 -1
  46. package/lib/components/task/VtsQuickTaskTabBar.vue +1 -1
  47. package/lib/components/tooltip-list/VtsTooltipList.vue +1 -1
  48. package/lib/components/tree/VtsTreeList.vue +1 -1
  49. package/lib/components/tree/VtsTreeLoadingItem.vue +1 -1
  50. package/lib/components/ui/account-menu-button/UiAccountMenuButton.vue +1 -1
  51. package/lib/components/ui/alarm-item/UiAlarmItem.vue +2 -2
  52. package/lib/components/ui/alert/UiAlert.vue +1 -1
  53. package/lib/components/ui/button/UiButton.vue +2 -2
  54. package/lib/components/ui/button-icon/UiButtonIcon.vue +1 -1
  55. package/lib/components/ui/card-numbers/UiCardNumbers.vue +1 -1
  56. package/lib/components/ui/checkbox/UiCheckbox.vue +2 -2
  57. package/lib/components/ui/chip/UiChip.vue +1 -1
  58. package/lib/components/ui/counter/UiCounter.vue +1 -1
  59. package/lib/components/ui/drawer/UiDrawer.vue +37 -54
  60. package/lib/components/ui/dropdown/UiDropdown.vue +2 -2
  61. package/lib/components/ui/dropdown-button/UiDropdownButton.vue +1 -1
  62. package/lib/components/ui/head-bar/UiHeadBar.vue +1 -1
  63. package/lib/components/ui/info/UiInfo.vue +1 -1
  64. package/lib/components/ui/input/UiInput.vue +2 -2
  65. package/lib/components/ui/label/UiLabel.vue +1 -1
  66. package/lib/components/ui/legend/UiLegend.vue +2 -2
  67. package/lib/components/ui/legend-title/UiLegendTitle.vue +1 -1
  68. package/lib/components/ui/link/UiLink.vue +2 -2
  69. package/lib/components/ui/loader/UiLoader.vue +1 -1
  70. package/lib/components/ui/modal/UiModal.vue +17 -5
  71. package/lib/components/ui/object-link/UiObjectLink.vue +1 -1
  72. package/lib/components/ui/panel-card/UiPanelCard.vue +20 -0
  73. package/lib/components/ui/progress-bar/UiProgressBar.vue +1 -1
  74. package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +2 -2
  75. package/lib/components/ui/quick-task-panel/UiQuickTaskPanel.vue +1 -1
  76. package/lib/components/ui/radio-button/UiRadioButton.vue +2 -2
  77. package/lib/components/ui/stacked-bar/StackedBarSegment.vue +2 -2
  78. package/lib/components/ui/stacked-bar/UiStackedBar.vue +1 -1
  79. package/lib/components/ui/tag/UiTag.vue +1 -1
  80. package/lib/components/ui/task-item/UiTaskItem.vue +1 -1
  81. package/lib/components/ui/text-area/UiTextarea.vue +1 -1
  82. package/lib/components/ui/toaster/UiToaster.vue +1 -1
  83. package/lib/components/ui/toggle/UiToggle.vue +1 -1
  84. package/lib/components/ui/tooltip/UiTooltip.vue +2 -2
  85. package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +6 -2
  86. package/lib/components/ui/user-link/UiUserLink.vue +1 -1
  87. package/lib/components/ui/user-logo/UiUserLogo.vue +1 -1
  88. package/lib/components/{vif-connection-toggle-modal/VtsVifConnectionToggleModal.vue → vif-connection-modal/VtsVifConnectionModal.vue} +15 -10
  89. package/lib/composables/chart-theme.composable.ts +1 -1
  90. package/lib/composables/context.composable.ts +1 -1
  91. package/lib/composables/default-tab.composable.ts +1 -1
  92. package/lib/composables/disabled.composable.ts +1 -1
  93. package/lib/composables/hide-route-query.composable.ts +1 -1
  94. package/lib/composables/link-component.composable.ts +1 -1
  95. package/lib/composables/modals/use-action-modal.ts +11 -0
  96. package/lib/composables/modals/use-blocked-modal.ts +10 -0
  97. package/lib/composables/modals/use-delete-modal.ts +11 -0
  98. package/lib/composables/pagination.composable.ts +2 -2
  99. package/lib/composables/route-query/types.ts +1 -1
  100. package/lib/composables/route-query.composable.ts +5 -5
  101. package/lib/composables/sort-route-query.composable.ts +1 -1
  102. package/lib/composables/tab-list.composable.ts +1 -1
  103. package/lib/composables/table/create-base-definition.ts +1 -1
  104. package/lib/composables/table/create-define-column.ts +6 -6
  105. package/lib/composables/table/create-sorting-definition.ts +2 -2
  106. package/lib/composables/table/create-visibility-definition.ts +2 -2
  107. package/lib/composables/table/type.ts +1 -1
  108. package/lib/composables/table.composable.ts +4 -4
  109. package/lib/composables/tree-filter.composable.ts +1 -1
  110. package/lib/directives/tooltip.directive.ts +2 -2
  111. package/lib/icons/index.ts +1 -1
  112. package/lib/locales/cs.json +0 -4
  113. package/lib/locales/de.json +0 -2
  114. package/lib/locales/en.json +83 -9
  115. package/lib/locales/es.json +0 -1
  116. package/lib/locales/fr.json +87 -13
  117. package/lib/locales/nb-NO.json +0 -1
  118. package/lib/locales/nl.json +0 -4
  119. package/lib/locales/pt.json +0 -1
  120. package/lib/locales/sk.json +0 -4
  121. package/lib/locales/sv.json +0 -2
  122. package/lib/locales/zh-Hans.json +0 -4
  123. package/lib/packages/form-select/use-form-select-controller.ts +1 -1
  124. package/lib/packages/job/define-job.ts +5 -5
  125. package/lib/packages/job/index.ts +4 -4
  126. package/lib/packages/job/use-job-store.ts +2 -2
  127. package/lib/packages/menu/action.ts +1 -1
  128. package/lib/packages/menu/context.ts +1 -1
  129. package/lib/packages/menu/index.ts +10 -10
  130. package/lib/packages/menu/job.ts +3 -3
  131. package/lib/packages/menu/link.ts +1 -1
  132. package/lib/packages/menu/router-link.ts +1 -1
  133. package/lib/packages/menu/toggle-target.ts +1 -1
  134. package/lib/packages/query-builder/group/build-root-group.ts +1 -1
  135. package/lib/packages/query-builder/node/handle-comparison-node.ts +1 -1
  136. package/lib/packages/query-builder/node/handle-glob-pattern-node.ts +1 -1
  137. package/lib/packages/query-builder/node/handle-group-node.ts +2 -2
  138. package/lib/packages/query-builder/node/handle-node.ts +8 -8
  139. package/lib/packages/query-builder/node/handle-null-node.ts +1 -1
  140. package/lib/packages/query-builder/node/handle-property-group-node.ts +2 -2
  141. package/lib/packages/query-builder/node/handle-property-node.ts +8 -8
  142. package/lib/packages/query-builder/node/handle-regexp-node.ts +1 -1
  143. package/lib/packages/query-builder/node/handle-string-or-number-node.ts +2 -2
  144. package/lib/packages/query-builder/node/handle-truthy-property-node.ts +1 -1
  145. package/lib/packages/query-builder/use-query-builder.ts +2 -2
  146. package/lib/packages/remote-resource/define-remote-resource.ts +1 -1
  147. package/lib/packages/threshold/use-threshold.ts +1 -1
  148. package/lib/packages/tree/branch-definition.ts +2 -2
  149. package/lib/packages/tree/branch.ts +8 -2
  150. package/lib/packages/tree/build-nodes.ts +3 -3
  151. package/lib/packages/tree/define-branch.ts +2 -2
  152. package/lib/packages/tree/define-leaf.ts +2 -2
  153. package/lib/packages/tree/define-tree.ts +3 -3
  154. package/lib/packages/tree/leaf-definition.ts +1 -1
  155. package/lib/packages/tree/leaf.ts +2 -2
  156. package/lib/packages/tree/tree-node-base.ts +2 -2
  157. package/lib/packages/tree/tree-node-definition-base.ts +1 -1
  158. package/lib/packages/tree/types.ts +6 -6
  159. package/lib/packages/tree/use-tree.ts +2 -2
  160. package/lib/stores/panel.store.ts +1 -1
  161. package/lib/stores/tooltip.store.ts +2 -2
  162. package/lib/tables/column-definitions/action-column.ts +2 -2
  163. package/lib/tables/column-definitions/button-column.ts +3 -3
  164. package/lib/tables/column-definitions/button-icon-column.ts +2 -2
  165. package/lib/tables/column-definitions/date-column.ts +3 -3
  166. package/lib/tables/column-definitions/info-column.ts +3 -3
  167. package/lib/tables/column-definitions/input-column.ts +3 -3
  168. package/lib/tables/column-definitions/link-column.ts +2 -2
  169. package/lib/tables/column-definitions/literal-column.ts +3 -3
  170. package/lib/tables/column-definitions/number-column.ts +2 -2
  171. package/lib/tables/column-definitions/percent-column.ts +2 -2
  172. package/lib/tables/column-definitions/progress-bar-column.ts +2 -2
  173. package/lib/tables/column-definitions/select-column.ts +2 -2
  174. package/lib/tables/column-definitions/status-column.ts +2 -2
  175. package/lib/tables/column-definitions/tag-column.ts +3 -3
  176. package/lib/tables/column-sets/backup-issue-columns.ts +1 -1
  177. package/lib/tables/column-sets/backup-job-columns.ts +1 -1
  178. package/lib/tables/column-sets/backup-job-schedule-columns.ts +1 -1
  179. package/lib/tables/column-sets/backup-log-columns.ts +1 -1
  180. package/lib/tables/column-sets/host-columns.ts +3 -3
  181. package/lib/tables/column-sets/network-columns.ts +2 -2
  182. package/lib/tables/column-sets/pif-columns.ts +2 -2
  183. package/lib/tables/column-sets/server-columns.ts +1 -1
  184. package/lib/tables/column-sets/sr-columns.ts +3 -3
  185. package/lib/tables/column-sets/vdi-columns.ts +2 -0
  186. package/lib/tables/column-sets/vif-columns.ts +1 -1
  187. package/lib/tables/column-sets/vif-network-columns.ts +1 -1
  188. package/lib/tables/column-sets/vm-backup-archive-columns.ts +3 -3
  189. package/lib/tables/column-sets/vm-backup-run-colums.ts +2 -2
  190. package/lib/tables/column-sets/vm-columns.ts +1 -1
  191. package/lib/types/object.type.ts +10 -1
  192. package/lib/utils/create-subscribable-store-context.util.ts +2 -2
  193. package/lib/utils/download-bugtools.utils.ts +1 -1
  194. package/lib/utils/if-else.utils.ts +2 -2
  195. package/lib/utils/injection-keys.util.ts +0 -2
  196. package/lib/utils/progress.util.ts +1 -1
  197. package/lib/utils/to-array.utils.ts +1 -1
  198. package/package.json +1 -1
  199. package/lib/components/drawer/VtsDrawer.vue +0 -89
  200. package/lib/components/drawer/VtsDrawerButton.vue +0 -22
  201. package/lib/components/drawer/VtsDrawerCancelButton.vue +0 -33
  202. package/lib/components/drawer/VtsDrawerConfirmButton.vue +0 -32
  203. package/lib/components/drawer/VtsDrawerList.vue +0 -34
  204. package/lib/components/modal/VtsModal.vue +0 -82
  205. package/lib/components/modal/VtsModalButton.vue +0 -35
  206. package/lib/components/modal/VtsModalCancelButton.vue +0 -37
  207. package/lib/components/modal/VtsModalConfirmButton.vue +0 -21
  208. package/lib/components/modal/VtsModalList.vue +0 -34
  209. package/lib/packages/drawer/DrawerProvider.vue +0 -17
  210. package/lib/packages/drawer/README.md +0 -189
  211. package/lib/packages/drawer/create-drawer-opener.ts +0 -119
  212. package/lib/packages/drawer/drawer.store.ts +0 -22
  213. package/lib/packages/drawer/types.ts +0 -93
  214. package/lib/packages/drawer/use-drawer.ts +0 -53
  215. package/lib/packages/modal/ModalProvider.vue +0 -17
  216. package/lib/packages/modal/README.md +0 -253
  217. package/lib/packages/modal/create-modal-opener.ts +0 -106
  218. package/lib/packages/modal/modal.store.ts +0 -22
  219. package/lib/packages/modal/types.ts +0 -91
  220. package/lib/packages/modal/use-modal.ts +0 -53
@@ -10,8 +10,8 @@
10
10
 
11
11
  <script lang="ts" setup>
12
12
  import VtsIcon from '@core/components/icon/VtsIcon.vue'
13
- import { type LinkOptions, useLinkComponent } from '@core/composables/link-component.composable'
14
- import { vTooltip } from '@core/directives/tooltip.directive'
13
+ import { type LinkOptions, useLinkComponent } from '@core/composables/link-component.composable.ts'
14
+ import { vTooltip } from '@core/directives/tooltip.directive.ts'
15
15
  import type { IconName } from '@core/icons'
16
16
  import { computed } from 'vue'
17
17
 
@@ -23,7 +23,7 @@
23
23
  </template>
24
24
 
25
25
  <script lang="ts" setup>
26
- import { uniqueId } from '@core/utils/unique-id.util'
26
+ import { uniqueId } from '@core/utils/unique-id.util.ts'
27
27
 
28
28
  const firstHalfId = uniqueId('spinner-first-half-')
29
29
  const secondHalfId = uniqueId('spinner-second-half-')
@@ -1,7 +1,7 @@
1
1
  <!-- v4 -->
2
2
  <template>
3
- <form :class="className" class="ui-modal" @click.self="emit('dismiss')">
4
- <div class="modal">
3
+ <form :class="className" class="ui-modal" @click.self="emit('dismiss')" @submit.prevent="emit('confirm')">
4
+ <div :aria-labelledby="slots.title ? titleId : undefined" aria-modal="true" class="modal" role="dialog">
5
5
  <UiButtonIcon
6
6
  v-if="onDismiss"
7
7
  :accent="closeIconAccent"
@@ -13,7 +13,7 @@
13
13
  />
14
14
  <main class="main">
15
15
  <VtsIcon v-if="icon" :name="icon" class="icon" size="current" />
16
- <div v-if="slots.title" class="typo-h4">
16
+ <div v-if="slots.title" :id="titleId" class="typo-h4">
17
17
  <slot name="title" />
18
18
  </div>
19
19
  <div class="content">
@@ -33,18 +33,21 @@ import VtsIcon from '@core/components/icon/VtsIcon.vue'
33
33
  import UiButtonIcon from '@core/components/ui/button-icon/UiButtonIcon.vue'
34
34
  import type { IconName } from '@core/icons'
35
35
  import { useMapper } from '@core/packages/mapper'
36
+ import { useOverlayEscape } from '@core/packages/overlay/use-overlay-escape.ts'
37
+ import { IK_OVERLAY_ACCENT } from '@core/utils/injection-keys.util.ts'
36
38
  import { toVariants } from '@core/utils/to-variants.util.ts'
37
- import { computed } from 'vue'
39
+ import { computed, provide, useId } from 'vue'
38
40
 
39
41
  export type ModalAccent = 'info' | 'warning' | 'danger'
40
42
 
41
43
  const { accent } = defineProps<{
42
44
  accent: ModalAccent
43
45
  icon?: IconName
44
- onDismiss?: () => void
46
+ onDismiss?: () => any
45
47
  }>()
46
48
 
47
49
  const emit = defineEmits<{
50
+ confirm: []
48
51
  dismiss: []
49
52
  }>()
50
53
 
@@ -54,6 +57,10 @@ const slots = defineSlots<{
54
57
  title?(): any
55
58
  }>()
56
59
 
60
+ useOverlayEscape(() => emit('dismiss'))
61
+
62
+ const titleId = useId()
63
+
57
64
  const closeIconAccent = useMapper(
58
65
  () => accent,
59
66
  {
@@ -65,6 +72,11 @@ const closeIconAccent = useMapper(
65
72
  )
66
73
 
67
74
  const className = computed(() => toVariants({ accent }))
75
+
76
+ provide(
77
+ IK_OVERLAY_ACCENT,
78
+ computed(() => accent)
79
+ )
68
80
  </script>
69
81
 
70
82
  <style lang="postcss" scoped>
@@ -22,7 +22,7 @@
22
22
 
23
23
  <script lang="ts" setup>
24
24
  import VtsIcon from '@core/components/icon/VtsIcon.vue'
25
- import { vTooltip } from '@core/directives/tooltip.directive'
25
+ import { vTooltip } from '@core/directives/tooltip.directive.ts'
26
26
  import type { IconName } from '@core/icons'
27
27
  import { type RouteLocationRaw } from 'vue-router'
28
28
 
@@ -0,0 +1,20 @@
1
+ <template>
2
+ <UiCard class="ui-panel-card">
3
+ <slot />
4
+ </UiCard>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import UiCard from '@core/components/ui/card/UiCard.vue'
9
+
10
+ defineSlots<{
11
+ default(): any
12
+ }>()
13
+ </script>
14
+
15
+ <style lang="postcss" scoped>
16
+ .ui-panel-card {
17
+ gap: 1.6rem;
18
+ padding: 1.6rem;
19
+ }
20
+ </style>
@@ -15,7 +15,7 @@
15
15
  <script lang="ts" setup>
16
16
  import VtsLegendList from '@core/components/legend-list/VtsLegendList.vue'
17
17
  import UiLegend from '@core/components/ui/legend/UiLegend.vue'
18
- import { toVariants } from '@core/utils/to-variants.util'
18
+ import { toVariants } from '@core/utils/to-variants.util.ts'
19
19
  import { computed } from 'vue'
20
20
 
21
21
  export type ProgressBarAccent = 'info' | 'warning' | 'danger'
@@ -30,8 +30,8 @@
30
30
  import UiButton from '@core/components/ui/button/UiButton.vue'
31
31
  import UiButtonIcon from '@core/components/ui/button-icon/UiButtonIcon.vue'
32
32
  import UiInput from '@core/components/ui/input/UiInput.vue'
33
- import { useUiStore } from '@core/stores/ui.store'
34
- import { uniqueId } from '@core/utils/unique-id.util'
33
+ import { useUiStore } from '@core/stores/ui.store.ts'
34
+ import { uniqueId } from '@core/utils/unique-id.util.ts'
35
35
  import { ref } from 'vue'
36
36
  import { useI18n } from 'vue-i18n'
37
37
 
@@ -16,7 +16,7 @@
16
16
  import VtsQuickTaskList from '@core/components/task/VtsQuickTaskList.vue'
17
17
  import VtsQuickTaskTabBar, { type TaskTab } from '@core/components/task/VtsQuickTaskTabBar.vue'
18
18
  import type { Task } from '@core/components/ui/task-item/UiTaskItem.vue'
19
- import { useUiStore } from '@core/stores/ui.store'
19
+ import { useUiStore } from '@core/stores/ui.store.ts'
20
20
  import { computed, ref } from 'vue'
21
21
 
22
22
  const props = defineProps<{
@@ -11,8 +11,8 @@
11
11
 
12
12
  <script lang="ts" setup>
13
13
  import VtsIcon from '@core/components/icon/VtsIcon.vue'
14
- import { useDisabled } from '@core/composables/disabled.composable'
15
- import { toVariants } from '@core/utils/to-variants.util'
14
+ import { useDisabled } from '@core/composables/disabled.composable.ts'
15
+ import { toVariants } from '@core/utils/to-variants.util.ts'
16
16
  import { computed } from 'vue'
17
17
 
18
18
  const { accent, value, disabled } = defineProps<{
@@ -13,8 +13,8 @@
13
13
  </template>
14
14
 
15
15
  <script lang="ts" setup>
16
- import { vTooltip } from '@core/directives/tooltip.directive'
17
- import { hasEllipsis } from '@core/utils/has-ellipsis.util'
16
+ import { vTooltip } from '@core/directives/tooltip.directive.ts'
17
+ import { hasEllipsis } from '@core/utils/has-ellipsis.util.ts'
18
18
  import { useResizeObserver } from '@vueuse/core'
19
19
  import { ref } from 'vue'
20
20
  import { useI18n } from 'vue-i18n'
@@ -12,7 +12,7 @@
12
12
 
13
13
  <script lang="ts" setup>
14
14
  import StackedBarSegment, { type StackedBarSegmentProps } from '@core/components/ui/stacked-bar/StackedBarSegment.vue'
15
- import { formatSizeParse } from '@core/utils/size.util'
15
+ import { formatSizeParse } from '@core/utils/size.util.ts'
16
16
  import { computed } from 'vue'
17
17
 
18
18
  type Segment = {
@@ -6,7 +6,7 @@
6
6
  </template>
7
7
 
8
8
  <script lang="ts" setup>
9
- import { toVariants } from '@core/utils/to-variants.util'
9
+ import { toVariants } from '@core/utils/to-variants.util.ts'
10
10
  import { computed } from 'vue'
11
11
 
12
12
  export type TagAccent = 'info' | 'neutral' | 'success' | 'warning' | 'danger' | 'muted'
@@ -63,7 +63,7 @@ import UiInfo from '@core/components/ui/info/UiInfo.vue'
63
63
  import UiLink from '@core/components/ui/link/UiLink.vue'
64
64
  import UiTaskList from '@core/components/ui/task-list/UiTaskList.vue'
65
65
  import { useTimeAgo } from '@core/composables/locale-time-ago.composable.ts'
66
- import { vTooltip } from '@core/directives/tooltip.directive'
66
+ import { vTooltip } from '@core/directives/tooltip.directive.ts'
67
67
  import type { TaskObjectSegment, TaskStatus } from '@core/types/task.type.ts'
68
68
  import { logicOr } from '@vueuse/math'
69
69
  import { computed } from 'vue'
@@ -22,7 +22,7 @@
22
22
  import UiCharacterLimit from '@core/components/ui/character-limit/UiCharacterLimit.vue'
23
23
  import UiInfo from '@core/components/ui/info/UiInfo.vue'
24
24
  import UiLabel from '@core/components/ui/label/UiLabel.vue'
25
- import { toVariants } from '@core/utils/to-variants.util'
25
+ import { toVariants } from '@core/utils/to-variants.util.ts'
26
26
  import { useFocus } from '@vueuse/core'
27
27
  import { computed, useAttrs, useId, useTemplateRef } from 'vue'
28
28
  import { useI18n } from 'vue-i18n'
@@ -24,7 +24,7 @@ import VtsIcon from '@core/components/icon/VtsIcon.vue'
24
24
  import UiButtonIcon from '@core/components/ui/button-icon/UiButtonIcon.vue'
25
25
  import type { IconName } from '@core/icons'
26
26
  import { useMapper } from '@core/packages/mapper'
27
- import { toVariants } from '@core/utils/to-variants.util'
27
+ import { toVariants } from '@core/utils/to-variants.util.ts'
28
28
 
29
29
  type ToasterAccent = 'info' | 'success' | 'warning' | 'danger'
30
30
 
@@ -13,7 +13,7 @@
13
13
 
14
14
  <script lang="ts" setup>
15
15
  import UiLoader from '@core/components/ui/loader/UiLoader.vue'
16
- import { useDisabled } from '@core/composables/disabled.composable'
16
+ import { useDisabled } from '@core/composables/disabled.composable.ts'
17
17
 
18
18
  const { busy, disabled } = defineProps<{
19
19
  disabled?: boolean
@@ -6,8 +6,8 @@
6
6
  </template>
7
7
 
8
8
  <script lang="ts" setup>
9
- import type { TooltipOptions } from '@core/stores/tooltip.store'
10
- import { hasEllipsis } from '@core/utils/has-ellipsis.util'
9
+ import type { TooltipOptions } from '@core/stores/tooltip.store.ts'
10
+ import { hasEllipsis } from '@core/utils/has-ellipsis.util.ts'
11
11
  import { isString } from 'lodash-es'
12
12
  import place from 'placement.js'
13
13
  import { computed, ref, watch, watchEffect } from 'vue'
@@ -41,9 +41,13 @@
41
41
  import VtsIcon from '@core/components/icon/VtsIcon.vue'
42
42
  import VtsTreeLine from '@core/components/tree/VtsTreeLine.vue'
43
43
  import UiButtonIcon from '@core/components/ui/button-icon/UiButtonIcon.vue'
44
- import { vTooltip } from '@core/directives/tooltip.directive'
44
+ import { vTooltip } from '@core/directives/tooltip.directive.ts'
45
45
  import type { IconName } from '@core/icons'
46
- import { IK_TREE_ITEM_EXPANDED, IK_TREE_ITEM_HAS_CHILDREN, IK_TREE_LIST_DEPTH } from '@core/utils/injection-keys.util'
46
+ import {
47
+ IK_TREE_ITEM_EXPANDED,
48
+ IK_TREE_ITEM_HAS_CHILDREN,
49
+ IK_TREE_LIST_DEPTH,
50
+ } from '@core/utils/injection-keys.util.ts'
47
51
  import { inject, ref, useAttrs } from 'vue'
48
52
  import { useI18n } from 'vue-i18n'
49
53
  import type { RouteLocationRaw } from 'vue-router'
@@ -12,7 +12,7 @@
12
12
 
13
13
  <script lang="ts" setup>
14
14
  import UiUserLogo from '@core/components/ui/user-logo/UiUserLogo.vue'
15
- import { toVariants } from '@core/utils/to-variants.util'
15
+ import { toVariants } from '@core/utils/to-variants.util.ts'
16
16
  import { type RouteLocationRaw } from 'vue-router'
17
17
 
18
18
  defineProps<{
@@ -4,7 +4,7 @@
4
4
  </template>
5
5
 
6
6
  <script lang="ts" setup>
7
- import { toVariants } from '@core/utils/to-variants.util'
7
+ import { toVariants } from '@core/utils/to-variants.util.ts'
8
8
 
9
9
  export type UserLogoSize = 'extra-small' | 'small' | 'medium'
10
10
 
@@ -1,26 +1,26 @@
1
1
  <template>
2
- <VtsModal accent="info" icon="status:info-picto" dismissible>
2
+ <UiModal accent="info" icon="status:info-picto" @confirm="emit('confirm')" @dismiss="emit('cancel')">
3
3
  <template #title>
4
4
  {{ connection.title }}
5
5
  </template>
6
6
 
7
- <template v-if="action === CONNECTION_ACTION.DISCONNECT" #content>
8
- {{ t('vif-disconnect-info') }}
7
+ <template #content>
8
+ <template v-if="action === CONNECTION_ACTION.DISCONNECT">{{ t('vif-disconnect-info') }}</template>
9
9
  </template>
10
10
 
11
11
  <template #buttons>
12
- <VtsModalCancelButton>{{ t('action:go-back') }}</VtsModalCancelButton>
13
- <VtsModalConfirmButton>
12
+ <VtsOverlayCancelButton @click="emit('cancel')">{{ t('action:go-back') }}</VtsOverlayCancelButton>
13
+ <VtsOverlayConfirmButton>
14
14
  {{ connection.action }}
15
- </VtsModalConfirmButton>
15
+ </VtsOverlayConfirmButton>
16
16
  </template>
17
- </VtsModal>
17
+ </UiModal>
18
18
  </template>
19
19
 
20
20
  <script lang="ts" setup>
21
- import VtsModal from '@core/components/modal/VtsModal.vue'
22
- import VtsModalCancelButton from '@core/components/modal/VtsModalCancelButton.vue'
23
- import VtsModalConfirmButton from '@core/components/modal/VtsModalConfirmButton.vue'
21
+ import VtsOverlayCancelButton from '@core/components/overlay/VtsOverlayCancelButton.vue'
22
+ import VtsOverlayConfirmButton from '@core/components/overlay/VtsOverlayConfirmButton.vue'
23
+ import UiModal from '@core/components/ui/modal/UiModal.vue'
24
24
  import { useMapper } from '@core/packages/mapper'
25
25
  import { CONNECTION_ACTION, type ConnectionAction } from '@core/types/connection.ts'
26
26
  import { useI18n } from 'vue-i18n'
@@ -30,6 +30,11 @@ const { action, count } = defineProps<{
30
30
  count: number
31
31
  }>()
32
32
 
33
+ const emit = defineEmits<{
34
+ confirm: []
35
+ cancel: []
36
+ }>()
37
+
33
38
  const { t } = useI18n()
34
39
 
35
40
  const connection = useMapper(
@@ -1,4 +1,4 @@
1
- import { useUiStore } from '@core/stores/ui.store'
1
+ import { useUiStore } from '@core/stores/ui.store.ts'
2
2
  import { storeToRefs, type Pinia } from 'pinia'
3
3
  import { computed, provide, ref, watch } from 'vue'
4
4
  import { THEME_KEY } from 'vue-echarts'
@@ -1,4 +1,4 @@
1
- import { toComputed } from '@core/utils/to-computed.util'
1
+ import { toComputed } from '@core/utils/to-computed.util.ts'
2
2
  import type { ComputedRef, InjectionKey, MaybeRefOrGetter } from 'vue'
3
3
  import { inject, provide, toValue } from 'vue'
4
4
 
@@ -21,7 +21,7 @@ export function useDefaultTab(dispatcherRouteName: RouteRecordName & string, def
21
21
  if (name === dispatcherRouteName) {
22
22
  const isSameDispatcher = localStorage.getItem(TAB_MEMORY_DISPATCHER) === dispatcherRouteName
23
23
  const tabName = (isSameDispatcher ? localStorage.getItem(TAB_MEMORY_LAST) : null) ?? defaultTab
24
- void router.replace({ name: `${dispatcherRouteName}/${tabName}` } as RouteLocationRaw)
24
+ void router.replace({ name: `${dispatcherRouteName}/${tabName}`, query: route.query } as RouteLocationRaw)
25
25
  } else if (!name.startsWith(dispatcherRouteName)) {
26
26
  return
27
27
  }
@@ -1,4 +1,4 @@
1
- import { IK_DISABLED } from '@core/utils/injection-keys.util'
1
+ import { IK_DISABLED } from '@core/utils/injection-keys.util.ts'
2
2
  import { computed, inject, type MaybeRefOrGetter, provide, toValue } from 'vue'
3
3
 
4
4
  export function useDisabled(condition?: MaybeRefOrGetter<boolean>) {
@@ -1,4 +1,4 @@
1
- import { useRouteQuery } from '@core/composables/route-query.composable'
1
+ import { useRouteQuery } from '@core/composables/route-query.composable.ts'
2
2
 
3
3
  export function useHideRouteQuery(id: string) {
4
4
  return useRouteQuery(id, {
@@ -1,4 +1,4 @@
1
- import { toComputed } from '@core/utils/to-computed.util'
1
+ import { toComputed } from '@core/utils/to-computed.util.ts'
2
2
  import type { MaybeRefOrGetter } from 'vue'
3
3
  import { computed } from 'vue'
4
4
  import type { RouteLocationAsPathGeneric, RouteLocationAsRelativeGeneric, RouteLocationAsString } from 'vue-router'
@@ -0,0 +1,11 @@
1
+ import { useOverlay } from '@core/packages/overlay/use-overlay.ts'
2
+
3
+ export function useActionModal() {
4
+ return useOverlay({
5
+ component: () => import('@core/components/modal/VtsActionModal.vue'),
6
+ events: {
7
+ onConfirm: true,
8
+ onCancel: true,
9
+ },
10
+ })
11
+ }
@@ -0,0 +1,10 @@
1
+ import { useOverlay } from '@core/packages/overlay/use-overlay.ts'
2
+
3
+ export function useBlockedModal() {
4
+ return useOverlay({
5
+ component: () => import('@core/components/modal/VtsBlockedModal.vue'),
6
+ events: {
7
+ onClose: true,
8
+ },
9
+ })
10
+ }
@@ -0,0 +1,11 @@
1
+ import { useOverlay } from '@core/packages/overlay/use-overlay.ts'
2
+
3
+ export function useDeleteModal() {
4
+ return useOverlay({
5
+ component: () => import('@core/components/modal/VtsDeleteModal.vue'),
6
+ events: {
7
+ onConfirm: true,
8
+ onCancel: true,
9
+ },
10
+ })
11
+ }
@@ -1,7 +1,7 @@
1
1
  import type { TablePaginationSize } from '@core/components/ui/table-pagination/UiTablePagination.vue'
2
- import { useRouteQuery } from '@core/composables/route-query.composable'
2
+ import { useRouteQuery } from '@core/composables/route-query.composable.ts'
3
3
  import { useUiStore } from '@core/stores/ui.store.ts'
4
- import { toComputed } from '@core/utils/to-computed.util'
4
+ import { toComputed } from '@core/utils/to-computed.util.ts'
5
5
  import { clamp, useLocalStorage } from '@vueuse/core'
6
6
  import { computed, type MaybeRefOrGetter } from 'vue'
7
7
 
@@ -1,4 +1,4 @@
1
- import type { EmptyObject } from '@core/types/utility.type'
1
+ import type { EmptyObject } from '@core/types/utility.type.ts'
2
2
  import type { WritableComputedRef } from 'vue'
3
3
 
4
4
  export type Options = {
@@ -1,8 +1,8 @@
1
- import { handleAdd } from '@core/composables/route-query/actions/handle-add'
2
- import { handleDelete } from '@core/composables/route-query/actions/handle-delete'
3
- import { handleSet } from '@core/composables/route-query/actions/handle-set'
4
- import { handleToggle } from '@core/composables/route-query/actions/handle-toggle'
5
- import type { Actions, Options, RouteQuery, Transformers } from '@core/composables/route-query/types'
1
+ import { handleAdd } from '@core/composables/route-query/actions/handle-add.ts'
2
+ import { handleDelete } from '@core/composables/route-query/actions/handle-delete.ts'
3
+ import { handleSet } from '@core/composables/route-query/actions/handle-set.ts'
4
+ import { handleToggle } from '@core/composables/route-query/actions/handle-toggle.ts'
5
+ import type { Actions, Options, RouteQuery, Transformers } from '@core/composables/route-query/types.ts'
6
6
  import { extendRef } from '@vueuse/core'
7
7
  import { computed } from 'vue'
8
8
  import { useRoute, useRouter } from 'vue-router'
@@ -1,4 +1,4 @@
1
- import { useRouteQuery } from '@core/composables/route-query.composable'
1
+ import { useRouteQuery } from '@core/composables/route-query.composable.ts'
2
2
 
3
3
  export function useSortRouteQuery(id: string) {
4
4
  return useRouteQuery(id, {
@@ -1,4 +1,4 @@
1
- import type { Tab, TabList } from '@core/types/tab.type'
1
+ import type { Tab, TabList } from '@core/types/tab.type.ts'
2
2
  import { computed, type MaybeRefOrGetter, type Ref, toRef } from 'vue'
3
3
 
4
4
  export function useTabList<TName extends string>(names: TName[], initialTab?: MaybeRefOrGetter<TName>) {
@@ -1,4 +1,4 @@
1
- import type { BaseDefinition, ColumnOptions } from '@core/composables/table/type'
1
+ import type { BaseDefinition, ColumnOptions } from '@core/composables/table/type.ts'
2
2
 
3
3
  export function createBaseDefinition<TId extends string, TRecord>(
4
4
  columnId: TId,
@@ -1,9 +1,9 @@
1
- import type { HideRouteQuery } from '@core/composables/hide-route-query.composable'
2
- import type { SortRouteQuery } from '@core/composables/sort-route-query.composable'
3
- import { createBaseDefinition } from '@core/composables/table/create-base-definition'
4
- import { createSortingDefinition } from '@core/composables/table/create-sorting-definition'
5
- import { createVisibilityDefinition } from '@core/composables/table/create-visibility-definition'
6
- import type { ColumnDefinition, ColumnOptions, DefineColumn } from '@core/composables/table/type'
1
+ import type { HideRouteQuery } from '@core/composables/hide-route-query.composable.ts'
2
+ import type { SortRouteQuery } from '@core/composables/sort-route-query.composable.ts'
3
+ import { createBaseDefinition } from '@core/composables/table/create-base-definition.ts'
4
+ import { createSortingDefinition } from '@core/composables/table/create-sorting-definition.ts'
5
+ import { createVisibilityDefinition } from '@core/composables/table/create-visibility-definition.ts'
6
+ import type { ColumnDefinition, ColumnOptions, DefineColumn } from '@core/composables/table/type.ts'
7
7
  import { reactive } from 'vue'
8
8
 
9
9
  export function createDefineColumn<TRecord>(
@@ -1,5 +1,5 @@
1
- import type { SortRouteQuery } from '@core/composables/sort-route-query.composable'
2
- import type { CompareFn, SortingDefinition } from '@core/composables/table/type'
1
+ import type { SortRouteQuery } from '@core/composables/sort-route-query.composable.ts'
2
+ import type { CompareFn, SortingDefinition } from '@core/composables/table/type.ts'
3
3
  import { computed } from 'vue'
4
4
 
5
5
  export function createSortingDefinition<TCompareReturn extends number | unknown>(
@@ -1,5 +1,5 @@
1
- import type { HideRouteQuery } from '@core/composables/hide-route-query.composable'
2
- import type { VisibilityDefinition } from '@core/composables/table/type'
1
+ import type { HideRouteQuery } from '@core/composables/hide-route-query.composable.ts'
2
+ import type { VisibilityDefinition } from '@core/composables/table/type.ts'
3
3
  import { computed } from 'vue'
4
4
 
5
5
  export function createVisibilityDefinition<THideable extends boolean | undefined>(
@@ -1,4 +1,4 @@
1
- import type { StringKeyOf } from '@core/types/utility.type'
1
+ import type { StringKeyOf } from '@core/types/utility.type.ts'
2
2
  import type { ComputedRef, UnwrapRef } from 'vue'
3
3
 
4
4
  export type CompareFn<TValue, TCompareReturn> = (a: TValue, b: TValue) => TCompareReturn
@@ -1,7 +1,7 @@
1
- import { useHideRouteQuery } from '@core/composables/hide-route-query.composable'
2
- import { useSortRouteQuery } from '@core/composables/sort-route-query.composable'
3
- import { createDefineColumn } from '@core/composables/table/create-define-column'
4
- import type { ColumnDefinition, Table, TableOptions } from '@core/composables/table/type'
1
+ import { useHideRouteQuery } from '@core/composables/hide-route-query.composable.ts'
2
+ import { useSortRouteQuery } from '@core/composables/sort-route-query.composable.ts'
3
+ import { createDefineColumn } from '@core/composables/table/create-define-column.ts'
4
+ import type { ColumnDefinition, Table, TableOptions } from '@core/composables/table/type.ts'
5
5
  import type { MaybeRefOrGetter } from 'vue'
6
6
  import { computed, reactive, toValue } from 'vue'
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { useDebouncedRef } from '@core/composables/debounced-ref.composable.ts'
2
- import type { TreeNodeBase } from '@core/packages/tree/tree-node-base'
2
+ import type { TreeNodeBase } from '@core/packages/tree/tree-node-base.ts'
3
3
  import { whenever } from '@vueuse/shared'
4
4
  import { computed } from 'vue'
5
5
 
@@ -1,5 +1,5 @@
1
- import type { TooltipEvents, TooltipOptions } from '@core/stores/tooltip.store'
2
- import { useTooltipStore } from '@core/stores/tooltip.store'
1
+ import type { TooltipEvents, TooltipOptions } from '@core/stores/tooltip.store.ts'
2
+ import { useTooltipStore } from '@core/stores/tooltip.store.ts'
3
3
  import { isObject } from 'lodash-es'
4
4
  import type { Options } from 'placement.js'
5
5
  import type { Directive } from 'vue'
@@ -1,6 +1,6 @@
1
1
  import { defineIconPack, ICON_SYMBOL } from '@core/packages/icon'
2
2
  import { actionIcons } from './action-icons.ts'
3
- import { faIcons } from './fa-icons'
3
+ import { faIcons } from './fa-icons.ts'
4
4
  import { objectIcons } from './object-icons.ts'
5
5
  import { statusIcons } from './status-icons.ts'
6
6
  import { tableIcons } from './table-icons.ts'
@@ -240,8 +240,6 @@
240
240
  "check-errors:": "Zkontrolujte chyby:",
241
241
  "check-summing": "Kontrolní součty odesílání",
242
242
  "checkpoint-snapshot": "Zachycený stav – kontrolní bod",
243
- "choose-network": "Zvolte síť",
244
- "choose-vif": "Zvolte virt. síťové rozhraní",
245
243
  "click-to-display-alarms:": "Kliknutím zobrazíte výstrahy:",
246
244
  "click-to-return-default-pool": "Kliknutím sem se vrátíte na výchozí fond",
247
245
  "cloud-config": "Cloud config",
@@ -913,11 +911,9 @@
913
911
  "runs": "Běhy",
914
912
  "s3-backup-repository": "S3 repozitář záloh",
915
913
  "scan-pifs": "Skenovat fyzická rozhraní",
916
- "scan-pifs-in-xo-5": "@:scan-pifs v XO-5",
917
914
  "schedule": "Plán",
918
915
  "schedules": "Plány",
919
916
  "secure-boot": "Secure boot",
920
- "security": "Zabezpečení",
921
917
  "see-details": "Viz podrobnosti",
922
918
  "select-compression": "Vyberte kompresi",
923
919
  "select-destination-host": "Vyberte cílového hostitele",
@@ -791,11 +791,9 @@
791
791
  "runs": "Läufe",
792
792
  "s3-backup-repository": "S3-Backupdepot",
793
793
  "scan-pifs": "PIFs scannen",
794
- "scan-pifs-in-xo-5": "@:scan-pifs in XO-5",
795
794
  "schedule": "Zeitplan",
796
795
  "schedules": "Zeitpläne",
797
796
  "secure-boot": "Secure Boot",
798
- "security": "Sicherheit",
799
797
  "see-details": "Details anzeigen",
800
798
  "select-compression": "Kompression auswählen",
801
799
  "select-destination-host": "Zielhost auswählen",