@onereach/ui-components 4.9.1-beta.2907.0 → 4.10.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.
- package/dist/bundled/v2/{OrDateTimePickerPopoverHeader-6f78e8e7.js → OrDateTimePickerPopoverHeader-28995b95.js} +8 -1
- package/dist/bundled/v2/{OrDateTimePickerTimeSelect-78f775d8.js → OrDateTimePickerTimeSelect-c52ee823.js} +74 -4
- package/dist/bundled/v2/components/OrDatePickerV3/OrDatePicker.js +19 -1
- package/dist/bundled/v2/components/OrDatePickerV3/OrDatePicker.vue.d.ts +2 -0
- package/dist/bundled/v2/components/OrDatePickerV3/index.js +1 -1
- package/dist/bundled/v2/components/OrDateTimePickerV3/OrDateTimePicker.js +37 -2
- package/dist/bundled/v2/components/OrDateTimePickerV3/OrDateTimePicker.vue.d.ts +14 -1
- package/dist/bundled/v2/components/OrDateTimePickerV3/hooks/useTimePlaceholder.d.ts +1 -1
- package/dist/bundled/v2/components/OrDateTimePickerV3/hooks/useTimePlaceholder.js +2 -1
- package/dist/bundled/v2/components/OrDateTimePickerV3/index.js +3 -2
- package/dist/bundled/v2/components/OrDateTimePickerV3/props.d.ts +5 -0
- package/dist/bundled/v2/components/OrDateTimePickerV3/props.js +9 -0
- package/dist/bundled/v2/components/OrDateTimePickerV3/styles.js +1 -3
- package/dist/bundled/v2/components/OrTimePickerV3/OrTimePicker.js +25 -2
- package/dist/bundled/v2/components/OrTimePickerV3/OrTimePicker.vue.d.ts +14 -1
- package/dist/bundled/v2/components/OrTimePickerV3/index.js +3 -2
- package/dist/bundled/v2/components/OrTimePickerV3/props.d.ts +1 -0
- package/dist/bundled/v2/components/OrTimePickerV3/props.js +1 -0
- package/dist/bundled/v2/components/OrTimePickerV3/styles.js +1 -3
- package/dist/bundled/v2/components/index.d.ts +0 -1
- package/dist/bundled/v2/components/index.js +3 -3
- package/dist/bundled/v2/index.js +4 -4
- package/dist/bundled/v3/{OrDatePicker.vue_vue_type_script_lang-8ec017e2.js → OrDatePicker.vue_vue_type_script_lang-0e648149.js} +16 -1
- package/dist/bundled/v3/{OrDateTimePicker.vue_vue_type_script_lang-fec947db.js → OrDateTimePicker.vue_vue_type_script_lang-69d65518.js} +29 -2
- package/dist/bundled/v3/{OrDateTimePickerPopoverHeader-bb988d7c.js → OrDateTimePickerPopoverHeader-ec90761f.js} +8 -1
- package/dist/bundled/v3/{OrDateTimePickerTimeSelect-01a39297.js → OrDateTimePickerTimeSelect-683ab20d.js} +68 -5
- package/dist/bundled/v3/{OrTimePicker.vue_vue_type_script_lang-c737eaa8.js → OrTimePicker.vue_vue_type_script_lang-a300ab1b.js} +20 -2
- package/dist/bundled/v3/components/OrDatePickerV3/OrDatePicker.js +5 -4
- package/dist/bundled/v3/components/OrDatePickerV3/OrDatePicker.vue.d.ts +1 -0
- package/dist/bundled/v3/components/OrDatePickerV3/index.js +2 -2
- package/dist/bundled/v3/components/OrDateTimePickerV3/OrDateTimePicker.js +14 -9
- package/dist/bundled/v3/components/OrDateTimePickerV3/OrDateTimePicker.vue.d.ts +11 -1
- package/dist/bundled/v3/components/OrDateTimePickerV3/hooks/useTimePlaceholder.d.ts +1 -1
- package/dist/bundled/v3/components/OrDateTimePickerV3/hooks/useTimePlaceholder.js +2 -1
- package/dist/bundled/v3/components/OrDateTimePickerV3/index.js +4 -3
- package/dist/bundled/v3/components/OrDateTimePickerV3/props.d.ts +5 -0
- package/dist/bundled/v3/components/OrDateTimePickerV3/props.js +9 -0
- package/dist/bundled/v3/components/OrDateTimePickerV3/styles.js +1 -3
- package/dist/bundled/v3/components/OrTimePickerV3/OrTimePicker.js +12 -8
- package/dist/bundled/v3/components/OrTimePickerV3/OrTimePicker.vue.d.ts +11 -1
- package/dist/bundled/v3/components/OrTimePickerV3/index.js +4 -3
- package/dist/bundled/v3/components/OrTimePickerV3/props.d.ts +1 -0
- package/dist/bundled/v3/components/OrTimePickerV3/props.js +1 -0
- package/dist/bundled/v3/components/OrTimePickerV3/styles.js +1 -3
- package/dist/bundled/v3/components/index.d.ts +0 -1
- package/dist/bundled/v3/components/index.js +6 -6
- package/dist/bundled/v3/index.js +7 -8
- package/dist/esm/v2/{OrDatePicker-0989a40c.js → OrDatePicker-328189a2.js} +19 -2
- package/dist/esm/v2/{OrDateTimePicker-ac766f04.js → OrDateTimePicker-8bcc71c3.js} +9 -234
- package/dist/esm/v2/OrDateTimePicker.vue_rollup-plugin-vue_script-399a44b5.js +636 -0
- package/dist/esm/v2/{OrDateTimePickerMonthSelect-4eb8bfb6.js → OrDateTimePickerPopoverHeader-fa88e970.js} +263 -39
- package/dist/esm/v2/{OrTimePicker-5fd08ad2.js → OrTimePicker-a9c5547b.js} +25 -5
- package/dist/esm/v2/components/index.d.ts +0 -1
- package/dist/esm/v2/components/index.js +5 -7
- package/dist/esm/v2/components/or-date-picker-v3/OrDatePicker.vue.d.ts +2 -0
- package/dist/esm/v2/components/or-date-picker-v3/index.js +3 -4
- package/dist/esm/v2/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +14 -1
- package/dist/esm/v2/components/or-date-time-picker-v3/hooks/useTimePlaceholder.d.ts +1 -1
- package/dist/esm/v2/components/or-date-time-picker-v3/index.js +4 -5
- package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +19 -3
- package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue.d.ts +13 -0
- package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +16 -0
- package/dist/esm/v2/components/or-date-time-picker-v3/props.d.ts +5 -0
- package/dist/esm/v2/components/or-time-picker-v3/OrTimePicker.vue.d.ts +14 -1
- package/dist/esm/v2/components/or-time-picker-v3/index.js +8 -6
- package/dist/esm/v2/components/or-time-picker-v3/props.d.ts +1 -0
- package/dist/esm/v2/index.js +5 -7
- package/dist/esm/v3/{OrDatePicker-6ac8578a.js → OrDatePicker-4c4fd5dc.js} +18 -3
- package/dist/esm/v3/OrDateTimePicker-0a4d194e.js +763 -0
- package/dist/esm/v3/{OrDateTimePickerMonthSelect-f807e6d5.js → OrDateTimePickerPopoverHeader-bc8e0bcf.js} +174 -24
- package/dist/esm/v3/{OrTimePicker-d66edf77.js → OrTimePicker-67f75e85.js} +26 -8
- package/dist/esm/v3/components/index.d.ts +0 -1
- package/dist/esm/v3/components/index.js +4 -7
- package/dist/esm/v3/components/or-date-picker-v3/OrDatePicker.vue.d.ts +1 -0
- package/dist/esm/v3/components/or-date-picker-v3/index.js +3 -4
- package/dist/esm/v3/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +11 -1
- package/dist/esm/v3/components/or-date-time-picker-v3/hooks/useTimePlaceholder.d.ts +1 -1
- package/dist/esm/v3/components/or-date-time-picker-v3/index.js +2 -4
- package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +15 -3
- package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue.d.ts +11 -0
- package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +12 -0
- package/dist/esm/v3/components/or-date-time-picker-v3/props.d.ts +5 -0
- package/dist/esm/v3/components/or-time-picker-v3/OrTimePicker.vue.d.ts +11 -1
- package/dist/esm/v3/components/or-time-picker-v3/index.js +8 -6
- package/dist/esm/v3/components/or-time-picker-v3/props.d.ts +1 -0
- package/dist/esm/v3/index.js +4 -7
- package/package.json +3 -2
- package/src/components/index.ts +0 -1
- package/src/components/or-date-picker-v3/OrDatePicker.vue +20 -0
- package/src/components/or-date-time-picker-v3/OrDateTimePicker.vue +38 -1
- package/src/components/or-date-time-picker-v3/hooks/useTimePlaceholder.ts +2 -1
- package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue +8 -0
- package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue +9 -2
- package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue +87 -2
- package/src/components/or-date-time-picker-v3/props.ts +6 -0
- package/src/components/or-date-time-picker-v3/styles.ts +1 -4
- package/src/components/or-time-picker-v3/OrTimePicker.vue +25 -1
- package/src/components/or-time-picker-v3/props.ts +1 -0
- package/src/components/or-time-picker-v3/styles.ts +1 -4
- package/dist/bundled/v2/components/OrTreeV3/OrTree.js +0 -277
- package/dist/bundled/v2/components/OrTreeV3/OrTree.vue.d.ts +0 -68
- package/dist/bundled/v2/components/OrTreeV3/index.d.ts +0 -1
- package/dist/bundled/v2/components/OrTreeV3/index.js +0 -17
- package/dist/bundled/v2/components/OrTreeV3/types.d.ts +0 -7
- package/dist/bundled/v2/components/OrTreeV3/types.js +0 -1
- package/dist/bundled/v3/OrTree.vue_vue_type_script_lang-60234ac6.js +0 -179
- package/dist/bundled/v3/components/OrTreeV3/OrTree.js +0 -50
- package/dist/bundled/v3/components/OrTreeV3/OrTree.vue.d.ts +0 -54
- package/dist/bundled/v3/components/OrTreeV3/index.d.ts +0 -1
- package/dist/bundled/v3/components/OrTreeV3/index.js +0 -21
- package/dist/bundled/v3/components/OrTreeV3/types.d.ts +0 -7
- package/dist/bundled/v3/components/OrTreeV3/types.js +0 -1
- package/dist/esm/v2/OrDateTimePickerPopoverHeader-a84af34e.js +0 -222
- package/dist/esm/v2/OrDateTimePickerTimeSelect-eecdd8ab.js +0 -304
- package/dist/esm/v2/OrTree-ee993927.js +0 -266
- package/dist/esm/v2/components/or-tree-v3/OrTree.vue.d.ts +0 -68
- package/dist/esm/v2/components/or-tree-v3/index.d.ts +0 -1
- package/dist/esm/v2/components/or-tree-v3/index.js +0 -8
- package/dist/esm/v2/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue.d.ts +0 -85
- package/dist/esm/v2/components/or-tree-v3/types.d.ts +0 -7
- package/dist/esm/v3/OrDateTimePicker-b15d4198.js +0 -419
- package/dist/esm/v3/OrDateTimePickerPopoverHeader-3ae517f8.js +0 -148
- package/dist/esm/v3/OrDateTimePickerTimeSelect-14503fde.js +0 -252
- package/dist/esm/v3/OrTree-b4276dfb.js +0 -204
- package/dist/esm/v3/components/or-tree-v3/OrTree.vue.d.ts +0 -54
- package/dist/esm/v3/components/or-tree-v3/index.d.ts +0 -1
- package/dist/esm/v3/components/or-tree-v3/index.js +0 -8
- package/dist/esm/v3/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue.d.ts +0 -62
- package/dist/esm/v3/components/or-tree-v3/types.d.ts +0 -7
- package/src/components/or-tree-v3/OrTree.vue +0 -63
- package/src/components/or-tree-v3/index.ts +0 -1
- package/src/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue +0 -158
- package/src/components/or-tree-v3/types.ts +0 -7
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
export { s as OrTimePickerV3 } from '../../OrTimePicker-
|
|
1
|
+
export { s as OrTimePickerV3 } from '../../OrTimePicker-67f75e85.js';
|
|
2
|
+
export { D as TimePickerFormat } from '../../OrDateTimePicker-0a4d194e.js';
|
|
2
3
|
export { I as TimePickerSize } from '../../OrInputBox-32b37b17.js';
|
|
3
4
|
import 'vue-demi';
|
|
4
5
|
import '../../dropdown-open-e1f90e0a.js';
|
|
5
|
-
import '../../OrDateTimePickerPopoverHeader-
|
|
6
|
-
import '../../OrLabel-4da56db0.js';
|
|
6
|
+
import '../../OrDateTimePickerPopoverHeader-bc8e0bcf.js';
|
|
7
7
|
import 'vue';
|
|
8
8
|
import '../../OrButton-c2b6aa9e.js';
|
|
9
9
|
import '../../OrLoader-b79022da.js';
|
|
10
10
|
import '@vueuse/core';
|
|
11
|
-
import '../../
|
|
12
|
-
import '../../OrError-c01d0c29.js';
|
|
13
|
-
import '../../OrHint-06ab89d7.js';
|
|
11
|
+
import '../../OrLabel-4da56db0.js';
|
|
14
12
|
import '../../OrIconButton-0aaadc68.js';
|
|
15
13
|
import '../../OrIcon-62793572.js';
|
|
16
14
|
import '../../OrTooltip-3025564a.js';
|
|
@@ -24,3 +22,7 @@ import '../../useResponsive-a02e95b7.js';
|
|
|
24
22
|
import '../../OrBottomSheet-f2f3aef9.js';
|
|
25
23
|
import '../../OrOverlay-489fdf76.js';
|
|
26
24
|
import '../../OrTeleport.vue3-8099178c.js';
|
|
25
|
+
import '../../OrMenuItem-dbee450f.js';
|
|
26
|
+
import '../../OrMenu-9659b8eb.js';
|
|
27
|
+
import '../../OrError-c01d0c29.js';
|
|
28
|
+
import '../../OrHint-06ab89d7.js';
|
package/dist/esm/v3/index.js
CHANGED
|
@@ -24,9 +24,9 @@ export { s as OrCombinedInputV3 } from './OrCombinedInput-e3891038.js';
|
|
|
24
24
|
export { I as CombinedInputSize, I as DatePickerSize, I as DateTimePickerSize, I as InputBoxSize, a as InputBoxVariant, I as InputSize, s as OrInputBoxV3, I as SearchSize, I as SelectSize, I as TagInputSize, I as TextareaSize, I as TimePickerSize } from './OrInputBox-32b37b17.js';
|
|
25
25
|
export { s as OrConfirm } from './OrConfirm-704f817e.js';
|
|
26
26
|
export { C as ConfirmType, s as OrConfirmV3 } from './OrConfirm-5509c440.js';
|
|
27
|
-
export { s as OrDatePickerV3 } from './OrDatePicker-
|
|
27
|
+
export { s as OrDatePickerV3 } from './OrDatePicker-4c4fd5dc.js';
|
|
28
28
|
export { D as DEFAULT_TEXT, s as OrDateTimePicker, a as OrDateTimePickerItemTypes, O as OrDateTimePickerTypes } from './OrDateTimePicker-c19dcefc.js';
|
|
29
|
-
export { s as OrDateTimePickerV3 } from './OrDateTimePicker-
|
|
29
|
+
export { D as DateTimePickerTimeFormat, s as OrDateTimePickerV3, D as TimePickerFormat } from './OrDateTimePicker-0a4d194e.js';
|
|
30
30
|
export { E as EmptyStateSize, s as OrEmptyStateV3 } from './OrEmptyState-5349a1f9.js';
|
|
31
31
|
export { s as OrError } from './OrError-f90296db.js';
|
|
32
32
|
export { s as OrErrorTagV3 } from './OrErrorTag-ade9192b.js';
|
|
@@ -107,7 +107,7 @@ export { s as OrTextV3 } from './OrText-d54c951d.js';
|
|
|
107
107
|
export { s as OrTextarea } from './OrTextarea-31b54c7e.js';
|
|
108
108
|
export { s as OrTextareaV3 } from './OrTextarea-1e19417a.js';
|
|
109
109
|
export { s as OrTextbox, T as TextboxTypes } from './OrTextbox-8d2903db.js';
|
|
110
|
-
export { s as OrTimePickerV3 } from './OrTimePicker-
|
|
110
|
+
export { s as OrTimePickerV3 } from './OrTimePicker-67f75e85.js';
|
|
111
111
|
export { s as OrToast, a as OrToastContainer } from './OrToastContainer-72b52576.js';
|
|
112
112
|
export { P as PositionsX, b as PositionsY, c as ToastType, T as TransitionType, a as useQueue, u as useToast } from './useToast-b5ea5cb2.js';
|
|
113
113
|
export { a as OrToastContainerV3, s as OrToastV3, t as TypesV3 } from './types-53cb1e6c.js';
|
|
@@ -115,7 +115,6 @@ export { p as PropsV3, a as useQueueV3, u as useToastV3 } from './useToast-a1332
|
|
|
115
115
|
export { s as OrTooltip } from './OrTooltip-c1006713.js';
|
|
116
116
|
export { s as OrTooltipContent } from './OrTooltipContent-c0042844.js';
|
|
117
117
|
export { s as OrTooltipV3 } from './OrTooltip-3025564a.js';
|
|
118
|
-
export { s as OrTreeV3 } from './OrTree-b4276dfb.js';
|
|
119
118
|
export { D as DropdownClose, a as DropdownOpen } from './dropdown-open-e1f90e0a.js';
|
|
120
119
|
export { u as useControlAttributes, a as useIdAttribute } from './useIdAttribute-859439f0.js';
|
|
121
120
|
export { u as useElevation } from './useElevation-a50ec347.js';
|
|
@@ -150,10 +149,8 @@ import './dom-f1d55b67.js';
|
|
|
150
149
|
import 'lodash/isElement';
|
|
151
150
|
import 'lodash/get';
|
|
152
151
|
import '@vueuse/math';
|
|
153
|
-
import './OrDateTimePickerPopoverHeader-
|
|
154
|
-
import './OrDateTimePickerMonthSelect-f807e6d5.js';
|
|
152
|
+
import './OrDateTimePickerPopoverHeader-bc8e0bcf.js';
|
|
155
153
|
import 'lodash/padStart';
|
|
156
|
-
import './OrDateTimePickerTimeSelect-14503fde.js';
|
|
157
154
|
import '@floating-ui/dom';
|
|
158
155
|
import 'lodash/cloneDeep';
|
|
159
156
|
import 'lodash/isEqual';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onereach/ui-components",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.10.0",
|
|
4
4
|
"description": "Vue components library for v2/3",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/auto/index.js",
|
|
@@ -154,5 +154,6 @@
|
|
|
154
154
|
"default": "./dist/bundled/v3/components/*/index.js"
|
|
155
155
|
},
|
|
156
156
|
"./package.json": "./package.json"
|
|
157
|
-
}
|
|
157
|
+
},
|
|
158
|
+
"gitHead": "ba154bd45bae4b281e1feffed5b6ebe0e6122fae"
|
|
158
159
|
}
|
package/src/components/index.ts
CHANGED
|
@@ -65,6 +65,7 @@
|
|
|
65
65
|
/>
|
|
66
66
|
|
|
67
67
|
<OrDateTimePickerPopoverFooter
|
|
68
|
+
:disabled="isInvalidDraftModelValue"
|
|
68
69
|
@apply="apply(); popover.close()"
|
|
69
70
|
@reset="reset(); popover.close()"
|
|
70
71
|
/>
|
|
@@ -272,6 +273,24 @@ export default defineComponent({
|
|
|
272
273
|
draftModelValue.value = value;
|
|
273
274
|
}, { immediate: true });
|
|
274
275
|
|
|
276
|
+
const isInvalidDraftModelValue = computed(() => {
|
|
277
|
+
if (draftModelValue.value) {
|
|
278
|
+
if (props.yearFilter && !props.yearFilter(draftModelValue.value)) {
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (props.monthFilter && !props.monthFilter(draftModelValue.value)) {
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (props.dateFilter && !props.dateFilter(draftModelValue.value)) {
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
return false;
|
|
292
|
+
});
|
|
293
|
+
|
|
275
294
|
// Methods
|
|
276
295
|
function apply(): void {
|
|
277
296
|
proxyModelValue.value = draftModelValue.value ?? initialModelValue;
|
|
@@ -321,6 +340,7 @@ export default defineComponent({
|
|
|
321
340
|
initialModelValue,
|
|
322
341
|
proxyModelValue,
|
|
323
342
|
draftModelValue,
|
|
343
|
+
isInvalidDraftModelValue,
|
|
324
344
|
apply,
|
|
325
345
|
reset,
|
|
326
346
|
togglePopover,
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
v-model="draftModelValue"
|
|
41
41
|
v-dropdown-open="toggleTimePopover"
|
|
42
42
|
v-dropdown-close="closeTimePopover"
|
|
43
|
+
:format="timeFormat"
|
|
43
44
|
:required="required"
|
|
44
45
|
:readonly="readonly"
|
|
45
46
|
:disabled="disabled"
|
|
@@ -78,6 +79,7 @@
|
|
|
78
79
|
/>
|
|
79
80
|
|
|
80
81
|
<OrDateTimePickerPopoverFooter
|
|
82
|
+
:disabled="isInvalidDraftModelValue"
|
|
81
83
|
@apply="apply(); datePopover.close()"
|
|
82
84
|
@reset="reset(); datePopover.close()"
|
|
83
85
|
/>
|
|
@@ -105,11 +107,13 @@
|
|
|
105
107
|
<OrDateTimePickerTimeSelect
|
|
106
108
|
v-model="draftModelValue"
|
|
107
109
|
:initial-value="initialModelValue"
|
|
110
|
+
:format="timeFormat"
|
|
108
111
|
:hours-filter="hoursFilter"
|
|
109
112
|
:minutes-filter="minutesFilter"
|
|
110
113
|
/>
|
|
111
114
|
|
|
112
115
|
<OrDateTimePickerPopoverFooter
|
|
116
|
+
:disabled="isInvalidDraftModelValue"
|
|
113
117
|
@apply="apply(); timePopover.close()"
|
|
114
118
|
@reset="reset(); timePopover.close()"
|
|
115
119
|
/>
|
|
@@ -171,7 +175,7 @@ import OrDateTimePickerPopoverFooter from './partials/or-date-time-picker-popove
|
|
|
171
175
|
import OrDateTimePickerPopoverHeader from './partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue';
|
|
172
176
|
import OrDateTimePickerTimeControl from './partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue';
|
|
173
177
|
import OrDateTimePickerTimeSelect from './partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue';
|
|
174
|
-
import { DateTimePickerSize } from './props';
|
|
178
|
+
import { DateTimePickerSize, DateTimePickerTimeFormat } from './props';
|
|
175
179
|
import { DateTimePicker, DateTimePickerDatePopover, DateTimePickerTimePopover } from './styles';
|
|
176
180
|
import { FilterFunction } from './types';
|
|
177
181
|
|
|
@@ -212,6 +216,11 @@ export default defineComponent({
|
|
|
212
216
|
default: undefined,
|
|
213
217
|
},
|
|
214
218
|
|
|
219
|
+
timeFormat: {
|
|
220
|
+
type: String as PropType<`${DateTimePickerTimeFormat}`>,
|
|
221
|
+
default: DateTimePickerTimeFormat.Auto,
|
|
222
|
+
},
|
|
223
|
+
|
|
215
224
|
yearFilter: {
|
|
216
225
|
type: Function as PropType<FilterFunction>,
|
|
217
226
|
default: undefined,
|
|
@@ -338,6 +347,32 @@ export default defineComponent({
|
|
|
338
347
|
draftModelValue.value = value;
|
|
339
348
|
}, { immediate: true });
|
|
340
349
|
|
|
350
|
+
const isInvalidDraftModelValue = computed(() => {
|
|
351
|
+
if (draftModelValue.value) {
|
|
352
|
+
if (props.yearFilter && !props.yearFilter(draftModelValue.value)) {
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
if (props.monthFilter && !props.monthFilter(draftModelValue.value)) {
|
|
357
|
+
return true;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
if (props.dateFilter && !props.dateFilter(draftModelValue.value)) {
|
|
361
|
+
return true;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
if (props.hoursFilter && !props.hoursFilter(draftModelValue.value)) {
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
if (props.minutesFilter && !props.minutesFilter(draftModelValue.value)) {
|
|
369
|
+
return true;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
return false;
|
|
374
|
+
});
|
|
375
|
+
|
|
341
376
|
// Methods
|
|
342
377
|
function apply(): void {
|
|
343
378
|
proxyModelValue.value = draftModelValue.value ?? initialModelValue;
|
|
@@ -405,6 +440,7 @@ export default defineComponent({
|
|
|
405
440
|
function formatTimeAlt(value?: Date): string {
|
|
406
441
|
return value?.toLocaleString(navigator.language, {
|
|
407
442
|
timeStyle: 'short',
|
|
443
|
+
hourCycle: props.timeFormat !== DateTimePickerTimeFormat.Auto ? props.timeFormat : undefined,
|
|
408
444
|
timeZone: 'UTC',
|
|
409
445
|
}) ?? '--';
|
|
410
446
|
}
|
|
@@ -423,6 +459,7 @@ export default defineComponent({
|
|
|
423
459
|
initialModelValue,
|
|
424
460
|
proxyModelValue,
|
|
425
461
|
draftModelValue,
|
|
462
|
+
isInvalidDraftModelValue,
|
|
426
463
|
apply,
|
|
427
464
|
reset,
|
|
428
465
|
toggleDatePopover,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export function useTimePlaceholder(): string {
|
|
1
|
+
export function useTimePlaceholder(hourCycle?: Intl.DateTimeFormatOptions['hourCycle']): string {
|
|
2
2
|
const sample = new Date(Date.UTC(1, 1, 3, 4, 5)).toLocaleString(navigator.language, {
|
|
3
3
|
timeStyle: 'short',
|
|
4
|
+
hourCycle,
|
|
4
5
|
timeZone: 'UTC',
|
|
5
6
|
});
|
|
6
7
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
>
|
|
6
6
|
<OrButton
|
|
7
7
|
:variant="'outlined'"
|
|
8
|
+
:disabled="disabled"
|
|
8
9
|
@click.stop="$emit('apply')"
|
|
9
10
|
>
|
|
10
11
|
Done
|
|
@@ -31,6 +32,13 @@ export default defineComponent({
|
|
|
31
32
|
OrButton,
|
|
32
33
|
},
|
|
33
34
|
|
|
35
|
+
props: {
|
|
36
|
+
disabled: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: false,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
|
|
34
42
|
emits: [
|
|
35
43
|
'apply',
|
|
36
44
|
'reset',
|
|
@@ -23,8 +23,9 @@
|
|
|
23
23
|
</template>
|
|
24
24
|
|
|
25
25
|
<script lang="ts">
|
|
26
|
-
import { computed, defineComponent, ref } from 'vue-demi';
|
|
26
|
+
import { PropType, computed, defineComponent, ref } from 'vue-demi';
|
|
27
27
|
import { useTimePlaceholder } from '../../hooks/useTimePlaceholder';
|
|
28
|
+
import { DateTimePickerTimeFormat } from '../../props';
|
|
28
29
|
import { DateTimePickerTimeControl, DateTimePickerTimeControlPlaceholder } from './styles';
|
|
29
30
|
|
|
30
31
|
export default defineComponent({
|
|
@@ -41,6 +42,11 @@ export default defineComponent({
|
|
|
41
42
|
default: undefined,
|
|
42
43
|
},
|
|
43
44
|
|
|
45
|
+
format: {
|
|
46
|
+
type: String as PropType<`${DateTimePickerTimeFormat}`>,
|
|
47
|
+
default: DateTimePickerTimeFormat.Auto,
|
|
48
|
+
},
|
|
49
|
+
|
|
44
50
|
required: {
|
|
45
51
|
type: Boolean,
|
|
46
52
|
default: false,
|
|
@@ -84,12 +90,13 @@ export default defineComponent({
|
|
|
84
90
|
},
|
|
85
91
|
});
|
|
86
92
|
|
|
87
|
-
const placeholder = useTimePlaceholder();
|
|
93
|
+
const placeholder = useTimePlaceholder(props.format !== DateTimePickerTimeFormat.Auto ? props.format : undefined);
|
|
88
94
|
|
|
89
95
|
// Methods
|
|
90
96
|
function formatModelValue(value: Date): string {
|
|
91
97
|
return value.toLocaleString(navigator.language, {
|
|
92
98
|
timeStyle: 'short',
|
|
99
|
+
hourCycle: props.format !== DateTimePickerTimeFormat.Auto ? props.format : undefined,
|
|
93
100
|
timeZone: 'UTC',
|
|
94
101
|
});
|
|
95
102
|
}
|
|
@@ -32,12 +32,35 @@
|
|
|
32
32
|
{{ formatMinutes(value) }}
|
|
33
33
|
</OrButton>
|
|
34
34
|
</div>
|
|
35
|
+
|
|
36
|
+
<template v-if="proxyTimeFormat === 'h12'">
|
|
37
|
+
<div :class="buttonGroupStyles">
|
|
38
|
+
<OrButton
|
|
39
|
+
:class="buttonGroupItemStyles"
|
|
40
|
+
:variant="hoursRange === 'am' ? 'contained' : 'text'"
|
|
41
|
+
:color="hoursRange === 'am' ? 'primary' : 'inherit'"
|
|
42
|
+
@click.stop="hoursRange = 'am'"
|
|
43
|
+
>
|
|
44
|
+
AM
|
|
45
|
+
</OrButton>
|
|
46
|
+
|
|
47
|
+
<OrButton
|
|
48
|
+
:class="buttonGroupItemStyles"
|
|
49
|
+
:variant="hoursRange === 'pm' ? 'contained' : 'text'"
|
|
50
|
+
:color="hoursRange === 'pm' ? 'primary' : 'inherit'"
|
|
51
|
+
@click.stop="hoursRange = 'pm'"
|
|
52
|
+
>
|
|
53
|
+
PM
|
|
54
|
+
</OrButton>
|
|
55
|
+
</div>
|
|
56
|
+
</template>
|
|
35
57
|
</div>
|
|
36
58
|
</template>
|
|
37
59
|
|
|
38
60
|
<script lang="ts">
|
|
39
|
-
import { computed, defineComponent, PropType, ref } from 'vue-demi';
|
|
61
|
+
import { computed, defineComponent, PropType, ref, watch } from 'vue-demi';
|
|
40
62
|
import { OrButtonV3 as OrButton } from '../../../or-button-v3';
|
|
63
|
+
import { DateTimePickerTimeFormat } from '../../props';
|
|
41
64
|
import { FilterFunction } from '../../types';
|
|
42
65
|
import { DateTimePickerTimeSelect, DateTimePickerTimeSelectButtonGroup, DateTimePickerTimeSelectButtonGroupItem } from './styles';
|
|
43
66
|
|
|
@@ -64,6 +87,11 @@ export default defineComponent({
|
|
|
64
87
|
required: true,
|
|
65
88
|
},
|
|
66
89
|
|
|
90
|
+
format: {
|
|
91
|
+
type: String as PropType<`${DateTimePickerTimeFormat}`>,
|
|
92
|
+
default: DateTimePickerTimeFormat.Auto,
|
|
93
|
+
},
|
|
94
|
+
|
|
67
95
|
hoursFilter: {
|
|
68
96
|
type: Function as PropType<FilterFunction>,
|
|
69
97
|
default: undefined,
|
|
@@ -110,6 +138,48 @@ export default defineComponent({
|
|
|
110
138
|
},
|
|
111
139
|
});
|
|
112
140
|
|
|
141
|
+
const proxyTimeFormat = computed(() => {
|
|
142
|
+
if (props.format === DateTimePickerTimeFormat.Auto) {
|
|
143
|
+
const timeSample = new Date(1970, 0);
|
|
144
|
+
|
|
145
|
+
if (timeSample.toLocaleTimeString(navigator.language).includes('12')) {
|
|
146
|
+
return DateTimePickerTimeFormat.H12;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return DateTimePickerTimeFormat.H23;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return props.format;
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
const hoursRange = ref<'am' | 'pm'>(proxyModelValue.value.getUTCHours() < 12 ? 'am' : 'pm');
|
|
156
|
+
|
|
157
|
+
watch(hoursRange, (value) => {
|
|
158
|
+
switch (value) {
|
|
159
|
+
case 'am':
|
|
160
|
+
proxyModelValue.value = new Date(Date.UTC(
|
|
161
|
+
proxyModelValue.value.getUTCFullYear(),
|
|
162
|
+
proxyModelValue.value.getUTCMonth(),
|
|
163
|
+
proxyModelValue.value.getUTCDate(),
|
|
164
|
+
proxyModelValue.value.getUTCHours() - 12,
|
|
165
|
+
proxyModelValue.value.getUTCMinutes(),
|
|
166
|
+
));
|
|
167
|
+
|
|
168
|
+
break;
|
|
169
|
+
|
|
170
|
+
case 'pm':
|
|
171
|
+
proxyModelValue.value = new Date(Date.UTC(
|
|
172
|
+
proxyModelValue.value.getUTCFullYear(),
|
|
173
|
+
proxyModelValue.value.getUTCMonth(),
|
|
174
|
+
proxyModelValue.value.getUTCDate(),
|
|
175
|
+
proxyModelValue.value.getUTCHours() + 12,
|
|
176
|
+
proxyModelValue.value.getUTCMinutes(),
|
|
177
|
+
));
|
|
178
|
+
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
|
|
113
183
|
const hoursOptions = computed(() => {
|
|
114
184
|
return Array.from({ length: 24 }, (_value, index) => {
|
|
115
185
|
const value = index;
|
|
@@ -121,6 +191,18 @@ export default defineComponent({
|
|
|
121
191
|
value,
|
|
122
192
|
proxyModelValue.value.getUTCMinutes(),
|
|
123
193
|
));
|
|
194
|
+
}).filter((value) => {
|
|
195
|
+
if (proxyTimeFormat.value === DateTimePickerTimeFormat.H23) {
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
switch (hoursRange.value) {
|
|
200
|
+
case 'am':
|
|
201
|
+
return value.getUTCHours() < 12;
|
|
202
|
+
|
|
203
|
+
case 'pm':
|
|
204
|
+
return value.getUTCHours() >= 12;
|
|
205
|
+
}
|
|
124
206
|
});
|
|
125
207
|
});
|
|
126
208
|
|
|
@@ -142,8 +224,9 @@ export default defineComponent({
|
|
|
142
224
|
function formatHours(value: Date): string {
|
|
143
225
|
return value.toLocaleString(navigator.language, {
|
|
144
226
|
hour: 'numeric',
|
|
227
|
+
hourCycle: props.format !== DateTimePickerTimeFormat.Auto ? props.format : undefined,
|
|
145
228
|
timeZone: 'UTC',
|
|
146
|
-
});
|
|
229
|
+
}).replace(/\s(am|pm)/i, '');
|
|
147
230
|
}
|
|
148
231
|
|
|
149
232
|
function formatMinutes(value: Date): string {
|
|
@@ -156,6 +239,8 @@ export default defineComponent({
|
|
|
156
239
|
buttonGroupStyles,
|
|
157
240
|
buttonGroupItemStyles,
|
|
158
241
|
proxyModelValue,
|
|
242
|
+
proxyTimeFormat,
|
|
243
|
+
hoursRange,
|
|
159
244
|
hoursOptions,
|
|
160
245
|
minutesOptions,
|
|
161
246
|
formatHours,
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
v-model="draftModelValue"
|
|
32
32
|
v-dropdown-open="togglePopover"
|
|
33
33
|
v-dropdown-close="closePopover"
|
|
34
|
+
:format="format"
|
|
34
35
|
:required="required"
|
|
35
36
|
:readonly="readonly"
|
|
36
37
|
:disabled="disabled"
|
|
@@ -54,11 +55,13 @@
|
|
|
54
55
|
<OrDateTimePickerTimeSelect
|
|
55
56
|
v-model="draftModelValue"
|
|
56
57
|
:initial-value="initialModelValue"
|
|
58
|
+
:format="format"
|
|
57
59
|
:hours-filter="hoursFilter"
|
|
58
60
|
:minutes-filter="minutesFilter"
|
|
59
61
|
/>
|
|
60
62
|
|
|
61
63
|
<OrDateTimePickerPopoverFooter
|
|
64
|
+
:disabled="isInvalidDraftModelValue"
|
|
62
65
|
@apply="apply(); popover.close()"
|
|
63
66
|
@reset="reset(); popover.close()"
|
|
64
67
|
/>
|
|
@@ -118,7 +121,7 @@ import { OrIconV3 as OrIcon } from '../or-icon-v3';
|
|
|
118
121
|
import { OrInputBoxV3 as OrInputBox } from '../or-input-box-v3';
|
|
119
122
|
import { OrLabelV3 as OrLabel } from '../or-label-v3';
|
|
120
123
|
import { OrPopoverV3 as OrPopover } from '../or-popover-v3';
|
|
121
|
-
import { TimePickerSize } from './props';
|
|
124
|
+
import { TimePickerFormat, TimePickerSize } from './props';
|
|
122
125
|
import { TimePicker, TimePickerPopover } from './styles';
|
|
123
126
|
|
|
124
127
|
export default defineComponent({
|
|
@@ -155,6 +158,11 @@ export default defineComponent({
|
|
|
155
158
|
default: undefined,
|
|
156
159
|
},
|
|
157
160
|
|
|
161
|
+
format: {
|
|
162
|
+
type: String as PropType<`${TimePickerFormat}`>,
|
|
163
|
+
default: TimePickerFormat.Auto,
|
|
164
|
+
},
|
|
165
|
+
|
|
158
166
|
hoursFilter: {
|
|
159
167
|
type: Function as PropType<FilterFunction>,
|
|
160
168
|
default: undefined,
|
|
@@ -259,6 +267,20 @@ export default defineComponent({
|
|
|
259
267
|
draftModelValue.value = value;
|
|
260
268
|
}, { immediate: true });
|
|
261
269
|
|
|
270
|
+
const isInvalidDraftModelValue = computed(() => {
|
|
271
|
+
if (draftModelValue.value) {
|
|
272
|
+
if (props.hoursFilter && !props.hoursFilter(draftModelValue.value)) {
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
if (props.minutesFilter && !props.minutesFilter(draftModelValue.value)) {
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return false;
|
|
282
|
+
});
|
|
283
|
+
|
|
262
284
|
// Methods
|
|
263
285
|
function apply(): void {
|
|
264
286
|
proxyModelValue.value = draftModelValue.value ?? initialModelValue;
|
|
@@ -293,6 +315,7 @@ export default defineComponent({
|
|
|
293
315
|
function formatTimeAlt(value?: Date): string {
|
|
294
316
|
return value?.toLocaleString(navigator.language, {
|
|
295
317
|
timeStyle: 'short',
|
|
318
|
+
hourCycle: props.format !== TimePickerFormat.Auto ? props.format : undefined,
|
|
296
319
|
timeZone: 'UTC',
|
|
297
320
|
}) ?? '--';
|
|
298
321
|
}
|
|
@@ -308,6 +331,7 @@ export default defineComponent({
|
|
|
308
331
|
initialModelValue,
|
|
309
332
|
proxyModelValue,
|
|
310
333
|
draftModelValue,
|
|
334
|
+
isInvalidDraftModelValue,
|
|
311
335
|
apply,
|
|
312
336
|
reset,
|
|
313
337
|
togglePopover,
|