@opentiny/vue-renderless 3.21.2 → 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.
Files changed (323) hide show
  1. package/amount/index.js +4 -4
  2. package/anchor/index.js +1 -1
  3. package/async-flowchart/index.js +1 -1
  4. package/autocomplete/index.js +1 -1
  5. package/autocomplete/vue.js +3 -3
  6. package/base-select/index.js +19 -19
  7. package/base-select/vue.js +2 -2
  8. package/calendar/index.js +2 -2
  9. package/calendar-bar/index.js +2 -2
  10. package/calendar-bar/vue.js +1 -1
  11. package/calendar-view/index.js +66 -22
  12. package/calendar-view/vue.js +2 -3
  13. package/card/index.js +1 -1
  14. package/card-template/index.js +1 -1
  15. package/carousel/index.js +4 -4
  16. package/carousel/vue.js +1 -1
  17. package/cascader/index.js +21 -11
  18. package/cascader/vue.js +6 -5
  19. package/cascader-menu/vue.js +2 -2
  20. package/cascader-mobile/index.js +1 -1
  21. package/cascader-panel/index.js +4 -4
  22. package/cascader-panel/node.js +3 -4
  23. package/cascader-panel/vue.js +1 -1
  24. package/cascader-select/column-index.js +2 -2
  25. package/cascader-view/index.js +1 -1
  26. package/chart-bar/index.js +1 -1
  27. package/chart-candle/index.js +1 -1
  28. package/chart-core/deps/utils.js +6 -6
  29. package/chart-core/index.js +1 -1
  30. package/chart-funnel/index.js +1 -1
  31. package/chart-gauge/index.js +1 -1
  32. package/chart-line/index.js +1 -1
  33. package/chart-map/index.js +1 -1
  34. package/chart-pie/index.js +1 -1
  35. package/chart-radar/index.js +1 -1
  36. package/chart-sankey/index.js +1 -1
  37. package/chart-scatter/index.js +1 -1
  38. package/chart-waterfall/index.js +1 -1
  39. package/chart-wordcloud/index.js +1 -1
  40. package/checkbox/index.js +1 -1
  41. package/collapse-item/vue.js +1 -1
  42. package/column-list-item/index.js +1 -1
  43. package/common/deps/dom.js +20 -196
  44. package/common/deps/infinite-scroll.js +4 -43
  45. package/common/deps/popup-manager.js +1 -200
  46. package/container/index.js +2 -2
  47. package/crop/index.js +3 -3
  48. package/currency/index.js +2 -2
  49. package/date-panel/index.js +75 -25
  50. package/date-panel/vue.js +53 -21
  51. package/date-picker/vue.js +1 -1
  52. package/date-picker-mobile/index.js +1 -1
  53. package/date-range/index.js +71 -37
  54. package/date-range/vue.js +27 -23
  55. package/date-table/index.js +8 -5
  56. package/date-table/vue.js +1 -1
  57. package/dialog-box/index.js +3 -3
  58. package/dialog-box/vue.js +1 -1
  59. package/dialog-select/vue.js +7 -4
  60. package/drawer/index.js +2 -2
  61. package/drop-times/index.js +1 -1
  62. package/dropdown/index.js +11 -3
  63. package/dropdown/vue.js +2 -2
  64. package/dropdown-item/index.js +1 -1
  65. package/dropdown-item/mf.js +1 -1
  66. package/dropdown-menu/index.js +1 -1
  67. package/espace/vue.js +2 -2
  68. package/fall-menu/index.js +3 -3
  69. package/file-upload/index.js +16 -13
  70. package/file-upload/vue.js +2 -2
  71. package/filter/vue.js +1 -1
  72. package/filter-panel/vue.js +1 -2
  73. package/floating-button/index.js +1 -1
  74. package/flowchart/index.js +3 -3
  75. package/flowchart/vue.js +1 -1
  76. package/fluent-editor/index.js +5 -7
  77. package/fluent-editor/options.js +2 -2
  78. package/form/index.js +20 -2
  79. package/form-item/index.js +6 -6
  80. package/fullscreen/index.js +1 -1
  81. package/fullscreen/vue.js +1 -1
  82. package/grid/plugins/export.js +2 -2
  83. package/grid/plugins/exportExcel.js +3 -3
  84. package/grid/plugins/resize.js +2 -2
  85. package/grid/static/base/helperEqualCompare.js +1 -1
  86. package/grid/static/base/isPlainObject.js +1 -1
  87. package/grid/utils/common.js +2 -2
  88. package/grid/utils/dom.js +12 -7
  89. package/grid/utils/event.js +4 -4
  90. package/hrapprover/index.js +1 -1
  91. package/image/index.js +3 -3
  92. package/image-viewer/index.js +4 -6
  93. package/input/index.js +2 -2
  94. package/input/vue.js +1 -1
  95. package/ip-address/index.js +17 -21
  96. package/ip-address/vue.js +1 -1
  97. package/link-menu/index.js +1 -1
  98. package/link-menu/vue.js +1 -1
  99. package/load-list/index.js +1 -1
  100. package/load-list/vue.js +4 -4
  101. package/loading/index.js +2 -2
  102. package/menu/vue.js +1 -1
  103. package/milestone/index.js +6 -45
  104. package/modal/index.js +5 -5
  105. package/month-range/index.js +45 -5
  106. package/month-range/vue.js +19 -15
  107. package/month-table/index.js +5 -5
  108. package/month-table/vue.js +1 -1
  109. package/nav-menu/index.js +7 -7
  110. package/notify/index.js +3 -3
  111. package/numeric/index.js +5 -5
  112. package/option/index.js +1 -1
  113. package/option/vue.js +2 -1
  114. package/package.json +3 -2
  115. package/pager/index.js +28 -16
  116. package/pager/vue.js +27 -16
  117. package/panel/index.js +1 -1
  118. package/picker/index.js +11 -11
  119. package/picker/vue.js +2 -2
  120. package/picker-column/index.js +1 -1
  121. package/pop-upload/vue.js +1 -1
  122. package/popconfirm/vue.js +1 -1
  123. package/popeditor/index.js +6 -6
  124. package/popeditor/vue.js +2 -2
  125. package/popover/index.js +3 -3
  126. package/popover/vue.js +1 -1
  127. package/popup/index.js +3 -3
  128. package/pull-refresh/index.js +1 -1
  129. package/pull-refresh-mobile-first/index.js +1 -1
  130. package/pull-refresh-mobile-first/vue.js +4 -4
  131. package/quarter-panel/index.js +2 -2
  132. package/quarter-panel/vue.js +1 -1
  133. package/radio-group/index.js +1 -1
  134. package/rate/index.js +1 -1
  135. package/rate/vue.js +1 -1
  136. package/recycle-scroller/index.js +2 -2
  137. package/recycle-scroller/vue.js +1 -1
  138. package/rich-text/index.js +1 -1
  139. package/rich-text/table-module.js +2 -2
  140. package/river/river.js +1 -1
  141. package/river/vue.js +1 -1
  142. package/scrollbar/vue-bar.js +1 -1
  143. package/scrollbar/vue.js +1 -1
  144. package/search/index.js +3 -3
  145. package/select/index.js +26 -22
  146. package/select/vue.js +8 -7
  147. package/select-dropdown/vue.js +5 -5
  148. package/selected-box/index.js +1 -1
  149. package/signature/index.js +1 -1
  150. package/signature/vue.js +2 -2
  151. package/skeleton/index.js +1 -1
  152. package/slider/index.js +4 -4
  153. package/slider-button-group/slide-button.js +2 -2
  154. package/split/index.js +2 -2
  155. package/split/vue.js +1 -1
  156. package/statistic/index.js +1 -1
  157. package/steps/index.js +2 -3
  158. package/steps/slide-bar.js +2 -2
  159. package/sticky/vue.js +4 -4
  160. package/tab-bar/index.js +2 -2
  161. package/tab-item-mf/vue.js +1 -1
  162. package/tab-nav/index.js +4 -4
  163. package/tabbar/index.js +1 -1
  164. package/tabbar/vue.js +1 -1
  165. package/tabbar-item/index.js +1 -1
  166. package/tabs-mf/index.js +5 -5
  167. package/tabs-mf/vue-bar.js +1 -1
  168. package/tabs-mf/vue-swipe.js +1 -1
  169. package/tabs-mf/vue.js +2 -2
  170. package/tabs-mf/wheel.js +3 -3
  171. package/tag-group/vue.js +2 -2
  172. package/tall-storage/index.js +1 -1
  173. package/tall-storage/vue.js +1 -1
  174. package/time/index.js +1 -1
  175. package/time/vue.js +1 -1
  176. package/time-line/index.js +1 -1
  177. package/time-line-new/index.js +1 -1
  178. package/time-panel/index.js +2 -2
  179. package/time-panel/vue.js +1 -1
  180. package/time-range/index.js +1 -1
  181. package/time-range/vue.js +1 -1
  182. package/time-spinner/index.js +4 -4
  183. package/time-spinner/vue.js +1 -1
  184. package/timeline-item/index.js +1 -1
  185. package/toggle-menu/index.js +1 -1
  186. package/tooltip/index.js +2 -2
  187. package/tooltip/vue.js +2 -2
  188. package/top-box/index.js +3 -3
  189. package/transfer/index.js +1 -1
  190. package/transfer-panel/index.js +1 -1
  191. package/tree/index.js +9 -9
  192. package/tree/vue.js +2 -2
  193. package/tree-node/index.js +1 -1
  194. package/tree-node/vue.js +1 -1
  195. package/tree-select/index.js +1 -1
  196. package/types/async-flowchart.type.d.ts +2 -14
  197. package/types/breadcrumb-item.type.d.ts +5 -1
  198. package/types/breadcrumb.type.d.ts +5 -1
  199. package/types/button-group.type.d.ts +5 -1
  200. package/types/button.type.d.ts +1 -1
  201. package/types/cascader.type.d.ts +6 -1
  202. package/types/date-table.type.d.ts +1 -120
  203. package/types/dropdown.type.d.ts +1 -1
  204. package/types/label.type.d.ts +1 -53
  205. package/types/loading.type.d.ts +12 -0
  206. package/types/numeric.type.d.ts +3 -22
  207. package/types/pager.type.d.ts +12 -7
  208. package/types/popconfirm.type.d.ts +2 -0
  209. package/types/steps.type.d.ts +1 -0
  210. package/types/tag-group.type.d.ts +2 -14
  211. package/types/tag.type.d.ts +4 -4
  212. package/types/tooltip.type.d.ts +3 -13
  213. package/types/user-head.type.d.ts +0 -4
  214. package/upload/index.js +1 -1
  215. package/upload-list/index.js +1 -1
  216. package/upload-list/vue.js +4 -4
  217. package/user/index.js +7 -7
  218. package/user/vue.js +15 -2
  219. package/user-contact/vue.js +2 -2
  220. package/virtual-scroll-box/index.js +2 -2
  221. package/wizard/index.js +3 -3
  222. package/year-range/index.js +61 -11
  223. package/year-range/vue.js +33 -20
  224. package/year-table/index.js +7 -5
  225. package/avatar/index.js +0 -30
  226. package/avatar/vue.js +0 -22
  227. package/common/array.js +0 -115
  228. package/common/bigInt.js +0 -315
  229. package/common/browser.js +0 -81
  230. package/common/calendar/calendar.js +0 -97
  231. package/common/dataset/index.js +0 -99
  232. package/common/date.js +0 -354
  233. package/common/decimal.js +0 -155
  234. package/common/deps/ResizeObserver.js +0 -456
  235. package/common/deps/after-leave.js +0 -27
  236. package/common/deps/clickoutside.js +0 -75
  237. package/common/deps/date-util.js +0 -255
  238. package/common/deps/date.js +0 -286
  239. package/common/deps/debounce.js +0 -8
  240. package/common/deps/eSpaceCtrl.js +0 -304
  241. package/common/deps/fastdom/async.js +0 -41
  242. package/common/deps/fastdom/index.js +0 -9
  243. package/common/deps/fastdom/sandbox.js +0 -53
  244. package/common/deps/fastdom/singleton.js +0 -88
  245. package/common/deps/fullscreen/apis.js +0 -143
  246. package/common/deps/fullscreen/screenfull.js +0 -165
  247. package/common/deps/memorize.js +0 -124
  248. package/common/deps/observe-visibility.js +0 -106
  249. package/common/deps/popper.js +0 -616
  250. package/common/deps/repeat-click.js +0 -29
  251. package/common/deps/resize-event.js +0 -39
  252. package/common/deps/scroll-into-view.js +0 -29
  253. package/common/deps/scrollbar-width.js +0 -33
  254. package/common/deps/throttle.js +0 -45
  255. package/common/deps/touch-emulator.js +0 -103
  256. package/common/deps/touch.js +0 -37
  257. package/common/deps/tree-model/node.js +0 -475
  258. package/common/deps/tree-model/tree-store.js +0 -312
  259. package/common/deps/tree-model/util.js +0 -24
  260. package/common/deps/upload-ajax.js +0 -81
  261. package/common/deps/useEventListener.js +0 -54
  262. package/common/deps/useInstanceSlots.js +0 -22
  263. package/common/deps/useRect.js +0 -25
  264. package/common/deps/useRelation.js +0 -89
  265. package/common/deps/useTouch.js +0 -68
  266. package/common/deps/useUserAgent.js +0 -16
  267. package/common/deps/useWindowSize.js +0 -23
  268. package/common/deps/vue-emitter.js +0 -34
  269. package/common/deps/vue-popper.js +0 -180
  270. package/common/deps/vue-popup.js +0 -138
  271. package/common/event.js +0 -46
  272. package/common/form/const.js +0 -10
  273. package/common/function.js +0 -28
  274. package/common/global.js +0 -11
  275. package/common/index.js +0 -259
  276. package/common/object.js +0 -227
  277. package/common/prop-util.js +0 -43
  278. package/common/runtime.js +0 -79
  279. package/common/string.js +0 -417
  280. package/common/type.js +0 -66
  281. package/common/validate/index.js +0 -10
  282. package/common/validate/messages.js +0 -65
  283. package/common/validate/rules/enum.js +0 -12
  284. package/common/validate/rules/index.js +0 -18
  285. package/common/validate/rules/pattern.js +0 -20
  286. package/common/validate/rules/range.js +0 -52
  287. package/common/validate/rules/required.js +0 -11
  288. package/common/validate/rules/type.js +0 -100
  289. package/common/validate/rules/whitespace.js +0 -10
  290. package/common/validate/schema.js +0 -290
  291. package/common/validate/util.js +0 -211
  292. package/common/validate/validations/array.js +0 -22
  293. package/common/validate/validations/date.js +0 -31
  294. package/common/validate/validations/enum.js +0 -22
  295. package/common/validate/validations/float.js +0 -22
  296. package/common/validate/validations/index.js +0 -46
  297. package/common/validate/validations/integer.js +0 -22
  298. package/common/validate/validations/method.js +0 -21
  299. package/common/validate/validations/number.js +0 -25
  300. package/common/validate/validations/pattern.js +0 -21
  301. package/common/validate/validations/required.js +0 -11
  302. package/common/validate/validations/string.js +0 -33
  303. package/common/validate/validations/type.js +0 -29
  304. package/index-bar/index.js +0 -66
  305. package/index-bar/vue.js +0 -73
  306. package/index-bar-anchor/vue.js +0 -16
  307. package/label/index.js +0 -56
  308. package/label/vue.js +0 -26
  309. package/list/index.js +0 -13
  310. package/list/vue.js +0 -17
  311. package/mask/index.js +0 -13
  312. package/mask/vue.js +0 -18
  313. package/mini-picker/index.js +0 -165
  314. package/mini-picker/vue.js +0 -122
  315. package/multi-select/index.js +0 -394
  316. package/multi-select/vue.js +0 -113
  317. package/multi-select-item/index.js +0 -23
  318. package/multi-select-item/vue.js +0 -31
  319. package/toast/index.js +0 -7
  320. package/toast/vue.js +0 -19
  321. package/types/toast.type.d.ts +0 -63
  322. package/wheel/index.js +0 -165
  323. package/wheel/vue.js +0 -79
@@ -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
- isDate,
9
- parseDate,
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
- nextMonth,
16
+ nextMonth1,
17
17
  timeWithinRange,
18
18
  clearMilliseconds,
19
19
  modifyWithTimeString,
20
20
  changeYearMonthAndClampDate,
21
21
  formatDate,
22
- extractTimeFormat
23
- } from "../common/deps/date-util";
24
- import { DATEPICKER } from "../common";
25
- import { on, off } from "../common/deps/dom";
26
- import { getDateWithNewTimezone, getLocalTimezone } from "../common/date";
27
- import { fillChar } from "../common/string";
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 (isDate(value)) {
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 (!isDate(state.value)) {
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 showMonthPicker = ({ state }) => () => state.currentView = DATEPICKER.Month;
122
- const showYearPicker = ({ state }) => () => state.currentView = DATEPICKER.Year;
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 = nextMonth(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
- api.doPick(start, end);
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 (isDate(value)) {
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 = parseDate(value, state.timeFormat, t);
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 = parseDate(value, state.dateFormat, t);
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
- showMonthPicker,
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
- showYearPicker,
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 "../common/deps/date-util";
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
- "showMonthPicker",
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
- showYearPicker: showYearPicker({ state }),
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 {
@@ -16,7 +16,7 @@ import {
16
16
  onChange,
17
17
  updateColumnValue
18
18
  } from "./index";
19
- import { DATE } from "../common";
19
+ import { DATE } from "@opentiny/utils";
20
20
  const api = [
21
21
  "state",
22
22
  "clearDisplayValue",
@@ -1,5 +1,5 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { format } from "../common/date";
2
+ import { formatDateByPattern as format } from "@opentiny/utils";
3
3
  const getFormatTime = (time) => {
4
4
  return ("0" + time).slice(-2);
5
5
  };
@@ -1,17 +1,18 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
2
  import {
3
- isDate,
3
+ toDate1,
4
4
  nextDate,
5
- parseDate,
5
+ parseDate1,
6
6
  formatDate,
7
7
  modifyDate,
8
8
  modifyTime,
9
9
  nextYear,
10
10
  prevYear,
11
- nextMonth,
11
+ nextMonth1,
12
12
  prevMonth,
13
- modifyWithTimeString
14
- } from "../common/deps/date-util";
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 nextMonth2 = (state.leftMonth + 1) % 12;
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, nextMonth2) < new Date(state.rightYear, state.rightMonth);
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
- [parseDate(formatDate(state.minDate, format, t), format, t), parseDate("23:59:59", format, t)]
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 = isDate(value[0]) ? new Date(value[0]) : null;
109
- state.maxDate = isDate(value[1]) ? new Date(value[1]) : null;
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 ? nextMonth(state.maxDate) : state.maxDate;
118
+ state.rightDate = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? nextMonth1(state.maxDate) : state.maxDate;
118
119
  } else {
119
- state.rightDate = nextMonth(state.leftDate);
120
+ state.rightDate = nextMonth1(state.leftDate);
120
121
  }
121
122
  } else {
122
123
  state.leftDate = calcDefaultValue(state.defaultValue)[0];
123
- state.rightDate = nextMonth(state.leftDate);
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 : nextMonth(state.leftDate);
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 = nextMonth(state.leftDate);
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 = parseDate(value, state.dateFormat, t);
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 = nextMonth(state.leftDate);
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 = parseDate(value, state.dateFormat, t);
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 = parseDate(value, state.timeFormat, t);
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 = parseDate(value, state.timeFormat, t);
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 && isDate(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 && isDate(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
- api.doPick(start, end);
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 = nextMonth(state.leftDate);
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 = nextMonth(state.leftDate);
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 = nextMonth(state.leftDate);
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 = nextMonth(state.leftDate);
366
- state.rightDate = nextMonth(state.leftDate);
380
+ state.leftDate = nextMonth1(state.leftDate);
381
+ state.rightDate = nextMonth1(state.leftDate);
367
382
  } else {
368
- state.rightDate = nextMonth(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 = nextMonth(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] && isDate(value[0]) && isDate(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof state.disabledDate === "function" ? !state.disabledDate(value[0]) && !state.disabledDate(value[1]) : true);
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 && isDate(state.value[0]) ? new Date(state.value[0]) : null;
383
- state.maxDate = state.value && isDate(state.value[0]) ? new Date(state.value[1]) : null;
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
  };