bfg-common 1.2.44 → 1.2.45

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 (80) hide show
  1. package/components/atoms/alert/Notification.vue +167 -167
  2. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  3. package/components/atoms/datepicker/Datepicker.vue +612 -612
  4. package/components/atoms/list/SelectList.vue +62 -62
  5. package/components/atoms/nav/NavBar.vue +116 -116
  6. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  7. package/components/atoms/notificationBar/NotificationBar.vue +175 -175
  8. package/components/atoms/perPage/PerPage.vue +52 -52
  9. package/components/atoms/popup/SimplePopup.vue +90 -90
  10. package/components/atoms/step/VerticalStep.vue +104 -104
  11. package/components/atoms/switch/Switch.vue +107 -107
  12. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +206 -206
  13. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  14. package/components/atoms/tabs/Tabs.vue +189 -189
  15. package/components/atoms/tooltip/Signpost.vue +224 -224
  16. package/components/common/BadBrowser.vue +114 -114
  17. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  18. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  19. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  20. package/components/common/browse/Browse.vue +182 -182
  21. package/components/common/browse/blocks/Title.vue +66 -66
  22. package/components/common/diagramMain/Diagram.vue +186 -186
  23. package/components/common/diagramMain/DiagramMain.vue +986 -986
  24. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  25. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  26. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  27. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  28. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  29. package/components/common/diagramMain/network/Contents.vue +238 -238
  30. package/components/common/feedback/Buttons.vue +232 -232
  31. package/components/common/feedback/Message.vue +468 -468
  32. package/components/common/feedback/VisitPortal.vue +54 -54
  33. package/components/common/help/navbar/left/Left.vue +159 -159
  34. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  35. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  36. package/components/common/modals/Rename.vue +165 -165
  37. package/components/common/monitor/advanced/tools/Tools.vue +1 -1
  38. package/components/common/monitor/overview/filters/Filters.vue +17 -10
  39. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +29 -8
  40. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +18 -16
  41. package/components/common/perPage/PerPage.vue +51 -51
  42. package/components/common/recursionTree/RecursionTree.vue +201 -201
  43. package/components/common/vm/actions/add/config/capabilities.ts +338 -338
  44. package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +657 -657
  45. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  46. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +383 -383
  47. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  48. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  49. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  50. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  51. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  52. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  53. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  54. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  55. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  56. package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +181 -181
  57. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  58. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  59. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  60. package/components/common/vm/actions/add/select/storage/config/config.ts +154 -154
  61. package/components/common/vm/actions/clone/Clone.vue +545 -545
  62. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  63. package/components/common/vm/actions/clone/utils.ts +43 -43
  64. package/components/common/wizards/datastore/add/nfs/Nfs.vue +94 -94
  65. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +377 -377
  66. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  67. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  68. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  69. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  70. package/composables/useLocal.ts +38 -38
  71. package/minify.js +146 -146
  72. package/models/store/interfaces.ts +37 -37
  73. package/models/store/storage/interfaces.ts +32 -32
  74. package/models/store/types.ts +32 -32
  75. package/modules/fixContentBuild/utils/methods.ts +114 -114
  76. package/package.json +1 -1
  77. package/public/spice-console/application/codec.js +257 -257
  78. package/public/spice-console/lib/rasterEngine.js +907 -907
  79. package/public/spice-console/network/spicechannel.js +369 -369
  80. package/utils/contentBuild.ts +34 -34
@@ -1,165 +1,165 @@
1
- <template>
2
- <atoms-modal
3
- :test-id="`${props.testId}-rename`"
4
- width="576px"
5
- class="rename"
6
- :show="true"
7
- :title="localization.rename"
8
- :second-title="name"
9
- @submit="onRename"
10
- @hide="onHide"
11
- >
12
- <template #modalBody>
13
- <div class="rename__body">
14
- <form
15
- :id="`${props.testId}-rename-form`"
16
- class="clr-form clr-form-horizontal"
17
- @submit.prevent
18
- >
19
- <slot v-if="$slots.description" name="description"></slot>
20
-
21
- <div class="clr-row clr-error clr-form-control">
22
- <label
23
- for="rename"
24
- :class="['clr-control-label', `clr-col-md-${labelWidth}`]"
25
- >{{ labelName }}</label
26
- >
27
- <div class="clr-control-container clr-col-8">
28
- <div class="form-group__input">
29
- <input
30
- id="rename"
31
- v-model="form.name.value"
32
- type="text"
33
- :class="nameErrorText && 'clr-input'"
34
- @blur="initValidation"
35
- @input="initValidation"
36
- />
37
- <div v-show="nameErrorText" class="form-validate">
38
- <atoms-the-icon
39
- class="is-error tooltip-trigger"
40
- name="info"
41
- />
42
- </div>
43
- </div>
44
- <div
45
- v-show="nameErrorText"
46
- class="form-group__input-error clr-subtext"
47
- >
48
- {{ nameErrorText }}
49
- </div>
50
- </div>
51
- </div>
52
- </form>
53
- </div>
54
- </template>
55
- </atoms-modal>
56
- </template>
57
-
58
- <script lang="ts" setup>
59
- import { UI_I_ValidationTouchResult } from '~/models/plugins/validation/interfaces'
60
- import { UI_I_Localization } from '~/models/interfaces'
61
- import { UI_I_RenameForm } from '~/components/common/modals/models/interfaces'
62
- import { defaultFormRenameFunc } from '~/components/common/modals/config/defaultForm'
63
- import { labelWidthFunc } from '~/components/common/modals/config/renameLabelWidth'
64
-
65
- const props = withDefaults(
66
- defineProps<{
67
- testId: string
68
- name: string
69
- label?: string
70
- }>(),
71
- {
72
- label: 'enterNewName',
73
- }
74
- )
75
- const emits = defineEmits<{
76
- (event: 'hide'): void
77
- (event: 'apply-changes', value: string): void
78
- }>()
79
-
80
- const localization = computed<UI_I_Localization>(() => useLocal())
81
- const { $validation } = useNuxtApp()
82
-
83
- const validation = $validation.call({})
84
- const defaultForm: UI_I_RenameForm = defaultFormRenameFunc(
85
- localization.value,
86
- props?.name || ''
87
- )
88
- const form = ref<UI_I_RenameForm>(useDeepCopy(defaultForm))
89
-
90
- const setForm = () => {
91
- form.value = useDeepCopy(defaultForm)
92
- validation.setForm(form)
93
- }
94
- setForm()
95
-
96
- const validForm = ref<UI_I_ValidationTouchResult | null>(null)
97
-
98
- const labelName = computed<string>(() => localization.value[props.label])
99
-
100
- /* Validation for Name input */
101
- const initValidation = () => {
102
- validForm.value = validation.touch()
103
- }
104
-
105
- const nameErrorText = computed<string>(() => {
106
- return validForm.value?.errors?.name?.[0] || ''
107
- })
108
- /* Validation Name input end */
109
-
110
- const labelWidth = computed<number>(() => labelWidthFunc(labelName.value))
111
-
112
- const onRename = (): void => {
113
- const { isValid = true } = validForm?.value || {}
114
-
115
- if (!isValid) return
116
- emits('apply-changes', form.value.name.value)
117
- }
118
-
119
- const onHide = (): void => {
120
- emits('hide')
121
- }
122
- </script>
123
-
124
- <style lang="scss" scoped>
125
- @import '~/assets/scss/common/mixins.scss';
126
- .rename {
127
- &__body {
128
- @include flex($dir: column);
129
- .clr-form-control {
130
- @include flex($dir: row);
131
-
132
- .clr-control-container {
133
- min-height: 48px;
134
- }
135
- .form-group {
136
- &__input {
137
- @include flex();
138
- input {
139
- width: 100%;
140
- }
141
- .form-validate {
142
- svg {
143
- width: 24px;
144
- height: 24px;
145
- }
146
- }
147
- &-error {
148
- margin-top: 0;
149
- }
150
- }
151
- }
152
- }
153
- }
154
- :deep(.modal-content) {
155
- .modal-title {
156
- white-space: nowrap;
157
- }
158
- .secondary-title {
159
- word-break: break-all;
160
- font-size: 18px;
161
- font-weight: 300;
162
- }
163
- }
164
- }
165
- </style>
1
+ <template>
2
+ <atoms-modal
3
+ :test-id="`${props.testId}-rename`"
4
+ width="576px"
5
+ class="rename"
6
+ :show="true"
7
+ :title="localization.rename"
8
+ :second-title="name"
9
+ @submit="onRename"
10
+ @hide="onHide"
11
+ >
12
+ <template #modalBody>
13
+ <div class="rename__body">
14
+ <form
15
+ :id="`${props.testId}-rename-form`"
16
+ class="clr-form clr-form-horizontal"
17
+ @submit.prevent
18
+ >
19
+ <slot v-if="$slots.description" name="description"></slot>
20
+
21
+ <div class="clr-row clr-error clr-form-control">
22
+ <label
23
+ for="rename"
24
+ :class="['clr-control-label', `clr-col-md-${labelWidth}`]"
25
+ >{{ labelName }}</label
26
+ >
27
+ <div class="clr-control-container clr-col-8">
28
+ <div class="form-group__input">
29
+ <input
30
+ id="rename"
31
+ v-model="form.name.value"
32
+ type="text"
33
+ :class="nameErrorText && 'clr-input'"
34
+ @blur="initValidation"
35
+ @input="initValidation"
36
+ />
37
+ <div v-show="nameErrorText" class="form-validate">
38
+ <atoms-the-icon
39
+ class="is-error tooltip-trigger"
40
+ name="info"
41
+ />
42
+ </div>
43
+ </div>
44
+ <div
45
+ v-show="nameErrorText"
46
+ class="form-group__input-error clr-subtext"
47
+ >
48
+ {{ nameErrorText }}
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </form>
53
+ </div>
54
+ </template>
55
+ </atoms-modal>
56
+ </template>
57
+
58
+ <script lang="ts" setup>
59
+ import { UI_I_ValidationTouchResult } from '~/models/plugins/validation/interfaces'
60
+ import { UI_I_Localization } from '~/models/interfaces'
61
+ import { UI_I_RenameForm } from '~/components/common/modals/models/interfaces'
62
+ import { defaultFormRenameFunc } from '~/components/common/modals/config/defaultForm'
63
+ import { labelWidthFunc } from '~/components/common/modals/config/renameLabelWidth'
64
+
65
+ const props = withDefaults(
66
+ defineProps<{
67
+ testId: string
68
+ name: string
69
+ label?: string
70
+ }>(),
71
+ {
72
+ label: 'enterNewName',
73
+ }
74
+ )
75
+ const emits = defineEmits<{
76
+ (event: 'hide'): void
77
+ (event: 'apply-changes', value: string): void
78
+ }>()
79
+
80
+ const localization = computed<UI_I_Localization>(() => useLocal())
81
+ const { $validation } = useNuxtApp()
82
+
83
+ const validation = $validation.call({})
84
+ const defaultForm: UI_I_RenameForm = defaultFormRenameFunc(
85
+ localization.value,
86
+ props?.name || ''
87
+ )
88
+ const form = ref<UI_I_RenameForm>(useDeepCopy(defaultForm))
89
+
90
+ const setForm = () => {
91
+ form.value = useDeepCopy(defaultForm)
92
+ validation.setForm(form)
93
+ }
94
+ setForm()
95
+
96
+ const validForm = ref<UI_I_ValidationTouchResult | null>(null)
97
+
98
+ const labelName = computed<string>(() => localization.value[props.label])
99
+
100
+ /* Validation for Name input */
101
+ const initValidation = () => {
102
+ validForm.value = validation.touch()
103
+ }
104
+
105
+ const nameErrorText = computed<string>(() => {
106
+ return validForm.value?.errors?.name?.[0] || ''
107
+ })
108
+ /* Validation Name input end */
109
+
110
+ const labelWidth = computed<number>(() => labelWidthFunc(labelName.value))
111
+
112
+ const onRename = (): void => {
113
+ const { isValid = true } = validForm?.value || {}
114
+
115
+ if (!isValid) return
116
+ emits('apply-changes', form.value.name.value)
117
+ }
118
+
119
+ const onHide = (): void => {
120
+ emits('hide')
121
+ }
122
+ </script>
123
+
124
+ <style lang="scss" scoped>
125
+ @import '~/assets/scss/common/mixins.scss';
126
+ .rename {
127
+ &__body {
128
+ @include flex($dir: column);
129
+ .clr-form-control {
130
+ @include flex($dir: row);
131
+
132
+ .clr-control-container {
133
+ min-height: 48px;
134
+ }
135
+ .form-group {
136
+ &__input {
137
+ @include flex();
138
+ input {
139
+ width: 100%;
140
+ }
141
+ .form-validate {
142
+ svg {
143
+ width: 24px;
144
+ height: 24px;
145
+ }
146
+ }
147
+ &-error {
148
+ margin-top: 0;
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ :deep(.modal-content) {
155
+ .modal-title {
156
+ white-space: nowrap;
157
+ }
158
+ .secondary-title {
159
+ word-break: break-all;
160
+ font-size: 18px;
161
+ font-weight: 300;
162
+ }
163
+ }
164
+ }
165
+ </style>
@@ -32,7 +32,6 @@
32
32
  </div>
33
33
  <a
34
34
  id="chart-options-button"
35
- href="#"
36
35
  class="chart-options-button"
37
36
  @click="onShowChartOptions"
38
37
  >{{ localization.chartOptions }}</a
@@ -375,6 +374,7 @@ onMounted(() => {
375
374
  white-space: nowrap;
376
375
  text-transform: capitalize;
377
376
  color: var(--dropdown-item-color);
377
+ cursor: pointer;
378
378
  }
379
379
 
380
380
  .chart-action-bar {
@@ -18,12 +18,9 @@
18
18
  <span v-else class="single-option">{{ periodOptions[0].text }}</span>
19
19
  </div>
20
20
  <div v-show="isShowCustomIntervalButton">
21
- <a
22
- id="show-interval-modal-button"
23
- href="#"
24
- @click="onShowIntervalModal"
25
- >{{ localization.changeCustomInterval }}</a
26
- >
21
+ <a id="show-interval-modal-button" @click="onShowIntervalModal">{{
22
+ localization.changeCustomInterval
23
+ }}</a>
27
24
  </div>
28
25
  <div v-if="!disabledPeriodOptions" class="chart-title">
29
26
  {{ chartTitleDate }}
@@ -47,7 +44,9 @@
47
44
  </div>
48
45
 
49
46
  <common-monitor-overview-filters-custom-interval-modal
50
- v-show="isShowIntervalModal"
47
+ v-if="isShowIntervalModal"
48
+ :selected-periods="props.selectedPeriods"
49
+ :format-date="props.formatDate"
51
50
  @hide="onHideIntervalModal"
52
51
  @submit="onSubmitIntervalModal"
53
52
  />
@@ -72,12 +71,14 @@ const props = defineProps<{
72
71
  endDate: number
73
72
  chartType: 'spline' | 'pie'
74
73
  view: UI_T_OverviewViewType
75
- formatDate?: 'string'
76
- formatTime?: 'string'
74
+ selectedPeriods: number[]
75
+ formatDate: string
76
+ formatTime?: string
77
77
  }>()
78
78
 
79
79
  const emits = defineEmits<{
80
- (event: 'update-filters', filters: UI_I_MonitorGraphPayload): void
80
+ (event: 'update-filters', value: UI_I_MonitorGraphPayload): void
81
+ (event: 'update-custom-date', value: number[]): void
81
82
  }>()
82
83
 
83
84
  const selectedPeriod = ref<string>('')
@@ -107,6 +108,7 @@ const onSubmitIntervalModal = (customDates: number[]): void => {
107
108
  customDatesData.value = customDates
108
109
  sendUpdatedFilters()
109
110
  onHideIntervalModal()
111
+ emits('update-custom-date', customDates)
110
112
  }
111
113
 
112
114
  const chartTitleDate = computed<string>(() => {
@@ -197,6 +199,11 @@ watch(
197
199
  text-transform: uppercase;
198
200
  }
199
201
 
202
+ #show-interval-modal-button {
203
+ cursor: pointer;
204
+ color: var(--dropdown-item-color);
205
+ }
206
+
200
207
  .view-select-label {
201
208
  margin-left: auto;
202
209
  padding-right: 7px;
@@ -105,12 +105,18 @@ import { format } from 'date-fns'
105
105
  import { UI_I_Localization } from '~/models/interfaces'
106
106
  import { checkDateFunc } from '~/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker'
107
107
 
108
+ const props = defineProps<{
109
+ formatDate: string
110
+ selectedPeriods: number[]
111
+ }>()
112
+
108
113
  const emits = defineEmits<{
109
114
  (event: 'hide'): void
110
115
  (event: 'submit', arg1: number[]): void
111
116
  }>()
112
117
 
113
- const { $store, $formattedDate, $isDate, $getUnixByDate } = useNuxtApp()
118
+ const { $store, $formattedDate, $formattedTime, $isDate, $getUnixByDate } =
119
+ useNuxtApp()
114
120
 
115
121
  const localization = computed<UI_I_Localization>(() => useLocal())
116
122
 
@@ -132,12 +138,27 @@ const currentTimeFrom = ref<string>('')
132
138
  const currentTimeTo = ref<string>('')
133
139
 
134
140
  const getCurrentTime = (): void => {
135
- currentDateFrom.value = $formattedDate(yesterday, '')
136
- currentDateTo.value = $formattedDate(new Date(), '')
141
+ if (!props.selectedPeriods.length) {
142
+ currentDateFrom.value = $formattedDate(yesterday, props.formatDate)
143
+ currentDateTo.value = $formattedDate(new Date(), props.formatDate)
144
+
145
+ const currentTime = format(new Date(), 'H:mm:ss')
146
+ currentTimeFrom.value = currentTime
147
+ currentTimeTo.value = currentTime
148
+
149
+ return
150
+ }
137
151
 
138
- const currentTime = format(new Date(), 'H:mm:ss')
139
- currentTimeFrom.value = currentTime
140
- currentTimeTo.value = currentTime
152
+ currentDateFrom.value = $formattedDate(
153
+ props.selectedPeriods[0],
154
+ props.formatDate
155
+ )
156
+ currentDateTo.value = $formattedDate(
157
+ props.selectedPeriods[1],
158
+ props.formatDate
159
+ )
160
+ currentTimeFrom.value = $formattedTime(props.selectedPeriods[0], '', true)
161
+ currentTimeTo.value = $formattedTime(props.selectedPeriods[1], '', true)
141
162
  }
142
163
 
143
164
  const timeFormatUpdater = computed<number>(
@@ -152,7 +173,7 @@ watch(timeFormatUpdater, () => {
152
173
  const onUpdateDateFrom = (val: number): void => {
153
174
  if (!val) return
154
175
 
155
- currentDateFrom.value = $formattedDate(new Date(val), '')
176
+ currentDateFrom.value = $formattedDate(new Date(val), props.formatDate)
156
177
  }
157
178
  watch(currentDateFrom, (newValue) => {
158
179
  if (!newValue) return
@@ -163,7 +184,7 @@ watch(currentDateFrom, (newValue) => {
163
184
  const onUpdateDateTo = (val: number): void => {
164
185
  if (!val) return
165
186
 
166
- currentDateTo.value = $formattedDate(new Date(val), '')
187
+ currentDateTo.value = $formattedDate(new Date(val), props.formatDate)
167
188
  }
168
189
  watch(currentDateTo, (newValue) => {
169
190
  if (!newValue) return
@@ -7,29 +7,31 @@ export const checkDateFunc = (
7
7
  timeFrom: string,
8
8
  timeTo: string
9
9
  ): string | number[] => {
10
- const { $formattedDatetime, $isDate } = useNuxtApp()
10
+ const { $isDate, $getUnixByDate } = useNuxtApp()
11
11
 
12
12
  let result = ''
13
13
  const startDate = dateFrom + ' ' + timeFrom
14
+ const unixStartDate = $getUnixByDate(startDate)
14
15
  const endDate = dateTo + ' ' + timeTo
16
+ const unixEndDate = $getUnixByDate(endDate)
15
17
 
16
- if (!$isDate(startDate) || !$isDate(endDate) || !timeFrom || !timeTo)
18
+ if (
19
+ !$isDate(unixStartDate) ||
20
+ !$isDate(unixEndDate) ||
21
+ !timeFrom ||
22
+ !timeTo
23
+ ) {
17
24
  result = localization.invalidTimeEntry
18
- else {
19
- const endDateFormatted = $formattedDatetime(endDate, '', true)
20
- const endDateTime = new Date(endDateFormatted).getTime()
21
-
22
- const startDateFormatted = $formattedDatetime(startDate, '', true)
23
- const startDateTime = new Date(startDateFormatted).getTime()
24
-
25
- if (endDateTime > new Date().getTime())
26
- result = localization.oneOfSelectedDatesIsInTheFuture
27
- else if (endDateTime === startDateTime)
28
- result = localization.timeToShouldBeLaterTimeFrom
29
- else if (endDateTime - startDateTime <= 3600000)
30
- result = localization.timeRangeShouldNotBeSmallerThanHour
31
- else return [startDateTime, endDateTime]
25
+ return result
32
26
  }
33
27
 
28
+ if (unixEndDate > new Date().getTime())
29
+ result = localization.oneOfSelectedDatesIsInTheFuture
30
+ else if (unixEndDate === unixStartDate)
31
+ result = localization.timeToShouldBeLaterTimeFrom
32
+ else if (unixEndDate - unixStartDate <= 3600000)
33
+ result = localization.timeRangeShouldNotBeSmallerThanHour
34
+ else return [unixStartDate, unixEndDate]
35
+
34
36
  return result
35
37
  }
@@ -1,51 +1,51 @@
1
- <template>
2
- <div class="page-size">
3
- {{ selectLabel }}
4
-
5
- <div class="clr-select-wrapper">
6
- <select
7
- :id="`${props.testId}-page-size-select`"
8
- :value="props.pageSize"
9
- class="clr-page-size-select"
10
- @change="change"
11
- >
12
- <option
13
- v-for="(item, key) in props.options"
14
- :key="key"
15
- :value="item.value"
16
- >
17
- {{ item.text }}
18
- </option>
19
- </select>
20
- </div>
21
- </div>
22
- </template>
23
-
24
- <script setup lang="ts">
25
- import { UI_I_Localization } from '~/models/interfaces'
26
- import { UI_I_OptionItem } from '~/components/atoms/models/interfaces'
27
-
28
- const props = withDefaults(
29
- defineProps<{
30
- testId: string
31
- pageSize: number
32
- options: UI_I_OptionItem[]
33
- label?: string
34
- }>(),
35
- {
36
- label: 'itemsPerPage',
37
- }
38
- )
39
- const emits = defineEmits<{
40
- (event: 'change', num: number): void
41
- }>()
42
-
43
- const localization = computed<UI_I_Localization>(() => useLocal())
44
- const selectLabel = computed<string>(() => localization.value[props.label])
45
-
46
- const change = (e: InputEvent): void => {
47
- emits('change', +(e.target as HTMLInputElement).value)
48
- }
49
- </script>
50
-
51
- <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}-page-size-select`"
8
+ :value="props.pageSize"
9
+ class="clr-page-size-select"
10
+ @change="change"
11
+ >
12
+ <option
13
+ v-for="(item, key) in props.options"
14
+ :key="key"
15
+ :value="item.value"
16
+ >
17
+ {{ item.text }}
18
+ </option>
19
+ </select>
20
+ </div>
21
+ </div>
22
+ </template>
23
+
24
+ <script setup lang="ts">
25
+ import { UI_I_Localization } from '~/models/interfaces'
26
+ import { UI_I_OptionItem } from '~/components/atoms/models/interfaces'
27
+
28
+ const props = withDefaults(
29
+ defineProps<{
30
+ testId: string
31
+ pageSize: number
32
+ options: UI_I_OptionItem[]
33
+ label?: string
34
+ }>(),
35
+ {
36
+ label: 'itemsPerPage',
37
+ }
38
+ )
39
+ const emits = defineEmits<{
40
+ (event: 'change', num: number): void
41
+ }>()
42
+
43
+ const localization = computed<UI_I_Localization>(() => useLocal())
44
+ const selectLabel = computed<string>(() => localization.value[props.label])
45
+
46
+ const change = (e: InputEvent): void => {
47
+ emits('change', +(e.target as HTMLInputElement).value)
48
+ }
49
+ </script>
50
+
51
+ <style scoped></style>