bfg-common 1.5.310 → 1.5.311

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 (128) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/collapse/CollapseNavItem.vue +226 -226
  9. package/components/atoms/nav/NavBar.vue +147 -147
  10. package/components/atoms/perPage/PerPage.vue +58 -58
  11. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  12. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  13. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  14. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  15. package/components/common/accordion/Recursion.vue +225 -225
  16. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  17. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
  18. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  19. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/context/lib/models/interfaces.ts +33 -33
  22. package/components/common/diagramMain/DiagramMain.vue +897 -897
  23. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  24. package/components/common/diagramMain/network/Network.vue +141 -141
  25. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  27. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  28. package/components/common/pages/home/headline/Headline.vue +45 -45
  29. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  30. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  31. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  32. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  33. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  34. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  35. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  36. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  37. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  38. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  39. package/components/common/pages/packages/Packages.vue +208 -208
  40. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  41. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  42. package/components/common/recursionTree/RecursionTree.vue +223 -223
  43. package/components/common/select/button/ButtonDropdown.vue +112 -112
  44. package/components/common/spiceConsole/Drawer.vue +377 -377
  45. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  46. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  47. package/components/common/tools/Actions.vue +207 -207
  48. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  49. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  50. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  51. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  52. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +152 -152
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +128 -128
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +111 -111
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +83 -83
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +154 -154
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  97. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  98. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  99. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  100. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  101. package/components/common/vm/actions/common/select/name/Name.vue +174 -174
  102. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  103. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  104. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  105. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  106. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  107. package/components/common/vmt/actions/add/Add.vue +641 -641
  108. package/components/common/vmt/actions/add/lib/config/steps.ts +107 -107
  109. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  110. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +104 -104
  111. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +467 -467
  112. package/components/common/wizards/vm/migrate/Migrate.vue +349 -349
  113. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  114. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  115. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  116. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  117. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  118. package/composables/productNameLocal.ts +30 -30
  119. package/composables/useAppVersion.ts +21 -21
  120. package/package.json +1 -1
  121. package/plugins/date.ts +233 -233
  122. package/plugins/panelStates.ts +70 -70
  123. package/plugins/text.ts +59 -59
  124. package/public/spice-console/lib/images/bitmap.js +203 -203
  125. package/public/spice-console/network/spicechannel.js +387 -387
  126. package/store/main/mutations.ts +7 -7
  127. package/store/main/state.ts +7 -7
  128. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,147 +1,147 @@
1
- <template>
2
- <nav :id="id" :class="['nav', { 'not-collapse': notCollapse }]">
3
- <ul>
4
- <li
5
- v-for="(item, key) in props.items"
6
- :key="key"
7
- v-permission="item.permission"
8
- class="nav-item"
9
- >
10
- <atoms-collapse-nav-item
11
- :is-link="props.isLink"
12
- :item="item"
13
- :value="props.modelValue"
14
- :title="item.title"
15
- btn-class="btn btn-link nav-link"
16
- @change="change"
17
- />
18
- </li>
19
- <atoms-collapse-nav
20
- v-show="collapsedItems.length && !notCollapse"
21
- :test-id="`${props.testId}-container`"
22
- :items="collapsedItems"
23
- :is-link="props.isLink"
24
- :value="props.modelValue"
25
- @change="change"
26
- />
27
- </ul>
28
- </nav>
29
- </template>
30
-
31
- <script setup lang="ts">
32
- import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
33
-
34
- const props = withDefaults(
35
- defineProps<{
36
- items: UI_I_CollapseNavItem[]
37
- testId?: string
38
- modelValue?: number | string
39
- isLink?: boolean
40
- notCollapse?: boolean
41
- }>(),
42
- { testId: 'ui-nav-bar' }
43
- )
44
- const emits = defineEmits<{
45
- (event: 'update:model-value', value: number): void
46
- (event: 'change', value: number): void
47
- }>()
48
-
49
- const change = (value: number): void => {
50
- emits('update:model-value', value)
51
- emits('change', value)
52
- }
53
-
54
- const visibleCount = ref<number>(props.items.length)
55
- const collapsedItems = computed<UI_I_CollapseNavItem[]>(() => {
56
- return props.items.filter((_, index) => {
57
- return index >= visibleCount.value
58
- })
59
- })
60
-
61
- let triggerElementWidth = 0
62
- const setTriggerElementWidth = (): void => {
63
- if (!id.value || !props.testId) return
64
-
65
- const element = document.querySelector(
66
- `#${id.value} #${props.testId}-container`
67
- )
68
- triggerElementWidth =
69
- element && element?.style?.display !== 'none'
70
- ? element.getBoundingClientRect().width
71
- : 0
72
- }
73
-
74
- const spaceForCollapseBtn = ref<number>(60)
75
-
76
- let outputSize = (): void => {
77
- const el = document.getElementById(id.value)
78
- if (!el) return
79
-
80
- const elWidth = el.clientWidth
81
- const elItems = el.children[0].children
82
-
83
- setTriggerElementWidth()
84
- const elItemsMarginLeft = parseInt(getComputedStyle(elItems[0]).marginLeft)
85
- const elItemsMarginRight = parseInt(getComputedStyle(elItems[0]).marginRight)
86
- const childrenMarginY = elItemsMarginLeft + elItemsMarginRight
87
-
88
- let childrenWidth = spaceForCollapseBtn.value
89
- let count = 0
90
- for (let i = 0; i < elItems.length; i++) {
91
- childrenWidth += elItems[i].clientWidth + childrenMarginY
92
- const isWrap = elWidth - triggerElementWidth < childrenWidth
93
-
94
- if (isWrap) break
95
- count++
96
- }
97
-
98
- visibleCount.value = count
99
-
100
- const element = document.querySelector(`#${id.value} ul`)
101
- if (element) {
102
- element.style.paddingRight =
103
- collapsedItems.value.length && !props.notCollapse
104
- ? `${spaceForCollapseBtn.value}px`
105
- : ''
106
- }
107
- }
108
- outputSize = useThrottle(outputSize)
109
-
110
- const id = ref<string>('')
111
- const setResizeObserve = (): void => {
112
- const el = document.getElementById(id.value)
113
-
114
- if (!el) {
115
- setTimeout(setResizeObserve, 0)
116
- return
117
- }
118
-
119
- new ResizeObserver(outputSize).observe(el)
120
- }
121
- onMounted(() => {
122
- setTriggerElementWidth()
123
- setResizeObserve()
124
- id.value = `nav-bar${useUniqueId()}`
125
- })
126
- </script>
127
-
128
- <style scoped lang="scss">
129
- .nav {
130
- box-shadow: inset 0 -0.05rem 0 var(--nav-panel-border-color);
131
- align-items: flex-start;
132
-
133
- &.not-collapse {
134
- ul {
135
- flex-wrap: nowrap;
136
- }
137
- }
138
-
139
- ul {
140
- position: relative;
141
- height: 36px;
142
- overflow: hidden;
143
- display: flex;
144
- flex-wrap: wrap;
145
- }
146
- }
147
- </style>
1
+ <template>
2
+ <nav :id="id" :class="['nav', { 'not-collapse': notCollapse }]">
3
+ <ul>
4
+ <li
5
+ v-for="(item, key) in props.items"
6
+ :key="key"
7
+ v-permission="item.permission"
8
+ class="nav-item"
9
+ >
10
+ <atoms-collapse-nav-item
11
+ :is-link="props.isLink"
12
+ :item="item"
13
+ :value="props.modelValue"
14
+ :title="item.title"
15
+ btn-class="btn btn-link nav-link"
16
+ @change="change"
17
+ />
18
+ </li>
19
+ <atoms-collapse-nav
20
+ v-show="collapsedItems.length && !notCollapse"
21
+ :test-id="`${props.testId}-container`"
22
+ :items="collapsedItems"
23
+ :is-link="props.isLink"
24
+ :value="props.modelValue"
25
+ @change="change"
26
+ />
27
+ </ul>
28
+ </nav>
29
+ </template>
30
+
31
+ <script setup lang="ts">
32
+ import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
33
+
34
+ const props = withDefaults(
35
+ defineProps<{
36
+ items: UI_I_CollapseNavItem[]
37
+ testId?: string
38
+ modelValue?: number | string
39
+ isLink?: boolean
40
+ notCollapse?: boolean
41
+ }>(),
42
+ { testId: 'ui-nav-bar' }
43
+ )
44
+ const emits = defineEmits<{
45
+ (event: 'update:model-value', value: number): void
46
+ (event: 'change', value: number): void
47
+ }>()
48
+
49
+ const change = (value: number): void => {
50
+ emits('update:model-value', value)
51
+ emits('change', value)
52
+ }
53
+
54
+ const visibleCount = ref<number>(props.items.length)
55
+ const collapsedItems = computed<UI_I_CollapseNavItem[]>(() => {
56
+ return props.items.filter((_, index) => {
57
+ return index >= visibleCount.value
58
+ })
59
+ })
60
+
61
+ let triggerElementWidth = 0
62
+ const setTriggerElementWidth = (): void => {
63
+ if (!id.value || !props.testId) return
64
+
65
+ const element = document.querySelector(
66
+ `#${id.value} #${props.testId}-container`
67
+ )
68
+ triggerElementWidth =
69
+ element && element?.style?.display !== 'none'
70
+ ? element.getBoundingClientRect().width
71
+ : 0
72
+ }
73
+
74
+ const spaceForCollapseBtn = ref<number>(60)
75
+
76
+ let outputSize = (): void => {
77
+ const el = document.getElementById(id.value)
78
+ if (!el) return
79
+
80
+ const elWidth = el.clientWidth
81
+ const elItems = el.children[0].children
82
+
83
+ setTriggerElementWidth()
84
+ const elItemsMarginLeft = parseInt(getComputedStyle(elItems[0]).marginLeft)
85
+ const elItemsMarginRight = parseInt(getComputedStyle(elItems[0]).marginRight)
86
+ const childrenMarginY = elItemsMarginLeft + elItemsMarginRight
87
+
88
+ let childrenWidth = spaceForCollapseBtn.value
89
+ let count = 0
90
+ for (let i = 0; i < elItems.length; i++) {
91
+ childrenWidth += elItems[i].clientWidth + childrenMarginY
92
+ const isWrap = elWidth - triggerElementWidth < childrenWidth
93
+
94
+ if (isWrap) break
95
+ count++
96
+ }
97
+
98
+ visibleCount.value = count
99
+
100
+ const element = document.querySelector(`#${id.value} ul`)
101
+ if (element) {
102
+ element.style.paddingRight =
103
+ collapsedItems.value.length && !props.notCollapse
104
+ ? `${spaceForCollapseBtn.value}px`
105
+ : ''
106
+ }
107
+ }
108
+ outputSize = useThrottle(outputSize)
109
+
110
+ const id = ref<string>('')
111
+ const setResizeObserve = (): void => {
112
+ const el = document.getElementById(id.value)
113
+
114
+ if (!el) {
115
+ setTimeout(setResizeObserve, 0)
116
+ return
117
+ }
118
+
119
+ new ResizeObserver(outputSize).observe(el)
120
+ }
121
+ onMounted(() => {
122
+ setTriggerElementWidth()
123
+ setResizeObserve()
124
+ id.value = `nav-bar${useUniqueId()}`
125
+ })
126
+ </script>
127
+
128
+ <style scoped lang="scss">
129
+ .nav {
130
+ box-shadow: inset 0 -0.05rem 0 var(--nav-panel-border-color);
131
+ align-items: flex-start;
132
+
133
+ &.not-collapse {
134
+ ul {
135
+ flex-wrap: nowrap;
136
+ }
137
+ }
138
+
139
+ ul {
140
+ position: relative;
141
+ height: 36px;
142
+ overflow: hidden;
143
+ display: flex;
144
+ flex-wrap: wrap;
145
+ }
146
+ }
147
+ </style>
@@ -1,58 +1,58 @@
1
- <template>
2
- <div class="page-size">
3
- {{ selectLabel }}
4
-
5
- <div class="clr-select-wrapper">
6
- <select
7
- :id="`${props.testId}-select`"
8
- v-development="props.development"
9
- :data-id="`${props.testId}-select`"
10
- :value="props.pageSize"
11
- class="clr-page-size-select"
12
- @change="change"
13
- >
14
- <option
15
- v-for="(item, key) in props.options"
16
- :key="key"
17
- :value="item.value"
18
- >
19
- {{ item.text }}
20
- </option>
21
- </select>
22
- </div>
23
- </div>
24
- </template>
25
-
26
- <script setup lang="ts">
27
- import type { UI_I_Localization } from '~/lib/models/interfaces'
28
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
29
-
30
- const props = withDefaults(
31
- defineProps<{
32
- pageSize: number
33
- options: UI_I_OptionItem[]
34
- label?: string
35
- testId?: string
36
- development?: boolean
37
- }>(),
38
- {
39
- testId: 'ui-per-page',
40
- label: 'itemsPerPage',
41
- development: false,
42
- }
43
- )
44
- const emits = defineEmits<{
45
- (event: 'change', value: number): void
46
- }>()
47
-
48
- const localization = computed<UI_I_Localization>(() => useLocal())
49
- const selectLabel = computed<string>(
50
- () => localization.value.common[props.label]
51
- )
52
-
53
- const change = (event: InputEvent): void => {
54
- emits('change', +(event.target as HTMLInputElement).value)
55
- }
56
- </script>
57
-
58
- <style scoped></style>
1
+ <template>
2
+ <div class="page-size">
3
+ {{ selectLabel }}
4
+
5
+ <div class="clr-select-wrapper">
6
+ <select
7
+ :id="`${props.testId}-select`"
8
+ v-development="props.development"
9
+ :data-id="`${props.testId}-select`"
10
+ :value="props.pageSize"
11
+ class="clr-page-size-select"
12
+ @change="change"
13
+ >
14
+ <option
15
+ v-for="(item, key) in props.options"
16
+ :key="key"
17
+ :value="item.value"
18
+ >
19
+ {{ item.text }}
20
+ </option>
21
+ </select>
22
+ </div>
23
+ </div>
24
+ </template>
25
+
26
+ <script setup lang="ts">
27
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
28
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
29
+
30
+ const props = withDefaults(
31
+ defineProps<{
32
+ pageSize: number
33
+ options: UI_I_OptionItem[]
34
+ label?: string
35
+ testId?: string
36
+ development?: boolean
37
+ }>(),
38
+ {
39
+ testId: 'ui-per-page',
40
+ label: 'itemsPerPage',
41
+ development: false,
42
+ }
43
+ )
44
+ const emits = defineEmits<{
45
+ (event: 'change', value: number): void
46
+ }>()
47
+
48
+ const localization = computed<UI_I_Localization>(() => useLocal())
49
+ const selectLabel = computed<string>(
50
+ () => localization.value.common[props.label]
51
+ )
52
+
53
+ const change = (event: InputEvent): void => {
54
+ emits('change', +(event.target as HTMLInputElement).value)
55
+ }
56
+ </script>
57
+
58
+ <style scoped></style>