@opentiny/vue-renderless 3.21.2 → 3.23.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 (331) 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 +4 -1
  5. package/autocomplete/vue.js +3 -3
  6. package/base-select/index.js +20 -21
  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 +91 -25
  12. package/calendar-view/vue.js +6 -4
  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-node/vue.js +11 -1
  22. package/cascader-panel/index.js +4 -4
  23. package/cascader-panel/node.js +3 -4
  24. package/cascader-panel/vue.js +1 -1
  25. package/cascader-select/column-index.js +2 -2
  26. package/cascader-view/index.js +1 -1
  27. package/chart-bar/index.js +1 -1
  28. package/chart-candle/index.js +1 -1
  29. package/chart-core/deps/utils.js +6 -6
  30. package/chart-core/index.js +1 -1
  31. package/chart-funnel/index.js +1 -1
  32. package/chart-gauge/index.js +1 -1
  33. package/chart-line/index.js +1 -1
  34. package/chart-map/index.js +1 -1
  35. package/chart-pie/index.js +1 -1
  36. package/chart-radar/index.js +1 -1
  37. package/chart-sankey/index.js +1 -1
  38. package/chart-scatter/index.js +1 -1
  39. package/chart-waterfall/index.js +1 -1
  40. package/chart-wordcloud/index.js +1 -1
  41. package/checkbox/index.js +1 -1
  42. package/collapse-item/vue.js +1 -1
  43. package/column-list-item/index.js +1 -1
  44. package/common/deps/dom.js +20 -196
  45. package/common/deps/infinite-scroll.js +4 -43
  46. package/common/deps/popup-manager.js +1 -200
  47. package/container/index.js +2 -2
  48. package/crop/index.js +3 -3
  49. package/currency/index.js +2 -2
  50. package/date-panel/index.js +82 -26
  51. package/date-panel/vue.js +53 -21
  52. package/date-picker/vue.js +1 -1
  53. package/date-picker-mobile/index.js +1 -1
  54. package/date-range/index.js +74 -37
  55. package/date-range/vue.js +27 -23
  56. package/date-table/index.js +8 -5
  57. package/date-table/vue.js +1 -1
  58. package/dialog-box/index.js +3 -3
  59. package/dialog-box/vue.js +1 -1
  60. package/dialog-select/index.js +15 -4
  61. package/dialog-select/vue.js +7 -4
  62. package/drawer/index.js +2 -2
  63. package/drop-times/index.js +1 -1
  64. package/dropdown/index.js +11 -3
  65. package/dropdown/vue.js +2 -2
  66. package/dropdown-item/index.js +1 -1
  67. package/dropdown-item/mf.js +1 -1
  68. package/dropdown-menu/index.js +1 -1
  69. package/espace/vue.js +2 -2
  70. package/fall-menu/index.js +3 -3
  71. package/file-upload/index.js +16 -13
  72. package/file-upload/vue.js +2 -2
  73. package/filter/vue.js +1 -1
  74. package/filter-panel/vue.js +1 -2
  75. package/floating-button/index.js +1 -1
  76. package/flowchart/index.js +3 -3
  77. package/flowchart/vue.js +1 -1
  78. package/fluent-editor/index.js +5 -7
  79. package/fluent-editor/options.js +2 -2
  80. package/form/index.js +20 -2
  81. package/form-item/index.js +6 -6
  82. package/fullscreen/index.js +1 -1
  83. package/fullscreen/vue.js +1 -1
  84. package/grid/plugins/export.js +8 -2
  85. package/grid/plugins/exportExcel.js +3 -3
  86. package/grid/plugins/resize.js +2 -2
  87. package/grid/static/base/helperEqualCompare.js +1 -1
  88. package/grid/static/base/isPlainObject.js +1 -1
  89. package/grid/utils/common.js +2 -2
  90. package/grid/utils/dom.js +12 -7
  91. package/grid/utils/event.js +4 -4
  92. package/hrapprover/index.js +1 -1
  93. package/image/index.js +3 -3
  94. package/image-viewer/index.js +4 -6
  95. package/image-viewer/vue.js +1 -1
  96. package/input/index.js +2 -2
  97. package/input/vue.js +1 -1
  98. package/ip-address/index.js +17 -21
  99. package/ip-address/vue.js +1 -1
  100. package/link-menu/index.js +1 -1
  101. package/link-menu/vue.js +1 -1
  102. package/load-list/index.js +1 -1
  103. package/load-list/vue.js +4 -4
  104. package/loading/index.js +2 -2
  105. package/menu/vue.js +1 -1
  106. package/milestone/index.js +6 -45
  107. package/modal/index.js +5 -5
  108. package/month-range/index.js +48 -5
  109. package/month-range/vue.js +19 -15
  110. package/month-table/index.js +5 -5
  111. package/month-table/vue.js +1 -1
  112. package/nav-menu/index.js +7 -7
  113. package/notify/index.js +3 -3
  114. package/number-animation/index.js +53 -0
  115. package/number-animation/vue.js +27 -0
  116. package/numeric/index.js +5 -5
  117. package/option/index.js +1 -1
  118. package/option/vue.js +2 -1
  119. package/package.json +3 -2
  120. package/pager/index.js +28 -16
  121. package/pager/vue.js +27 -16
  122. package/panel/index.js +1 -1
  123. package/picker/index.js +28 -23
  124. package/picker/vue.js +6 -6
  125. package/picker-column/index.js +1 -1
  126. package/pop-upload/vue.js +1 -1
  127. package/popconfirm/vue.js +1 -1
  128. package/popeditor/index.js +6 -6
  129. package/popeditor/vue.js +2 -2
  130. package/popover/index.js +3 -3
  131. package/popover/vue.js +1 -1
  132. package/popup/index.js +3 -3
  133. package/pull-refresh/index.js +1 -1
  134. package/pull-refresh-mobile-first/index.js +1 -1
  135. package/pull-refresh-mobile-first/vue.js +4 -4
  136. package/quarter-panel/index.js +2 -2
  137. package/quarter-panel/vue.js +1 -1
  138. package/radio-group/index.js +1 -1
  139. package/rate/index.js +1 -1
  140. package/rate/vue.js +1 -1
  141. package/recycle-scroller/index.js +2 -2
  142. package/recycle-scroller/vue.js +1 -1
  143. package/rich-text/index.js +1 -1
  144. package/rich-text/table-module.js +2 -2
  145. package/river/river.js +1 -1
  146. package/river/vue.js +1 -1
  147. package/scrollbar/vue-bar.js +1 -1
  148. package/scrollbar/vue.js +1 -1
  149. package/search/index.js +3 -3
  150. package/select/index.js +26 -22
  151. package/select/vue.js +8 -7
  152. package/select-dropdown/vue.js +5 -5
  153. package/selected-box/index.js +1 -1
  154. package/signature/index.js +1 -1
  155. package/signature/vue.js +2 -2
  156. package/skeleton/index.js +1 -1
  157. package/slider/index.js +4 -4
  158. package/slider-button-group/slide-button.js +2 -2
  159. package/split/index.js +2 -2
  160. package/split/vue.js +1 -1
  161. package/statistic/index.js +1 -1
  162. package/steps/index.js +2 -3
  163. package/steps/slide-bar.js +2 -2
  164. package/sticky/vue.js +4 -4
  165. package/tab-bar/index.js +2 -2
  166. package/tab-item-mf/vue.js +1 -1
  167. package/tab-nav/index.js +4 -4
  168. package/tabbar/index.js +1 -1
  169. package/tabbar/vue.js +1 -1
  170. package/tabbar-item/index.js +1 -1
  171. package/tabs-mf/index.js +9 -5
  172. package/tabs-mf/vue-bar.js +5 -4
  173. package/tabs-mf/vue-swipe.js +1 -1
  174. package/tabs-mf/vue.js +2 -2
  175. package/tabs-mf/wheel.js +3 -3
  176. package/tag-group/vue.js +2 -2
  177. package/tall-storage/index.js +1 -1
  178. package/tall-storage/vue.js +1 -1
  179. package/time/index.js +1 -1
  180. package/time/vue.js +1 -1
  181. package/time-line/index.js +1 -1
  182. package/time-line-new/index.js +1 -1
  183. package/time-panel/index.js +2 -2
  184. package/time-panel/vue.js +1 -1
  185. package/time-range/index.js +1 -1
  186. package/time-range/vue.js +1 -1
  187. package/time-spinner/index.js +4 -4
  188. package/time-spinner/vue.js +1 -1
  189. package/timeline-item/index.js +1 -1
  190. package/toggle-menu/index.js +1 -1
  191. package/tooltip/index.js +2 -2
  192. package/tooltip/vue.js +2 -2
  193. package/top-box/index.js +3 -3
  194. package/transfer/index.js +42 -1
  195. package/transfer/vue.js +64 -24
  196. package/transfer-panel/index.js +6 -1
  197. package/tree/index.js +9 -9
  198. package/tree/vue.js +2 -2
  199. package/tree-node/index.js +1 -1
  200. package/tree-node/vue.js +1 -1
  201. package/tree-select/index.js +68 -22
  202. package/tree-select/vue.js +27 -3
  203. package/types/async-flowchart.type.d.ts +2 -14
  204. package/types/breadcrumb-item.type.d.ts +5 -1
  205. package/types/breadcrumb.type.d.ts +5 -1
  206. package/types/button-group.type.d.ts +5 -1
  207. package/types/button.type.d.ts +2 -2
  208. package/types/cascader.type.d.ts +6 -1
  209. package/types/date-table.type.d.ts +1 -120
  210. package/types/dropdown.type.d.ts +1 -1
  211. package/types/label.type.d.ts +1 -53
  212. package/types/loading.type.d.ts +12 -0
  213. package/types/numeric.type.d.ts +3 -22
  214. package/types/pager.type.d.ts +12 -7
  215. package/types/popconfirm.type.d.ts +2 -0
  216. package/types/steps.type.d.ts +1 -0
  217. package/types/tag-group.type.d.ts +2 -14
  218. package/types/tag.type.d.ts +4 -4
  219. package/types/tooltip.type.d.ts +3 -13
  220. package/types/transfer.type.d.ts +3 -0
  221. package/types/user-head.type.d.ts +0 -4
  222. package/upload/index.js +1 -1
  223. package/upload-list/index.js +1 -1
  224. package/upload-list/vue.js +4 -4
  225. package/user/index.js +7 -7
  226. package/user/vue.js +15 -2
  227. package/user-contact/vue.js +2 -2
  228. package/virtual-scroll-box/index.js +2 -2
  229. package/wizard/index.js +3 -3
  230. package/year-range/index.js +61 -11
  231. package/year-range/vue.js +33 -20
  232. package/year-table/index.js +10 -5
  233. package/avatar/index.js +0 -30
  234. package/avatar/vue.js +0 -22
  235. package/common/array.js +0 -115
  236. package/common/bigInt.js +0 -315
  237. package/common/browser.js +0 -81
  238. package/common/calendar/calendar.js +0 -97
  239. package/common/dataset/index.js +0 -99
  240. package/common/date.js +0 -354
  241. package/common/decimal.js +0 -155
  242. package/common/deps/ResizeObserver.js +0 -456
  243. package/common/deps/after-leave.js +0 -27
  244. package/common/deps/clickoutside.js +0 -75
  245. package/common/deps/date-util.js +0 -255
  246. package/common/deps/date.js +0 -286
  247. package/common/deps/debounce.js +0 -8
  248. package/common/deps/eSpaceCtrl.js +0 -304
  249. package/common/deps/fastdom/async.js +0 -41
  250. package/common/deps/fastdom/index.js +0 -9
  251. package/common/deps/fastdom/sandbox.js +0 -53
  252. package/common/deps/fastdom/singleton.js +0 -88
  253. package/common/deps/fullscreen/apis.js +0 -143
  254. package/common/deps/fullscreen/screenfull.js +0 -165
  255. package/common/deps/memorize.js +0 -124
  256. package/common/deps/observe-visibility.js +0 -106
  257. package/common/deps/popper.js +0 -616
  258. package/common/deps/repeat-click.js +0 -29
  259. package/common/deps/resize-event.js +0 -39
  260. package/common/deps/scroll-into-view.js +0 -29
  261. package/common/deps/scrollbar-width.js +0 -33
  262. package/common/deps/throttle.js +0 -45
  263. package/common/deps/touch-emulator.js +0 -103
  264. package/common/deps/touch.js +0 -37
  265. package/common/deps/tree-model/node.js +0 -475
  266. package/common/deps/tree-model/tree-store.js +0 -312
  267. package/common/deps/tree-model/util.js +0 -24
  268. package/common/deps/upload-ajax.js +0 -81
  269. package/common/deps/useEventListener.js +0 -54
  270. package/common/deps/useInstanceSlots.js +0 -22
  271. package/common/deps/useRect.js +0 -25
  272. package/common/deps/useRelation.js +0 -89
  273. package/common/deps/useTouch.js +0 -68
  274. package/common/deps/useUserAgent.js +0 -16
  275. package/common/deps/useWindowSize.js +0 -23
  276. package/common/deps/vue-emitter.js +0 -34
  277. package/common/deps/vue-popper.js +0 -180
  278. package/common/deps/vue-popup.js +0 -138
  279. package/common/event.js +0 -46
  280. package/common/form/const.js +0 -10
  281. package/common/function.js +0 -28
  282. package/common/global.js +0 -11
  283. package/common/index.js +0 -259
  284. package/common/object.js +0 -227
  285. package/common/prop-util.js +0 -43
  286. package/common/runtime.js +0 -79
  287. package/common/string.js +0 -417
  288. package/common/type.js +0 -66
  289. package/common/validate/index.js +0 -10
  290. package/common/validate/messages.js +0 -65
  291. package/common/validate/rules/enum.js +0 -12
  292. package/common/validate/rules/index.js +0 -18
  293. package/common/validate/rules/pattern.js +0 -20
  294. package/common/validate/rules/range.js +0 -52
  295. package/common/validate/rules/required.js +0 -11
  296. package/common/validate/rules/type.js +0 -100
  297. package/common/validate/rules/whitespace.js +0 -10
  298. package/common/validate/schema.js +0 -290
  299. package/common/validate/util.js +0 -211
  300. package/common/validate/validations/array.js +0 -22
  301. package/common/validate/validations/date.js +0 -31
  302. package/common/validate/validations/enum.js +0 -22
  303. package/common/validate/validations/float.js +0 -22
  304. package/common/validate/validations/index.js +0 -46
  305. package/common/validate/validations/integer.js +0 -22
  306. package/common/validate/validations/method.js +0 -21
  307. package/common/validate/validations/number.js +0 -25
  308. package/common/validate/validations/pattern.js +0 -21
  309. package/common/validate/validations/required.js +0 -11
  310. package/common/validate/validations/string.js +0 -33
  311. package/common/validate/validations/type.js +0 -29
  312. package/index-bar/index.js +0 -66
  313. package/index-bar/vue.js +0 -73
  314. package/index-bar-anchor/vue.js +0 -16
  315. package/label/index.js +0 -56
  316. package/label/vue.js +0 -26
  317. package/list/index.js +0 -13
  318. package/list/vue.js +0 -17
  319. package/mask/index.js +0 -13
  320. package/mask/vue.js +0 -18
  321. package/mini-picker/index.js +0 -165
  322. package/mini-picker/vue.js +0 -122
  323. package/multi-select/index.js +0 -394
  324. package/multi-select/vue.js +0 -113
  325. package/multi-select-item/index.js +0 -23
  326. package/multi-select-item/vue.js +0 -31
  327. package/toast/index.js +0 -7
  328. package/toast/vue.js +0 -19
  329. package/types/toast.type.d.ts +0 -63
  330. package/wheel/index.js +0 -165
  331. package/wheel/vue.js +0 -79
package/menu/vue.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  filterInput,
10
10
  computeData
11
11
  } from "./index";
12
- import debounce from "../common/deps/debounce";
12
+ import { debounce } from "@opentiny/utils";
13
13
  const api = ["state", "setIsCurrent", "filterNodes", "filterInput"];
14
14
  const initState = ({ reactive, computed, props, api: api2 }) => {
15
15
  const state = reactive({
@@ -1,7 +1,7 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { isBrowser } from "../common/browser";
2
+ import { isServer } from "@opentiny/utils";
3
3
  const hexToRgb = (hex) => {
4
- if (hex.includes("var") && isBrowser) {
4
+ if (hex.includes("var") && !isServer) {
5
5
  hex = hex.replace(/var\(|\)/g, "");
6
6
  hex = getComputedStyle(document.documentElement).getPropertyValue(hex);
7
7
  }
@@ -33,55 +33,16 @@ const flagOperate = ({ constants, refs, state }) => ({ event, over, text }) => {
33
33
  }
34
34
  };
35
35
  const getMileIcon = ({ constants, props }) => (node) => {
36
- const smbConstants = {
37
- STATUS_COLOR_MAP: {
38
- DEFAULT: {
39
- BORDER_COLOR: "#C2C2C2",
40
- BACKGROUND_COLOR: "#FFFFFF",
41
- COLOR: "#191919",
42
- BOX_SHADOW_PX: "0px 0px 0px 4px",
43
- FLAG_CONTENT_CLS: ".content"
44
- },
45
- COMPLETED: {
46
- BORDER_COLOR: "#191919",
47
- BACKGROUND_COLOR: "#FFFFFF",
48
- COLOR: "#191919",
49
- BOX_SHADOW_PX: "0px 0px 0px 4px",
50
- FLAG_CONTENT_CLS: ".content"
51
- },
52
- DOING: {
53
- BORDER_COLOR: "#191919",
54
- BACKGROUND_COLOR: "#191919",
55
- COLOR: "#FFFFFF",
56
- BOX_SHADOW_PX: "0px 0px 0px 4px",
57
- FLAG_CONTENT_CLS: ".content"
58
- }
59
- }
60
- };
61
36
  const status = node[props.statusField];
62
37
  const statusColor = props.milestonesStatus[status];
63
- if (props.solid || status === constants.STATUS_MAP.DOING) {
64
- return {
65
- "background-color": statusColor || smbConstants.STATUS_COLOR_MAP.DOING.BACKGROUND_COLOR + "!important",
66
- color: smbConstants.STATUS_COLOR_MAP.DOING.COLOR + "!important",
67
- "border-color": statusColor || smbConstants.STATUS_COLOR_MAP.DOING.BORDER_COLOR,
68
- boxShadow: "unset"
69
- };
70
- }
71
- if (status === constants.STATUS_MAP.COMPLETED) {
38
+ if (statusColor) {
72
39
  return {
73
- "background-color": smbConstants.STATUS_COLOR_MAP.COMPLETED.BACKGROUND_COLOR + "!important",
74
- color: statusColor || smbConstants.STATUS_COLOR_MAP.COMPLETED.COLOR + "!important",
75
- "border-color": statusColor || smbConstants.STATUS_COLOR_MAP.COMPLETED.BORDER_COLOR,
40
+ "background-color": props.solid || status === constants.STATUS_MAP.DOING ? statusColor : "",
41
+ color: props.solid && status !== constants.STATUS_MAP.COMPLETED || status === constants.STATUS_MAP.DOING ? "#fff" : statusColor,
42
+ "border-color": statusColor,
76
43
  boxShadow: "unset"
77
44
  };
78
45
  }
79
- return {
80
- background: smbConstants.STATUS_COLOR_MAP.DEFAULT.BACKGROUND_COLOR + "!important",
81
- color: statusColor || smbConstants.STATUS_COLOR_MAP.DEFAULT.COLOR + "!important",
82
- "border-color": statusColor || smbConstants.STATUS_COLOR_MAP.DEFAULT.BORDER_COLOR,
83
- boxShadow: "unset"
84
- };
85
46
  };
86
47
  const getMileContent = (props) => ({ data, index }) => {
87
48
  const content = data[props.flagBefore ? index : index + 1][props.flagField];
package/modal/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { KEY_CODE } from "../common";
3
- import { on, off, addClass, hasClass, removeClass } from "../common/deps/dom";
4
- import PopupManager from "../common/deps/popup-manager";
5
- import { getDomNode } from "../common/deps/dom";
6
- import { getViewportWindow } from "../common/global";
2
+ import { KEY_CODE } from "@opentiny/utils";
3
+ import { on, off, addClass, hasClass, removeClass } from "@opentiny/utils";
4
+ import { PopupManager } from "@opentiny/utils";
5
+ import { getDomNode } from "@opentiny/utils";
6
+ import { getViewportWindow } from "@opentiny/utils";
7
7
  const DragClass = "is__drag";
8
8
  const emitZoom = ({ params, parent, emit, event }) => {
9
9
  let { $listeners, events = {} } = parent;
@@ -1,5 +1,15 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { isDate, modifyWithTimeString, prevYear, nextYear, nextMonth } from "../common/deps/date-util";
2
+ import {
3
+ DATEPICKER,
4
+ isDate1 as isDate,
5
+ toDate1,
6
+ modifyDate,
7
+ formatDate,
8
+ modifyWithTimeString,
9
+ prevYear,
10
+ nextYear,
11
+ nextMonth1 as nextMonth
12
+ } from "@opentiny/utils";
3
13
  const calcDefaultValue = (defaultValue) => {
4
14
  if (Array.isArray(defaultValue)) {
5
15
  return [new Date(defaultValue[0]), new Date(defaultValue[1])];
@@ -57,7 +67,10 @@ const handleChangeRange = (state) => (val) => {
57
67
  state.maxDate = val.maxDate;
58
68
  state.rangeState = val.rangeState;
59
69
  };
60
- const handleRangePick = ({ api, state, t }) => (val, close = true) => {
70
+ const handleRangePick = ({ api, state, props, t }) => (val, close = true) => {
71
+ if (props.readonly) {
72
+ return;
73
+ }
61
74
  const defaultTime = state.defaultTime || [];
62
75
  const max = modifyWithTimeString(val.maxDate, defaultTime[1], t);
63
76
  const min = modifyWithTimeString(val.minDate, defaultTime[0], t);
@@ -78,11 +91,19 @@ const handleRangePick = ({ api, state, t }) => (val, close = true) => {
78
91
  }
79
92
  api.handleConfirm();
80
93
  };
81
- const handleShortcutClick = (api) => (shortcutObj) => {
94
+ const handleShortcutClick = (state, api, props) => (shortcutObj) => {
82
95
  if (shortcutObj.onClick) {
83
96
  const choose = {
84
97
  $emit: (type, [start, end]) => {
85
- api.doPick(start, end);
98
+ var _a;
99
+ if ((_a = props.shortcuts) == null ? void 0 : _a.length) {
100
+ state.value = [start, end];
101
+ state.leftDate = start;
102
+ state.rightDate = end;
103
+ api.handleRangePick({ minDate: start, maxDate: end });
104
+ } else {
105
+ api.doPick(start, end);
106
+ }
86
107
  }
87
108
  };
88
109
  shortcutObj.onClick(choose);
@@ -105,9 +126,17 @@ const rightNextYear = (state) => () => {
105
126
  };
106
127
  const leftNextYear = (state) => () => state.leftDate = nextYear(state.leftDate);
107
128
  const rightPrevYear = (state) => () => state.rightDate = prevYear(state.rightDate);
108
- const handleConfirm = ({ api, emit, state }) => (visible = false) => {
129
+ const handleConfirm = ({ api, emit, state, props, t }) => (visible = false) => {
109
130
  if (api.isValidValue([state.minDate, state.maxDate])) {
110
131
  emit("pick", [state.minDate, state.maxDate], visible);
132
+ const defaultFormat = DATEPICKER.DateFormats.monthrange;
133
+ const start = formatDate(state.minDate, props.format || defaultFormat, t);
134
+ const end = formatDate(state.maxDate, props.format || defaultFormat, t);
135
+ emit("update:modelValue", [start, end]);
136
+ emit("select-change", [start, end]);
137
+ }
138
+ if (state.minDate && !state.maxDate) {
139
+ emit("pick", [state.minDate, state.maxDate], visible, true);
111
140
  }
112
141
  };
113
142
  const isValidValue = (state) => (value) => Array.isArray(value) && value && value[1] && value[0] && isDate(value[1]) && isDate(value[0]) && value[0].getTime() <= value[1].getTime() && (typeof state.disabledDate === "function" ? !state.disabledDate(value[1]) && !state.disabledDate(value[0]) : true);
@@ -115,6 +144,19 @@ const resetView = (state) => () => {
115
144
  state.minDate = state.value && isDate(state.value[0]) ? new Date(state.value[0]) : null;
116
145
  state.maxDate = state.value && isDate(state.value[0]) ? new Date(state.value[1]) : null;
117
146
  };
147
+ const watchModelValue = ({ state }) => (val) => {
148
+ const newVal = toDate1(val == null ? void 0 : val[0]);
149
+ const newVal1 = toDate1(val == null ? void 0 : val[1]);
150
+ if (newVal && newVal1) {
151
+ const start = modifyDate(newVal, newVal.getFullYear(), newVal.getMonth() + 1, newVal.getUTCDate());
152
+ const end = modifyDate(newVal1, newVal1.getFullYear(), newVal1.getMonth() + 1, newVal1.getUTCDate());
153
+ state.value = [start, end];
154
+ state.minDate = start;
155
+ state.maxDate = end;
156
+ state.leftDate = start;
157
+ state.rightDate = end;
158
+ }
159
+ };
118
160
  export {
119
161
  calcDefaultValue,
120
162
  doPick,
@@ -130,5 +172,6 @@ export {
130
172
  rightNextYear,
131
173
  rightPrevYear,
132
174
  watchDefaultValue,
175
+ watchModelValue,
133
176
  watchValue
134
177
  };
@@ -13,9 +13,10 @@ import {
13
13
  handleChangeRange,
14
14
  handleRangePick,
15
15
  handleShortcutClick,
16
- doPick
16
+ doPick,
17
+ watchModelValue
17
18
  } from "./index";
18
- import { nextYear } from "../common/deps/date-util";
19
+ import { nextYear } from "@opentiny/utils";
19
20
  const api = [
20
21
  "state",
21
22
  "rightNextYear",
@@ -25,12 +26,13 @@ const api = [
25
26
  "handleChangeRange",
26
27
  "leftPrevYear",
27
28
  "leftNextYear",
28
- "isValidValue"
29
+ "isValidValue",
30
+ "watchModelValue"
29
31
  ];
30
- const initState = ({ reactive, computed, api: api2, t }) => {
32
+ const initState = ({ reactive, computed, api: api2, props, t }) => {
31
33
  const state = reactive({
32
- popperClass: "",
33
- value: [],
34
+ popperClass: props.popperClass || "",
35
+ value: props.modelValue || [],
34
36
  defaultValue: null,
35
37
  defaultTime: null,
36
38
  minDate: "",
@@ -38,12 +40,12 @@ const initState = ({ reactive, computed, api: api2, t }) => {
38
40
  leftDate: /* @__PURE__ */ new Date(),
39
41
  rightDate: nextYear(/* @__PURE__ */ new Date()),
40
42
  rangeState: { endDate: null, selecting: false, row: null, column: null },
41
- shortcuts: "",
43
+ shortcuts: props.shortcuts || [],
42
44
  visible: "",
43
- disabledDate: "",
44
- format: "",
45
+ disabledDate: props.disabledDate || null,
46
+ format: props.format || "",
45
47
  arrowControl: false,
46
- unlinkPanels: false,
48
+ unlinkPanels: props.unlinkPanels || false,
47
49
  btnDisabled: computed(
48
50
  () => !(state.minDate && state.maxDate && !state.selecting && api2.isValidValue([state.minDate, state.maxDate]))
49
51
  ),
@@ -60,11 +62,11 @@ const initState = ({ reactive, computed, api: api2, t }) => {
60
62
  const renderless = (props, { computed, reactive, watch }, { t, emit: $emit }) => {
61
63
  const api2 = {};
62
64
  const emit = props.emitter ? props.emitter.emit : $emit;
63
- const state = initState({ reactive, computed, api: api2, t });
65
+ const state = initState({ reactive, computed, api: api2, props, t });
64
66
  Object.assign(api2, {
65
67
  state,
66
68
  resetView: resetView(state),
67
- handleChangeRange: handleChangeRange(state),
69
+ handleChangeRange: handleChangeRange(state, props),
68
70
  isValidValue: isValidValue(state),
69
71
  leftNextYear: leftNextYear(state),
70
72
  leftPrevYear: leftPrevYear(state),
@@ -74,10 +76,12 @@ const renderless = (props, { computed, reactive, watch }, { t, emit: $emit }) =>
74
76
  watchValue: watchValue({ state }),
75
77
  handleClear: handleClear({ emit, state }),
76
78
  watchDefaultValue: watchDefaultValue({ state }),
77
- handleConfirm: handleConfirm({ api: api2, emit, state }),
78
- handleRangePick: handleRangePick({ api: api2, state, t }),
79
- handleShortcutClick: handleShortcutClick(api2)
79
+ handleConfirm: handleConfirm({ api: api2, emit, state, props, t }),
80
+ handleRangePick: handleRangePick({ api: api2, state, props, t }),
81
+ handleShortcutClick: handleShortcutClick(state, api2, props),
82
+ watchModelValue: watchModelValue({ state, api: api2 })
80
83
  });
84
+ watch(() => props.modelValue, api2.watchModelValue, { immediate: true });
81
85
  watch(() => state.value, api2.watchValue);
82
86
  watch(() => state.defaultValue, api2.watchDefaultValue);
83
87
  return api2;
@@ -1,9 +1,6 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { toDate } from "../common/date";
3
- import { hasClass } from "../common/deps/dom";
4
- import { range as rangeDate, getDayCountOfMonth, nextDate } from "../common/deps/date-util";
2
+ import { range as rangeDate, getDayCountOfMonth, nextDate, toDate1, hasClass, DATEPICKER } from "@opentiny/utils";
5
3
  import { arrayFindIndex, coerceTruthyValueToArray, arrayFind } from "../date-table";
6
- import { DATEPICKER } from "../common";
7
4
  const datesInMonth = (year, month) => {
8
5
  const numOfDays = getDayCountOfMonth(year, month);
9
6
  const firstDay = new Date(year, month, 1);
@@ -122,6 +119,9 @@ const handleMouseMove = ({ api, emit, props, state }) => (event) => {
122
119
  }
123
120
  };
124
121
  const handleMonthTableClick = ({ api, emit, props }) => (event) => {
122
+ if (props.readonly) {
123
+ return;
124
+ }
125
125
  const target = getTarget(event);
126
126
  if (!target) {
127
127
  return;
@@ -160,7 +160,7 @@ const getCellStyle = ({ api, props }) => (cell) => {
160
160
  const month = cell.text;
161
161
  const defaultValue = props.defaultValue ? Array.isArray(props.defaultValue) ? props.defaultValue : [props.defaultValue] : [];
162
162
  style.disabled = typeof props.disabledDate === "function" ? datesInMonth(year, month).every(props.disabledDate) : false;
163
- const execDate = typeof props.value === "object" ? props.value : toDate(props.value);
163
+ const execDate = typeof props.value === "object" ? props.value : toDate1(props.value);
164
164
  style.current = arrayFindIndex(
165
165
  coerceTruthyValueToArray(execDate),
166
166
  (date) => date.getFullYear() === year && date.getMonth() === month
@@ -10,7 +10,7 @@ import {
10
10
  getCellStyle,
11
11
  getMonthOfCell
12
12
  } from "./index";
13
- import { DATEPICKER } from "../common";
13
+ import { DATEPICKER } from "@opentiny/utils";
14
14
  const api = ["state", "handleMonthTableClick", "handleMouseMove", "getCellStyle"];
15
15
  const renderless = (props, { computed, reactive, watch }, { t, vm, emit }) => {
16
16
  const api2 = {};
package/nav-menu/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { omitText } from "../common/string";
3
- import { isEmptyObject, isObject } from "../common/type";
4
- import PopupManager from "../common/deps/popup-manager";
2
+ import { omitText } from "@opentiny/utils";
3
+ import { isEmptyObject, isObject } from "@opentiny/utils";
4
+ import { PopupManager } from "@opentiny/utils";
5
5
  import { mapTree } from "../grid/static";
6
- import { transformTreeData } from "../common/array";
7
- import { on, off } from "../common/deps/dom";
6
+ import { transformTreeData } from "@opentiny/utils";
7
+ import { on, off } from "@opentiny/utils";
8
8
  import { xss } from "@opentiny/utils";
9
- import { isBrowser } from "../common/browser";
9
+ import { isServer } from "@opentiny/utils";
10
10
  const { nextZIndex } = PopupManager;
11
11
  const computedIsShowMore = ({ props, state }) => () => !/^(retract|fixed|hidden)$/.test(props.overflow) && state.more && state.more.length;
12
12
  const computedPopClass = (state) => () => {
@@ -348,7 +348,7 @@ const skip = ({ api, router, fields }) => (item, flag = false) => {
348
348
  }
349
349
  };
350
350
  const getPoint = ({ api, parent }) => () => {
351
- if (!isBrowser)
351
+ if (isServer)
352
352
  return 0;
353
353
  else {
354
354
  const items = parent.$el.querySelectorAll(".menu>li");
package/notify/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { KEY_CODE } from "../common";
3
- import { on, off } from "../common/deps/dom";
4
- import PopupManager from "../common/deps/popup-manager";
2
+ import { KEY_CODE } from "@opentiny/utils";
3
+ import { on, off } from "@opentiny/utils";
4
+ import { PopupManager } from "@opentiny/utils";
5
5
  const startTimer = ({ api, state }) => () => {
6
6
  if (state.duration > 0) {
7
7
  state.timer = setTimeout(() => {
@@ -0,0 +1,53 @@
1
+ import "../chunk-G2ADBYYC.js";
2
+ const onFinish = ({ emit, props, state }) => () => {
3
+ state.value = props.to;
4
+ state.animating = false;
5
+ emit("finish");
6
+ };
7
+ const easeOut = (t) => 1 - (1 - t) ** 5;
8
+ const play = ({ props, state, api }) => () => {
9
+ animate(state, props, api);
10
+ };
11
+ const animate = (state, props, api) => {
12
+ state.animating = true;
13
+ state.value = props.from;
14
+ if (props.from !== props.to) {
15
+ const startTime = performance.now();
16
+ const tick = () => {
17
+ const current = performance.now();
18
+ const elapsedTime = Math.min(current - startTime, props.duration);
19
+ const currentValue = props.from + (props.to - props.from) * easeOut(elapsedTime / props.duration);
20
+ if (elapsedTime === props.duration) {
21
+ api.onFinish();
22
+ return;
23
+ }
24
+ state.value = currentValue;
25
+ requestAnimationFrame(tick);
26
+ };
27
+ tick();
28
+ }
29
+ };
30
+ const formattedValue = ({ state, props }) => () => {
31
+ if (typeof state.value !== "number" && typeof state.value !== "string")
32
+ return;
33
+ if (typeof props.precision !== "number")
34
+ return;
35
+ const numValue = Number(state.value);
36
+ if (isNaN(numValue) || !isFinite(numValue))
37
+ return;
38
+ if (numValue === 0) {
39
+ return numValue.toFixed(props.precision);
40
+ }
41
+ let formatValue = numValue.toFixed(props.precision);
42
+ if (typeof props.separator === "string" && props.separator !== "") {
43
+ const [integerPart, decimalPart] = formatValue.split(".");
44
+ formatValue = integerPart.replace(/(\d)(?=(\d{3})+$)/g, "$1" + props.separator) + (decimalPart ? "." + decimalPart : "");
45
+ }
46
+ return formatValue;
47
+ };
48
+ export {
49
+ animate,
50
+ formattedValue,
51
+ onFinish,
52
+ play
53
+ };
@@ -0,0 +1,27 @@
1
+ import "../chunk-G2ADBYYC.js";
2
+ import { play, formattedValue, onFinish } from "./index";
3
+ const api = ["state", "play", "formattedValue", "onFinish"];
4
+ const renderless = (props, { onMounted, computed, reactive }, { emit }) => {
5
+ const api2 = {};
6
+ const state = reactive({
7
+ animating: true,
8
+ value: props.from,
9
+ showValue: computed(() => api2.formattedValue(state, props))
10
+ });
11
+ onMounted(() => {
12
+ if (props.active) {
13
+ api2.play(props, state);
14
+ }
15
+ });
16
+ Object.assign(api2, {
17
+ state,
18
+ play: play({ props, state, api: api2 }),
19
+ formattedValue: formattedValue({ state, props }),
20
+ onFinish: onFinish({ emit, props, state })
21
+ });
22
+ return api2;
23
+ };
24
+ export {
25
+ api,
26
+ renderless
27
+ };
package/numeric/index.js CHANGED
@@ -2,11 +2,11 @@ import {
2
2
  __spreadProps,
3
3
  __spreadValues
4
4
  } from "../chunk-G2ADBYYC.js";
5
- import { formatNumber, roundFixed } from "../common/decimal";
6
- import { getMiniDecimal, lessEquals, equalsDecimal } from "../common/bigInt";
7
- import { isNumber, isNull } from "../common/type";
8
- import { MOUSEDELTA } from "../common";
9
- import { on, off } from "../common/deps/dom";
5
+ import { formatNumber, roundFixed } from "@opentiny/utils";
6
+ import { getMiniDecimal, lessEquals, equalsDecimal } from "@opentiny/utils";
7
+ import { isNumber, isNull } from "@opentiny/utils";
8
+ import { MOUSEDELTA } from "@opentiny/utils";
9
+ import { on, off } from "@opentiny/utils";
10
10
  const initService = (service) => {
11
11
  const { utils = {} } = service || {};
12
12
  const noopFn = () => null;
package/option/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "../chunk-G2ADBYYC.js";
2
- import { getObj } from "../common/object";
2
+ import { getObj } from "@opentiny/utils";
3
3
  const escapeRegexpString = (value = "") => String(value).replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
4
4
  const isEqual = ({ select, state }) => (a, b) => {
5
5
  if (!state.isObject) {
package/option/vue.js CHANGED
@@ -26,7 +26,7 @@ const initState = ({ reactive, computed, props, api: api2, markRaw, select, pare
26
26
  disabled: computed(() => props.disabled || state.groupDisabled),
27
27
  isObject: computed(() => Object.prototype.toString.call(props.value).toLowerCase() === "[object object]"),
28
28
  currentLabel: computed(() => props.label || (state.isObject ? "" : props.value)),
29
- currentValue: computed(() => props.value || props.label || ""),
29
+ currentValue: props.value || props.label || "",
30
30
  itemSelected: computed(() => {
31
31
  if (!select.multiple) {
32
32
  return api2.isEqual(props.value, select.state.modelValue);
@@ -73,6 +73,7 @@ const initWatch = ({ watch, props, state, select, constants }) => {
73
73
  () => props.value,
74
74
  (value, oldVal) => {
75
75
  const { remote, valueKey } = select;
76
+ state.currentValue = value || props.label || "";
76
77
  if (!props.created && !remote) {
77
78
  if (valueKey && typeof value === "object" && typeof oldVal === "object" && value[valueKey] === oldVal[valueKey]) {
78
79
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentiny/vue-renderless",
3
- "version": "3.21.2",
3
+ "version": "3.23.0",
4
4
  "description": "An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.",
5
5
  "author": "OpenTiny Team",
6
6
  "license": "MIT",
@@ -25,7 +25,8 @@
25
25
  ],
26
26
  "sideEffects": false,
27
27
  "dependencies": {
28
- "@opentiny/utils": "^1.0.0",
28
+ "@opentiny/utils": "~3.23.0",
29
+ "@opentiny/vue-hooks": "~3.23.0",
29
30
  "color": "4.2.3"
30
31
  },
31
32
  "devDependencies": {
package/pager/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  __spreadValues
3
3
  } from "../chunk-G2ADBYYC.js";
4
- import { emitEvent } from "../common/event";
4
+ import { emitEvent } from "@opentiny/utils";
5
5
  const computedShowPager = ({ props, state }) => () => {
6
6
  const hidePager = props.hideOnSinglePage && (!state.internalPageCount || state.internalPageCount === 1);
7
7
  return state.internalLayout.length > 0 && !hidePager;
@@ -78,19 +78,16 @@ const handleJumperFocus = ({ state }) => (e) => {
78
78
  var _a;
79
79
  state.jumperBackup = (_a = e.target) == null ? void 0 : _a.value;
80
80
  };
81
- const watchInternalCurrentPage = ({ state, emit }) => (currentPage) => {
81
+ const watchInternalCurrentPage = ({ state, emit, props }) => (currentPage) => {
82
82
  const value = String(currentPage);
83
83
  if (state.jumperValue !== value) {
84
84
  state.jumperValue = value;
85
85
  }
86
- emit("update:current-page", currentPage);
87
- emit("current-change", currentPage);
88
- state.lastEmittedPage = -1;
89
- };
90
- const watchPageSizes = ({ state, props }) => (newVal) => {
91
- if (Array.isArray(newVal)) {
92
- state.internalPageSize = newVal.includes(props.pageSize) ? props.pageSize : newVal[0];
86
+ if (props.changeCompat) {
87
+ emit("update:current-page", currentPage);
88
+ emit("current-change", currentPage);
93
89
  }
90
+ state.lastEmittedPage = -1;
94
91
  };
95
92
  const watchCurrentPage = ({ state, api }) => (curPage) => {
96
93
  state.internalCurrentPage = api.getValidCurrentPage(curPage);
@@ -105,8 +102,10 @@ const watchInternalPageCount = ({ state, api }) => (pageCount) => {
105
102
  }
106
103
  state.userChangePageSize = false;
107
104
  };
108
- const watchPageSize = ({ state }) => (pageSize) => {
109
- state.internalPageSize = isNaN(pageSize) ? 10 : pageSize;
105
+ const watchInternalPageSize = ({ props, emit }) => (pageSize) => {
106
+ if (props.changeCompat) {
107
+ emit("size-change", pageSize);
108
+ }
110
109
  };
111
110
  const watchTotal = ({ state }) => (total) => {
112
111
  state.internalTotal = total;
@@ -133,7 +132,9 @@ const handleSizeChange = ({ props, state, api, emit, vm }) => (val) => {
133
132
  state.userChangePageSize = true;
134
133
  state.showSizes = false;
135
134
  emit("update:pageSize", val);
136
- emit("size-change", val);
135
+ if (!props.changeCompat) {
136
+ emit("size-change", val);
137
+ }
137
138
  emit("page-change", {
138
139
  currentPage: state.internalCurrentPage,
139
140
  pageSize: val,
@@ -338,10 +339,21 @@ const getValidCurrentPage = ({ state }) => (val) => {
338
339
  }
339
340
  return resetVal === void 0 ? parseVal : resetVal;
340
341
  };
341
- const emitChange = ({ state, nextTick, emit }) => () => {
342
+ const getInternalPageSize = ({ props }) => () => {
343
+ const { pageSize, pageSizes } = props;
344
+ let internalPageSize = isNaN(pageSize) ? 10 : Number(pageSize);
345
+ if (Array.isArray(pageSizes)) {
346
+ internalPageSize = pageSizes.includes(pageSize) ? pageSize : pageSizes[0];
347
+ }
348
+ return internalPageSize;
349
+ };
350
+ const emitChange = ({ state, nextTick, emit, props }) => () => {
342
351
  nextTick(() => {
343
352
  if (state.internalCurrentPage !== state.lastEmittedPage || state.userChangePageSize) {
344
- emit("update:current-page", state.internalCurrentPage);
353
+ if (!props.changeCompat) {
354
+ emit("update:current-page", state.internalCurrentPage);
355
+ emit("current-change", state.internalCurrentPage);
356
+ }
345
357
  emit("page-change", {
346
358
  currentPage: state.internalCurrentPage,
347
359
  pageSize: state.internalPageSize,
@@ -373,6 +385,7 @@ export {
373
385
  computedTotalText,
374
386
  copyEmit,
375
387
  emitChange,
388
+ getInternalPageSize,
376
389
  getValidCurrentPage,
377
390
  handleCurrentChange,
378
391
  handleJumperChange,
@@ -390,8 +403,7 @@ export {
390
403
  watchCurrentPage,
391
404
  watchInternalCurrentPage,
392
405
  watchInternalPageCount,
393
- watchPageSize,
394
- watchPageSizes,
406
+ watchInternalPageSize,
395
407
  watchShowSizes,
396
408
  watchTotal
397
409
  };