@opentiny/vue-renderless 3.6.7 → 3.8.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 (314) hide show
  1. package/action-sheet/index.js +28 -1
  2. package/action-sheet/vue.js +10 -4
  3. package/alert/index.js +24 -2
  4. package/alert/vue.js +15 -11
  5. package/amount/index.js +4 -4
  6. package/anchor/index.js +1 -1
  7. package/autocomplete/vue.js +3 -3
  8. package/autonavi-map/index.js +1 -1
  9. package/badge/vue.js +6 -6
  10. package/baidu-map/index.js +1 -1
  11. package/bulletin-board/index.js +1 -1
  12. package/calendar/index.js +2 -2
  13. package/calendar-bar/index.js +268 -0
  14. package/calendar-bar/vue.js +87 -0
  15. package/card/index.js +84 -0
  16. package/card/vue.js +70 -0
  17. package/card-group/index.js +16 -0
  18. package/card-group/vue.js +21 -0
  19. package/card-template/index.js +1 -1
  20. package/carousel/index.js +89 -2
  21. package/carousel/vue.js +14 -5
  22. package/carousel-item/index.js +8 -0
  23. package/carousel-item/vue.js +7 -3
  24. package/cascader/index.js +6 -6
  25. package/cascader/vue.js +3 -3
  26. package/cascader-menu/vue.js +2 -2
  27. package/cascader-panel/index.js +4 -4
  28. package/cascader-panel/node.js +4 -4
  29. package/cascader-panel/vue.js +2 -2
  30. package/cascader-select/index.js +179 -0
  31. package/cascader-select/vue.js +74 -0
  32. package/cell/vue.js +16 -0
  33. package/chart-bar/index.js +3 -3
  34. package/chart-boxplot/index.js +2 -2
  35. package/chart-candle/index.js +3 -3
  36. package/chart-core/deps/utils.js +7 -7
  37. package/chart-core/index.js +2 -2
  38. package/chart-funnel/index.js +3 -3
  39. package/chart-gauge/index.js +3 -3
  40. package/chart-graph/index.js +1 -1
  41. package/chart-heatmap/index.js +2 -2
  42. package/chart-line/index.js +3 -3
  43. package/chart-liquidfill/index.js +2 -2
  44. package/chart-map/index.js +3 -3
  45. package/chart-pie/index.js +3 -3
  46. package/chart-radar/index.js +3 -3
  47. package/chart-sankey/index.js +3 -3
  48. package/chart-scatter/index.js +4 -4
  49. package/chart-sunburst/index.js +1 -1
  50. package/chart-tree/index.js +2 -2
  51. package/chart-waterfall/index.js +3 -3
  52. package/chart-wordcloud/index.js +2 -2
  53. package/checkbox/index.js +21 -0
  54. package/checkbox/vue.js +16 -3
  55. package/checkbox-button/vue.js +1 -1
  56. package/collapse-item/vue.js +1 -1
  57. package/column-list-group/index.js +0 -0
  58. package/column-list-group/vue.js +14 -0
  59. package/column-list-item/index.js +50 -0
  60. package/column-list-item/vue.js +39 -0
  61. package/common/array.js +3 -3
  62. package/common/bigInt.js +5 -2
  63. package/common/dataset/index.js +3 -3
  64. package/common/date.js +2 -2
  65. package/common/deps/ResizeObserver.js +1 -1
  66. package/common/deps/clickoutside.js +1 -1
  67. package/common/deps/date-util.js +4 -4
  68. package/common/deps/date.js +2 -2
  69. package/common/deps/debounce.js +1 -1
  70. package/common/deps/dom.js +1 -1
  71. package/common/deps/fullscreen/apis.js +3 -3
  72. package/common/deps/fullscreen/screenfull.js +1 -1
  73. package/common/deps/infinite-scroll.js +176 -0
  74. package/common/deps/letter-only.js +1 -1
  75. package/common/deps/number-only.js +1 -1
  76. package/common/deps/observe-visibility.js +106 -0
  77. package/common/deps/popper.js +20 -22
  78. package/common/deps/popup-manager.js +2 -2
  79. package/common/deps/repeat-click.js +1 -1
  80. package/common/deps/resize-event.js +1 -1
  81. package/common/deps/tree-model/node.js +5 -5
  82. package/common/deps/tree-model/tree-store.js +3 -3
  83. package/common/deps/upload-ajax.js +2 -2
  84. package/common/deps/vue-popper.js +4 -4
  85. package/common/deps/vue-popup.js +4 -4
  86. package/common/index.js +2 -2
  87. package/common/object.js +1 -1
  88. package/common/runtime.js +24 -24
  89. package/common/string.js +23 -4
  90. package/common/validate/rules/range.js +2 -2
  91. package/common/validate/rules/required.js +1 -1
  92. package/common/validate/rules/type.js +3 -3
  93. package/common/validate/schema.js +1 -1
  94. package/common/validate/util.js +1 -1
  95. package/common/validate/validations/array.js +1 -1
  96. package/common/validate/validations/date.js +1 -1
  97. package/common/validate/validations/enum.js +1 -1
  98. package/common/validate/validations/float.js +1 -1
  99. package/common/validate/validations/integer.js +1 -1
  100. package/common/validate/validations/method.js +1 -1
  101. package/common/validate/validations/number.js +1 -1
  102. package/common/validate/validations/pattern.js +1 -1
  103. package/common/validate/validations/string.js +1 -1
  104. package/common/validate/validations/type.js +1 -1
  105. package/container/index.js +1 -1
  106. package/crop/index.js +2 -2
  107. package/currency/index.js +2 -2
  108. package/date-panel/index.js +7 -7
  109. package/date-panel/vue.js +3 -2
  110. package/date-picker-mobile/index.js +250 -0
  111. package/date-picker-mobile/vue.js +86 -0
  112. package/date-range/index.js +1 -1
  113. package/date-range/vue.js +1 -1
  114. package/date-table/index.js +3 -3
  115. package/date-table/vue.js +1 -1
  116. package/dialog-box/index.js +10 -6
  117. package/dialog-box/vue.js +1 -1
  118. package/dialog-select/index.js +345 -0
  119. package/dialog-select/vue.js +110 -0
  120. package/drawer/index.js +83 -0
  121. package/drawer/vue.js +51 -0
  122. package/drop-times/index.js +1 -1
  123. package/dropdown/index.js +2 -2
  124. package/dropdown/vue.js +1 -1
  125. package/dropdown-item/index.js +1 -1
  126. package/dropdown-item/mf.js +79 -0
  127. package/dropdown-menu/index.js +30 -1
  128. package/dropdown-menu/vue.js +17 -7
  129. package/dynamic-scroller/index.js +117 -0
  130. package/dynamic-scroller/vue.js +88 -0
  131. package/dynamic-scroller-item/index.js +147 -0
  132. package/dynamic-scroller-item/vue.js +92 -0
  133. package/espace/index.js +1 -1
  134. package/espace/vue.js +1 -1
  135. package/exception/vue.js +3 -1
  136. package/fall-menu/index.js +4 -4
  137. package/file-upload/index.js +872 -408
  138. package/file-upload/vue.js +87 -36
  139. package/filter/index.js +131 -0
  140. package/filter/tag-group.js +43 -0
  141. package/filter/vue.js +73 -0
  142. package/filter-bar/index.js +9 -0
  143. package/filter-bar/vue.js +16 -0
  144. package/filter-box/index.js +17 -0
  145. package/filter-box/vue.js +19 -0
  146. package/filter-panel/index.js +42 -0
  147. package/filter-panel/vue.js +33 -0
  148. package/floatbar/index.js +1 -1
  149. package/flowchart/index.js +721 -0
  150. package/flowchart/vue.js +81 -0
  151. package/form/index.js +15 -1
  152. package/form/vue.js +10 -4
  153. package/form-item/index.js +46 -6
  154. package/form-item/vue.js +27 -3
  155. package/fullscreen/index.js +1 -1
  156. package/fullscreen/vue.js +1 -1
  157. package/grid/plugins/export.js +2 -2
  158. package/grid/plugins/exportExcel.js +2 -2
  159. package/grid/plugins/resize.js +1 -1
  160. package/grid/static/base/helperEqualCompare.js +1 -1
  161. package/grid/static/base/isPlainObject.js +1 -1
  162. package/grid/utils/common.js +3 -3
  163. package/grid/utils/dom.js +3 -3
  164. package/grid/utils/event.js +2 -2
  165. package/guide/index.js +168 -0
  166. package/guide/vue.js +36 -0
  167. package/hrapprover/index.js +1 -1
  168. package/image/index.js +8 -4
  169. package/image/vue.js +12 -6
  170. package/image-viewer/index.js +3 -3
  171. package/image-viewer/vue.js +16 -6
  172. package/input/index.js +34 -1
  173. package/input/vue.js +22 -6
  174. package/ip-address/index.js +1 -1
  175. package/ip-address/vue.js +1 -1
  176. package/link-menu/index.js +2 -2
  177. package/link-menu/vue.js +2 -2
  178. package/loading/index.js +2 -2
  179. package/loading/vue.js +2 -1
  180. package/locales/index.js +1 -1
  181. package/logout/index.js +1 -1
  182. package/milestone/index.js +5 -1
  183. package/modal/index.js +68 -39
  184. package/modal/vue.js +15 -12
  185. package/month-range/index.js +1 -1
  186. package/month-range/vue.js +1 -1
  187. package/month-table/index.js +5 -5
  188. package/month-table/vue.js +1 -1
  189. package/multi-select/index.js +5 -2
  190. package/multi-select/vue.js +4 -5
  191. package/nav-menu/index.js +6 -6
  192. package/notify/index.js +3 -3
  193. package/numeric/index.js +15 -5
  194. package/numeric/vue.js +15 -6
  195. package/option/index.js +1 -1
  196. package/package.json +2 -1
  197. package/pager-item/index.js +1 -1
  198. package/panel/index.js +1 -1
  199. package/picker/index.js +7 -7
  200. package/picker/vue.js +1 -1
  201. package/picker-column/index.js +1 -1
  202. package/popconfirm/index.js +25 -0
  203. package/popconfirm/vue.js +22 -0
  204. package/popeditor/index.js +7 -7
  205. package/popeditor/vue.js +2 -2
  206. package/popover/index.js +11 -3
  207. package/popover/vue.js +33 -10
  208. package/popup/index.js +4 -4
  209. package/pull-refresh/index.js +8 -11
  210. package/pull-refresh/vue.js +7 -7
  211. package/radio/index.js +17 -0
  212. package/radio/vue.js +18 -3
  213. package/radio-button/index.js +8 -0
  214. package/radio-button/vue.js +19 -4
  215. package/radio-group/index.js +1 -1
  216. package/radio-group/vue.js +5 -2
  217. package/rate/index.js +4 -2
  218. package/rate/vue.js +1 -1
  219. package/record/index.js +190 -0
  220. package/record/vue.js +44 -0
  221. package/recycle-scroller/index.js +470 -0
  222. package/recycle-scroller/vue.js +135 -0
  223. package/river/index.js +371 -0
  224. package/river/river.js +352 -0
  225. package/river/vue.js +77 -0
  226. package/roles/index.js +1 -1
  227. package/scrollbar/vue-bar.js +1 -1
  228. package/scrollbar/vue.js +1 -1
  229. package/search/index.js +3 -3
  230. package/select/index.js +17 -14
  231. package/select/vue.js +14 -8
  232. package/select-dropdown/vue.js +1 -1
  233. package/select-mobile/index.js +111 -0
  234. package/select-mobile/vue.js +58 -0
  235. package/select-view/index.js +170 -0
  236. package/select-view/vue.js +82 -0
  237. package/selected-box/index.js +216 -0
  238. package/selected-box/vue.js +98 -0
  239. package/slide-bar/index.js +1 -1
  240. package/slider/index.js +49 -4
  241. package/slider/vue.js +15 -4
  242. package/split/vue.js +1 -1
  243. package/standard-list-item/index.js +18 -0
  244. package/standard-list-item/vue.js +22 -0
  245. package/steps/index.js +30 -0
  246. package/steps/slide-bar.js +122 -0
  247. package/steps/vue.js +15 -3
  248. package/switch/index.js +1 -1
  249. package/switch/vue.js +2 -1
  250. package/tab-bar/index.js +2 -2
  251. package/tab-item/index.js +2 -2
  252. package/tab-item/vue.js +1 -1
  253. package/tab-item-mf/index.js +0 -0
  254. package/tab-item-mf/vue.js +16 -0
  255. package/tab-nav/index.js +78 -4
  256. package/tab-nav/vue.js +11 -3
  257. package/tabbar-item/index.js +1 -1
  258. package/tabbar-item/vue.js +1 -1
  259. package/tabs/index.js +8 -9
  260. package/tabs/vue.js +1 -1
  261. package/tabs-mf/index.js +109 -0
  262. package/tabs-mf/vue-bar.js +49 -0
  263. package/tabs-mf/vue-nav-item.js +22 -0
  264. package/tabs-mf/vue-nav.js +13 -0
  265. package/tabs-mf/vue.js +45 -0
  266. package/tabs-mf/wheel.js +71 -0
  267. package/tag/index.js +8 -2
  268. package/tag/vue.js +13 -5
  269. package/tag-group/index.js +24 -0
  270. package/tag-group/vue.js +29 -0
  271. package/tall-storage/index.js +1 -1
  272. package/tall-storage/vue.js +1 -1
  273. package/time/index.js +1 -1
  274. package/time/vue.js +2 -2
  275. package/time-line/index.js +28 -7
  276. package/time-line/vue.js +9 -4
  277. package/time-panel/index.js +2 -2
  278. package/time-panel/vue.js +1 -1
  279. package/time-picker-mobile/index.js +30 -0
  280. package/time-picker-mobile/vue.js +30 -0
  281. package/time-range/index.js +1 -1
  282. package/time-range/vue.js +1 -1
  283. package/time-spinner/index.js +2 -2
  284. package/time-spinner/vue.js +1 -1
  285. package/toggle-menu/index.js +2 -2
  286. package/toggle-menu/vue.js +1 -1
  287. package/tooltip/index.js +30 -3
  288. package/tooltip/vue.js +33 -12
  289. package/top-box/index.js +3 -3
  290. package/transfer/index.js +1 -1
  291. package/transfer-panel/index.js +2 -2
  292. package/tree/index.js +6 -6
  293. package/tree/vue.js +1 -1
  294. package/tree-node/index.js +1 -1
  295. package/upload/index.js +1 -2
  296. package/upload/vue.js +2 -2
  297. package/upload-dragger/index.js +5 -1
  298. package/upload-dragger/vue.js +9 -3
  299. package/upload-list/index.js +158 -8
  300. package/upload-list/vue.js +77 -25
  301. package/user/index.js +86 -70
  302. package/user/vue.js +15 -5
  303. package/user-account/vue.js +1 -1
  304. package/user-contact/index.js +49 -3
  305. package/user-contact/vue.js +17 -8
  306. package/user-head-group/vue.js +17 -0
  307. package/user-link/index.js +10 -2
  308. package/user-link/vue.js +11 -6
  309. package/wheel/index.js +1 -1
  310. package/wizard/index.js +3 -3
  311. package/year-range/index.js +125 -0
  312. package/year-range/vue.js +88 -0
  313. package/year-table/index.js +175 -11
  314. package/year-table/vue.js +17 -5
package/card/index.js ADDED
@@ -0,0 +1,84 @@
1
+ import "../chunk-PKUHTIDK.js";
2
+ import { isNull } from "../common/type";
3
+ const handelIconClick = ({ emit }) => (item, index, event) => {
4
+ if (item.disabled)
5
+ return;
6
+ emit("icon-click", item, index, event);
7
+ };
8
+ const getSliceNum = ({ props }) => () => {
9
+ const sliceNumMap = {
10
+ "mini": 1,
11
+ "small": 2,
12
+ "medium": 3,
13
+ "large": 5
14
+ };
15
+ return sliceNumMap[props.size];
16
+ };
17
+ const getIconNum = ({ props }) => () => {
18
+ const iconNumMap = {
19
+ "mini": 2,
20
+ "small": 3,
21
+ "medium": 4,
22
+ "large": 6
23
+ };
24
+ return iconNumMap[props.size];
25
+ };
26
+ const handleChange = ({ constants, dispatch, emit, state, nextTick }) => () => {
27
+ nextTick(() => {
28
+ emit("change", state.model);
29
+ state.isGroup && dispatch(constants.CARD_GROUP, "handleChange", [state.model]);
30
+ });
31
+ };
32
+ const isGroup = ({ constants, parent: $parent, state }) => () => {
33
+ let parent = $parent;
34
+ while (parent) {
35
+ if (parent.$options.componentName !== constants.CARD_GROUP) {
36
+ parent = parent.$parent;
37
+ } else {
38
+ state.cardGroup = parent;
39
+ return true;
40
+ }
41
+ }
42
+ return false;
43
+ };
44
+ const getSize = ({ props, state }) => () => state.isGroup ? state.cardGroup.size || props.size : props.size;
45
+ const isDisabled = ({ props, state }) => () => props.disabled || state.cardGroup.disabled;
46
+ const getModel = ({ props, state }) => () => {
47
+ const model = state.isGroup ? state.store : props.modelValue !== void 0 ? props.modelValue : state.selfModel;
48
+ if (state.isCheckbox) {
49
+ return isNull(model) ? [] : model;
50
+ } else {
51
+ return state.store;
52
+ }
53
+ };
54
+ const setModel = ({ constants, dispatch, emit, state }) => (val) => {
55
+ if (state.isGroup) {
56
+ dispatch(constants.CARD_GROUP, "update:modelValue", [val]);
57
+ } else {
58
+ emit("update:modelValue", val);
59
+ state.isCheckbox && (state.selfModel = val);
60
+ }
61
+ };
62
+ const computedStore = ({ state, props }) => () => state.isGroup ? state.cardGroup.modelValue : props.modelValue;
63
+ const getItemChecked = ({ props, state }) => () => {
64
+ if (!state.checkType)
65
+ return;
66
+ if (state.isCheckbox) {
67
+ return state.isGroup || Array.isArray(state.model) ? ~state.model.indexOf(props.label) : state.model;
68
+ } else {
69
+ return state.model === props.label;
70
+ }
71
+ };
72
+ export {
73
+ computedStore,
74
+ getIconNum,
75
+ getItemChecked,
76
+ getModel,
77
+ getSize,
78
+ getSliceNum,
79
+ handelIconClick,
80
+ handleChange,
81
+ isDisabled,
82
+ isGroup,
83
+ setModel
84
+ };
package/card/vue.js ADDED
@@ -0,0 +1,70 @@
1
+ import "../chunk-PKUHTIDK.js";
2
+ import {
3
+ handelIconClick,
4
+ getSliceNum,
5
+ getIconNum,
6
+ handleChange,
7
+ isGroup,
8
+ getSize,
9
+ isDisabled,
10
+ getModel,
11
+ setModel,
12
+ computedStore,
13
+ getItemChecked
14
+ } from "./index";
15
+ const api = ["state", "handelIconClick"];
16
+ const renderless = (props, { reactive, watch, computed }, { vm, parent, emit, constants, nextTick, dispatch }) => {
17
+ const api2 = {};
18
+ const state = reactive({
19
+ cardGroup: {},
20
+ selfModel: false,
21
+ itemChecked: computed(() => api2.getItemChecked()),
22
+ sliceNum: computed(() => api2.getSliceNum()),
23
+ iconNum: computed(() => api2.getIconNum()),
24
+ effectOptions: computed(() => props.options.filter((item) => !item.hidden)),
25
+ store: computed(() => api2.computedStore()),
26
+ cardClass: computed(() => props.cardClass || state.cardGroup.cardClass || ""),
27
+ autoWidth: computed(() => props.autoWidth || state.cardGroup.autoWidth),
28
+ height: computed(() => props.height || state.cardGroup.height),
29
+ status: computed(() => props.status || state.cardGroup.status || "default"),
30
+ checkType: computed(() => props.checkType || state.cardGroup.checkType),
31
+ type: computed(() => props.type || state.cardGroup.type || "text"),
32
+ isCheckbox: computed(() => state.checkType === "checkbox"),
33
+ isGroup: computed(() => api2.isGroup()),
34
+ size: computed(() => api2.getSize()),
35
+ disabled: computed(() => api2.isDisabled()),
36
+ model: computed({
37
+ get: () => api2.getModel(),
38
+ set: (val) => api2.setModel(val)
39
+ })
40
+ });
41
+ Object.assign(api2, {
42
+ state,
43
+ getSize: getSize({ props, state }),
44
+ getModel: getModel({ props, state }),
45
+ isGroup: isGroup({ constants, parent, state }),
46
+ isDisabled: isDisabled({ props, state }),
47
+ setModel: setModel({ constants, dispatch, emit, props, vm, state }),
48
+ handleChange: handleChange({ constants, dispatch, emit, state, nextTick }),
49
+ getSliceNum: getSliceNum({ state, props }),
50
+ getIconNum: getIconNum({ state, props }),
51
+ computedStore: computedStore({ state, props }),
52
+ handelIconClick: handelIconClick({ emit }),
53
+ getItemChecked: getItemChecked({ state, props })
54
+ });
55
+ watch(() => state.model, api2.handleChange, { deep: true });
56
+ watch(
57
+ () => state.disabled,
58
+ () => {
59
+ state.effectOptions.forEach((item) => {
60
+ item.disabled = item.disabled || state.disabled;
61
+ });
62
+ },
63
+ { immediate: true }
64
+ );
65
+ return api2;
66
+ };
67
+ export {
68
+ api,
69
+ renderless
70
+ };
@@ -0,0 +1,16 @@
1
+ import "../chunk-PKUHTIDK.js";
2
+ const getStyle = ({ props }) => () => {
3
+ const size = props.size || "medium";
4
+ const sizeMap = {
5
+ large: "31.25rem",
6
+ medium: "18.75rem",
7
+ small: "12.5rem",
8
+ mini: "6.25rem"
9
+ };
10
+ return {
11
+ "grid-template-columns": `repeat(auto-fit, minmax(${sizeMap[size]}, 1fr))`
12
+ };
13
+ };
14
+ export {
15
+ getStyle
16
+ };
@@ -0,0 +1,21 @@
1
+ import "../chunk-PKUHTIDK.js";
2
+ import { getStyle } from "./index";
3
+ const api = ["state"];
4
+ const renderless = (props, { reactive, computed }, { vm }) => {
5
+ const api2 = {};
6
+ const state = reactive({
7
+ style: computed(() => api2.getStyle())
8
+ });
9
+ Object.assign(api2, {
10
+ state,
11
+ getStyle: getStyle({ props })
12
+ });
13
+ vm.$on("handleChange", (value) => {
14
+ vm.$emit("change", value);
15
+ });
16
+ return api2;
17
+ };
18
+ export {
19
+ api,
20
+ renderless
21
+ };
@@ -1,5 +1,5 @@
1
1
  import "../chunk-PKUHTIDK.js";
2
- import PopupManager from "@opentiny/vue-renderless/common/deps/popup-manager";
2
+ import PopupManager from "../common/deps/popup-manager";
3
3
  const toolClick = (showMoreTools) => (cb) => {
4
4
  typeof cb === "function" && cb();
5
5
  showMoreTools.value = false;
package/carousel/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "../chunk-PKUHTIDK.js";
2
- import throttle from "@opentiny/vue-renderless/common/deps/throttle";
3
- import { POSITION } from "@opentiny/vue-renderless/common";
2
+ import throttle from "../common/deps/throttle";
3
+ import { POSITION } from "../common";
4
4
  const handleMouseEnter = ({ api, state }) => () => {
5
5
  state.hover = true;
6
6
  api.pauseTimer();
@@ -99,6 +99,13 @@ const watchAutoplay = (api) => (value) => value ? api.startTimer() : api.pauseTi
99
99
  const throttledArrowClick = (api) => throttle(300, true, (index) => api.setActiveItem(index));
100
100
  const throttledIndicatorHover = (api) => throttle(300, (index) => api.handleIndicatorHover(index));
101
101
  const computedHasLable = (items) => items.some((item) => item.label.toString().length > 0);
102
+ const computedStyle = ({ props }) => () => {
103
+ if (props.height) {
104
+ return { "height": props.height };
105
+ } else {
106
+ return { "aspect-ratio": props.aspectRatio.replace(":", " / ") };
107
+ }
108
+ };
102
109
  const onComplete = ({ count, emit, props, state }) => (total) => {
103
110
  if (count++ === total) {
104
111
  state.completed = true;
@@ -108,8 +115,85 @@ const onComplete = ({ count, emit, props, state }) => (total) => {
108
115
  emit("complete");
109
116
  }
110
117
  };
118
+ const touchstart = ({ state, api }) => (event) => {
119
+ if (state.items.length <= 1 || ~state.noTouchNode.indexOf(event.target.nodeName))
120
+ return;
121
+ event.preventDefault();
122
+ event.stopPropagation();
123
+ resetTouchStatus(state);
124
+ api.pauseTimer();
125
+ state.itemsTranslate = state.items.map((item) => item.state.translate);
126
+ state.moving = true;
127
+ state.touchTime = Date.now();
128
+ state.startPos.X = event.touches[0].clientX;
129
+ state.startPos.Y = event.touches[0].clientY;
130
+ };
131
+ const touchmove = ({ props, state, vm }) => (event) => {
132
+ if (state.items.length <= 1 || ~state.noTouchNode.indexOf(event.target.nodeName))
133
+ return;
134
+ const touch = event.touches[0];
135
+ const itemsLen = state.items.length;
136
+ const carousel = vm.$refs.carousel;
137
+ state.deltaPos.X = touch.clientX - state.startPos.X;
138
+ state.deltaPos.Y = touch.clientY - state.startPos.Y;
139
+ state.offsetPos.X = Math.abs(state.deltaPos.X);
140
+ state.offsetPos.Y = Math.abs(state.deltaPos.Y);
141
+ state.direction = state.direction || getDirection(state.offsetPos.X, state.offsetPos.Y);
142
+ state.isCorrectDirection = state.direction === props.type;
143
+ if (!state.isCorrectDirection)
144
+ return;
145
+ state.size = state.direction === "horizontal" ? carousel.offsetWidth : carousel.offsetHeight;
146
+ const nextIndex = state.activeIndex === itemsLen - 1 ? 0 : state.activeIndex + 1;
147
+ const prevIndex = state.activeIndex === 0 ? itemsLen - 1 : state.activeIndex - 1;
148
+ state.delta = state.direction === "horizontal" ? state.deltaPos.X : state.deltaPos.Y;
149
+ state.moveDisable = !props.loop && (state.activeIndex === 0 && state.delta > 0 || state.activeIndex === state.items.length - 1 && state.delta < 0);
150
+ if (state.moveDisable)
151
+ return;
152
+ state.items[state.activeIndex].setDelta(state.delta);
153
+ state.items[nextIndex].setDelta(state.delta);
154
+ if (itemsLen > 2) {
155
+ state.items[prevIndex].setDelta(state.delta);
156
+ }
157
+ };
158
+ const touchend = ({ state, api }) => (event) => {
159
+ if (state.moveDisable || state.items.length <= 1 || ~state.noTouchNode.indexOf(event.target.nodeName))
160
+ return;
161
+ const speed = state.delta / (Date.now() - state.touchTime);
162
+ const isShouldMove = Math.abs(speed) > 0.3 || Math.abs(state.delta) > +(state.size / 2).toFixed(2);
163
+ state.moving = false;
164
+ state.itemsTranslate.forEach((item, index) => {
165
+ state.items[index].setDelta(0);
166
+ });
167
+ if (isShouldMove && state.isCorrectDirection) {
168
+ state.delta < 0 ? api.next() : api.prev();
169
+ } else if (Math.abs(state.delta) > 1) {
170
+ state.items.forEach((item) => {
171
+ item.resetAnimatingMf();
172
+ });
173
+ }
174
+ api.startTimer();
175
+ };
176
+ function getDirection(x, y) {
177
+ const MIN_DISTANCE = 10;
178
+ if (x > y && x > MIN_DISTANCE) {
179
+ return "horizontal";
180
+ }
181
+ if (y > x && y > MIN_DISTANCE) {
182
+ return "vertical";
183
+ }
184
+ return "";
185
+ }
186
+ function resetTouchStatus(state) {
187
+ state.direction = "";
188
+ state.delta = 0;
189
+ state.deltaPos.X = 0;
190
+ state.deltaPos.Y = 0;
191
+ state.offsetPos.X = 0;
192
+ state.offsetPos.Y = 0;
193
+ }
111
194
  export {
112
195
  computedHasLable,
196
+ computedStyle,
113
197
  handleButtonEnter,
114
198
  handleButtonLeave,
115
199
  handleIndicatorClick,
@@ -127,6 +211,9 @@ export {
127
211
  startTimer,
128
212
  throttledArrowClick,
129
213
  throttledIndicatorHover,
214
+ touchend,
215
+ touchmove,
216
+ touchstart,
130
217
  watchActiveIndex,
131
218
  watchAutoplay,
132
219
  watchItems
package/carousel/vue.js CHANGED
@@ -20,9 +20,12 @@ import {
20
20
  watchAutoplay,
21
21
  throttledArrowClick,
22
22
  throttledIndicatorHover,
23
- computedHasLable
23
+ computedHasLable,
24
+ touchstart,
25
+ touchmove,
26
+ touchend
24
27
  } from "./index";
25
- import { addResizeListener, removeResizeListener } from "@opentiny/vue-renderless/common/deps/resize-event";
28
+ import { addResizeListener, removeResizeListener } from "../common/deps/resize-event";
26
29
  const api = [
27
30
  "state",
28
31
  "items",
@@ -47,7 +50,10 @@ const api = [
47
50
  "handleIndicatorClick",
48
51
  "handleIndicatorHover",
49
52
  "throttledArrowClick",
50
- "throttledIndicatorHover"
53
+ "throttledIndicatorHover",
54
+ "touchstart",
55
+ "touchmove",
56
+ "touchend"
51
57
  ];
52
58
  const initState = ({ reactive, computed, api: api2 }) => {
53
59
  const state = reactive({
@@ -61,10 +67,13 @@ const initState = ({ reactive, computed, api: api2 }) => {
61
67
  });
62
68
  return state;
63
69
  };
64
- const initApi = ({ api: api2, state, props, emit }) => {
70
+ const initApi = ({ api: api2, state, props, emit, vm }) => {
65
71
  Object.assign(api2, {
66
72
  state,
67
73
  computedHasLable,
74
+ touchstart: touchstart({ state, api: api2 }),
75
+ touchmove: touchmove({ props, state, vm }),
76
+ touchend: touchend({ state, api: api2 }),
68
77
  playSlides: playSlides({ props, state }),
69
78
  pauseTimer: pauseTimer(state),
70
79
  onComplete: onComplete({ count: 0, emit, props, state }),
@@ -133,7 +142,7 @@ const useResizeListener = ({ api: api2, onBeforeUnmount, onMounted, parent }) =>
133
142
  const renderless = (props, { computed, onMounted, onBeforeUnmount, reactive, watch }, { vm, parent, constants, emit, childrenHandler }) => {
134
143
  const api2 = {};
135
144
  const state = initState({ reactive, computed, api: api2 });
136
- initApi({ api: api2, state, props, emit });
145
+ initApi({ api: api2, state, props, emit, vm });
137
146
  const { updateItems } = useItems({
138
147
  api: api2,
139
148
  vm,
@@ -61,10 +61,18 @@ const computedTransform = ({ parent, TYPE_VERTICAL }) => (state) => {
61
61
  transform: TRANSLATE
62
62
  };
63
63
  };
64
+ const resetAnimatingMf = (state) => () => {
65
+ state.animatingMf = false;
66
+ };
67
+ const setDelta = ({ state }) => (val) => {
68
+ state.delta = val;
69
+ };
64
70
  export {
65
71
  calculateTranslate,
66
72
  computedTransform,
67
73
  handleItemClick,
68
74
  processIndex,
75
+ resetAnimatingMf,
76
+ setDelta,
69
77
  translateItem
70
78
  };
@@ -1,5 +1,5 @@
1
1
  import "../chunk-PKUHTIDK.js";
2
- import { processIndex, calculateTranslate, translateItem, handleItemClick, computedTransform } from "./index";
2
+ import { processIndex, calculateTranslate, translateItem, handleItemClick, computedTransform, resetAnimatingMf, setDelta } from "./index";
3
3
  const api = [
4
4
  "state",
5
5
  "hover",
@@ -15,7 +15,9 @@ const api = [
15
15
  "processIndex",
16
16
  "calculateTranslate",
17
17
  "translateItem",
18
- "handleItemClick"
18
+ "handleItemClick",
19
+ "resetAnimatingMf",
20
+ "setDelta"
19
21
  ];
20
22
  const renderless = (props, { computed, onMounted, onUnmounted, reactive }, { parent, dispatch }) => {
21
23
  const api2 = {};
@@ -40,7 +42,9 @@ const renderless = (props, { computed, onMounted, onUnmounted, reactive }, { par
40
42
  handleItemClick: handleItemClick(parent),
41
43
  computedTransform: computedTransform({ parent, TYPE_VERTICAL }),
42
44
  calculateTranslate: calculateTranslate({ CARD_SCALE, state }),
43
- translateItem: translateItem({ api: api2, CARD_SCALE, parent, state })
45
+ translateItem: translateItem({ api: api2, CARD_SCALE, parent, state }),
46
+ setDelta: setDelta({ state }),
47
+ resetAnimatingMf: resetAnimatingMf(state)
44
48
  });
45
49
  onMounted(() => {
46
50
  dispatch("Carousel", "updateItems", []);
package/cascader/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import "../chunk-PKUHTIDK.js";
2
- import browser from "@opentiny/vue-renderless/common/browser";
3
- import { isNull } from "@opentiny/vue-renderless/common/type";
4
- import debounce from "@opentiny/vue-renderless/common/deps/debounce";
5
- import { isEqual } from "@opentiny/vue-renderless/common/object";
6
- import { addResizeListener } from "@opentiny/vue-renderless/common/deps/resize-event";
7
- import { KEY_CODE, CASCADER } from "@opentiny/vue-renderless/common";
2
+ import browser from "../common/browser";
3
+ import { isNull } from "../common/type";
4
+ import debounce from "../common/deps/debounce";
5
+ import { isEqual } from "../common/object";
6
+ import { addResizeListener } from "../common/deps/resize-event";
7
+ import { KEY_CODE, CASCADER } from "../common";
8
8
  const initMigratingProps = () => ({
9
9
  expandTrigger: { newProp: CASCADER.PropsExpandTri, type: String },
10
10
  changeOnSelect: { newProp: CASCADER.PropsCheckStric, type: Boolean },
package/cascader/vue.js CHANGED
@@ -31,9 +31,9 @@ import {
31
31
  presentTextHandler,
32
32
  handleBeforeUpdate
33
33
  } from "./index";
34
- import { removeResizeListener } from "@opentiny/vue-renderless/common/deps/resize-event";
35
- import userPopper from "@opentiny/vue-renderless/common/deps/vue-popper";
36
- import { DATEPICKER } from "@opentiny/vue-renderless/common";
34
+ import { removeResizeListener } from "../common/deps/resize-event";
35
+ import userPopper from "../common/deps/vue-popper";
36
+ import { DATEPICKER } from "../common";
37
37
  const api = [
38
38
  "state",
39
39
  "getCheckedNodes",
@@ -1,7 +1,7 @@
1
1
  import "../chunk-PKUHTIDK.js";
2
2
  import { handleExpand, handleMouseMove, clearHoverZone } from "./index";
3
- import { CASCADER } from "@opentiny/vue-renderless/common";
4
- import { random } from "@opentiny/vue-renderless/common/string";
3
+ import { CASCADER } from "../common";
4
+ import { random } from "../common/string";
5
5
  const api = ["state", "handleMouseMove", "handleExpand"];
6
6
  const renderless = (props, { computed, reactive }, { vm, parent }) => {
7
7
  const refs = vm.$refs;
@@ -1,8 +1,8 @@
1
1
  import "../chunk-PKUHTIDK.js";
2
- import { isNull } from "@opentiny/vue-renderless/common/type";
3
- import { isEqual } from "@opentiny/vue-renderless/common/object";
4
- import { isEmpty } from "@opentiny/vue-renderless/cascader";
5
- import { KEY_CODE, CASCADER } from "@opentiny/vue-renderless/common";
2
+ import { isNull } from "../common/type";
3
+ import { isEqual } from "../common/object";
4
+ import { isEmpty } from "../cascader";
5
+ import { KEY_CODE, CASCADER } from "../common";
6
6
  const watchCheckedValue = ({ api, emit, props, state }) => (value) => {
7
7
  if (!isEqual(value, props.modelValue)) {
8
8
  state.checkStrictly && api.calculateCheckedNodePaths();
@@ -1,7 +1,7 @@
1
1
  import "../chunk-PKUHTIDK.js";
2
- import { isEqual } from "@opentiny/vue-renderless/common/object";
3
- import { capitalize } from "@opentiny/vue-renderless/common/string";
4
- import { isNull } from "@opentiny/vue-renderless/common/type";
2
+ import { isEqual } from "../common/object";
3
+ import { capitalize } from "../common/string";
4
+ import { isNull } from "../common/type";
5
5
  let uid = 0;
6
6
  class Node {
7
7
  constructor(data, config, parentNode) {
@@ -24,7 +24,7 @@ class Node {
24
24
  const { config } = this;
25
25
  const childrenKey = config.children;
26
26
  const childrenData = this.data[childrenKey];
27
- this.hasChildren = Array.isArray(childrenData) && childrenData.length > 0;
27
+ this.hasChildren = Array.isArray(childrenData);
28
28
  this.children = (childrenData || []).map((child) => new Node(child, config, this));
29
29
  }
30
30
  get isLeaf() {
@@ -25,8 +25,8 @@ import {
25
25
  syncMenuState,
26
26
  syncMultiCheckState
27
27
  } from "./index";
28
- import { merge } from "@opentiny/vue-renderless/common/object";
29
- import { isEmpty } from "@opentiny/vue-renderless/cascader";
28
+ import { merge } from "../common/object";
29
+ import { isEmpty } from "../cascader";
30
30
  import Store from "./store.js";
31
31
  const api = [
32
32
  "state",