@opentiny/vue-renderless 3.21.1 → 3.22.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/amount/index.js +4 -4
- package/anchor/index.js +1 -1
- package/async-flowchart/index.js +1 -1
- package/autocomplete/index.js +1 -1
- package/autocomplete/vue.js +3 -3
- package/base-select/index.js +19 -19
- package/base-select/vue.js +2 -2
- package/calendar/index.js +2 -2
- package/calendar-bar/index.js +2 -2
- package/calendar-bar/vue.js +1 -1
- package/calendar-view/index.js +66 -22
- package/calendar-view/vue.js +2 -3
- package/card/index.js +1 -1
- package/card-template/index.js +1 -1
- package/carousel/index.js +4 -4
- package/carousel/vue.js +1 -1
- package/cascader/index.js +21 -11
- package/cascader/vue.js +6 -5
- package/cascader-menu/vue.js +2 -2
- package/cascader-mobile/index.js +1 -1
- package/cascader-panel/index.js +4 -4
- package/cascader-panel/node.js +3 -4
- package/cascader-panel/vue.js +1 -1
- package/cascader-select/column-index.js +2 -2
- package/cascader-view/index.js +1 -1
- package/chart-bar/index.js +1 -1
- package/chart-candle/index.js +1 -1
- package/chart-core/deps/utils.js +6 -6
- package/chart-core/index.js +1 -1
- package/chart-funnel/index.js +1 -1
- package/chart-gauge/index.js +1 -1
- package/chart-line/index.js +1 -1
- package/chart-map/index.js +1 -1
- package/chart-pie/index.js +1 -1
- package/chart-radar/index.js +1 -1
- package/chart-sankey/index.js +1 -1
- package/chart-scatter/index.js +1 -1
- package/chart-waterfall/index.js +1 -1
- package/chart-wordcloud/index.js +1 -1
- package/checkbox/index.js +1 -1
- package/collapse-item/vue.js +1 -1
- package/column-list-item/index.js +1 -1
- package/common/deps/dom.js +20 -196
- package/common/deps/infinite-scroll.js +4 -43
- package/common/deps/popup-manager.js +1 -200
- package/container/index.js +2 -2
- package/crop/index.js +3 -3
- package/currency/index.js +2 -2
- package/date-panel/index.js +75 -25
- package/date-panel/vue.js +53 -21
- package/date-picker/vue.js +1 -1
- package/date-picker-mobile/index.js +1 -1
- package/date-range/index.js +71 -37
- package/date-range/vue.js +27 -23
- package/date-table/index.js +8 -5
- package/date-table/vue.js +1 -1
- package/dialog-box/index.js +3 -3
- package/dialog-box/vue.js +1 -1
- package/dialog-select/vue.js +7 -4
- package/drawer/index.js +2 -2
- package/drop-times/index.js +1 -1
- package/dropdown/index.js +11 -3
- package/dropdown/vue.js +2 -2
- package/dropdown-item/index.js +1 -1
- package/dropdown-item/mf.js +1 -1
- package/dropdown-menu/index.js +1 -1
- package/espace/vue.js +2 -2
- package/fall-menu/index.js +3 -3
- package/file-upload/index.js +16 -13
- package/file-upload/vue.js +2 -2
- package/filter/vue.js +1 -1
- package/filter-panel/vue.js +1 -2
- package/floating-button/index.js +1 -1
- package/flowchart/index.js +3 -3
- package/flowchart/vue.js +1 -1
- package/fluent-editor/index.js +5 -7
- package/fluent-editor/options.js +2 -2
- package/form/index.js +20 -2
- package/form-item/index.js +6 -6
- package/fullscreen/index.js +1 -1
- package/fullscreen/vue.js +1 -1
- package/grid/plugins/export.js +2 -2
- package/grid/plugins/exportExcel.js +3 -3
- package/grid/plugins/resize.js +2 -2
- package/grid/static/base/helperEqualCompare.js +1 -1
- package/grid/static/base/isPlainObject.js +1 -1
- package/grid/utils/common.js +2 -2
- package/grid/utils/dom.js +16 -8
- package/grid/utils/event.js +4 -4
- package/hrapprover/index.js +1 -1
- package/image/index.js +3 -3
- package/image-viewer/index.js +4 -6
- package/input/index.js +2 -2
- package/input/vue.js +1 -1
- package/ip-address/index.js +17 -21
- package/ip-address/vue.js +1 -1
- package/link-menu/index.js +1 -1
- package/link-menu/vue.js +1 -1
- package/load-list/index.js +1 -1
- package/load-list/vue.js +4 -4
- package/loading/index.js +2 -2
- package/menu/vue.js +1 -1
- package/milestone/index.js +6 -45
- package/modal/index.js +5 -5
- package/month-range/index.js +45 -5
- package/month-range/vue.js +19 -15
- package/month-table/index.js +5 -5
- package/month-table/vue.js +1 -1
- package/nav-menu/index.js +7 -7
- package/notify/index.js +3 -3
- package/numeric/index.js +5 -5
- package/option/index.js +1 -1
- package/option/vue.js +2 -1
- package/package.json +4 -3
- package/pager/index.js +28 -16
- package/pager/vue.js +27 -16
- package/panel/index.js +1 -1
- package/picker/index.js +11 -11
- package/picker/vue.js +2 -2
- package/picker-column/index.js +1 -1
- package/pop-upload/vue.js +1 -1
- package/popconfirm/vue.js +1 -1
- package/popeditor/index.js +6 -6
- package/popeditor/vue.js +2 -2
- package/popover/index.js +3 -3
- package/popover/vue.js +1 -1
- package/popup/index.js +3 -3
- package/pull-refresh/index.js +1 -1
- package/pull-refresh-mobile-first/index.js +1 -1
- package/pull-refresh-mobile-first/vue.js +4 -4
- package/quarter-panel/index.js +2 -2
- package/quarter-panel/vue.js +1 -1
- package/radio-group/index.js +1 -1
- package/rate/index.js +1 -1
- package/rate/vue.js +1 -1
- package/recycle-scroller/index.js +2 -2
- package/recycle-scroller/vue.js +1 -1
- package/rich-text/index.js +1 -1
- package/rich-text/table-module.js +2 -2
- package/river/river.js +1 -1
- package/river/vue.js +1 -1
- package/scrollbar/vue-bar.js +1 -1
- package/scrollbar/vue.js +1 -1
- package/search/index.js +3 -3
- package/select/index.js +26 -22
- package/select/vue.js +8 -7
- package/select-dropdown/vue.js +5 -5
- package/selected-box/index.js +1 -1
- package/signature/index.js +1 -1
- package/signature/vue.js +2 -2
- package/skeleton/index.js +1 -1
- package/slider/index.js +4 -4
- package/slider-button-group/slide-button.js +2 -2
- package/split/index.js +2 -2
- package/split/vue.js +1 -1
- package/statistic/index.js +1 -1
- package/steps/index.js +2 -3
- package/steps/slide-bar.js +2 -2
- package/sticky/vue.js +4 -4
- package/tab-bar/index.js +2 -2
- package/tab-item-mf/vue.js +1 -1
- package/tab-nav/index.js +4 -4
- package/tabbar/index.js +1 -1
- package/tabbar/vue.js +1 -1
- package/tabbar-item/index.js +1 -1
- package/tabs-mf/index.js +5 -5
- package/tabs-mf/vue-bar.js +1 -1
- package/tabs-mf/vue-swipe.js +1 -1
- package/tabs-mf/vue.js +2 -2
- package/tabs-mf/wheel.js +3 -3
- package/tag-group/vue.js +2 -2
- package/tall-storage/index.js +1 -1
- package/tall-storage/vue.js +1 -1
- package/time/index.js +1 -1
- package/time/vue.js +1 -1
- package/time-line/index.js +1 -1
- package/time-line-new/index.js +1 -1
- package/time-panel/index.js +2 -2
- package/time-panel/vue.js +1 -1
- package/time-range/index.js +1 -1
- package/time-range/vue.js +1 -1
- package/time-spinner/index.js +4 -4
- package/time-spinner/vue.js +1 -1
- package/timeline-item/index.js +1 -1
- package/toggle-menu/index.js +1 -1
- package/tooltip/index.js +2 -2
- package/tooltip/vue.js +2 -2
- package/top-box/index.js +3 -3
- package/transfer/index.js +1 -1
- package/transfer-panel/index.js +1 -1
- package/tree/index.js +9 -9
- package/tree/vue.js +2 -2
- package/tree-node/index.js +1 -1
- package/tree-node/vue.js +1 -1
- package/tree-select/index.js +1 -1
- package/types/async-flowchart.type.d.ts +2 -14
- package/types/breadcrumb-item.type.d.ts +5 -1
- package/types/breadcrumb.type.d.ts +5 -1
- package/types/button-group.type.d.ts +5 -1
- package/types/button.type.d.ts +1 -1
- package/types/cascader.type.d.ts +6 -1
- package/types/date-table.type.d.ts +1 -120
- package/types/dropdown.type.d.ts +1 -1
- package/types/label.type.d.ts +1 -53
- package/types/loading.type.d.ts +12 -0
- package/types/numeric.type.d.ts +3 -22
- package/types/pager.type.d.ts +12 -7
- package/types/popconfirm.type.d.ts +2 -0
- package/types/steps.type.d.ts +1 -0
- package/types/tag-group.type.d.ts +2 -14
- package/types/tag.type.d.ts +4 -4
- package/types/tooltip.type.d.ts +3 -13
- package/types/user-head.type.d.ts +0 -4
- package/upload/index.js +1 -1
- package/upload-list/index.js +1 -1
- package/upload-list/vue.js +4 -4
- package/user/index.js +7 -7
- package/user/vue.js +15 -2
- package/user-contact/vue.js +2 -2
- package/virtual-scroll-box/index.js +2 -2
- package/wizard/index.js +3 -3
- package/year-range/index.js +61 -11
- package/year-range/vue.js +33 -20
- package/year-table/index.js +7 -5
- package/avatar/index.js +0 -30
- package/avatar/vue.js +0 -22
- package/common/array.js +0 -115
- package/common/bigInt.js +0 -315
- package/common/browser.js +0 -81
- package/common/calendar/calendar.js +0 -97
- package/common/dataset/index.js +0 -99
- package/common/date.js +0 -354
- package/common/decimal.js +0 -155
- package/common/deps/ResizeObserver.js +0 -456
- package/common/deps/after-leave.js +0 -27
- package/common/deps/clickoutside.js +0 -75
- package/common/deps/date-util.js +0 -255
- package/common/deps/date.js +0 -286
- package/common/deps/debounce.js +0 -8
- package/common/deps/eSpaceCtrl.js +0 -304
- package/common/deps/fastdom/async.js +0 -41
- package/common/deps/fastdom/index.js +0 -9
- package/common/deps/fastdom/sandbox.js +0 -53
- package/common/deps/fastdom/singleton.js +0 -88
- package/common/deps/fullscreen/apis.js +0 -143
- package/common/deps/fullscreen/screenfull.js +0 -165
- package/common/deps/memorize.js +0 -124
- package/common/deps/observe-visibility.js +0 -106
- package/common/deps/popper.js +0 -613
- package/common/deps/repeat-click.js +0 -29
- package/common/deps/resize-event.js +0 -39
- package/common/deps/scroll-into-view.js +0 -29
- package/common/deps/scrollbar-width.js +0 -33
- package/common/deps/throttle.js +0 -45
- package/common/deps/touch-emulator.js +0 -103
- package/common/deps/touch.js +0 -37
- package/common/deps/tree-model/node.js +0 -475
- package/common/deps/tree-model/tree-store.js +0 -312
- package/common/deps/tree-model/util.js +0 -24
- package/common/deps/upload-ajax.js +0 -81
- package/common/deps/useEventListener.js +0 -54
- package/common/deps/useInstanceSlots.js +0 -22
- package/common/deps/useRect.js +0 -25
- package/common/deps/useRelation.js +0 -89
- package/common/deps/useTouch.js +0 -68
- package/common/deps/useUserAgent.js +0 -16
- package/common/deps/useWindowSize.js +0 -23
- package/common/deps/vue-emitter.js +0 -34
- package/common/deps/vue-popper.js +0 -177
- package/common/deps/vue-popup.js +0 -138
- package/common/event.js +0 -46
- package/common/form/const.js +0 -10
- package/common/function.js +0 -28
- package/common/global.js +0 -11
- package/common/index.js +0 -259
- package/common/object.js +0 -227
- package/common/prop-util.js +0 -43
- package/common/runtime.js +0 -79
- package/common/string.js +0 -417
- package/common/type.js +0 -66
- package/common/validate/index.js +0 -10
- package/common/validate/messages.js +0 -65
- package/common/validate/rules/enum.js +0 -12
- package/common/validate/rules/index.js +0 -18
- package/common/validate/rules/pattern.js +0 -20
- package/common/validate/rules/range.js +0 -52
- package/common/validate/rules/required.js +0 -11
- package/common/validate/rules/type.js +0 -100
- package/common/validate/rules/whitespace.js +0 -10
- package/common/validate/schema.js +0 -290
- package/common/validate/util.js +0 -211
- package/common/validate/validations/array.js +0 -22
- package/common/validate/validations/date.js +0 -31
- package/common/validate/validations/enum.js +0 -22
- package/common/validate/validations/float.js +0 -22
- package/common/validate/validations/index.js +0 -46
- package/common/validate/validations/integer.js +0 -22
- package/common/validate/validations/method.js +0 -21
- package/common/validate/validations/number.js +0 -25
- package/common/validate/validations/pattern.js +0 -21
- package/common/validate/validations/required.js +0 -11
- package/common/validate/validations/string.js +0 -33
- package/common/validate/validations/type.js +0 -29
- package/index-bar/index.js +0 -66
- package/index-bar/vue.js +0 -73
- package/index-bar-anchor/vue.js +0 -16
- package/label/index.js +0 -56
- package/label/vue.js +0 -26
- package/list/index.js +0 -13
- package/list/vue.js +0 -17
- package/mask/index.js +0 -13
- package/mask/vue.js +0 -18
- package/mini-picker/index.js +0 -165
- package/mini-picker/vue.js +0 -122
- package/multi-select/index.js +0 -394
- package/multi-select/vue.js +0 -113
- package/multi-select-item/index.js +0 -23
- package/multi-select-item/vue.js +0 -31
- package/toast/index.js +0 -7
- package/toast/vue.js +0 -19
- package/types/toast.type.d.ts +0 -63
- package/wheel/index.js +0 -165
- package/wheel/vue.js +0 -79
package/date-panel/index.js
CHANGED
|
@@ -3,28 +3,30 @@ import {
|
|
|
3
3
|
__spreadValues
|
|
4
4
|
} from "../chunk-G2ADBYYC.js";
|
|
5
5
|
import { getWeekData } from "../picker";
|
|
6
|
-
import debounce from "../common/deps/debounce";
|
|
7
6
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
debounce,
|
|
8
|
+
isDate1,
|
|
9
|
+
parseDate1,
|
|
10
10
|
modifyDate,
|
|
11
11
|
modifyTime,
|
|
12
12
|
clearTime,
|
|
13
13
|
prevYear,
|
|
14
14
|
nextYear,
|
|
15
15
|
prevMonth,
|
|
16
|
-
|
|
16
|
+
nextMonth1,
|
|
17
17
|
timeWithinRange,
|
|
18
18
|
clearMilliseconds,
|
|
19
19
|
modifyWithTimeString,
|
|
20
20
|
changeYearMonthAndClampDate,
|
|
21
21
|
formatDate,
|
|
22
|
-
extractTimeFormat
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
extractTimeFormat,
|
|
23
|
+
DATEPICKER,
|
|
24
|
+
fillChar,
|
|
25
|
+
on,
|
|
26
|
+
off,
|
|
27
|
+
getDateWithNewTimezone,
|
|
28
|
+
getLocalTimezone
|
|
29
|
+
} from "@opentiny/utils";
|
|
28
30
|
const getYearLabel = ({ state, t }) => () => {
|
|
29
31
|
const { YearI18n, Year, PanelYearNum } = DATEPICKER;
|
|
30
32
|
const yearTranslation = t(YearI18n);
|
|
@@ -41,14 +43,14 @@ const watchValue = ({ api, state }) => (value) => {
|
|
|
41
43
|
if ([DATEPICKER.Dates, DATEPICKER.Years].includes(state.selectionMode) && state.value) {
|
|
42
44
|
return;
|
|
43
45
|
}
|
|
44
|
-
if (
|
|
46
|
+
if (isDate1(value)) {
|
|
45
47
|
state.date = state.selectionMode === "week" ? getWeekData(value) : new Date(value);
|
|
46
48
|
} else {
|
|
47
49
|
state.date = api.getDefaultValue();
|
|
48
50
|
}
|
|
49
51
|
};
|
|
50
52
|
const watchDefaultValue = ({ state }) => (value) => {
|
|
51
|
-
if (!
|
|
53
|
+
if (!isDate1(state.value)) {
|
|
52
54
|
state.date = value ? new Date(value) : /* @__PURE__ */ new Date();
|
|
53
55
|
}
|
|
54
56
|
};
|
|
@@ -118,10 +120,29 @@ const cusEmit = ({ state, emit }) => (value, ...args) => {
|
|
|
118
120
|
state.userInputDate = null;
|
|
119
121
|
state.userInputTime = null;
|
|
120
122
|
};
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
+
const panelEmit = ({ state, emit, t, props }) => (value, ...args) => {
|
|
124
|
+
state.date = value;
|
|
125
|
+
state.value = value;
|
|
126
|
+
let format;
|
|
127
|
+
if (props.type === "month") {
|
|
128
|
+
format = props.format || DATEPICKER.DateFormats.month;
|
|
129
|
+
} else if (props.type === "year") {
|
|
130
|
+
format = props.format || DATEPICKER.DateFormats.year;
|
|
131
|
+
} else {
|
|
132
|
+
format = props.format;
|
|
133
|
+
}
|
|
134
|
+
const formatVal = formatDate(value, format, t);
|
|
135
|
+
emit("select-change", formatVal, ...args);
|
|
136
|
+
emit("update:modelValue", formatVal, ...args);
|
|
137
|
+
};
|
|
138
|
+
const showHeaderPicker = ({ state, props }) => (type) => {
|
|
139
|
+
if (props.readonly) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
state.currentView = DATEPICKER[type];
|
|
143
|
+
};
|
|
123
144
|
const cusPrevMonth = ({ state }) => () => state.date = prevMonth(state.date);
|
|
124
|
-
const cusNextMonth = ({ state }) => () => state.date =
|
|
145
|
+
const cusNextMonth = ({ state }) => () => state.date = nextMonth1(state.date);
|
|
125
146
|
const cusPrevYear = ({ state }) => () => {
|
|
126
147
|
if (state.currentView === DATEPICKER.Year) {
|
|
127
148
|
state.startYear = state.startYear - DATEPICKER.PanelYearNum;
|
|
@@ -136,11 +157,25 @@ const cusNextYear = ({ state }) => () => {
|
|
|
136
157
|
state.date = nextYear(state.date);
|
|
137
158
|
}
|
|
138
159
|
};
|
|
139
|
-
const handleShortcutClick = (api) => (shortcut) => {
|
|
160
|
+
const handleShortcutClick = (api, props, state) => (shortcut) => {
|
|
140
161
|
if (shortcut.onClick) {
|
|
141
162
|
const picker = {
|
|
142
163
|
$emit: (type, start, end) => {
|
|
143
|
-
|
|
164
|
+
var _a;
|
|
165
|
+
if ((_a = props.shortcuts) == null ? void 0 : _a.length) {
|
|
166
|
+
if (props.type === "month") {
|
|
167
|
+
state.date = start;
|
|
168
|
+
api.handleMonthPick(start.getMonth());
|
|
169
|
+
} else if (props.type === "year") {
|
|
170
|
+
state.date = start;
|
|
171
|
+
state.startYear = Math.floor(start.getFullYear() / 10) * 10;
|
|
172
|
+
api.handleYearPick(start.getFullYear());
|
|
173
|
+
} else {
|
|
174
|
+
api.handleDatePick(start, end);
|
|
175
|
+
}
|
|
176
|
+
} else {
|
|
177
|
+
api.doPick(start, end);
|
|
178
|
+
}
|
|
144
179
|
}
|
|
145
180
|
};
|
|
146
181
|
shortcut.onClick(picker);
|
|
@@ -150,7 +185,7 @@ const doPick = (emit) => (date) => {
|
|
|
150
185
|
emit("pick", date, false);
|
|
151
186
|
};
|
|
152
187
|
const handleTimePick = ({ api, state, t }) => (value, visible, first) => {
|
|
153
|
-
if (
|
|
188
|
+
if (isDate1(value)) {
|
|
154
189
|
const newDate = state.value ? modifyTime(state.value, value.getHours(), value.getMinutes(), value.getSeconds()) : modifyWithTimeString(api.getDefaultValue(), state.defaultTime, t);
|
|
155
190
|
state.date = newDate;
|
|
156
191
|
api.cusEmit(state.date, true);
|
|
@@ -164,7 +199,17 @@ const handleTimePick = ({ api, state, t }) => (value, visible, first) => {
|
|
|
164
199
|
const handleTimePickClose = (state) => () => {
|
|
165
200
|
state.timePickerVisible = false;
|
|
166
201
|
};
|
|
167
|
-
const handleMonthPick = ({ api, state }) => (month) => {
|
|
202
|
+
const handleMonthPick = ({ api, state, props, t }) => (month) => {
|
|
203
|
+
if (props.readonly) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (props.type === DATEPICKER.Month) {
|
|
207
|
+
state.date = modifyDate(state.date, state.date.getFullYear(), month, 2);
|
|
208
|
+
state.value = state.date;
|
|
209
|
+
api.cusEmit(state.date);
|
|
210
|
+
api.panelEmit(state.date, t, props);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
168
213
|
if (state.selectionMode === DATEPICKER.Month) {
|
|
169
214
|
state.date = modifyDate(state.date, state.year, month, 1);
|
|
170
215
|
api.cusEmit(state.date);
|
|
@@ -173,7 +218,10 @@ const handleMonthPick = ({ api, state }) => (month) => {
|
|
|
173
218
|
state.currentView = DATEPICKER.Date;
|
|
174
219
|
}
|
|
175
220
|
};
|
|
176
|
-
const handleDatePick = ({ api, state, t }) => (value) => {
|
|
221
|
+
const handleDatePick = ({ api, state, t, props }) => (value) => {
|
|
222
|
+
if (props.readonly) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
177
225
|
if (state.selectionMode === DATEPICKER.Day) {
|
|
178
226
|
let newDate = state.value ? modifyDate(state.value, value.getFullYear(), value.getMonth(), value.getDate()) : modifyWithTimeString(value, state.defaultTime, t);
|
|
179
227
|
if (!api.checkDateWithinRange(newDate)) {
|
|
@@ -186,11 +234,13 @@ const handleDatePick = ({ api, state, t }) => (value) => {
|
|
|
186
234
|
} else if (state.selectionMode === DATEPICKER.Dates) {
|
|
187
235
|
api.cusEmit(value, true);
|
|
188
236
|
}
|
|
237
|
+
api.panelEmit(state.date, t, props);
|
|
189
238
|
};
|
|
190
|
-
const handleYearPick = ({ api, state }) => (value) => {
|
|
239
|
+
const handleYearPick = ({ api, state, props, t }) => (value) => {
|
|
191
240
|
if (state.selectionMode === DATEPICKER.Year) {
|
|
192
241
|
state.date = modifyDate(state.date, value, 0, 2);
|
|
193
242
|
api.cusEmit(state.date);
|
|
243
|
+
api.panelEmit(state.date, t, props);
|
|
194
244
|
} else if ([DATEPICKER.Years].includes(state.selectionMode)) {
|
|
195
245
|
state.date = value.map((year) => new Date(year, 0, 2));
|
|
196
246
|
api.cusEmit(state.date, state.selectionMode === DATEPICKER.YearRange ? value.length < 2 : true);
|
|
@@ -326,7 +376,7 @@ const handleKeyControl = ({ state, emit }) => (keyCode) => {
|
|
|
326
376
|
}
|
|
327
377
|
};
|
|
328
378
|
const handleVisibleTimeChange = ({ api, vm, state, t }) => (value) => {
|
|
329
|
-
const time =
|
|
379
|
+
const time = parseDate1(value, state.timeFormat, t);
|
|
330
380
|
if (time && api.checkDateWithinRange(time)) {
|
|
331
381
|
state.date = modifyDate(time, state.year, state.month, state.monthDate);
|
|
332
382
|
state.userInputTime = null;
|
|
@@ -338,7 +388,7 @@ const handleVisibleTimeChange = ({ api, vm, state, t }) => (value) => {
|
|
|
338
388
|
}
|
|
339
389
|
};
|
|
340
390
|
const handleVisibleDateChange = ({ api, state, t }) => (value) => {
|
|
341
|
-
const date =
|
|
391
|
+
const date = parseDate1(value, state.dateFormat, t);
|
|
342
392
|
if (date) {
|
|
343
393
|
if (typeof state.disabledDate === "function" && state.disabledDate(date)) {
|
|
344
394
|
return;
|
|
@@ -470,12 +520,12 @@ export {
|
|
|
470
520
|
handleVisibleTimeChange,
|
|
471
521
|
handleYearPick,
|
|
472
522
|
isValidValue,
|
|
523
|
+
panelEmit,
|
|
473
524
|
proxyTimePickerDataProperties,
|
|
474
525
|
resetView,
|
|
475
526
|
searchTz,
|
|
476
527
|
selectTz,
|
|
477
|
-
|
|
478
|
-
showYearPicker,
|
|
528
|
+
showHeaderPicker,
|
|
479
529
|
toggleTz,
|
|
480
530
|
watchDefaultValue,
|
|
481
531
|
watchSelectionMode,
|
package/date-panel/vue.js
CHANGED
|
@@ -22,11 +22,11 @@ import {
|
|
|
22
22
|
handleLeave,
|
|
23
23
|
handleEnter,
|
|
24
24
|
getYearLabel,
|
|
25
|
-
|
|
26
|
-
showMonthPicker,
|
|
25
|
+
showHeaderPicker,
|
|
27
26
|
handleTimePick,
|
|
28
27
|
checkDateWithinRange,
|
|
29
28
|
cusEmit,
|
|
29
|
+
panelEmit,
|
|
30
30
|
getDefaultValue,
|
|
31
31
|
isValidValue,
|
|
32
32
|
handleVisibleDateChange,
|
|
@@ -47,8 +47,7 @@ import {
|
|
|
47
47
|
getDisabledConfirm,
|
|
48
48
|
getNowTime
|
|
49
49
|
} from "./index";
|
|
50
|
-
import { getWeekNumber, extractDateFormat } from "
|
|
51
|
-
import { DATEPICKER, DATE } from "../common";
|
|
50
|
+
import { DATEPICKER, DATE, toDate1, getWeekNumber, modifyDate, extractDateFormat } from "@opentiny/utils";
|
|
52
51
|
const api = [
|
|
53
52
|
"state",
|
|
54
53
|
"isValidValue",
|
|
@@ -65,8 +64,7 @@ const api = [
|
|
|
65
64
|
"handleMonthPick",
|
|
66
65
|
"handleYearPick",
|
|
67
66
|
"handleDatePick",
|
|
68
|
-
"
|
|
69
|
-
"showYearPicker",
|
|
67
|
+
"showHeaderPicker",
|
|
70
68
|
"handleTimePick",
|
|
71
69
|
"handleEnter",
|
|
72
70
|
"handleVisibleTimeChange",
|
|
@@ -76,23 +74,23 @@ const api = [
|
|
|
76
74
|
"handleTimePickClose",
|
|
77
75
|
"getNowTime"
|
|
78
76
|
];
|
|
79
|
-
const initState = ({ reactive, computed, api: api2, i18n, designConfig }) => {
|
|
77
|
+
const initState = ({ reactive, computed, api: api2, i18n, designConfig, props }) => {
|
|
80
78
|
var _a, _b;
|
|
81
79
|
const state = reactive({
|
|
82
|
-
popperClass: "",
|
|
80
|
+
popperClass: props.popperClass || "",
|
|
83
81
|
date: /* @__PURE__ */ new Date(),
|
|
84
82
|
value: "",
|
|
85
83
|
defaultValue: null,
|
|
86
84
|
defaultTime: null,
|
|
87
|
-
showTime: false,
|
|
85
|
+
showTime: props.type === "datetimerange" || false,
|
|
88
86
|
selectionMode: DATEPICKER.Day,
|
|
89
|
-
shortcuts:
|
|
87
|
+
shortcuts: props.shortcuts || [],
|
|
90
88
|
visible: false,
|
|
91
89
|
currentView: DATEPICKER.Date,
|
|
92
|
-
disabledDate:
|
|
90
|
+
disabledDate: props.disabledDate || null,
|
|
93
91
|
cellClassName: "",
|
|
94
92
|
selectableRange: [],
|
|
95
|
-
firstDayOfWeek: 7,
|
|
93
|
+
firstDayOfWeek: props.firstDayOfWeek || 7,
|
|
96
94
|
showWeekNumber: false,
|
|
97
95
|
timePickerVisible: false,
|
|
98
96
|
format: "",
|
|
@@ -128,7 +126,41 @@ const initState = ({ reactive, computed, api: api2, i18n, designConfig }) => {
|
|
|
128
126
|
state.needChangeTimezoneData = true;
|
|
129
127
|
return state;
|
|
130
128
|
};
|
|
131
|
-
const initWatch = ({ watch, state, api: api2, nextTick }) => {
|
|
129
|
+
const initWatch = ({ watch, state, api: api2, nextTick, props }) => {
|
|
130
|
+
watch(
|
|
131
|
+
() => props.modelValue,
|
|
132
|
+
(value) => {
|
|
133
|
+
let newVal;
|
|
134
|
+
const val = toDate1(value);
|
|
135
|
+
if (val) {
|
|
136
|
+
const localOffset = val.getTimezoneOffset() * 6e4;
|
|
137
|
+
newVal = toDate1(val - localOffset);
|
|
138
|
+
}
|
|
139
|
+
if (newVal) {
|
|
140
|
+
const newDate = modifyDate(newVal, newVal.getFullYear(), newVal.getMonth(), newVal.getUTCDate() + 1);
|
|
141
|
+
state.date = newDate;
|
|
142
|
+
state.value = newDate;
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{ immediate: true }
|
|
146
|
+
);
|
|
147
|
+
watch(
|
|
148
|
+
() => props.type,
|
|
149
|
+
(value) => {
|
|
150
|
+
if (["date", "month", "year"].includes(value)) {
|
|
151
|
+
state.selectionMode = value;
|
|
152
|
+
state.currentView = value;
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
{ immediate: true }
|
|
156
|
+
);
|
|
157
|
+
watch(
|
|
158
|
+
() => props.format,
|
|
159
|
+
(value) => {
|
|
160
|
+
state.format = value;
|
|
161
|
+
},
|
|
162
|
+
{ immediate: true }
|
|
163
|
+
);
|
|
132
164
|
watch(
|
|
133
165
|
() => state.isShowTz,
|
|
134
166
|
() => {
|
|
@@ -166,17 +198,17 @@ const initApi = ({ api: api2, state, t, emit, nextTick, vm, watch, props }) => {
|
|
|
166
198
|
selectTz: selectTz({ emit, state }),
|
|
167
199
|
handleTzPickClose: handleTzPickClose(state),
|
|
168
200
|
getDefaultValue: getDefaultValue(state),
|
|
169
|
-
|
|
201
|
+
showHeaderPicker: showHeaderPicker({ state, props }),
|
|
170
202
|
handleTimePickClose: handleTimePickClose(state),
|
|
171
203
|
cusNextMonth: cusNextMonth({ state }),
|
|
172
204
|
cusPrevMonth: cusPrevMonth({ state }),
|
|
173
205
|
resetView: resetView({ state }),
|
|
174
|
-
showMonthPicker: showMonthPicker({ state }),
|
|
175
206
|
cusNextYear: cusNextYear({ state }),
|
|
176
207
|
cusPrevYear: cusPrevYear({ state }),
|
|
177
208
|
watchDefaultValue: watchDefaultValue({ state }),
|
|
178
209
|
getYearLabel: getYearLabel({ state, t }),
|
|
179
210
|
cusEmit: cusEmit({ state, emit }),
|
|
211
|
+
panelEmit: panelEmit({ state, emit, t, props }),
|
|
180
212
|
watchTimePickerVisible: watchTimePickerVisible({ nextTick, vm }),
|
|
181
213
|
checkDateWithinRange: checkDateWithinRange({ state }),
|
|
182
214
|
watchSelectionMode: watchSelectionMode({ state }),
|
|
@@ -192,13 +224,13 @@ const initApi = ({ api: api2, state, t, emit, nextTick, vm, watch, props }) => {
|
|
|
192
224
|
watchValue: watchValue({ api: api2, state }),
|
|
193
225
|
handleKeydown: handleKeydown({ api: api2, state }),
|
|
194
226
|
confirm: confirm({ api: api2, state, t }),
|
|
195
|
-
handleMonthPick: handleMonthPick({ api: api2, state }),
|
|
227
|
+
handleMonthPick: handleMonthPick({ api: api2, state, props, t, emit }),
|
|
196
228
|
handleVisibleDateChange: handleVisibleDateChange({ api: api2, state, t }),
|
|
197
229
|
handleTimePick: handleTimePick({ api: api2, state, t }),
|
|
198
|
-
handleYearPick: handleYearPick({ api: api2, state }),
|
|
199
|
-
handleDatePick: handleDatePick({ api: api2, state, t }),
|
|
230
|
+
handleYearPick: handleYearPick({ api: api2, state, props, t }),
|
|
231
|
+
handleDatePick: handleDatePick({ api: api2, state, t, props }),
|
|
200
232
|
computerVisibleTime: computerVisibleTime({ state, t }),
|
|
201
|
-
handleShortcutClick: handleShortcutClick(api2),
|
|
233
|
+
handleShortcutClick: handleShortcutClick(api2, props, state),
|
|
202
234
|
computerVisibleDate: computerVisibleDate({ state, t }),
|
|
203
235
|
handleVisibleTimeChange: handleVisibleTimeChange({ api: api2, vm, state, t }),
|
|
204
236
|
computerTimeFormat: computerTimeFormat({ state }),
|
|
@@ -210,9 +242,9 @@ const initApi = ({ api: api2, state, t, emit, nextTick, vm, watch, props }) => {
|
|
|
210
242
|
const renderless = (props, { computed, reactive, watch, nextTick }, { t, emit: $emit, vm, i18n, designConfig }) => {
|
|
211
243
|
const api2 = {};
|
|
212
244
|
const emit = props.emitter ? props.emitter.emit : $emit;
|
|
213
|
-
const state = initState({ reactive, computed, api: api2, i18n, designConfig });
|
|
245
|
+
const state = initState({ reactive, computed, api: api2, i18n, designConfig, props });
|
|
214
246
|
initApi({ api: api2, state, t, emit, nextTick, vm, watch, props });
|
|
215
|
-
initWatch({ watch, state, api: api2, nextTick });
|
|
247
|
+
initWatch({ watch, state, api: api2, nextTick, props, t });
|
|
216
248
|
return api2;
|
|
217
249
|
};
|
|
218
250
|
export {
|
package/date-picker/vue.js
CHANGED
package/date-range/index.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import "../chunk-G2ADBYYC.js";
|
|
2
2
|
import {
|
|
3
|
-
|
|
3
|
+
toDate1,
|
|
4
4
|
nextDate,
|
|
5
|
-
|
|
5
|
+
parseDate1,
|
|
6
6
|
formatDate,
|
|
7
7
|
modifyDate,
|
|
8
8
|
modifyTime,
|
|
9
9
|
nextYear,
|
|
10
10
|
prevYear,
|
|
11
|
-
|
|
11
|
+
nextMonth1,
|
|
12
12
|
prevMonth,
|
|
13
|
-
modifyWithTimeString
|
|
14
|
-
|
|
13
|
+
modifyWithTimeString,
|
|
14
|
+
DATEPICKER
|
|
15
|
+
} from "@opentiny/utils";
|
|
15
16
|
const calcDefaultValue = (defaultVal) => {
|
|
16
17
|
if (Array.isArray(defaultVal)) {
|
|
17
18
|
return [new Date(defaultVal[0]), new Date(defaultVal[1])];
|
|
@@ -57,9 +58,9 @@ const getMaxVisibleTime = ({ state, t }) => () => {
|
|
|
57
58
|
return "";
|
|
58
59
|
};
|
|
59
60
|
const getEnableMonthArrow = (state) => () => {
|
|
60
|
-
const
|
|
61
|
+
const nextMonth = (state.leftMonth + 1) % 12;
|
|
61
62
|
const yearOffset = state.leftMonth + 1 >= 12 ? 1 : 0;
|
|
62
|
-
return state.unlinkPanels && new Date(state.leftYear + yearOffset,
|
|
63
|
+
return state.unlinkPanels && new Date(state.leftYear + yearOffset, nextMonth) < new Date(state.rightYear, state.rightMonth);
|
|
63
64
|
};
|
|
64
65
|
const watchMinDate = ({ state, t, vm }) => (value) => {
|
|
65
66
|
state.dateUserInput.min = null;
|
|
@@ -71,7 +72,7 @@ const watchMinDate = ({ state, t, vm }) => (value) => {
|
|
|
71
72
|
if (state.maxDate && state.maxDate < state.minDate) {
|
|
72
73
|
const format = "HH:mm:ss";
|
|
73
74
|
minTimePicker.state.selectableRange = [
|
|
74
|
-
[
|
|
75
|
+
[parseDate1(formatDate(state.minDate, format, t), format, t), parseDate1("23:59:59", format, t)]
|
|
75
76
|
];
|
|
76
77
|
}
|
|
77
78
|
if (value) {
|
|
@@ -105,8 +106,8 @@ const watchValue = ({ state }) => (value) => {
|
|
|
105
106
|
state.minDate = null;
|
|
106
107
|
state.maxDate = null;
|
|
107
108
|
} else if (Array.isArray(value)) {
|
|
108
|
-
state.minDate =
|
|
109
|
-
state.maxDate =
|
|
109
|
+
state.minDate = toDate1(value[0]) ? new Date(value[0]) : null;
|
|
110
|
+
state.maxDate = toDate1(value[1]) ? new Date(value[1]) : null;
|
|
110
111
|
if (state.minDate) {
|
|
111
112
|
state.leftDate = state.minDate;
|
|
112
113
|
if (state.unlinkPanels && state.maxDate) {
|
|
@@ -114,13 +115,13 @@ const watchValue = ({ state }) => (value) => {
|
|
|
114
115
|
const minDateMonth = state.minDate.getMonth();
|
|
115
116
|
const maxDateYear = state.maxDate.getFullYear();
|
|
116
117
|
const maxDateMonth = state.maxDate.getMonth();
|
|
117
|
-
state.rightDate = minDateYear === maxDateYear && minDateMonth === maxDateMonth ?
|
|
118
|
+
state.rightDate = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? nextMonth1(state.maxDate) : state.maxDate;
|
|
118
119
|
} else {
|
|
119
|
-
state.rightDate =
|
|
120
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
120
121
|
}
|
|
121
122
|
} else {
|
|
122
123
|
state.leftDate = calcDefaultValue(state.defaultValue)[0];
|
|
123
|
-
state.rightDate =
|
|
124
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
};
|
|
@@ -128,19 +129,22 @@ const watchDefault = ({ state }) => (value) => {
|
|
|
128
129
|
if (!Array.isArray(state.value)) {
|
|
129
130
|
const [left, right] = calcDefaultValue(value);
|
|
130
131
|
state.leftDate = left;
|
|
131
|
-
state.rightDate = value && value[1] && state.unlinkPanels ? right :
|
|
132
|
+
state.rightDate = value && value[1] && state.unlinkPanels ? right : nextMonth1(state.leftDate);
|
|
132
133
|
}
|
|
133
134
|
};
|
|
134
135
|
const handleClear = ({ emit, state }) => () => {
|
|
135
136
|
state.minDate = null;
|
|
136
137
|
state.maxDate = null;
|
|
137
138
|
state.leftDate = calcDefaultValue(state.defaultValue)[0];
|
|
138
|
-
state.rightDate =
|
|
139
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
139
140
|
state.rangeState.selecting = false;
|
|
140
141
|
state.rangeState.endDate = null;
|
|
141
142
|
emit("pick", null);
|
|
142
143
|
};
|
|
143
|
-
const handleChangeRange = (state) => (val) => {
|
|
144
|
+
const handleChangeRange = (state, props) => (val) => {
|
|
145
|
+
if (props.readonly) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
144
148
|
state.minDate = val.minDate;
|
|
145
149
|
state.maxDate = val.maxDate;
|
|
146
150
|
state.rangeState = val.rangeState;
|
|
@@ -150,7 +154,7 @@ const handleDateInput = ({ state, t }) => (value, type) => {
|
|
|
150
154
|
if (value.length !== state.dateFormat.length) {
|
|
151
155
|
return;
|
|
152
156
|
}
|
|
153
|
-
const parsedValue =
|
|
157
|
+
const parsedValue = parseDate1(value, state.dateFormat, t);
|
|
154
158
|
if (parsedValue) {
|
|
155
159
|
if (typeof state.disabledDate === "function" && state.disabledDate(new Date(parsedValue))) {
|
|
156
160
|
return;
|
|
@@ -164,7 +168,7 @@ const handleDateInput = ({ state, t }) => (value, type) => {
|
|
|
164
168
|
);
|
|
165
169
|
state.leftDate = new Date(parsedValue);
|
|
166
170
|
if (!state.unlinkPanels) {
|
|
167
|
-
state.rightDate =
|
|
171
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
168
172
|
}
|
|
169
173
|
} else {
|
|
170
174
|
state.maxDate = modifyDate(
|
|
@@ -181,7 +185,7 @@ const handleDateInput = ({ state, t }) => (value, type) => {
|
|
|
181
185
|
}
|
|
182
186
|
};
|
|
183
187
|
const handleDateChange = ({ state, t }) => (value, type) => {
|
|
184
|
-
const parsedValue =
|
|
188
|
+
const parsedValue = parseDate1(value, state.dateFormat, t);
|
|
185
189
|
if (parsedValue) {
|
|
186
190
|
if (type === "min") {
|
|
187
191
|
state.minDate = modifyDate(
|
|
@@ -211,7 +215,7 @@ const handleTimeInput = ({ state, t }) => (value, type) => {
|
|
|
211
215
|
if (value.length !== state.timeFormat.length) {
|
|
212
216
|
return;
|
|
213
217
|
}
|
|
214
|
-
const parsedValue =
|
|
218
|
+
const parsedValue = parseDate1(value, state.timeFormat, t);
|
|
215
219
|
if (parsedValue) {
|
|
216
220
|
if (type === "min") {
|
|
217
221
|
state.minDate = modifyTime(
|
|
@@ -231,7 +235,7 @@ const handleTimeInput = ({ state, t }) => (value, type) => {
|
|
|
231
235
|
}
|
|
232
236
|
};
|
|
233
237
|
const handleTimeChange = ({ state, t, vm }) => (value, type) => {
|
|
234
|
-
const parsedValue =
|
|
238
|
+
const parsedValue = parseDate1(value, state.timeFormat, t);
|
|
235
239
|
if (parsedValue) {
|
|
236
240
|
if (type === "min") {
|
|
237
241
|
state.minDate = modifyTime(
|
|
@@ -260,7 +264,10 @@ const handleTimeChange = ({ state, t, vm }) => (value, type) => {
|
|
|
260
264
|
}
|
|
261
265
|
}
|
|
262
266
|
};
|
|
263
|
-
const handleRangePick = ({ api, state, t }) => (val, close = true) => {
|
|
267
|
+
const handleRangePick = ({ api, state, props, t }) => (val, close = true) => {
|
|
268
|
+
if (props.readonly) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
264
271
|
const defaultTime = state.defaultTime || [];
|
|
265
272
|
let minDateVal = val.minDate;
|
|
266
273
|
let maxDateVal = val.maxDate;
|
|
@@ -288,15 +295,15 @@ const handleRangePick = ({ api, state, t }) => (val, close = true) => {
|
|
|
288
295
|
}
|
|
289
296
|
api.handleConfirm();
|
|
290
297
|
};
|
|
291
|
-
const handleShortcutClick = (state, api) => (shortcut) => {
|
|
298
|
+
const handleShortcutClick = (state, api, props) => (shortcut) => {
|
|
292
299
|
if (shortcut.type) {
|
|
293
300
|
state.singleSelect = true;
|
|
294
301
|
state.shortcutType = shortcut.type;
|
|
295
302
|
state.shortcutText = shortcut.text;
|
|
296
|
-
if (shortcut.type === "startFrom" && shortcut.endDate &&
|
|
303
|
+
if (shortcut.type === "startFrom" && shortcut.endDate && toDate1(shortcut.endDate)) {
|
|
297
304
|
state.maxRangeDate = shortcut.endDate;
|
|
298
305
|
}
|
|
299
|
-
if (shortcut.type === "endAt" && shortcut.startDate &&
|
|
306
|
+
if (shortcut.type === "endAt" && shortcut.startDate && toDate1(shortcut.startDate)) {
|
|
300
307
|
state.minRangeDate = shortcut.startDate;
|
|
301
308
|
}
|
|
302
309
|
state.value = [];
|
|
@@ -305,7 +312,15 @@ const handleShortcutClick = (state, api) => (shortcut) => {
|
|
|
305
312
|
if (shortcut.onClick) {
|
|
306
313
|
const picker = {
|
|
307
314
|
$emit: (type, [start, end]) => {
|
|
308
|
-
|
|
315
|
+
var _a;
|
|
316
|
+
if ((_a = props.shortcuts) == null ? void 0 : _a.length) {
|
|
317
|
+
state.value = [start, end];
|
|
318
|
+
state.leftDate = start;
|
|
319
|
+
state.rightDate = end;
|
|
320
|
+
api.handleRangePick({ minDate: start, maxDate: end });
|
|
321
|
+
} else {
|
|
322
|
+
api.doPick(start, end);
|
|
323
|
+
}
|
|
309
324
|
}
|
|
310
325
|
};
|
|
311
326
|
shortcut.onClick(picker);
|
|
@@ -342,45 +357,50 @@ const handleMaxTimeClose = (state) => () => state.maxTimePickerVisible = false;
|
|
|
342
357
|
const leftPrevYear = ({ state }) => () => {
|
|
343
358
|
state.leftDate = prevYear(state.leftDate);
|
|
344
359
|
if (!state.unlinkPanels) {
|
|
345
|
-
state.rightDate =
|
|
360
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
346
361
|
}
|
|
347
362
|
};
|
|
348
363
|
const leftPrevMonth = ({ state }) => () => {
|
|
349
364
|
state.leftDate = prevMonth(state.leftDate);
|
|
350
365
|
if (!state.unlinkPanels) {
|
|
351
|
-
state.rightDate =
|
|
366
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
352
367
|
}
|
|
353
368
|
};
|
|
354
369
|
const rightNextYear = ({ state }) => () => {
|
|
355
370
|
const { leftDate, rightDate, unlinkPanels } = state;
|
|
356
371
|
if (!unlinkPanels) {
|
|
357
372
|
state.leftDate = nextYear(leftDate);
|
|
358
|
-
state.rightDate =
|
|
373
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
359
374
|
} else {
|
|
360
375
|
state.rightDate = nextYear(rightDate);
|
|
361
376
|
}
|
|
362
377
|
};
|
|
363
378
|
const rightNextMonth = ({ state }) => () => {
|
|
364
379
|
if (!state.unlinkPanels) {
|
|
365
|
-
state.leftDate =
|
|
366
|
-
state.rightDate =
|
|
380
|
+
state.leftDate = nextMonth1(state.leftDate);
|
|
381
|
+
state.rightDate = nextMonth1(state.leftDate);
|
|
367
382
|
} else {
|
|
368
|
-
state.rightDate =
|
|
383
|
+
state.rightDate = nextMonth1(state.rightDate);
|
|
369
384
|
}
|
|
370
385
|
};
|
|
371
386
|
const leftNextYear = ({ state }) => () => state.leftDate = nextYear(state.leftDate);
|
|
372
|
-
const leftNextMonth = ({ state }) => () => state.leftDate =
|
|
387
|
+
const leftNextMonth = ({ state }) => () => state.leftDate = nextMonth1(state.leftDate);
|
|
373
388
|
const rightPrevYear = ({ state }) => () => state.rightDate = prevYear(state.rightDate);
|
|
374
389
|
const rightPrevMonth = ({ state }) => () => state.rightDate = prevMonth(state.rightDate);
|
|
375
|
-
const handleConfirm = ({ api, emit, state }) => (visible = false) => {
|
|
390
|
+
const handleConfirm = ({ api, emit, state, props, t }) => (visible = false) => {
|
|
376
391
|
if (api.isValidValue([state.minDate, state.maxDate])) {
|
|
377
392
|
emit("pick", [state.minDate, state.maxDate], visible);
|
|
393
|
+
const defaultFormat = props.type === "daterange" ? DATEPICKER.DateFormats.date : DATEPICKER.DateFormats.datetime;
|
|
394
|
+
const start = formatDate(state.minDate, props.format || defaultFormat, t);
|
|
395
|
+
const end = formatDate(state.maxDate, props.format || defaultFormat, t);
|
|
396
|
+
emit("update:modelValue", [start, end]);
|
|
397
|
+
emit("select-change", [start, end]);
|
|
378
398
|
}
|
|
379
399
|
};
|
|
380
|
-
const isValidValue = ({ state }) => (value) => Array.isArray(value) && value && value[0] && value[1] &&
|
|
400
|
+
const isValidValue = ({ state }) => (value) => Array.isArray(value) && value && value[0] && value[1] && toDate1(value[0]) && toDate1(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof state.disabledDate === "function" ? !state.disabledDate(value[0]) && !state.disabledDate(value[1]) : true);
|
|
381
401
|
const resetView = ({ state }) => () => {
|
|
382
|
-
state.minDate = state.value &&
|
|
383
|
-
state.maxDate = state.value &&
|
|
402
|
+
state.minDate = state.value && toDate1(state.value[0]) ? new Date(state.value[0]) : null;
|
|
403
|
+
state.maxDate = state.value && toDate1(state.value[0]) ? new Date(state.value[1]) : null;
|
|
384
404
|
};
|
|
385
405
|
const setTimeFormat = ({ nextTick, vm, state }) => () => {
|
|
386
406
|
nextTick(() => {
|
|
@@ -398,6 +418,19 @@ const watchPickerVisible = ({ state, constants }) => (val) => {
|
|
|
398
418
|
state.maxRangeDate = constants.endDate;
|
|
399
419
|
}
|
|
400
420
|
};
|
|
421
|
+
const watchModelValue = ({ state }) => (val) => {
|
|
422
|
+
const newVal = toDate1(val == null ? void 0 : val[0]);
|
|
423
|
+
const newVal1 = toDate1(val == null ? void 0 : val[1]);
|
|
424
|
+
if (newVal && newVal1) {
|
|
425
|
+
const start = modifyDate(newVal, newVal.getFullYear(), newVal.getMonth(), newVal.getUTCDate());
|
|
426
|
+
const end = modifyDate(newVal1, newVal1.getFullYear(), newVal1.getMonth(), newVal1.getUTCDate());
|
|
427
|
+
state.value = [start, end];
|
|
428
|
+
state.minDate = start;
|
|
429
|
+
state.maxDate = end;
|
|
430
|
+
state.leftDate = start;
|
|
431
|
+
state.rightDate = end;
|
|
432
|
+
}
|
|
433
|
+
};
|
|
401
434
|
export {
|
|
402
435
|
calcDefaultValue,
|
|
403
436
|
computerBtnDisabled,
|
|
@@ -438,6 +471,7 @@ export {
|
|
|
438
471
|
watchMaxTimePickerVisible,
|
|
439
472
|
watchMinDate,
|
|
440
473
|
watchMinTimePickerVisible,
|
|
474
|
+
watchModelValue,
|
|
441
475
|
watchPickerVisible,
|
|
442
476
|
watchValue
|
|
443
477
|
};
|