@v-c/picker 1.0.0 → 1.0.2
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/hooks/useRangeValue.js +1 -0
- package/package.json +9 -9
- package/dist/PickerInput/Popup/Footer.cjs +0 -115
- package/dist/PickerInput/Popup/PopupPanel.cjs +0 -413
- package/dist/PickerInput/Popup/PresetPanel.cjs +0 -54
- package/dist/PickerInput/Popup/index.cjs +0 -526
- package/dist/PickerInput/RangePicker.cjs +0 -1911
- package/dist/PickerInput/Selector/Icon.cjs +0 -89
- package/dist/PickerInput/Selector/Input.cjs +0 -376
- package/dist/PickerInput/Selector/MaskFormat.cjs +0 -72
- package/dist/PickerInput/Selector/RangeSelector.cjs +0 -1393
- package/dist/PickerInput/Selector/SingleSelector/MultipleDates.cjs +0 -110
- package/dist/PickerInput/Selector/SingleSelector/index.cjs +0 -1361
- package/dist/PickerInput/Selector/hooks/useClearIcon.cjs +0 -17
- package/dist/PickerInput/Selector/hooks/useInputHooks.cjs +0 -125
- package/dist/PickerInput/Selector/hooks/useRootProps.cjs +0 -14
- package/dist/PickerInput/Selector/util.cjs +0 -32
- package/dist/PickerInput/SinglePicker.cjs +0 -1881
- package/dist/PickerInput/context.cjs +0 -12
- package/dist/PickerInput/hooks/useCellRender.cjs +0 -25
- package/dist/PickerInput/hooks/useDelayState.cjs +0 -37
- package/dist/PickerInput/hooks/useDisabledBoundary.cjs +0 -15
- package/dist/PickerInput/hooks/useFieldFormat.cjs +0 -17
- package/dist/PickerInput/hooks/useFieldsInvalidate.cjs +0 -24
- package/dist/PickerInput/hooks/useFilledProps.cjs +0 -103
- package/dist/PickerInput/hooks/useInputReadOnly.cjs +0 -13
- package/dist/PickerInput/hooks/useInvalidate.cjs +0 -34
- package/dist/PickerInput/hooks/useLockEffect.cjs +0 -16
- package/dist/PickerInput/hooks/useOpen.cjs +0 -15
- package/dist/PickerInput/hooks/usePresets.cjs +0 -21
- package/dist/PickerInput/hooks/useRangeActive.cjs +0 -57
- package/dist/PickerInput/hooks/useRangeDisabledDate.cjs +0 -21
- package/dist/PickerInput/hooks/useRangePickerValue.cjs +0 -100
- package/dist/PickerInput/hooks/useRangeValue.cjs +0 -135
- package/dist/PickerInput/hooks/useShowNow.cjs +0 -15
- package/dist/PickerPanel/DatePanel/index.cjs +0 -294
- package/dist/PickerPanel/DateTimePanel/index.cjs +0 -180
- package/dist/PickerPanel/DecadePanel/index.cjs +0 -230
- package/dist/PickerPanel/MonthPanel/index.cjs +0 -219
- package/dist/PickerPanel/PanelBody.cjs +0 -157
- package/dist/PickerPanel/PanelHeader.cjs +0 -132
- package/dist/PickerPanel/QuarterPanel/index.cjs +0 -211
- package/dist/PickerPanel/TimePanel/TimePanelBody/TimeColumn.cjs +0 -145
- package/dist/PickerPanel/TimePanel/TimePanelBody/index.cjs +0 -286
- package/dist/PickerPanel/TimePanel/TimePanelBody/useScrollTo.cjs +0 -65
- package/dist/PickerPanel/TimePanel/index.cjs +0 -173
- package/dist/PickerPanel/WeekPanel/index.cjs +0 -179
- package/dist/PickerPanel/YearPanel/index.cjs +0 -239
- package/dist/PickerPanel/context.cjs +0 -61
- package/dist/PickerPanel/index.cjs +0 -473
- package/dist/PickerTrigger/index.cjs +0 -139
- package/dist/PickerTrigger/util.cjs +0 -13
- package/dist/_virtual/rolldown_runtime.cjs +0 -21
- package/dist/generate/dateFns.cjs +0 -80
- package/dist/generate/dayjs.cjs +0 -117
- package/dist/generate/index.cjs +0 -1
- package/dist/generate/luxon.cjs +0 -75
- package/dist/generate/moment.cjs +0 -107
- package/dist/hooks/useLocale.cjs +0 -45
- package/dist/hooks/useSemantic.cjs +0 -18
- package/dist/hooks/useSyncState.cjs +0 -29
- package/dist/hooks/useTimeConfig.cjs +0 -161
- package/dist/hooks/useTimeInfo.cjs +0 -114
- package/dist/hooks/useToggleDates.cjs +0 -16
- package/dist/index.cjs +0 -12
- package/dist/interface.cjs +0 -1
- package/dist/locale/am_ET.cjs +0 -34
- package/dist/locale/ar_EG.cjs +0 -32
- package/dist/locale/az_AZ.cjs +0 -33
- package/dist/locale/bg_BG.cjs +0 -32
- package/dist/locale/bn_BD.cjs +0 -33
- package/dist/locale/by_BY.cjs +0 -33
- package/dist/locale/ca_ES.cjs +0 -32
- package/dist/locale/common.cjs +0 -8
- package/dist/locale/cs_CZ.cjs +0 -32
- package/dist/locale/da_DK.cjs +0 -32
- package/dist/locale/de_DE.cjs +0 -32
- package/dist/locale/el_GR.cjs +0 -32
- package/dist/locale/en_GB.cjs +0 -32
- package/dist/locale/en_US.cjs +0 -33
- package/dist/locale/es_ES.cjs +0 -32
- package/dist/locale/es_MX.cjs +0 -33
- package/dist/locale/et_EE.cjs +0 -32
- package/dist/locale/eu_ES.cjs +0 -34
- package/dist/locale/fa_IR.cjs +0 -32
- package/dist/locale/fi_FI.cjs +0 -32
- package/dist/locale/fr_BE.cjs +0 -32
- package/dist/locale/fr_CA.cjs +0 -33
- package/dist/locale/fr_FR.cjs +0 -33
- package/dist/locale/ga_IE.cjs +0 -33
- package/dist/locale/gl_ES.cjs +0 -32
- package/dist/locale/he_IL.cjs +0 -33
- package/dist/locale/hi_IN.cjs +0 -33
- package/dist/locale/hr_HR.cjs +0 -33
- package/dist/locale/hu_HU.cjs +0 -33
- package/dist/locale/id_ID.cjs +0 -33
- package/dist/locale/is_IS.cjs +0 -32
- package/dist/locale/it_IT.cjs +0 -55
- package/dist/locale/ja_JP.cjs +0 -35
- package/dist/locale/ka_GE.cjs +0 -33
- package/dist/locale/kk_KZ.cjs +0 -32
- package/dist/locale/km_KH.cjs +0 -34
- package/dist/locale/kmr_IQ.cjs +0 -32
- package/dist/locale/kn_IN.cjs +0 -33
- package/dist/locale/ko_KR.cjs +0 -34
- package/dist/locale/lt_LT.cjs +0 -34
- package/dist/locale/lv_LV.cjs +0 -32
- package/dist/locale/mk_MK.cjs +0 -32
- package/dist/locale/ml_IN.cjs +0 -33
- package/dist/locale/mn_MN.cjs +0 -34
- package/dist/locale/mr_IN.cjs +0 -59
- package/dist/locale/ms_MY.cjs +0 -34
- package/dist/locale/my_MM.cjs +0 -33
- package/dist/locale/nb_NO.cjs +0 -34
- package/dist/locale/ne_NP.cjs +0 -33
- package/dist/locale/nl_BE.cjs +0 -32
- package/dist/locale/nl_NL.cjs +0 -32
- package/dist/locale/pl_PL.cjs +0 -32
- package/dist/locale/pt_BR.cjs +0 -56
- package/dist/locale/pt_PT.cjs +0 -55
- package/dist/locale/ro_RO.cjs +0 -33
- package/dist/locale/ru_RU.cjs +0 -32
- package/dist/locale/si_LK.cjs +0 -34
- package/dist/locale/sk_SK.cjs +0 -32
- package/dist/locale/sl_SI.cjs +0 -32
- package/dist/locale/sr_Cyrl_RS.cjs +0 -32
- package/dist/locale/sr_RS.cjs +0 -32
- package/dist/locale/sv_SE.cjs +0 -32
- package/dist/locale/ta_IN.cjs +0 -33
- package/dist/locale/te_IN.cjs +0 -33
- package/dist/locale/th_TH.cjs +0 -32
- package/dist/locale/tk_TK.cjs +0 -32
- package/dist/locale/tr_TR.cjs +0 -55
- package/dist/locale/ug_CN.cjs +0 -35
- package/dist/locale/uk_UA.cjs +0 -32
- package/dist/locale/ur_PK.cjs +0 -33
- package/dist/locale/uz_UZ.cjs +0 -33
- package/dist/locale/vi_VN.cjs +0 -33
- package/dist/locale/zh_CN.cjs +0 -36
- package/dist/locale/zh_TW.cjs +0 -36
- package/dist/utils/dateUtil.cjs +0 -105
- package/dist/utils/getClearIcon.cjs +0 -7
- package/dist/utils/miscUtil.cjs +0 -46
- package/dist/utils/uiUtil.cjs +0 -6
- package/dist/utils/warnUtil.cjs +0 -8
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_rolldown_runtime = require("../_virtual/rolldown_runtime.cjs");
|
|
3
|
-
let vue = require("vue");
|
|
4
|
-
var PickerContextKey = Symbol("PickerContext");
|
|
5
|
-
function providePickerContext(context) {
|
|
6
|
-
(0, vue.provide)(PickerContextKey, context);
|
|
7
|
-
}
|
|
8
|
-
function usePickerContext() {
|
|
9
|
-
return (0, vue.inject)(PickerContextKey, (0, vue.ref)({}));
|
|
10
|
-
}
|
|
11
|
-
exports.providePickerContext = providePickerContext;
|
|
12
|
-
exports.usePickerContext = usePickerContext;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
let _v_c_util = require("@v-c/util");
|
|
7
|
-
function useCellRender(cellRender, dateRender, monthCellRender, range) {
|
|
8
|
-
if (process.env.NODE_ENV !== "production") {
|
|
9
|
-
(0, _v_c_util.warning)(!dateRender?.value, `'dateRender' is deprecated. Please use 'cellRender' instead.`);
|
|
10
|
-
(0, _v_c_util.warning)(!monthCellRender?.value, `'monthCellRender' is deprecated. Please use 'cellRender' instead.`);
|
|
11
|
-
}
|
|
12
|
-
const mergedCellRender = (current, info) => {
|
|
13
|
-
if (cellRender.value) return cellRender.value(current, info);
|
|
14
|
-
const date = current;
|
|
15
|
-
if (dateRender?.value && info.type === "date") return dateRender.value(date, info.today);
|
|
16
|
-
if (monthCellRender?.value && info.type === "month") return monthCellRender.value(date, info.locale);
|
|
17
|
-
return info.originNode;
|
|
18
|
-
};
|
|
19
|
-
const onInternalCellRender = (date, info) => mergedCellRender(date, {
|
|
20
|
-
...info,
|
|
21
|
-
range: range?.value
|
|
22
|
-
});
|
|
23
|
-
return onInternalCellRender;
|
|
24
|
-
}
|
|
25
|
-
exports.default = useCellRender;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
let vue = require("vue");
|
|
7
|
-
let _v_c_util_dist_raf = require("@v-c/util/dist/raf");
|
|
8
|
-
_v_c_util_dist_raf = require_rolldown_runtime.__toESM(_v_c_util_dist_raf);
|
|
9
|
-
function useDelayState(value, defaultValue, onChange) {
|
|
10
|
-
const internalValue = (0, vue.ref)(defaultValue);
|
|
11
|
-
const state = (0, vue.computed)(() => value.value !== void 0 ? value.value : internalValue.value);
|
|
12
|
-
const nextValueRef = (0, vue.ref)(state.value);
|
|
13
|
-
const rafRef = (0, vue.ref)();
|
|
14
|
-
const cancelRaf = () => {
|
|
15
|
-
if (rafRef.value) _v_c_util_dist_raf.default.cancel(rafRef.value);
|
|
16
|
-
};
|
|
17
|
-
const doUpdate = () => {
|
|
18
|
-
if (value.value === void 0) (0, vue.nextTick)(() => {
|
|
19
|
-
internalValue.value = nextValueRef.value;
|
|
20
|
-
});
|
|
21
|
-
if (onChange && state.value !== nextValueRef.value) onChange(nextValueRef.value);
|
|
22
|
-
};
|
|
23
|
-
const updateValue = (next, immediately) => {
|
|
24
|
-
cancelRaf();
|
|
25
|
-
nextValueRef.value = next;
|
|
26
|
-
if (next || immediately) doUpdate();
|
|
27
|
-
else rafRef.value = (0, _v_c_util_dist_raf.default)(doUpdate);
|
|
28
|
-
};
|
|
29
|
-
(0, vue.watch)(value, () => {
|
|
30
|
-
if (value.value !== void 0) nextValueRef.value = value.value;
|
|
31
|
-
});
|
|
32
|
-
(0, vue.onBeforeUnmount)(() => {
|
|
33
|
-
cancelRaf();
|
|
34
|
-
});
|
|
35
|
-
return [state, updateValue];
|
|
36
|
-
}
|
|
37
|
-
exports.default = useDelayState;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_dateUtil = require("../../utils/dateUtil.cjs");
|
|
6
|
-
function useDisabledBoundary(generateConfig, locale, disabledDate, minDate, maxDate) {
|
|
7
|
-
const mergedDisabledDate = (date, info) => {
|
|
8
|
-
if (disabledDate.value && disabledDate.value(date, info)) return true;
|
|
9
|
-
if (minDate.value && generateConfig.value.isAfter(minDate.value, date) && !require_dateUtil.isSame(generateConfig.value, locale.value, minDate.value, date, info.type)) return true;
|
|
10
|
-
if (maxDate.value && generateConfig.value.isAfter(date, maxDate.value) && !require_dateUtil.isSame(generateConfig.value, locale.value, maxDate.value, date, info.type)) return true;
|
|
11
|
-
return false;
|
|
12
|
-
};
|
|
13
|
-
return mergedDisabledDate;
|
|
14
|
-
}
|
|
15
|
-
exports.default = useDisabledBoundary;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
3
|
-
const require_miscUtil = require("../../utils/miscUtil.cjs");
|
|
4
|
-
let vue = require("vue");
|
|
5
|
-
function useFieldFormat(picker, locale, format) {
|
|
6
|
-
const info = (0, vue.computed)(() => {
|
|
7
|
-
const formatList = require_miscUtil.toArray(require_miscUtil.getRowFormat(picker.value, locale.value, format?.value));
|
|
8
|
-
const firstFormat = formatList[0];
|
|
9
|
-
const maskFormat = typeof firstFormat === "object" && firstFormat.type === "mask" ? firstFormat.format : void 0;
|
|
10
|
-
return {
|
|
11
|
-
formatList: formatList.map((config) => typeof config === "string" || typeof config === "function" ? config : config.format),
|
|
12
|
-
maskFormat
|
|
13
|
-
};
|
|
14
|
-
});
|
|
15
|
-
return [(0, vue.computed)(() => info.value.formatList), (0, vue.computed)(() => info.value.maskFormat)];
|
|
16
|
-
}
|
|
17
|
-
exports.useFieldFormat = useFieldFormat;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
const require_miscUtil = require("../../utils/miscUtil.cjs");
|
|
7
|
-
let vue = require("vue");
|
|
8
|
-
function useFieldsInvalidate(calendarValue, isInvalidateDate, allowEmpty = (0, vue.ref)([])) {
|
|
9
|
-
const fieldsInvalidates = (0, vue.ref)([false, false]);
|
|
10
|
-
const onSelectorInvalid = (invalid, index) => {
|
|
11
|
-
fieldsInvalidates.value = require_miscUtil.fillIndex(fieldsInvalidates.value, index, invalid);
|
|
12
|
-
};
|
|
13
|
-
return [(0, vue.computed)(() => {
|
|
14
|
-
return fieldsInvalidates.value.map((invalid, index) => {
|
|
15
|
-
if (invalid) return true;
|
|
16
|
-
const current = calendarValue.value[index];
|
|
17
|
-
if (!current) return false;
|
|
18
|
-
if (!allowEmpty.value?.[index] && !current) return true;
|
|
19
|
-
if (current && isInvalidateDate(current, { activeIndex: index })) return true;
|
|
20
|
-
return false;
|
|
21
|
-
});
|
|
22
|
-
}), onSelectorInvalid];
|
|
23
|
-
}
|
|
24
|
-
exports.default = useFieldsInvalidate;
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
const require_miscUtil = require("../../utils/miscUtil.cjs");
|
|
7
|
-
const require_useLocale = require("../../hooks/useLocale.cjs");
|
|
8
|
-
const require_useTimeConfig = require("../../hooks/useTimeConfig.cjs");
|
|
9
|
-
const require_useClearIcon = require("../Selector/hooks/useClearIcon.cjs");
|
|
10
|
-
const require_useDisabledBoundary = require("./useDisabledBoundary.cjs");
|
|
11
|
-
const require_useFieldFormat = require("./useFieldFormat.cjs");
|
|
12
|
-
const require_useInputReadOnly = require("./useInputReadOnly.cjs");
|
|
13
|
-
const require_useInvalidate = require("./useInvalidate.cjs");
|
|
14
|
-
let vue = require("vue");
|
|
15
|
-
let _v_c_util = require("@v-c/util");
|
|
16
|
-
function useList(value, fillMode = false) {
|
|
17
|
-
return (0, vue.computed)(() => {
|
|
18
|
-
const val = value.value;
|
|
19
|
-
const list = val ? require_miscUtil.toArray(val) : val;
|
|
20
|
-
if (fillMode && list && Array.isArray(list)) {
|
|
21
|
-
const clone = [...list];
|
|
22
|
-
clone[1] = clone[1] || clone[0];
|
|
23
|
-
return clone;
|
|
24
|
-
}
|
|
25
|
-
return list;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function useFilledProps(props, updater) {
|
|
29
|
-
const mergedPicker = (0, vue.computed)(() => props.value.picker || "date");
|
|
30
|
-
const mergedPrefixCls = (0, vue.computed)(() => props.value.prefixCls || "vc-picker");
|
|
31
|
-
const mergedPreviewValue = (0, vue.computed)(() => props.value.previewValue ?? "hover");
|
|
32
|
-
const mergedStyles = (0, vue.computed)(() => props.value.styles || {});
|
|
33
|
-
const mergedClassNames = (0, vue.computed)(() => props.value.classNames || {});
|
|
34
|
-
const mergedOrder = (0, vue.computed)(() => props.value.order ?? true);
|
|
35
|
-
const mergedComponents = (0, vue.computed)(() => ({
|
|
36
|
-
input: props.value.inputRender,
|
|
37
|
-
...props.value.components
|
|
38
|
-
}));
|
|
39
|
-
const values = useList((0, vue.computed)(() => props.value.value));
|
|
40
|
-
const defaultValues = useList((0, vue.computed)(() => props.value.defaultValue));
|
|
41
|
-
const pickerValues = useList((0, vue.computed)(() => props.value.pickerValue));
|
|
42
|
-
const defaultPickerValues = useList((0, vue.computed)(() => props.value.defaultPickerValue));
|
|
43
|
-
const internalPicker = (0, vue.computed)(() => mergedPicker.value === "date" && props.value.showTime ? "datetime" : mergedPicker.value);
|
|
44
|
-
const multipleInteractivePicker = (0, vue.computed)(() => internalPicker.value === "time" || internalPicker.value === "datetime");
|
|
45
|
-
const complexPicker = (0, vue.computed)(() => multipleInteractivePicker.value || props.value.multiple);
|
|
46
|
-
const mergedNeedConfirm = (0, vue.computed)(() => {
|
|
47
|
-
return props.value.needConfirm ?? multipleInteractivePicker.value;
|
|
48
|
-
});
|
|
49
|
-
const timePropsInfo = (0, vue.computed)(() => require_useTimeConfig.getTimeProps(props.value));
|
|
50
|
-
const timeProps = (0, vue.computed)(() => timePropsInfo.value[0]);
|
|
51
|
-
const localeTimeProps = (0, vue.computed)(() => timePropsInfo.value[1]);
|
|
52
|
-
const showTimeFormat = (0, vue.computed)(() => timePropsInfo.value[2]);
|
|
53
|
-
const propFormat = (0, vue.computed)(() => timePropsInfo.value[3]);
|
|
54
|
-
const mergedLocale = require_useLocale.default((0, vue.computed)(() => props.value.locale), localeTimeProps);
|
|
55
|
-
const mergedShowTime = (0, vue.computed)(() => require_useTimeConfig.fillShowTimeConfig(internalPicker.value, showTimeFormat.value, propFormat.value, timeProps.value, mergedLocale.value));
|
|
56
|
-
if (process.env.NODE_ENV !== "production") {
|
|
57
|
-
if (mergedPicker.value === "time") {
|
|
58
|
-
if ([
|
|
59
|
-
"disabledHours",
|
|
60
|
-
"disabledMinutes",
|
|
61
|
-
"disabledSeconds"
|
|
62
|
-
].some((key) => props[key])) (0, _v_c_util.warning)(false, `'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
const filledProps = (0, vue.computed)(() => ({
|
|
66
|
-
...props.value,
|
|
67
|
-
previewValue: mergedPreviewValue.value,
|
|
68
|
-
prefixCls: mergedPrefixCls.value,
|
|
69
|
-
locale: mergedLocale.value,
|
|
70
|
-
picker: mergedPicker.value,
|
|
71
|
-
styles: mergedStyles.value,
|
|
72
|
-
classNames: mergedClassNames.value,
|
|
73
|
-
order: mergedOrder.value,
|
|
74
|
-
components: mergedComponents.value,
|
|
75
|
-
clearIcon: require_useClearIcon.fillClearIcon(mergedPrefixCls.value, props.value.allowClear, props.value.clearIcon),
|
|
76
|
-
showTime: mergedShowTime.value,
|
|
77
|
-
value: values.value,
|
|
78
|
-
defaultValue: defaultValues.value,
|
|
79
|
-
pickerValue: pickerValues.value,
|
|
80
|
-
defaultPickerValue: defaultPickerValues.value,
|
|
81
|
-
...updater?.()
|
|
82
|
-
}));
|
|
83
|
-
const [formatList, maskFormat] = require_useFieldFormat.useFieldFormat(internalPicker, mergedLocale, (0, vue.computed)(() => props.value.format));
|
|
84
|
-
const mergedInputReadOnly = require_useInputReadOnly.default(formatList, (0, vue.computed)(() => props.value.inputReadOnly), (0, vue.computed)(() => props.value.multiple));
|
|
85
|
-
const disabledBoundaryDate = require_useDisabledBoundary.default((0, vue.computed)(() => props.value.generateConfig), (0, vue.computed)(() => props.value.locale), (0, vue.computed)(() => props.value.disabledDate), (0, vue.computed)(() => props.value.minDate), (0, vue.computed)(() => props.value.maxDate));
|
|
86
|
-
const isInvalidateDate = require_useInvalidate.default((0, vue.computed)(() => props.value.generateConfig), mergedPicker, disabledBoundaryDate, mergedShowTime);
|
|
87
|
-
return [
|
|
88
|
-
(0, vue.computed)(() => {
|
|
89
|
-
return {
|
|
90
|
-
...filledProps.value,
|
|
91
|
-
needConfirm: mergedNeedConfirm.value,
|
|
92
|
-
inputReadOnly: mergedInputReadOnly.value,
|
|
93
|
-
disabledDate: disabledBoundaryDate
|
|
94
|
-
};
|
|
95
|
-
}),
|
|
96
|
-
internalPicker,
|
|
97
|
-
complexPicker,
|
|
98
|
-
formatList,
|
|
99
|
-
maskFormat,
|
|
100
|
-
isInvalidateDate
|
|
101
|
-
];
|
|
102
|
-
}
|
|
103
|
-
exports.default = useFilledProps;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
let vue = require("vue");
|
|
7
|
-
function useInputReadOnly(formatList, inputReadOnly, multiple) {
|
|
8
|
-
return (0, vue.computed)(() => {
|
|
9
|
-
if (typeof formatList.value[0] === "function" || multiple.value) return true;
|
|
10
|
-
return inputReadOnly.value;
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
exports.default = useInputReadOnly;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
function useInvalidate(generateConfig, picker, disabledDate, showTime) {
|
|
6
|
-
const isInvalidate = (date, info) => {
|
|
7
|
-
const outsideInfo = {
|
|
8
|
-
type: picker.value,
|
|
9
|
-
...info
|
|
10
|
-
};
|
|
11
|
-
delete outsideInfo.activeIndex;
|
|
12
|
-
if (!generateConfig.value.isValidate(date) || disabledDate.value && disabledDate.value(date, outsideInfo)) return true;
|
|
13
|
-
if ((picker.value === "date" || picker.value === "time") && showTime.value) {
|
|
14
|
-
const range = info && info.activeIndex === 1 ? "end" : "start";
|
|
15
|
-
const { disabledHours, disabledMinutes, disabledSeconds, disabledMilliseconds } = showTime.value.disabledTime?.(date, range, { from: outsideInfo.from }) || {};
|
|
16
|
-
const { disabledHours: legacyDisabledHours, disabledMinutes: legacyDisabledMinutes, disabledSeconds: legacyDisabledSeconds, disabledMilliseconds: legacyDisabledMilliseconds } = showTime.value;
|
|
17
|
-
const mergedDisabledHours = disabledHours || legacyDisabledHours;
|
|
18
|
-
const mergedDisabledMinutes = disabledMinutes || legacyDisabledMinutes;
|
|
19
|
-
const mergedDisabledSeconds = disabledSeconds || legacyDisabledSeconds;
|
|
20
|
-
const mergedDisabledMilliseconds = disabledMilliseconds || legacyDisabledMilliseconds;
|
|
21
|
-
const hour = generateConfig.value.getHour(date);
|
|
22
|
-
const minute = generateConfig.value.getMinute(date);
|
|
23
|
-
const second = generateConfig.value.getSecond(date);
|
|
24
|
-
const millisecond = generateConfig.value.getMillisecond(date);
|
|
25
|
-
if (mergedDisabledHours && mergedDisabledHours().includes(hour)) return true;
|
|
26
|
-
if (mergedDisabledMinutes && mergedDisabledMinutes(hour).includes(minute)) return true;
|
|
27
|
-
if (mergedDisabledSeconds && mergedDisabledSeconds(hour, minute).includes(second)) return true;
|
|
28
|
-
if (mergedDisabledMilliseconds && mergedDisabledMilliseconds(hour, minute, second).includes(millisecond)) return true;
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
};
|
|
32
|
-
return isInvalidate;
|
|
33
|
-
}
|
|
34
|
-
exports.default = useInvalidate;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
const require_util = require("../Selector/util.cjs");
|
|
7
|
-
let vue = require("vue");
|
|
8
|
-
function useLockEffect(condition, callback) {
|
|
9
|
-
(0, vue.watch)(condition, (val) => {
|
|
10
|
-
if (val) callback(val);
|
|
11
|
-
else require_util.raf(() => {
|
|
12
|
-
callback(!!val);
|
|
13
|
-
});
|
|
14
|
-
}, { flush: "post" });
|
|
15
|
-
}
|
|
16
|
-
exports.default = useLockEffect;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
const require_useDelayState = require("./useDelayState.cjs");
|
|
7
|
-
let vue = require("vue");
|
|
8
|
-
function useOpen(open, defaultOpen, disabledList, onOpenChange) {
|
|
9
|
-
const [rafOpen, setRafOpen] = require_useDelayState.default((0, vue.computed)(() => disabledList.value?.every((disabled) => disabled) ? false : open.value), defaultOpen.value || false, onOpenChange);
|
|
10
|
-
function setOpen(next, config = {}) {
|
|
11
|
-
if (!config.inherit || rafOpen.value) setRafOpen(next, config.force);
|
|
12
|
-
}
|
|
13
|
-
return [rafOpen, setOpen];
|
|
14
|
-
}
|
|
15
|
-
exports.default = useOpen;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
let vue = require("vue");
|
|
7
|
-
let _v_c_util = require("@v-c/util");
|
|
8
|
-
function usePresets(presets, legacyRanges) {
|
|
9
|
-
return (0, vue.computed)(() => {
|
|
10
|
-
if (presets.value) return presets.value;
|
|
11
|
-
if (legacyRanges?.value) {
|
|
12
|
-
(0, _v_c_util.warning)(false, "`ranges` is deprecated. Please use `presets` instead.");
|
|
13
|
-
return Object.entries(legacyRanges.value).map(([label, value]) => ({
|
|
14
|
-
label,
|
|
15
|
-
value
|
|
16
|
-
}));
|
|
17
|
-
}
|
|
18
|
-
return [];
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
exports.default = usePresets;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
const require_useLockEffect = require("./useLockEffect.cjs");
|
|
7
|
-
let vue = require("vue");
|
|
8
|
-
function useRangeActive(disabled, empty = (0, vue.ref)([]), mergedOpen = (0, vue.ref)(false)) {
|
|
9
|
-
const activeIndex = (0, vue.ref)(0);
|
|
10
|
-
const focused = (0, vue.ref)(false);
|
|
11
|
-
const activeListRef = (0, vue.ref)([]);
|
|
12
|
-
const submitIndexRef = (0, vue.ref)(null);
|
|
13
|
-
const lastOperationRef = (0, vue.ref)(null);
|
|
14
|
-
const updateSubmitIndex = (index) => {
|
|
15
|
-
submitIndexRef.value = index;
|
|
16
|
-
};
|
|
17
|
-
const hasActiveSubmitValue = (index) => {
|
|
18
|
-
return submitIndexRef.value === index;
|
|
19
|
-
};
|
|
20
|
-
const triggerFocus = (nextFocus) => {
|
|
21
|
-
focused.value = nextFocus;
|
|
22
|
-
};
|
|
23
|
-
const lastOperation = (type) => {
|
|
24
|
-
if (type) lastOperationRef.value = type;
|
|
25
|
-
return lastOperationRef.value;
|
|
26
|
-
};
|
|
27
|
-
const nextActiveIndex = (nextValue) => {
|
|
28
|
-
const list = activeListRef.value;
|
|
29
|
-
const filledActiveSet = new Set(list.filter((index) => nextValue?.[index] || empty.value[index]));
|
|
30
|
-
const nextIndex = list[list.length - 1] === 0 ? 1 : 0;
|
|
31
|
-
if (filledActiveSet.size >= 2 || disabled.value[nextIndex]) return null;
|
|
32
|
-
return nextIndex;
|
|
33
|
-
};
|
|
34
|
-
require_useLockEffect.default((0, vue.computed)(() => focused.value || mergedOpen.value), () => {
|
|
35
|
-
if (!focused.value) {
|
|
36
|
-
activeListRef.value = [];
|
|
37
|
-
updateSubmitIndex(null);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
(0, vue.watch)([focused, activeIndex], () => {
|
|
41
|
-
if (focused.value) activeListRef.value.push(activeIndex.value);
|
|
42
|
-
});
|
|
43
|
-
return [
|
|
44
|
-
focused,
|
|
45
|
-
triggerFocus,
|
|
46
|
-
lastOperation,
|
|
47
|
-
activeIndex,
|
|
48
|
-
(index) => {
|
|
49
|
-
activeIndex.value = index;
|
|
50
|
-
},
|
|
51
|
-
nextActiveIndex,
|
|
52
|
-
activeListRef,
|
|
53
|
-
updateSubmitIndex,
|
|
54
|
-
hasActiveSubmitValue
|
|
55
|
-
];
|
|
56
|
-
}
|
|
57
|
-
exports.default = useRangeActive;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_miscUtil = require("../../utils/miscUtil.cjs");
|
|
6
|
-
const require_dateUtil = require("../../utils/dateUtil.cjs");
|
|
7
|
-
function useRangeDisabledDate(values, disabled, activeIndexList, generateConfig, locale, disabledDate) {
|
|
8
|
-
const rangeDisabledDate = (date, info) => {
|
|
9
|
-
const activeIndex = activeIndexList.value[activeIndexList.value.length - 1];
|
|
10
|
-
const [start, end] = values.value;
|
|
11
|
-
const mergedInfo = {
|
|
12
|
-
...info,
|
|
13
|
-
from: require_miscUtil.getFromDate(values.value, activeIndexList.value)
|
|
14
|
-
};
|
|
15
|
-
if (activeIndex === 1 && disabled.value[0] && start && !require_dateUtil.isSame(generateConfig.value, locale.value, start, date, mergedInfo.type) && generateConfig.value.isAfter(start, date)) return true;
|
|
16
|
-
if (activeIndex === 0 && disabled.value[1] && end && !require_dateUtil.isSame(generateConfig.value, locale.value, end, date, mergedInfo.type) && generateConfig.value.isAfter(date, end)) return true;
|
|
17
|
-
return disabledDate.value?.(date, mergedInfo) || false;
|
|
18
|
-
};
|
|
19
|
-
return rangeDisabledDate;
|
|
20
|
-
}
|
|
21
|
-
exports.default = useRangeDisabledDate;
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
const require_dateUtil = require("../../utils/dateUtil.cjs");
|
|
7
|
-
const require_useSyncState = require("../../hooks/useSyncState.cjs");
|
|
8
|
-
let vue = require("vue");
|
|
9
|
-
function offsetPanelDate(generateConfig, picker, date, offset) {
|
|
10
|
-
switch (picker) {
|
|
11
|
-
case "date":
|
|
12
|
-
case "datetime":
|
|
13
|
-
case "week": return generateConfig.addMonth(date, offset);
|
|
14
|
-
case "month":
|
|
15
|
-
case "quarter": return generateConfig.addYear(date, offset);
|
|
16
|
-
case "year": return generateConfig.addYear(date, offset * 10);
|
|
17
|
-
case "decade": return generateConfig.addYear(date, offset * 100);
|
|
18
|
-
default: return date;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
var EMPTY_LIST = [];
|
|
22
|
-
function useRangePickerValue(generateConfig, locale, calendarValue, modes, open, activeIndex, pickerMode, multiplePanel, defaultPickerValue = (0, vue.ref)(EMPTY_LIST), pickerValue = (0, vue.ref)(EMPTY_LIST), timeDefaultValue = (0, vue.ref)(EMPTY_LIST), onPickerValueChange, minDate, maxDate) {
|
|
23
|
-
const isTimePicker = (0, vue.computed)(() => pickerMode.value === "time");
|
|
24
|
-
const mergedActiveIndex = (0, vue.computed)(() => activeIndex.value || 0);
|
|
25
|
-
const getDefaultPickerValue = (index) => {
|
|
26
|
-
let now = generateConfig.value?.getNow?.();
|
|
27
|
-
if (!now) return;
|
|
28
|
-
if (isTimePicker.value) now = require_dateUtil.fillTime(generateConfig.value, now);
|
|
29
|
-
return defaultPickerValue.value?.[index] || calendarValue.value?.[index] || now;
|
|
30
|
-
};
|
|
31
|
-
const [getStartPickerValue, setStartPickerValue] = require_useSyncState.default(getDefaultPickerValue(0), () => pickerValue.value?.[0]);
|
|
32
|
-
const [getEndPickerValue, setEndPickerValue] = require_useSyncState.default(getDefaultPickerValue(1), () => pickerValue.value?.[1]);
|
|
33
|
-
const currentPickerValue = (0, vue.computed)(() => {
|
|
34
|
-
const current = [getStartPickerValue(true), getEndPickerValue(true)][mergedActiveIndex.value];
|
|
35
|
-
if (!current) return current;
|
|
36
|
-
return isTimePicker.value ? current : require_dateUtil.fillTime(generateConfig.value, current, timeDefaultValue.value?.[mergedActiveIndex.value]);
|
|
37
|
-
});
|
|
38
|
-
const setCurrentPickerValue = (nextPickerValue, source = "panel") => {
|
|
39
|
-
const prevStartPickerValue = getStartPickerValue(true);
|
|
40
|
-
const prevEndPickerValue = getEndPickerValue(true);
|
|
41
|
-
const updater = [setStartPickerValue, setEndPickerValue][mergedActiveIndex.value];
|
|
42
|
-
updater(nextPickerValue);
|
|
43
|
-
const clone = [prevStartPickerValue, prevEndPickerValue];
|
|
44
|
-
clone[mergedActiveIndex.value] = nextPickerValue;
|
|
45
|
-
const mergedCallback = typeof onPickerValueChange === "function" ? onPickerValueChange : onPickerValueChange?.value;
|
|
46
|
-
if (mergedCallback && (!require_dateUtil.isSame(generateConfig.value, locale.value, prevStartPickerValue, clone[0], pickerMode.value) || !require_dateUtil.isSame(generateConfig.value, locale.value, prevEndPickerValue, clone[1], pickerMode.value))) mergedCallback(clone, {
|
|
47
|
-
source,
|
|
48
|
-
range: mergedActiveIndex.value === 1 ? "end" : "start",
|
|
49
|
-
mode: modes.value
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
const getEndDatePickerValue = (startDate, endDate) => {
|
|
53
|
-
if (multiplePanel.value) {
|
|
54
|
-
const mode = {
|
|
55
|
-
date: "month",
|
|
56
|
-
datetime: "month",
|
|
57
|
-
week: "month",
|
|
58
|
-
month: "year",
|
|
59
|
-
quarter: "year"
|
|
60
|
-
}[pickerMode.value];
|
|
61
|
-
if (mode && !require_dateUtil.isSame(generateConfig.value, locale.value, startDate, endDate, mode)) return offsetPanelDate(generateConfig.value, pickerMode.value, endDate, -1);
|
|
62
|
-
if (pickerMode.value === "year" && startDate && endDate) {
|
|
63
|
-
if (Math.floor(generateConfig.value.getYear(startDate) / 10) !== Math.floor(generateConfig.value.getYear(endDate) / 10)) return offsetPanelDate(generateConfig.value, pickerMode.value, endDate, -1);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return endDate;
|
|
67
|
-
};
|
|
68
|
-
const prevActiveIndexRef = (0, vue.ref)(null);
|
|
69
|
-
(0, vue.watch)(() => [
|
|
70
|
-
open.value,
|
|
71
|
-
mergedActiveIndex.value,
|
|
72
|
-
calendarValue.value?.[mergedActiveIndex.value]
|
|
73
|
-
], () => {
|
|
74
|
-
if (!open.value) return;
|
|
75
|
-
if (defaultPickerValue.value?.[mergedActiveIndex.value]) return;
|
|
76
|
-
let nextPickerValue = isTimePicker.value ? null : generateConfig.value.getNow();
|
|
77
|
-
if (prevActiveIndexRef.value !== null && prevActiveIndexRef.value !== mergedActiveIndex.value) nextPickerValue = [getStartPickerValue(true), getEndPickerValue(true)][mergedActiveIndex.value ^ 1];
|
|
78
|
-
else if (calendarValue.value?.[mergedActiveIndex.value]) nextPickerValue = mergedActiveIndex.value === 0 ? calendarValue.value[0] : getEndDatePickerValue(calendarValue.value[0], calendarValue.value[1]);
|
|
79
|
-
else if (calendarValue.value?.[mergedActiveIndex.value ^ 1]) nextPickerValue = calendarValue.value[mergedActiveIndex.value ^ 1];
|
|
80
|
-
if (!nextPickerValue) return;
|
|
81
|
-
if (minDate?.value && generateConfig.value.isAfter(minDate.value, nextPickerValue)) nextPickerValue = minDate.value;
|
|
82
|
-
const offsetPickerValue = multiplePanel.value ? offsetPanelDate(generateConfig.value, pickerMode.value, nextPickerValue, 1) : nextPickerValue;
|
|
83
|
-
if (maxDate?.value && generateConfig.value.isAfter(offsetPickerValue, maxDate.value)) nextPickerValue = multiplePanel.value ? offsetPanelDate(generateConfig.value, pickerMode.value, maxDate.value, -1) : maxDate.value;
|
|
84
|
-
setCurrentPickerValue(nextPickerValue, "reset");
|
|
85
|
-
}, { flush: "post" });
|
|
86
|
-
(0, vue.watch)(() => [open.value, mergedActiveIndex.value], () => {
|
|
87
|
-
if (open.value) prevActiveIndexRef.value = mergedActiveIndex.value;
|
|
88
|
-
else prevActiveIndexRef.value = null;
|
|
89
|
-
}, { flush: "post" });
|
|
90
|
-
(0, vue.watch)(() => [
|
|
91
|
-
open.value,
|
|
92
|
-
mergedActiveIndex.value,
|
|
93
|
-
defaultPickerValue.value?.[mergedActiveIndex.value]
|
|
94
|
-
], () => {
|
|
95
|
-
if (open.value && defaultPickerValue.value?.[mergedActiveIndex.value]) setCurrentPickerValue(defaultPickerValue.value[mergedActiveIndex.value], "reset");
|
|
96
|
-
}, { flush: "post" });
|
|
97
|
-
return [currentPickerValue, setCurrentPickerValue];
|
|
98
|
-
}
|
|
99
|
-
exports.default = useRangePickerValue;
|
|
100
|
-
exports.offsetPanelDate = offsetPanelDate;
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
Object.defineProperties(exports, {
|
|
2
|
-
__esModule: { value: true },
|
|
3
|
-
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
-
});
|
|
5
|
-
const require_rolldown_runtime = require("../../_virtual/rolldown_runtime.cjs");
|
|
6
|
-
const require_miscUtil = require("../../utils/miscUtil.cjs");
|
|
7
|
-
const require_dateUtil = require("../../utils/dateUtil.cjs");
|
|
8
|
-
const require_useLockEffect = require("./useLockEffect.cjs");
|
|
9
|
-
let vue = require("vue");
|
|
10
|
-
var EMPTY_VALUE = [];
|
|
11
|
-
function useUtil(generateConfig, locale, formatList) {
|
|
12
|
-
const getDateTexts = (dates) => {
|
|
13
|
-
return dates.map((date) => require_dateUtil.formatValue(date, {
|
|
14
|
-
generateConfig: generateConfig.value,
|
|
15
|
-
locale: locale.value,
|
|
16
|
-
format: formatList.value[0]
|
|
17
|
-
}));
|
|
18
|
-
};
|
|
19
|
-
const isSameDates = (source, target) => {
|
|
20
|
-
const maxLen = Math.max(source.length, target.length);
|
|
21
|
-
let diffIndex = -1;
|
|
22
|
-
for (let i = 0; i < maxLen; i += 1) {
|
|
23
|
-
const prev = source[i] || null;
|
|
24
|
-
const next = target[i] || null;
|
|
25
|
-
if (prev !== next && !require_dateUtil.isSameTimestamp(generateConfig.value, prev, next)) {
|
|
26
|
-
diffIndex = i;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return [diffIndex < 0, diffIndex !== 0];
|
|
31
|
-
};
|
|
32
|
-
return [getDateTexts, isSameDates];
|
|
33
|
-
}
|
|
34
|
-
function orderDates(dates, generateConfig) {
|
|
35
|
-
return [...dates].sort((a, b) => generateConfig.isAfter(a, b) ? 1 : -1);
|
|
36
|
-
}
|
|
37
|
-
function useInnerValue(generateConfig, locale, formatList, rangeValue, order, defaultValue, value, onCalendarChange, onOk) {
|
|
38
|
-
const internalValue = (0, vue.ref)(defaultValue.value);
|
|
39
|
-
const mergedValue = (0, vue.computed)(() => {
|
|
40
|
-
return (value.value !== void 0 ? value.value : internalValue.value) || EMPTY_VALUE;
|
|
41
|
-
});
|
|
42
|
-
const setInnerValue = (val) => {
|
|
43
|
-
if (value.value === void 0) internalValue.value = val;
|
|
44
|
-
};
|
|
45
|
-
const calendarValue = (0, vue.ref)(mergedValue.value);
|
|
46
|
-
(0, vue.watch)(mergedValue, (val) => {
|
|
47
|
-
calendarValue.value = val;
|
|
48
|
-
});
|
|
49
|
-
const setCalendarValue = (val) => {
|
|
50
|
-
calendarValue.value = val;
|
|
51
|
-
};
|
|
52
|
-
const [getDateTexts, isSameDates] = useUtil(generateConfig, locale, formatList);
|
|
53
|
-
const triggerCalendarChange = (nextCalendarValues) => {
|
|
54
|
-
let clone = [...nextCalendarValues];
|
|
55
|
-
if (rangeValue.value) for (let i = 0; i < 2; i += 1) clone[i] = clone[i] || null;
|
|
56
|
-
else if (order.value) clone = orderDates(clone.filter((date) => date), generateConfig.value);
|
|
57
|
-
const [isSameMergedDates, isSameStart] = isSameDates(calendarValue.value, clone);
|
|
58
|
-
if (!isSameMergedDates) {
|
|
59
|
-
setCalendarValue(clone);
|
|
60
|
-
if (onCalendarChange) {
|
|
61
|
-
const cellTexts = getDateTexts(clone);
|
|
62
|
-
onCalendarChange(clone, cellTexts, { range: isSameStart ? "end" : "start" });
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
const triggerOk = () => {
|
|
67
|
-
if (onOk) onOk(calendarValue.value);
|
|
68
|
-
};
|
|
69
|
-
return [
|
|
70
|
-
mergedValue,
|
|
71
|
-
setInnerValue,
|
|
72
|
-
calendarValue,
|
|
73
|
-
triggerCalendarChange,
|
|
74
|
-
triggerOk
|
|
75
|
-
];
|
|
76
|
-
}
|
|
77
|
-
function useRangeValue(info, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, open, isInvalidateDate) {
|
|
78
|
-
const orderOnChange = (0, vue.computed)(() => disabled.value.some((d) => d) ? false : info.value.order);
|
|
79
|
-
const [getDateTexts, isSameDates] = useUtil((0, vue.computed)(() => info.value.generateConfig), (0, vue.computed)(() => info.value.locale), formatList);
|
|
80
|
-
const submitValue = (0, vue.ref)(mergedValue.value);
|
|
81
|
-
(0, vue.watch)(mergedValue, (val) => {
|
|
82
|
-
submitValue.value = val;
|
|
83
|
-
});
|
|
84
|
-
const setSubmitValue = (val) => {
|
|
85
|
-
submitValue.value = val;
|
|
86
|
-
};
|
|
87
|
-
const triggerSubmit = (nextValue) => {
|
|
88
|
-
const { generateConfig, locale, picker, onChange, allowEmpty, order } = info.value;
|
|
89
|
-
const isNullValue = nextValue === null;
|
|
90
|
-
let clone = [...nextValue || submitValue.value];
|
|
91
|
-
if (isNullValue) {
|
|
92
|
-
const maxLen = Math.max(disabled.value.length, clone.length);
|
|
93
|
-
for (let i = 0; i < maxLen; i += 1) if (!disabled.value[i]) clone[i] = null;
|
|
94
|
-
}
|
|
95
|
-
if (orderOnChange.value && clone[0] && clone[1]) clone = orderDates(clone, generateConfig);
|
|
96
|
-
triggerCalendarChange(clone);
|
|
97
|
-
const [start, end] = clone;
|
|
98
|
-
const startEmpty = !start;
|
|
99
|
-
const endEmpty = !end;
|
|
100
|
-
const validateEmptyDateRange = allowEmpty ? (!startEmpty || allowEmpty[0]) && (!endEmpty || allowEmpty[1]) : true;
|
|
101
|
-
const validateOrder = !order || startEmpty || endEmpty || require_dateUtil.isSame(generateConfig, locale, start, end, picker) || generateConfig.isAfter(end, start);
|
|
102
|
-
const validateDates = (disabled.value[0] || !start || !isInvalidateDate(start, { activeIndex: 0 })) && (disabled.value[1] || !end || !isInvalidateDate(end, {
|
|
103
|
-
from: start,
|
|
104
|
-
activeIndex: 1
|
|
105
|
-
}));
|
|
106
|
-
const allPassed = isNullValue || validateEmptyDateRange && validateOrder && validateDates;
|
|
107
|
-
if (allPassed) {
|
|
108
|
-
const oldValue = mergedValue.value;
|
|
109
|
-
setInnerValue(clone);
|
|
110
|
-
const [isSameMergedDates] = isSameDates(clone, oldValue);
|
|
111
|
-
if (onChange && !isSameMergedDates) {
|
|
112
|
-
const everyEmpty = clone.every((val) => !val);
|
|
113
|
-
onChange(isNullValue && everyEmpty ? null : clone, everyEmpty ? null : getDateTexts(clone));
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return allPassed;
|
|
117
|
-
};
|
|
118
|
-
const flushSubmit = (index, needTriggerChange) => {
|
|
119
|
-
setSubmitValue(require_miscUtil.fillIndex(submitValue.value, index, getCalendarValue()[index]));
|
|
120
|
-
if (needTriggerChange) triggerSubmit();
|
|
121
|
-
};
|
|
122
|
-
const interactiveFinished = (0, vue.computed)(() => !focused.value && !open.value);
|
|
123
|
-
require_useLockEffect.default((0, vue.computed)(() => !interactiveFinished.value), (next) => {
|
|
124
|
-
if (next === false) {
|
|
125
|
-
if (!next) {
|
|
126
|
-
triggerSubmit();
|
|
127
|
-
triggerCalendarChange(mergedValue.value);
|
|
128
|
-
submitValue.value = mergedValue.value;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
return [flushSubmit, triggerSubmit];
|
|
133
|
-
}
|
|
134
|
-
exports.default = useRangeValue;
|
|
135
|
-
exports.useInnerValue = useInnerValue;
|