@v-c/picker 1.0.4-beta.1 → 1.1.0-rc.1
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/PickerInput/Popup/Footer.js +12 -18
- package/dist/PickerInput/Popup/PopupPanel.js +14 -18
- package/dist/PickerInput/Popup/PresetPanel.js +8 -10
- package/dist/PickerInput/Popup/index.js +19 -29
- package/dist/PickerInput/RangePicker.js +25 -17
- package/dist/PickerInput/Selector/Icon.js +6 -9
- package/dist/PickerInput/Selector/Input.js +13 -14
- package/dist/PickerInput/Selector/MaskFormat.js +5 -1
- package/dist/PickerInput/Selector/RangeSelector.js +29 -53
- package/dist/PickerInput/Selector/SingleSelector/MultipleDates.d.ts +7 -0
- package/dist/PickerInput/Selector/SingleSelector/MultipleDates.js +22 -12
- package/dist/PickerInput/Selector/SingleSelector/index.d.ts +7 -0
- package/dist/PickerInput/Selector/SingleSelector/index.js +34 -48
- package/dist/PickerInput/Selector/hooks/useClearIcon.js +2 -0
- package/dist/PickerInput/Selector/hooks/useInputHooks.js +2 -0
- package/dist/PickerInput/Selector/hooks/useRootProps.js +2 -0
- package/dist/PickerInput/Selector/util.js +2 -0
- package/dist/PickerInput/SinglePicker.d.ts +9 -0
- package/dist/PickerInput/SinglePicker.js +24 -14
- package/dist/PickerInput/context.js +2 -0
- package/dist/PickerInput/hooks/useCellRender.js +2 -0
- package/dist/PickerInput/hooks/useDelayState.js +2 -0
- package/dist/PickerInput/hooks/useDisabledBoundary.js +5 -0
- package/dist/PickerInput/hooks/useFieldFormat.js +2 -0
- package/dist/PickerInput/hooks/useFieldsInvalidate.js +5 -0
- package/dist/PickerInput/hooks/useFilledProps.js +10 -0
- package/dist/PickerInput/hooks/useInputReadOnly.js +2 -0
- package/dist/PickerInput/hooks/useInvalidate.js +5 -0
- package/dist/PickerInput/hooks/useLockEffect.js +6 -0
- package/dist/PickerInput/hooks/useOpen.js +6 -0
- package/dist/PickerInput/hooks/usePresets.js +2 -0
- package/dist/PickerInput/hooks/useRangeActive.js +7 -0
- package/dist/PickerInput/hooks/useRangeDisabledDate.js +6 -0
- package/dist/PickerInput/hooks/useRangePickerValue.js +2 -0
- package/dist/PickerInput/hooks/useRangeValue.js +8 -2
- package/dist/PickerInput/hooks/useShowNow.js +2 -0
- package/dist/PickerPanel/DatePanel/index.js +15 -21
- package/dist/PickerPanel/DateTimePanel/index.js +13 -19
- package/dist/PickerPanel/DecadePanel/index.js +14 -20
- package/dist/PickerPanel/MonthPanel/index.js +14 -20
- package/dist/PickerPanel/PanelBody.js +10 -16
- package/dist/PickerPanel/PanelHeader.js +4 -2
- package/dist/PickerPanel/QuarterPanel/index.js +14 -20
- package/dist/PickerPanel/TimePanel/TimePanelBody/TimeColumn.js +8 -10
- package/dist/PickerPanel/TimePanel/TimePanelBody/index.js +10 -8
- package/dist/PickerPanel/TimePanel/TimePanelBody/useScrollTo.js +2 -0
- package/dist/PickerPanel/TimePanel/index.js +14 -20
- package/dist/PickerPanel/WeekPanel/index.js +12 -18
- package/dist/PickerPanel/YearPanel/index.js +14 -20
- package/dist/PickerPanel/context.js +2 -0
- package/dist/PickerPanel/index.js +23 -21
- package/dist/PickerTrigger/index.js +4 -2
- package/dist/PickerTrigger/util.js +2 -0
- package/dist/generate/dateFns.js +23 -10
- package/dist/generate/dayjs.js +4 -2
- package/dist/generate/luxon.js +29 -2
- package/dist/generate/moment.js +4 -2
- package/dist/hooks/useLocale.js +8 -3
- package/dist/hooks/useSemantic.js +5 -0
- package/dist/hooks/useSyncState.js +7 -0
- package/dist/hooks/useTimeConfig.js +11 -0
- package/dist/hooks/useTimeInfo.js +10 -2
- package/dist/hooks/useToggleDates.js +7 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -5
- package/dist/locale/am_ET.js +4 -2
- package/dist/locale/ar_EG.js +4 -2
- package/dist/locale/az_AZ.js +4 -2
- package/dist/locale/bg_BG.js +4 -2
- package/dist/locale/bn_BD.js +4 -2
- package/dist/locale/by_BY.js +4 -2
- package/dist/locale/ca_ES.js +4 -2
- package/dist/locale/common.js +3 -1
- package/dist/locale/cs_CZ.js +4 -2
- package/dist/locale/da_DK.js +4 -2
- package/dist/locale/de_DE.js +4 -2
- package/dist/locale/el_GR.js +4 -2
- package/dist/locale/en_GB.js +4 -2
- package/dist/locale/en_US.js +4 -2
- package/dist/locale/es_ES.js +4 -2
- package/dist/locale/es_MX.js +4 -2
- package/dist/locale/et_EE.js +4 -2
- package/dist/locale/eu_ES.js +4 -2
- package/dist/locale/fa_IR.js +4 -2
- package/dist/locale/fi_FI.js +4 -2
- package/dist/locale/fr_BE.js +4 -2
- package/dist/locale/fr_CA.js +4 -2
- package/dist/locale/fr_FR.js +4 -2
- package/dist/locale/ga_IE.js +4 -2
- package/dist/locale/gl_ES.js +4 -2
- package/dist/locale/he_IL.js +4 -2
- package/dist/locale/hi_IN.js +4 -2
- package/dist/locale/hr_HR.js +4 -2
- package/dist/locale/hu_HU.js +4 -2
- package/dist/locale/id_ID.js +4 -2
- package/dist/locale/is_IS.js +4 -2
- package/dist/locale/it_IT.js +4 -2
- package/dist/locale/ja_JP.js +4 -2
- package/dist/locale/ka_GE.js +4 -2
- package/dist/locale/kk_KZ.js +4 -2
- package/dist/locale/km_KH.js +4 -2
- package/dist/locale/kmr_IQ.js +4 -2
- package/dist/locale/kn_IN.js +4 -2
- package/dist/locale/ko_KR.js +4 -2
- package/dist/locale/lt_LT.js +4 -2
- package/dist/locale/lv_LV.js +4 -2
- package/dist/locale/mk_MK.js +4 -2
- package/dist/locale/ml_IN.js +4 -2
- package/dist/locale/mn_MN.js +4 -2
- package/dist/locale/mr_IN.js +4 -2
- package/dist/locale/ms_MY.js +4 -2
- package/dist/locale/my_MM.js +4 -2
- package/dist/locale/nb_NO.js +4 -2
- package/dist/locale/ne_NP.js +4 -2
- package/dist/locale/nl_BE.js +4 -2
- package/dist/locale/nl_NL.js +4 -2
- package/dist/locale/pl_PL.js +4 -2
- package/dist/locale/pt_BR.js +4 -2
- package/dist/locale/pt_PT.js +4 -2
- package/dist/locale/ro_RO.js +4 -2
- package/dist/locale/ru_RU.js +4 -2
- package/dist/locale/si_LK.js +4 -2
- package/dist/locale/sk_SK.js +4 -2
- package/dist/locale/sl_SI.js +4 -2
- package/dist/locale/sr_Cyrl_RS.js +4 -2
- package/dist/locale/sr_RS.js +4 -2
- package/dist/locale/sv_SE.js +4 -2
- package/dist/locale/ta_IN.js +4 -2
- package/dist/locale/te_IN.js +4 -2
- package/dist/locale/th_TH.js +4 -2
- package/dist/locale/tk_TK.js +4 -2
- package/dist/locale/tr_TR.js +4 -2
- package/dist/locale/ug_CN.js +4 -2
- package/dist/locale/uk_UA.js +4 -2
- package/dist/locale/ur_PK.js +4 -2
- package/dist/locale/uz_UZ.js +4 -2
- package/dist/locale/vi_VN.js +4 -2
- package/dist/locale/zh_CN.js +4 -2
- package/dist/locale/zh_TW.js +4 -2
- package/dist/utils/dateUtil.js +17 -1
- package/dist/utils/getClearIcon.js +2 -0
- package/dist/utils/miscUtil.js +6 -0
- package/dist/utils/uiUtil.js +2 -0
- package/dist/utils/valueUtil.js +2 -0
- package/dist/utils/warnUtil.js +2 -0
- package/package.json +5 -5
|
@@ -2,7 +2,8 @@ import { usePickerContext } from "../context.js";
|
|
|
2
2
|
import useTimeInfo from "../../hooks/useTimeInfo.js";
|
|
3
3
|
import { computed, createVNode, defineComponent } from "vue";
|
|
4
4
|
import { clsx } from "@v-c/util";
|
|
5
|
-
|
|
5
|
+
//#region src/PickerInput/Popup/Footer.tsx
|
|
6
|
+
var Footer = /* @__PURE__ */ defineComponent((props) => {
|
|
6
7
|
const mode = computed(() => props.mode);
|
|
7
8
|
const internalMode = computed(() => props.internalMode);
|
|
8
9
|
const renderExtraFooter = computed(() => props.renderExtraFooter);
|
|
@@ -49,13 +50,11 @@ var Footer_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
49
50
|
props: {
|
|
50
51
|
mode: {
|
|
51
52
|
type: String,
|
|
52
|
-
required: true
|
|
53
|
-
default: void 0
|
|
53
|
+
required: true
|
|
54
54
|
},
|
|
55
55
|
internalMode: {
|
|
56
56
|
type: String,
|
|
57
|
-
required: true
|
|
58
|
-
default: void 0
|
|
57
|
+
required: true
|
|
59
58
|
},
|
|
60
59
|
renderExtraFooter: {
|
|
61
60
|
type: Function,
|
|
@@ -64,18 +63,15 @@ var Footer_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
64
63
|
},
|
|
65
64
|
showNow: {
|
|
66
65
|
type: Boolean,
|
|
67
|
-
required: true
|
|
68
|
-
default: void 0
|
|
66
|
+
required: true
|
|
69
67
|
},
|
|
70
68
|
generateConfig: {
|
|
71
69
|
type: Object,
|
|
72
|
-
required: true
|
|
73
|
-
default: void 0
|
|
70
|
+
required: true
|
|
74
71
|
},
|
|
75
72
|
disabledDate: {
|
|
76
73
|
type: Function,
|
|
77
|
-
required: true
|
|
78
|
-
default: void 0
|
|
74
|
+
required: true
|
|
79
75
|
},
|
|
80
76
|
showTime: {
|
|
81
77
|
type: Object,
|
|
@@ -89,21 +85,19 @@ var Footer_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
89
85
|
},
|
|
90
86
|
onSubmit: {
|
|
91
87
|
type: Function,
|
|
92
|
-
required: true
|
|
93
|
-
default: void 0
|
|
88
|
+
required: true
|
|
94
89
|
},
|
|
95
90
|
needConfirm: {
|
|
96
91
|
type: Boolean,
|
|
97
|
-
required: true
|
|
98
|
-
default: void 0
|
|
92
|
+
required: true
|
|
99
93
|
},
|
|
100
94
|
onNow: {
|
|
101
95
|
type: Function,
|
|
102
|
-
required: true
|
|
103
|
-
default: void 0
|
|
96
|
+
required: true
|
|
104
97
|
}
|
|
105
98
|
},
|
|
106
99
|
name: "Footer",
|
|
107
100
|
inheritAttrs: false
|
|
108
101
|
});
|
|
109
|
-
|
|
102
|
+
//#endregion
|
|
103
|
+
export { Footer as default };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { usePickerContext } from "../context.js";
|
|
2
2
|
import { offsetPanelDate } from "../hooks/useRangePickerValue.js";
|
|
3
3
|
import { providePickerHackContext } from "../../PickerPanel/context.js";
|
|
4
|
-
import
|
|
4
|
+
import PickerPanel from "../../PickerPanel/index.js";
|
|
5
5
|
import { computed, createVNode, defineComponent, mergeProps } from "vue";
|
|
6
6
|
import { omit } from "@v-c/util";
|
|
7
|
+
//#region src/PickerInput/Popup/PopupPanel.tsx
|
|
7
8
|
var PickerPanelProvider = /* @__PURE__ */ defineComponent((props, { slots }) => {
|
|
8
9
|
providePickerHackContext(computed(() => props.value));
|
|
9
10
|
return () => {
|
|
@@ -12,13 +13,12 @@ var PickerPanelProvider = /* @__PURE__ */ defineComponent((props, { slots }) =>
|
|
|
12
13
|
}, {
|
|
13
14
|
props: { value: {
|
|
14
15
|
type: Object,
|
|
15
|
-
required: true
|
|
16
|
-
default: void 0
|
|
16
|
+
required: true
|
|
17
17
|
} },
|
|
18
18
|
name: "PickerPanelProvider",
|
|
19
19
|
inheritAttrs: false
|
|
20
20
|
});
|
|
21
|
-
var
|
|
21
|
+
var PopupPanel = /* @__PURE__ */ defineComponent((props) => {
|
|
22
22
|
const ctx = usePickerContext();
|
|
23
23
|
const picker = computed(() => props.picker);
|
|
24
24
|
const pickerValue = computed(() => props.pickerValue);
|
|
@@ -58,14 +58,14 @@ var PopupPanel_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
58
58
|
if (multiplePanel?.value) return createVNode("div", { "class": `${prefixCls}-panels` }, [createVNode(PickerPanelProvider, { "value": {
|
|
59
59
|
...sharedContext,
|
|
60
60
|
hideNext: true
|
|
61
|
-
} }, { default: () => [createVNode(
|
|
61
|
+
} }, { default: () => [createVNode(PickerPanel, pickerProps.value, null)] }), createVNode(PickerPanelProvider, { "value": {
|
|
62
62
|
...sharedContext,
|
|
63
63
|
hidePrev: true
|
|
64
|
-
} }, { default: () => [createVNode(
|
|
64
|
+
} }, { default: () => [createVNode(PickerPanel, mergeProps(omit(pickerProps.value, ["onPickerValueChange"]), {
|
|
65
65
|
"pickerValue": nextPickerValue.value,
|
|
66
66
|
"onPickerValueChange": onSecondPickerValueChange
|
|
67
67
|
}), null)] })]);
|
|
68
|
-
return createVNode(PickerPanelProvider, { "value": { ...sharedContext } }, { default: () => [createVNode(
|
|
68
|
+
return createVNode(PickerPanelProvider, { "value": { ...sharedContext } }, { default: () => [createVNode(PickerPanel, pickerProps.value, null)] });
|
|
69
69
|
};
|
|
70
70
|
}, {
|
|
71
71
|
props: {
|
|
@@ -81,8 +81,7 @@ var PopupPanel_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
81
81
|
},
|
|
82
82
|
onPickerValueChange: {
|
|
83
83
|
type: Function,
|
|
84
|
-
required: true
|
|
85
|
-
default: void 0
|
|
84
|
+
required: true
|
|
86
85
|
},
|
|
87
86
|
mode: {
|
|
88
87
|
type: String,
|
|
@@ -367,8 +366,7 @@ var PopupPanel_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
367
366
|
},
|
|
368
367
|
internalMode: {
|
|
369
368
|
type: String,
|
|
370
|
-
required: true
|
|
371
|
-
default: void 0
|
|
369
|
+
required: true
|
|
372
370
|
},
|
|
373
371
|
renderExtraFooter: {
|
|
374
372
|
type: Function,
|
|
@@ -387,21 +385,19 @@ var PopupPanel_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
387
385
|
},
|
|
388
386
|
onSubmit: {
|
|
389
387
|
type: Function,
|
|
390
|
-
required: true
|
|
391
|
-
default: void 0
|
|
388
|
+
required: true
|
|
392
389
|
},
|
|
393
390
|
needConfirm: {
|
|
394
391
|
type: Boolean,
|
|
395
|
-
required: true
|
|
396
|
-
default: void 0
|
|
392
|
+
required: true
|
|
397
393
|
},
|
|
398
394
|
onNow: {
|
|
399
395
|
type: Function,
|
|
400
|
-
required: true
|
|
401
|
-
default: void 0
|
|
396
|
+
required: true
|
|
402
397
|
}
|
|
403
398
|
},
|
|
404
399
|
name: "PopupPanel",
|
|
405
400
|
inheritAttrs: false
|
|
406
401
|
});
|
|
407
|
-
|
|
402
|
+
//#endregion
|
|
403
|
+
export { PopupPanel as default };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createVNode, defineComponent } from "vue";
|
|
2
|
+
//#region src/PickerInput/Popup/PresetPanel.tsx
|
|
2
3
|
function executeValue(value) {
|
|
3
4
|
return typeof value === "function" ? value() : value;
|
|
4
5
|
}
|
|
5
|
-
var
|
|
6
|
+
var PresetPanel = /* @__PURE__ */ defineComponent((props) => {
|
|
6
7
|
return () => {
|
|
7
8
|
const { prefixCls, presets, onClick, onHover } = props;
|
|
8
9
|
if (!presets.length) return null;
|
|
@@ -23,26 +24,23 @@ var PresetPanel_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
23
24
|
props: {
|
|
24
25
|
prefixCls: {
|
|
25
26
|
type: [String, null],
|
|
26
|
-
required: true
|
|
27
|
-
default: void 0
|
|
27
|
+
required: true
|
|
28
28
|
},
|
|
29
29
|
presets: {
|
|
30
30
|
type: Array,
|
|
31
|
-
required: true
|
|
32
|
-
default: void 0
|
|
31
|
+
required: true
|
|
33
32
|
},
|
|
34
33
|
onClick: {
|
|
35
34
|
type: Function,
|
|
36
|
-
required: true
|
|
37
|
-
default: void 0
|
|
35
|
+
required: true
|
|
38
36
|
},
|
|
39
37
|
onHover: {
|
|
40
38
|
type: Function,
|
|
41
|
-
required: true
|
|
42
|
-
default: void 0
|
|
39
|
+
required: true
|
|
43
40
|
}
|
|
44
41
|
},
|
|
45
42
|
name: "PresetPanel",
|
|
46
43
|
inheritAttrs: false
|
|
47
44
|
});
|
|
48
|
-
|
|
45
|
+
//#endregion
|
|
46
|
+
export { PresetPanel as default };
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { usePickerContext } from "../context.js";
|
|
2
2
|
import { toArray } from "../../utils/miscUtil.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import Footer from "./Footer.js";
|
|
4
|
+
import PopupPanel from "./PopupPanel.js";
|
|
5
|
+
import PresetPanel from "./PresetPanel.js";
|
|
6
6
|
import { computed, createVNode, defineComponent, mergeProps, nextTick, ref, watch } from "vue";
|
|
7
7
|
import { clsx, omit } from "@v-c/util";
|
|
8
8
|
import { useResizeObserver } from "@v-c/resize-observer";
|
|
9
|
-
|
|
9
|
+
//#region src/PickerInput/Popup/index.tsx
|
|
10
|
+
var Popup = /* @__PURE__ */ defineComponent((props) => {
|
|
10
11
|
const activeInfo = computed(() => props.activeInfo || [
|
|
11
12
|
0,
|
|
12
13
|
0,
|
|
@@ -92,12 +93,12 @@ var Popup_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
92
93
|
onBlur?.(event);
|
|
93
94
|
};
|
|
94
95
|
const prefixCls = ctx.value.prefixCls;
|
|
95
|
-
let mergedNodes = createVNode("div", { "class": `${prefixCls}-panel-layout` }, [createVNode(
|
|
96
|
+
let mergedNodes = createVNode("div", { "class": `${prefixCls}-panel-layout` }, [createVNode(PresetPanel, {
|
|
96
97
|
"prefixCls": prefixCls,
|
|
97
98
|
"presets": presets,
|
|
98
99
|
"onClick": onPresetSubmit,
|
|
99
100
|
"onHover": onPresetHover
|
|
100
|
-
}, null), createVNode("div", null, [createVNode(
|
|
101
|
+
}, null), createVNode("div", null, [createVNode(PopupPanel, mergeProps(props, { "value": popupPanelValue.value }), null), createVNode(Footer, mergeProps(omit(props, ["onSubmit"]), {
|
|
101
102
|
"showNow": multiple ? false : showNow,
|
|
102
103
|
"invalid": disableSubmit.value,
|
|
103
104
|
"onSubmit": onFooterSubmit
|
|
@@ -149,8 +150,7 @@ var Popup_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
149
150
|
},
|
|
150
151
|
internalMode: {
|
|
151
152
|
type: String,
|
|
152
|
-
required: true
|
|
153
|
-
default: void 0
|
|
153
|
+
required: true
|
|
154
154
|
},
|
|
155
155
|
renderExtraFooter: {
|
|
156
156
|
type: Function,
|
|
@@ -184,18 +184,15 @@ var Popup_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
184
184
|
},
|
|
185
185
|
onSubmit: {
|
|
186
186
|
type: Function,
|
|
187
|
-
required: true
|
|
188
|
-
default: void 0
|
|
187
|
+
required: true
|
|
189
188
|
},
|
|
190
189
|
needConfirm: {
|
|
191
190
|
type: [Boolean, null],
|
|
192
|
-
required: true
|
|
193
|
-
default: void 0
|
|
191
|
+
required: true
|
|
194
192
|
},
|
|
195
193
|
onNow: {
|
|
196
194
|
type: Function,
|
|
197
|
-
required: true
|
|
198
|
-
default: void 0
|
|
195
|
+
required: true
|
|
199
196
|
},
|
|
200
197
|
multiplePanel: {
|
|
201
198
|
type: Boolean,
|
|
@@ -209,8 +206,7 @@ var Popup_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
209
206
|
},
|
|
210
207
|
onPickerValueChange: {
|
|
211
208
|
type: Function,
|
|
212
|
-
required: true
|
|
213
|
-
default: void 0
|
|
209
|
+
required: true
|
|
214
210
|
},
|
|
215
211
|
onPanelChange: {
|
|
216
212
|
type: Function,
|
|
@@ -481,18 +477,15 @@ var Popup_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
481
477
|
},
|
|
482
478
|
presets: {
|
|
483
479
|
type: Array,
|
|
484
|
-
required: true
|
|
485
|
-
default: void 0
|
|
480
|
+
required: true
|
|
486
481
|
},
|
|
487
482
|
onPresetHover: {
|
|
488
483
|
type: Function,
|
|
489
|
-
required: true
|
|
490
|
-
default: void 0
|
|
484
|
+
required: true
|
|
491
485
|
},
|
|
492
486
|
onPresetSubmit: {
|
|
493
487
|
type: Function,
|
|
494
|
-
required: true
|
|
495
|
-
default: void 0
|
|
488
|
+
required: true
|
|
496
489
|
},
|
|
497
490
|
activeInfo: {
|
|
498
491
|
type: Array,
|
|
@@ -501,13 +494,9 @@ var Popup_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
501
494
|
},
|
|
502
495
|
isInvalid: {
|
|
503
496
|
type: Function,
|
|
504
|
-
required: true
|
|
505
|
-
default: void 0
|
|
506
|
-
},
|
|
507
|
-
onOk: {
|
|
508
|
-
required: true,
|
|
509
|
-
default: void 0
|
|
497
|
+
required: true
|
|
510
498
|
},
|
|
499
|
+
onOk: { required: true },
|
|
511
500
|
onPanelMouseDown: {
|
|
512
501
|
type: Function,
|
|
513
502
|
required: false,
|
|
@@ -517,4 +506,5 @@ var Popup_default = /* @__PURE__ */ defineComponent((props) => {
|
|
|
517
506
|
name: "Popup",
|
|
518
507
|
inheritAttrs: false
|
|
519
508
|
});
|
|
520
|
-
|
|
509
|
+
//#endregion
|
|
510
|
+
export { Popup as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import useSemantic from "../hooks/useSemantic.js";
|
|
2
2
|
import { providePickerContext } from "./context.js";
|
|
3
|
-
import
|
|
3
|
+
import PickerTrigger from "../PickerTrigger/index.js";
|
|
4
4
|
import { fillIndex, getFromDate, toArray } from "../utils/miscUtil.js";
|
|
5
5
|
import { pickTriggerProps } from "../PickerTrigger/util.js";
|
|
6
6
|
import { formatValues } from "../utils/valueUtil.js";
|
|
@@ -14,13 +14,14 @@ import useRangeDisabledDate from "./hooks/useRangeDisabledDate.js";
|
|
|
14
14
|
import useRangePickerValue from "./hooks/useRangePickerValue.js";
|
|
15
15
|
import useRangeValue, { useInnerValue } from "./hooks/useRangeValue.js";
|
|
16
16
|
import useShowNow from "./hooks/useShowNow.js";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
17
|
+
import Popup from "./Popup/index.js";
|
|
18
|
+
import RangeSelector from "./Selector/RangeSelector.js";
|
|
19
19
|
import { computed, createVNode, defineComponent, mergeProps, nextTick, ref, shallowRef, watch } from "vue";
|
|
20
20
|
import { clsx } from "@v-c/util";
|
|
21
21
|
import omit$1 from "@v-c/util/dist/omit";
|
|
22
22
|
import pickAttrs from "@v-c/util/dist/pickAttrs";
|
|
23
23
|
import warning$1 from "@v-c/util/dist/warning";
|
|
24
|
+
//#region src/PickerInput/RangePicker.tsx
|
|
24
25
|
function separateConfig(config, defaultConfig) {
|
|
25
26
|
const singleConfig = config ?? defaultConfig;
|
|
26
27
|
if (Array.isArray(singleConfig)) return singleConfig;
|
|
@@ -29,12 +30,12 @@ function separateConfig(config, defaultConfig) {
|
|
|
29
30
|
function getActiveRange(activeIndex) {
|
|
30
31
|
return activeIndex === 1 ? "end" : "start";
|
|
31
32
|
}
|
|
32
|
-
var
|
|
33
|
+
var RangePicker = /* @__PURE__ */ defineComponent((props, { expose }) => {
|
|
33
34
|
const [filledProps, internalPicker, complexPicker, formatList, maskFormat, isInvalidateDate] = useFilledProps(computed(() => props), () => {
|
|
34
|
-
const { disabled
|
|
35
|
+
const { disabled, allowEmpty } = props;
|
|
35
36
|
return {
|
|
36
|
-
disabled: separateConfig(disabled
|
|
37
|
-
allowEmpty: separateConfig(allowEmpty
|
|
37
|
+
disabled: separateConfig(disabled, false),
|
|
38
|
+
allowEmpty: separateConfig(allowEmpty, false)
|
|
38
39
|
};
|
|
39
40
|
});
|
|
40
41
|
const fp = computed(() => filledProps.value);
|
|
@@ -91,8 +92,8 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
91
92
|
}
|
|
92
93
|
});
|
|
93
94
|
const semantic = useSemantic(classNames, styles);
|
|
94
|
-
const [mergedOpen, setMergeOpen] = useOpen(open, defaultOpen, disabled, (open
|
|
95
|
-
onOpenChange.value?.(open
|
|
95
|
+
const [mergedOpen, setMergeOpen] = useOpen(open, defaultOpen, disabled, (open) => {
|
|
96
|
+
onOpenChange.value?.(open);
|
|
96
97
|
});
|
|
97
98
|
const triggerOpen = (nextOpen, config) => {
|
|
98
99
|
if (disabled.value.some((fieldDisabled) => !fieldDisabled) || !nextOpen) setMergeOpen(nextOpen, config);
|
|
@@ -122,6 +123,7 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
122
123
|
triggerFocus(false);
|
|
123
124
|
onBlur.value?.(event, { range: getActiveRange(index ?? activeIndex.value) });
|
|
124
125
|
};
|
|
126
|
+
/** Used for Popup panel */
|
|
125
127
|
const mergedShowTime = computed(() => {
|
|
126
128
|
if (!showTime.value) return null;
|
|
127
129
|
const { disabledTime } = showTime.value;
|
|
@@ -139,6 +141,7 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
139
141
|
if (mode.value === void 0) internalModes.value = val;
|
|
140
142
|
};
|
|
141
143
|
const mergedMode = computed(() => modes.value[activeIndex.value] || picker.value);
|
|
144
|
+
/** Extends from `mergedMode` to patch `datetime` mode */
|
|
142
145
|
const internalMode = computed(() => mergedMode.value === "date" && mergedShowTime.value ? "datetime" : mergedMode.value);
|
|
143
146
|
const multiplePanel = computed(() => internalMode.value === picker.value && internalMode.value !== "time");
|
|
144
147
|
const mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday, ref(true));
|
|
@@ -165,6 +168,12 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
165
168
|
}
|
|
166
169
|
};
|
|
167
170
|
const fillCalendarValue = (date, index) => fillIndex(calendarValue.value, index, date);
|
|
171
|
+
/**
|
|
172
|
+
* Trigger by confirm operation.
|
|
173
|
+
* This function has already handle the `needConfirm` check logic.
|
|
174
|
+
* - Selector: enter key
|
|
175
|
+
* - Panel: OK button
|
|
176
|
+
*/
|
|
168
177
|
const triggerPartConfirm = (date, skipFocus) => {
|
|
169
178
|
let nextValue = calendarValue.value;
|
|
170
179
|
if (date) nextValue = fillCalendarValue(date, activeIndex.value);
|
|
@@ -356,7 +365,7 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
356
365
|
activeInfo.value = info;
|
|
357
366
|
}
|
|
358
367
|
};
|
|
359
|
-
const panel = createVNode(
|
|
368
|
+
const panel = createVNode(Popup, {
|
|
360
369
|
...panelProps.value,
|
|
361
370
|
showNow: mergedShowNow.value,
|
|
362
371
|
showTime: mergedShowTime.value,
|
|
@@ -392,14 +401,14 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
392
401
|
classNames: mergedClassNames,
|
|
393
402
|
styles: mergedStyles
|
|
394
403
|
}, null);
|
|
395
|
-
return createVNode(
|
|
404
|
+
return createVNode(PickerTrigger, mergeProps(pickTriggerProps(fp.value), {
|
|
396
405
|
"popupElement": panel,
|
|
397
406
|
"popupStyle": mergedStyles?.popup?.root,
|
|
398
407
|
"popupClassName": clsx(rootClassName.value, mergedClassNames?.popup?.root),
|
|
399
408
|
"visible": mergedOpen.value,
|
|
400
409
|
"onClose": onPopupClose,
|
|
401
410
|
"range": true
|
|
402
|
-
}), { default: () => [createVNode(
|
|
411
|
+
}), { default: () => [createVNode(RangeSelector, mergeProps(rangePickerProps, { "ref": selectorRef }), null)] });
|
|
403
412
|
};
|
|
404
413
|
}, {
|
|
405
414
|
props: {
|
|
@@ -536,13 +545,11 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
536
545
|
},
|
|
537
546
|
locale: {
|
|
538
547
|
type: Object,
|
|
539
|
-
required: true
|
|
540
|
-
default: void 0
|
|
548
|
+
required: true
|
|
541
549
|
},
|
|
542
550
|
generateConfig: {
|
|
543
551
|
type: Object,
|
|
544
|
-
required: true
|
|
545
|
-
default: void 0
|
|
552
|
+
required: true
|
|
546
553
|
},
|
|
547
554
|
picker: {
|
|
548
555
|
type: String,
|
|
@@ -1923,4 +1930,5 @@ var RangePicker_default = /* @__PURE__ */ defineComponent((props, { expose }) =>
|
|
|
1923
1930
|
name: "RangePicker",
|
|
1924
1931
|
inheritAttrs: false
|
|
1925
1932
|
});
|
|
1926
|
-
|
|
1933
|
+
//#endregion
|
|
1934
|
+
export { RangePicker as default };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { usePickerContext } from "../context.js";
|
|
2
2
|
import { createVNode, defineComponent, mergeProps } from "vue";
|
|
3
3
|
import { clsx } from "@v-c/util";
|
|
4
|
+
//#region src/PickerInput/Selector/Icon.tsx
|
|
4
5
|
var Icon = /* @__PURE__ */ defineComponent((props, { attrs }) => {
|
|
5
6
|
const ctx = usePickerContext();
|
|
6
7
|
return () => {
|
|
@@ -34,15 +35,13 @@ var Icon = /* @__PURE__ */ defineComponent((props, { attrs }) => {
|
|
|
34
35
|
},
|
|
35
36
|
type: {
|
|
36
37
|
type: String,
|
|
37
|
-
required: true
|
|
38
|
-
default: void 0
|
|
38
|
+
required: true
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
name: "Icon",
|
|
42
42
|
inheritAttrs: false
|
|
43
43
|
});
|
|
44
|
-
var
|
|
45
|
-
const ClearIcon = /* @__PURE__ */ defineComponent((props, { attrs }) => {
|
|
44
|
+
var ClearIcon = /* @__PURE__ */ defineComponent((props, { attrs }) => {
|
|
46
45
|
return () => {
|
|
47
46
|
return createVNode(Icon, mergeProps(attrs, {
|
|
48
47
|
"icon": props.icon,
|
|
@@ -59,10 +58,7 @@ const ClearIcon = /* @__PURE__ */ defineComponent((props, { attrs }) => {
|
|
|
59
58
|
};
|
|
60
59
|
}, {
|
|
61
60
|
props: {
|
|
62
|
-
onClear: {
|
|
63
|
-
required: true,
|
|
64
|
-
default: void 0
|
|
65
|
-
},
|
|
61
|
+
onClear: { required: true },
|
|
66
62
|
icon: {
|
|
67
63
|
type: [
|
|
68
64
|
Object,
|
|
@@ -80,4 +76,5 @@ const ClearIcon = /* @__PURE__ */ defineComponent((props, { attrs }) => {
|
|
|
80
76
|
name: "ClearIcon",
|
|
81
77
|
inheritAttrs: false
|
|
82
78
|
});
|
|
83
|
-
|
|
79
|
+
//#endregion
|
|
80
|
+
export { ClearIcon, Icon as default };
|
|
@@ -2,11 +2,12 @@ import { usePickerContext } from "../context.js";
|
|
|
2
2
|
import { leftPad } from "../../utils/miscUtil.js";
|
|
3
3
|
import { getMaskRange, raf } from "./util.js";
|
|
4
4
|
import useLockEffect from "../hooks/useLockEffect.js";
|
|
5
|
-
import
|
|
5
|
+
import Icon from "./Icon.js";
|
|
6
6
|
import MaskFormat from "./MaskFormat.js";
|
|
7
7
|
import { computed, createVNode, defineComponent, mergeProps, onBeforeUnmount, ref, toRef, watch } from "vue";
|
|
8
8
|
import { clsx } from "@v-c/util";
|
|
9
|
-
|
|
9
|
+
//#region src/PickerInput/Selector/Input.tsx
|
|
10
|
+
var Input = /* @__PURE__ */ defineComponent((props, { attrs, expose }) => {
|
|
10
11
|
const pickerCtx = usePickerContext();
|
|
11
12
|
const prefixCls = computed(() => pickerCtx.value.prefixCls);
|
|
12
13
|
const classNames = computed(() => pickerCtx.value.classNames);
|
|
@@ -47,6 +48,9 @@ var Input_default = /* @__PURE__ */ defineComponent((props, { attrs, expose }) =
|
|
|
47
48
|
const onModify = (text) => {
|
|
48
49
|
if (text && text !== props.format && text !== props.value) props?.onHelp?.();
|
|
49
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Triggered by paste, keyDown and focus to show format
|
|
53
|
+
*/
|
|
50
54
|
const triggerInputChange = (text) => {
|
|
51
55
|
if (props.validateFormat?.(text)) props?.onChange?.(text);
|
|
52
56
|
internalInputValue.value = text;
|
|
@@ -214,7 +218,7 @@ var Input_default = /* @__PURE__ */ defineComponent((props, { attrs, expose }) =
|
|
|
214
218
|
"style": styles.value.input,
|
|
215
219
|
"readonly": props.inputReadOnly
|
|
216
220
|
}), null),
|
|
217
|
-
createVNode(
|
|
221
|
+
createVNode(Icon, {
|
|
218
222
|
"type": "suffix",
|
|
219
223
|
"icon": props.suffixIcon
|
|
220
224
|
}, null),
|
|
@@ -290,8 +294,7 @@ var Input_default = /* @__PURE__ */ defineComponent((props, { attrs, expose }) =
|
|
|
290
294
|
},
|
|
291
295
|
validateFormat: {
|
|
292
296
|
type: Function,
|
|
293
|
-
required: true
|
|
294
|
-
default: void 0
|
|
297
|
+
required: true
|
|
295
298
|
},
|
|
296
299
|
active: {
|
|
297
300
|
type: Boolean,
|
|
@@ -323,13 +326,9 @@ var Input_default = /* @__PURE__ */ defineComponent((props, { attrs, expose }) =
|
|
|
323
326
|
},
|
|
324
327
|
onChange: {
|
|
325
328
|
type: Function,
|
|
326
|
-
required: true
|
|
327
|
-
default: void 0
|
|
328
|
-
},
|
|
329
|
-
onSubmit: {
|
|
330
|
-
required: true,
|
|
331
|
-
default: void 0
|
|
329
|
+
required: true
|
|
332
330
|
},
|
|
331
|
+
onSubmit: { required: true },
|
|
333
332
|
helped: {
|
|
334
333
|
type: Boolean,
|
|
335
334
|
required: false,
|
|
@@ -337,8 +336,7 @@ var Input_default = /* @__PURE__ */ defineComponent((props, { attrs, expose }) =
|
|
|
337
336
|
},
|
|
338
337
|
onHelp: {
|
|
339
338
|
type: Function,
|
|
340
|
-
required: true
|
|
341
|
-
default: void 0
|
|
339
|
+
required: true
|
|
342
340
|
},
|
|
343
341
|
preserveInvalidOnBlur: {
|
|
344
342
|
type: Boolean,
|
|
@@ -367,4 +365,5 @@ var Input_default = /* @__PURE__ */ defineComponent((props, { attrs, expose }) =
|
|
|
367
365
|
name: "Input",
|
|
368
366
|
inheritAttrs: false
|
|
369
367
|
});
|
|
370
|
-
|
|
368
|
+
//#endregion
|
|
369
|
+
export { Input as default };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
//#region src/PickerInput/Selector/MaskFormat.ts
|
|
1
2
|
var FORMAT_KEYS = [
|
|
2
3
|
"YYYY",
|
|
3
4
|
"MM",
|
|
@@ -18,7 +19,7 @@ var MaskFormat = class {
|
|
|
18
19
|
const replaceKeys = FORMAT_KEYS.map((key) => `(${key})`).join("|");
|
|
19
20
|
const replaceReg = new RegExp(replaceKeys, "g");
|
|
20
21
|
this.maskFormat = format.replace(replaceReg, (key) => REPLACE_KEY.repeat(key.length));
|
|
21
|
-
const cellReg =
|
|
22
|
+
const cellReg = new RegExp(`(${FORMAT_KEYS.join("|")})`);
|
|
22
23
|
const strCells = (format.split(cellReg) || []).filter((str) => str);
|
|
23
24
|
let offset = 0;
|
|
24
25
|
this.cells = strCells.map((text) => {
|
|
@@ -39,6 +40,7 @@ var MaskFormat = class {
|
|
|
39
40
|
const { start, end } = this.maskCells[maskCellIndex] || {};
|
|
40
41
|
return [start || 0, end || 0];
|
|
41
42
|
}
|
|
43
|
+
/** Check given text match format */
|
|
42
44
|
match(text) {
|
|
43
45
|
for (let i = 0; i < this.maskFormat.length; i += 1) {
|
|
44
46
|
const maskChar = this.maskFormat[i];
|
|
@@ -47,6 +49,7 @@ var MaskFormat = class {
|
|
|
47
49
|
}
|
|
48
50
|
return true;
|
|
49
51
|
}
|
|
52
|
+
/** Get mask cell count */
|
|
50
53
|
size() {
|
|
51
54
|
return this.maskCells.length;
|
|
52
55
|
}
|
|
@@ -65,4 +68,5 @@ var MaskFormat = class {
|
|
|
65
68
|
return closetIndex;
|
|
66
69
|
}
|
|
67
70
|
};
|
|
71
|
+
//#endregion
|
|
68
72
|
export { MaskFormat as default };
|