@nutui/nutui 3.1.17 → 3.1.19-beta.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 (155) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/LICENSE +1 -1
  3. package/README.md +7 -1
  4. package/dist/nutui.d.ts +3 -1
  5. package/dist/nutui.es.js +2335 -1280
  6. package/dist/nutui.umd.js +2350 -1293
  7. package/dist/packages/_es/ActionSheet.js +8 -3
  8. package/dist/packages/_es/Address.js +17 -11
  9. package/dist/packages/_es/Audio.js +2 -2
  10. package/dist/packages/_es/AudioOperate.js +125 -0
  11. package/dist/packages/_es/Avatar.js +2 -2
  12. package/dist/packages/_es/BackTop.js +7 -4
  13. package/dist/packages/_es/Badge.js +2 -2
  14. package/dist/packages/_es/Barrage.js +2 -2
  15. package/dist/packages/_es/Button.js +2 -2
  16. package/dist/packages/_es/Calendar.js +10 -687
  17. package/dist/packages/_es/CalendarItem.js +10 -0
  18. package/dist/packages/_es/Card.js +2 -2
  19. package/dist/packages/_es/Cascader.js +2 -2
  20. package/dist/packages/_es/Cell.js +25 -18
  21. package/dist/packages/_es/CellGroup.js +2 -2
  22. package/dist/packages/_es/Checkbox.js +4 -4
  23. package/dist/packages/_es/CheckboxGroup.js +4 -4
  24. package/dist/packages/_es/CircleProgress.js +2 -2
  25. package/dist/packages/_es/Col.js +2 -2
  26. package/dist/packages/_es/Collapse.js +2 -2
  27. package/dist/packages/_es/CollapseItem.js +31 -19
  28. package/dist/packages/_es/CountDown.js +4 -2
  29. package/dist/packages/_es/CountUp.js +25 -16
  30. package/dist/packages/_es/DatePicker.js +83 -47
  31. package/dist/packages/_es/Dialog.js +7 -5
  32. package/dist/packages/_es/Divider.js +2 -2
  33. package/dist/packages/_es/Drag.js +4 -4
  34. package/dist/packages/_es/Elevator.js +3 -3
  35. package/dist/packages/_es/Empty.js +2 -2
  36. package/dist/packages/_es/FixedNav.js +2 -2
  37. package/dist/packages/_es/Form.js +8 -6
  38. package/dist/packages/_es/FormItem.js +9 -6
  39. package/dist/packages/_es/Grid.js +2 -2
  40. package/dist/packages/_es/GridItem.js +3 -3
  41. package/dist/packages/_es/Icon.js +2 -2
  42. package/dist/packages/_es/ImagePreview.js +11 -6
  43. package/dist/packages/_es/Indicator.js +2 -2
  44. package/dist/packages/_es/InfiniteLoading.js +2 -2
  45. package/dist/packages/_es/Input.js +290 -66
  46. package/dist/packages/_es/InputNumber.js +2 -2
  47. package/dist/packages/_es/Layout.js +2 -2
  48. package/dist/packages/_es/List.js +124 -0
  49. package/dist/packages/_es/Menu.js +3 -3
  50. package/dist/packages/_es/MenuItem.js +4 -4
  51. package/dist/packages/_es/Navbar.js +31 -66
  52. package/dist/packages/_es/NoticeBar.js +41 -22
  53. package/dist/packages/_es/Notify.js +9 -5
  54. package/dist/packages/_es/NumberKeyboard.js +9 -4
  55. package/dist/packages/_es/OldPicker.js +484 -0
  56. package/dist/packages/_es/OverLay.js +2 -2
  57. package/dist/packages/_es/Pagination.js +2 -2
  58. package/dist/packages/_es/Picker.js +164 -157
  59. package/dist/packages/_es/Popover.js +7 -4
  60. package/dist/packages/_es/Popup.js +4 -4
  61. package/dist/packages/_es/Price.js +2 -2
  62. package/dist/packages/_es/Progress.js +14 -22
  63. package/dist/packages/_es/PullRefresh.js +363 -0
  64. package/dist/packages/_es/Radio.js +3 -3
  65. package/dist/packages/_es/RadioGroup.js +2 -2
  66. package/dist/packages/_es/Range.js +131 -21
  67. package/dist/packages/_es/Rate.js +2 -2
  68. package/dist/packages/_es/Row.js +2 -2
  69. package/dist/packages/_es/SearchBar.js +2 -2
  70. package/dist/packages/_es/ShortPassword.js +9 -4
  71. package/dist/packages/_es/SideNavBar.js +2 -2
  72. package/dist/packages/_es/SideNavBarItem.js +2 -2
  73. package/dist/packages/_es/Signature.js +25 -6
  74. package/dist/packages/_es/Skeleton.js +2 -2
  75. package/dist/packages/_es/Sku.js +31 -13
  76. package/dist/packages/_es/Step.js +28 -12
  77. package/dist/packages/_es/Steps.js +8 -3
  78. package/dist/packages/_es/Sticky.js +3 -3
  79. package/dist/packages/_es/SubSideNavBar.js +2 -2
  80. package/dist/packages/_es/Swipe.js +3 -3
  81. package/dist/packages/_es/Swiper.js +3 -3
  82. package/dist/packages/_es/SwiperItem.js +3 -3
  83. package/dist/packages/_es/Switch.js +2 -2
  84. package/dist/packages/_es/TabPane.js +2 -2
  85. package/dist/packages/_es/Tabbar.js +2 -2
  86. package/dist/packages/_es/TabbarItem.js +23 -8
  87. package/dist/packages/_es/Table.js +2 -2
  88. package/dist/packages/_es/Tabs.js +8 -5
  89. package/dist/packages/_es/Tag.js +11 -5
  90. package/dist/packages/_es/TextArea.js +38 -6
  91. package/dist/packages/_es/TimeDetail.js +2 -2
  92. package/dist/packages/_es/TimePannel.js +2 -2
  93. package/dist/packages/_es/TimeSelect.js +8 -3
  94. package/dist/packages/_es/Toast.js +16 -9
  95. package/dist/packages/_es/Uploader.js +2 -4
  96. package/dist/packages/_es/Video.js +12 -8
  97. package/dist/packages/_es/common.js +2 -2
  98. package/dist/packages/_es/component.js +2 -2
  99. package/dist/packages/_es/index.js +6 -8
  100. package/dist/packages/_es/index2.js +9 -32
  101. package/dist/packages/_es/index3.js +29 -57
  102. package/dist/packages/_es/index4.js +64 -0
  103. package/dist/packages/_es/index5.js +687 -0
  104. package/dist/packages/_es/plugin-vue_export-helper.js +2 -2
  105. package/dist/packages/_es/pxCheck.js +2 -2
  106. package/dist/packages/_es/raf.js +2 -2
  107. package/dist/packages/_es/util.js +2 -2
  108. package/dist/packages/actionsheet/index.scss +7 -6
  109. package/dist/packages/badge/index.scss +11 -13
  110. package/dist/packages/button/index.scss +6 -5
  111. package/dist/packages/calendar/index.scss +9 -4
  112. package/dist/packages/calendaritem/index.scss +0 -207
  113. package/dist/packages/cell/index.scss +9 -9
  114. package/dist/packages/cellgroup/index.scss +1 -1
  115. package/dist/packages/checkbox/index.scss +4 -3
  116. package/dist/packages/collapseitem/index.scss +21 -11
  117. package/dist/packages/countdown/index.scss +3 -1
  118. package/dist/packages/divider/index.scss +8 -8
  119. package/dist/packages/elevator/index.scss +36 -36
  120. package/dist/packages/formitem/index.scss +15 -8
  121. package/dist/packages/indicator/index.scss +1 -1
  122. package/dist/packages/input/index.scss +70 -24
  123. package/dist/packages/inputnumber/index.scss +4 -2
  124. package/dist/packages/list/index.scss +24 -0
  125. package/dist/packages/menu/index.scss +3 -3
  126. package/dist/packages/navbar/index.scss +30 -8
  127. package/dist/packages/noticebar/index.scss +10 -5
  128. package/dist/packages/notify/index.scss +10 -0
  129. package/dist/packages/numberkeyboard/index.scss +22 -21
  130. package/dist/packages/oldpicker/index.scss +131 -0
  131. package/dist/packages/picker/index.scss +38 -32
  132. package/dist/packages/progress/index.scss +24 -19
  133. package/dist/packages/radio/index.scss +7 -6
  134. package/dist/packages/range/index.scss +113 -6
  135. package/dist/packages/searchbar/index.scss +7 -7
  136. package/dist/packages/sidenavbaritem/index.scss +5 -5
  137. package/dist/packages/step/index.scss +29 -29
  138. package/dist/packages/subsidenavbar/index.scss +10 -8
  139. package/dist/packages/swiper/index.scss +4 -4
  140. package/dist/packages/switch/index.scss +8 -8
  141. package/dist/packages/tabbar/index.scss +3 -2
  142. package/dist/packages/tabbaritem/index.scss +19 -3
  143. package/dist/packages/tabs/index.scss +1 -0
  144. package/dist/packages/timedetail/index.scss +13 -13
  145. package/dist/packages/timepannel/index.scss +7 -7
  146. package/dist/packages/timeselect/index.scss +3 -3
  147. package/dist/packages/toast/index.scss +8 -7
  148. package/dist/packages/uploader/index.scss +4 -4
  149. package/dist/style.css +1 -1
  150. package/dist/styles/themes/default.scss +43 -41
  151. package/dist/styles/themes/jdt.scss +91 -0
  152. package/dist/styles/variables-jdt.scss +728 -0
  153. package/dist/styles/variables.scss +322 -38
  154. package/package.json +3 -2
  155. package/dist/styles/themes/jdd.scss +0 -2
@@ -0,0 +1,484 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ /*!
21
+ * @nutui/nutui v3.1.19-beta.0 Mon Mar 28 2022 17:50:21 GMT+0800 (中国标准时间)
22
+ * (c) 2022 @jdf2e.
23
+ * Released under the MIT License.
24
+ */
25
+ import { ref, reactive, computed, watch, onMounted, toRefs, openBlock, createElementBlock, createElementVNode, normalizeStyle, Fragment, renderList, normalizeClass, toDisplayString, createCommentVNode, onBeforeUnmount, toRaw, resolveComponent, createVNode, withCtx } from "vue";
26
+ import { c as createComponent } from "./component.js";
27
+ import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
28
+ import popup, { popupProps } from "./Popup.js";
29
+ import "./OverLay.js";
30
+ import "./Icon.js";
31
+ import "./pxCheck.js";
32
+ const { create: create$1 } = createComponent("oldpicker-column");
33
+ const _sfc_main$1 = create$1({
34
+ props: {
35
+ dataType: String,
36
+ itemShow: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ listData: {
41
+ type: Object,
42
+ default: () => {
43
+ return {};
44
+ }
45
+ },
46
+ readonly: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ defaultIndex: {
51
+ type: [Number, String],
52
+ default: 0
53
+ }
54
+ },
55
+ emits: ["click", "change"],
56
+ setup(props, { emit }) {
57
+ const wrapper = ref();
58
+ const state = reactive({
59
+ touchParams: {
60
+ startY: 0,
61
+ endY: 0,
62
+ startTime: 0,
63
+ endTime: 0,
64
+ lastY: 0
65
+ },
66
+ currIndex: 1,
67
+ transformY: 0,
68
+ scrollDistance: 0,
69
+ lineSpacing: 36,
70
+ rotation: 20,
71
+ timer: null
72
+ });
73
+ const roller = ref(null);
74
+ const list = ref(null);
75
+ const listItem = ref(null);
76
+ const touchDeg = ref(0);
77
+ const touchTime = ref(0);
78
+ const touchTranslateY = ref(0);
79
+ const touchListStyle = computed(() => {
80
+ return {
81
+ transition: `transform ${touchTime.value}ms cubic-bezier(0.19, 1, 0.22, 1)`,
82
+ transform: `translate3d(0, ${state.scrollDistance}px, 0)`
83
+ };
84
+ });
85
+ const touchRollerStyle = computed(() => {
86
+ return {
87
+ transition: `transform ${touchTime.value}ms cubic-bezier(0.19, 1, 0.22, 1)`,
88
+ transform: `rotate3d(1, 0, 0, ${touchDeg.value})`
89
+ };
90
+ });
91
+ const onTouchStart = (event) => {
92
+ event.preventDefault();
93
+ let changedTouches = event.changedTouches[0];
94
+ state.touchParams.startY = changedTouches.pageY;
95
+ state.touchParams.startTime = event.timeStamp || Date.now();
96
+ state.transformY = state.scrollDistance;
97
+ };
98
+ const onTouchMove = (event) => {
99
+ event.preventDefault();
100
+ let changedTouches = event.changedTouches[0];
101
+ state.touchParams.lastY = changedTouches.pageY;
102
+ state.touchParams.lastTime = event.timeStamp || Date.now();
103
+ let move = state.touchParams.lastY - state.touchParams.startY;
104
+ setMove(move);
105
+ };
106
+ const onTouchEnd = (event) => {
107
+ event.preventDefault();
108
+ let changedTouches = event.changedTouches[0];
109
+ state.touchParams.lastY = changedTouches.pageY;
110
+ state.touchParams.lastTime = event.timestamp || Date.now();
111
+ let move = state.touchParams.lastY - state.touchParams.startY;
112
+ let moveTime = state.touchParams.lastTime - state.touchParams.startTime;
113
+ if (moveTime <= 300) {
114
+ move = move * 2;
115
+ moveTime = moveTime + 1e3;
116
+ setMove(move, "end", moveTime);
117
+ } else {
118
+ setMove(move, "end");
119
+ }
120
+ };
121
+ const setRollerStyle = (index2) => {
122
+ return `transform: rotate3d(1, 0, 0, ${-state.rotation * index2}deg) translate3d(0px, 0px, 104px)`;
123
+ };
124
+ const isHidden = (index2) => {
125
+ if (index2 >= state.currIndex + 8 || index2 <= state.currIndex - 8) {
126
+ return true;
127
+ } else {
128
+ return false;
129
+ }
130
+ };
131
+ const setTransform = (translateY = 0, type, time = 1e3, deg) => {
132
+ if (type === "end") {
133
+ touchTime.value = time;
134
+ } else {
135
+ touchTime.value = 0;
136
+ }
137
+ touchDeg.value = deg;
138
+ touchTranslateY.value = translateY;
139
+ state.scrollDistance = translateY;
140
+ };
141
+ const setMove = (move, type, time) => {
142
+ let updateMove = move + state.transformY;
143
+ if (type === "end") {
144
+ if (updateMove > 0) {
145
+ updateMove = 0;
146
+ }
147
+ if (updateMove < -(props.listData.values.length - 1) * state.lineSpacing) {
148
+ updateMove = -(props.listData.values.length - 1) * state.lineSpacing;
149
+ }
150
+ let endMove = Math.round(updateMove / state.lineSpacing) * state.lineSpacing;
151
+ let deg = `${(Math.abs(Math.round(endMove / state.lineSpacing)) + 1) * state.rotation}deg`;
152
+ setTransform(endMove, type, time, deg);
153
+ let t = time ? time / 2 : 0;
154
+ state.timer = setTimeout(() => {
155
+ setChooseValue();
156
+ }, t);
157
+ state.currIndex = Math.abs(Math.round(endMove / state.lineSpacing)) + 1;
158
+ } else {
159
+ let deg = "0deg";
160
+ if (updateMove < 0) {
161
+ deg = `${(Math.abs(updateMove / state.lineSpacing) + 1) * state.rotation}deg`;
162
+ } else {
163
+ deg = `${(-updateMove / state.lineSpacing + 1) * state.rotation}deg`;
164
+ }
165
+ setTransform(updateMove, null, void 0, deg);
166
+ state.currIndex = Math.abs(Math.round(updateMove / state.lineSpacing)) + 1;
167
+ }
168
+ };
169
+ const setChooseValue = () => {
170
+ emit("change", state.currIndex - 1);
171
+ };
172
+ const modifyStatus = (type) => {
173
+ let index2 = props.defaultIndex;
174
+ state.currIndex = index2 === -1 ? 1 : index2 + 1;
175
+ let move = index2 === -1 ? 0 : index2 * state.lineSpacing;
176
+ type && setChooseValue();
177
+ setMove(-move);
178
+ };
179
+ watch(() => props.listData, (val) => {
180
+ state.transformY = 0;
181
+ modifyStatus(false);
182
+ }, {
183
+ deep: true
184
+ });
185
+ watch(() => props.defaultIndex, (val) => {
186
+ state.transformY = 0;
187
+ modifyStatus(false);
188
+ });
189
+ onMounted(() => {
190
+ modifyStatus(true);
191
+ });
192
+ return __spreadProps(__spreadValues(__spreadValues({}, toRefs(state)), toRefs(props)), {
193
+ wrapper,
194
+ setRollerStyle,
195
+ isHidden,
196
+ roller,
197
+ list,
198
+ listItem,
199
+ onTouchStart,
200
+ onTouchMove,
201
+ onTouchEnd,
202
+ touchRollerStyle,
203
+ touchListStyle,
204
+ setMove
205
+ });
206
+ }
207
+ });
208
+ const _hoisted_1$1 = { class: "nut-oldpicker-content" };
209
+ const _hoisted_2$1 = {
210
+ key: 0,
211
+ class: "nut-oldpicker-placeholder"
212
+ };
213
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
214
+ return openBlock(), createElementBlock("view", {
215
+ class: "nut-oldpicker__list",
216
+ onTouchstart: _cache[0] || (_cache[0] = (...args) => _ctx.onTouchStart && _ctx.onTouchStart(...args)),
217
+ onTouchmove: _cache[1] || (_cache[1] = (...args) => _ctx.onTouchMove && _ctx.onTouchMove(...args)),
218
+ onTouchend: _cache[2] || (_cache[2] = (...args) => _ctx.onTouchEnd && _ctx.onTouchEnd(...args))
219
+ }, [
220
+ createElementVNode("view", {
221
+ class: "nut-oldpicker-roller",
222
+ ref: "roller",
223
+ style: normalizeStyle(_ctx.touchRollerStyle)
224
+ }, [
225
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.listData.values, (item, index2) => {
226
+ return openBlock(), createElementBlock("view", {
227
+ class: normalizeClass(["nut-oldpicker-roller-item", { "nut-oldpicker-roller-item-hidden": _ctx.isHidden(index2 + 1) }]),
228
+ style: normalizeStyle(_ctx.setRollerStyle(index2 + 1)),
229
+ key: item.label ? item.label : index2
230
+ }, toDisplayString(_ctx.dataType === "cascade" ? item.text : item), 7);
231
+ }), 128))
232
+ ], 4),
233
+ createElementVNode("view", _hoisted_1$1, [
234
+ createElementVNode("view", {
235
+ class: "nut-oldpicker-list-panel",
236
+ ref: "list",
237
+ style: normalizeStyle(_ctx.touchListStyle)
238
+ }, [
239
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.listData.values, (item, index2) => {
240
+ return openBlock(), createElementBlock("view", {
241
+ class: "nut-oldpicker-item nut-oldpicker-item-ref",
242
+ key: item.label ? item.label : index2
243
+ }, toDisplayString(_ctx.dataType === "cascade" ? item.text : item), 1);
244
+ }), 128)),
245
+ _ctx.listData && _ctx.listData.length === 1 ? (openBlock(), createElementBlock("view", _hoisted_2$1)) : createCommentVNode("", true)
246
+ ], 4)
247
+ ])
248
+ ], 32);
249
+ }
250
+ var column = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
251
+ const { create, componentName } = createComponent("oldpicker");
252
+ const _sfc_main = create({
253
+ components: {
254
+ [column.name]: column,
255
+ [popup.name]: popup
256
+ },
257
+ props: __spreadProps(__spreadValues({}, popupProps), {
258
+ title: {
259
+ type: String,
260
+ default: ""
261
+ },
262
+ cancelText: {
263
+ type: String,
264
+ default: "\u53D6\u6D88"
265
+ },
266
+ okText: {
267
+ type: String,
268
+ default: "\u786E\u5B9A"
269
+ },
270
+ listData: {
271
+ type: Array,
272
+ default: () => {
273
+ return [];
274
+ }
275
+ },
276
+ readonly: {
277
+ type: Boolean,
278
+ default: false
279
+ },
280
+ defaultIndex: {
281
+ type: [Number, String],
282
+ default: 0
283
+ }
284
+ }),
285
+ emits: ["close", "change", "confirm", "update:visible"],
286
+ setup(props, { emit }) {
287
+ const childrenKey = "children";
288
+ const valuesKey = "values";
289
+ const state = reactive({
290
+ show: false,
291
+ formattedColumns: props.listData,
292
+ defaultIndex: props.defaultIndex
293
+ });
294
+ let _defaultIndex = props.defaultIndex;
295
+ let defaultIndexList = [];
296
+ const classes = computed(() => {
297
+ const prefixCls = componentName;
298
+ return {
299
+ [prefixCls]: true
300
+ };
301
+ });
302
+ const dataType = computed(() => {
303
+ const firstColumn = state.formattedColumns[0];
304
+ if (typeof firstColumn === "object") {
305
+ if (firstColumn[childrenKey]) {
306
+ return "cascade";
307
+ } else if (firstColumn == null ? void 0 : firstColumn[valuesKey]) {
308
+ addDefaultIndexList(props.listData);
309
+ return "multipleColumns";
310
+ }
311
+ }
312
+ return "text";
313
+ });
314
+ const columnList = computed(() => {
315
+ if (dataType.value === "text") {
316
+ return [{ values: state.formattedColumns, defaultIndex: state.defaultIndex }];
317
+ } else if (dataType.value === "multipleColumns") {
318
+ return state.formattedColumns;
319
+ } else if (dataType.value === "cascade") {
320
+ return formatCascade(state.formattedColumns, state.defaultIndex);
321
+ }
322
+ return state.formattedColumns;
323
+ });
324
+ const addDefaultIndexList = (listData) => {
325
+ defaultIndexList = [];
326
+ listData.forEach((res) => {
327
+ defaultIndexList.push(res.defaultIndex || 0);
328
+ });
329
+ };
330
+ const formatCascade = (listData, defaultIndex) => {
331
+ const formatted = [];
332
+ let children = listData;
333
+ children.defaultIndex = defaultIndex;
334
+ while (children) {
335
+ formatted.push({
336
+ values: children,
337
+ defaultIndex: children.defaultIndex || 0
338
+ });
339
+ children = children == null ? void 0 : children[children.defaultIndex || 0].children;
340
+ }
341
+ addDefaultIndexList(formatted);
342
+ return formatted;
343
+ };
344
+ const getCascadeData = (listData, defaultIndex) => {
345
+ var _a;
346
+ let arr = listData;
347
+ arr.defaultIndex = defaultIndex;
348
+ const dataList = [];
349
+ while (arr) {
350
+ const item = arr[(_a = arr.defaultIndex) != null ? _a : 0];
351
+ dataList.push(item.text);
352
+ arr = item.children;
353
+ }
354
+ return dataList;
355
+ };
356
+ const close = () => {
357
+ emit("close");
358
+ emit("update:visible", false);
359
+ };
360
+ const changeHandler = (columnIndex, dataIndex) => {
361
+ if (dataType.value === "cascade") {
362
+ let cursor = state.formattedColumns;
363
+ if (columnIndex === 0) {
364
+ state.defaultIndex = dataIndex;
365
+ }
366
+ let i = 0;
367
+ while (cursor) {
368
+ if (i === columnIndex) {
369
+ cursor.defaultIndex = dataIndex;
370
+ } else if (i > columnIndex) {
371
+ cursor.defaultIndex = 0;
372
+ }
373
+ cursor = cursor[cursor.defaultIndex || 0].children;
374
+ i++;
375
+ }
376
+ } else if (dataType.value === "text") {
377
+ _defaultIndex = dataIndex;
378
+ } else if (dataType.value === "multipleColumns") {
379
+ defaultIndexList[columnIndex] = dataIndex;
380
+ const val = defaultIndexList.map((res, i) => toRaw(state.formattedColumns)[i].values[res]);
381
+ emit("change", val, columnIndex, dataIndex);
382
+ }
383
+ };
384
+ const confirm = () => {
385
+ if (dataType.value === "text") {
386
+ state.defaultIndex = _defaultIndex;
387
+ emit("confirm", state.formattedColumns[_defaultIndex]);
388
+ } else if (dataType.value === "multipleColumns") {
389
+ for (let i = 0; i < defaultIndexList.length; i++) {
390
+ state.formattedColumns[i].defaultIndex = defaultIndexList[i];
391
+ }
392
+ const checkedArr = toRaw(state.formattedColumns).map((res) => res.values && res.values[res.defaultIndex]);
393
+ emit("confirm", checkedArr);
394
+ } else if (dataType.value === "cascade") {
395
+ emit("confirm", getCascadeData(toRaw(state.formattedColumns), state.defaultIndex));
396
+ }
397
+ emit("update:visible", false);
398
+ };
399
+ onMounted(() => {
400
+ if (props.visible)
401
+ state.show = props.visible;
402
+ });
403
+ onBeforeUnmount(() => {
404
+ if (props.visible)
405
+ state.show = false;
406
+ });
407
+ watch(() => props.visible, (val) => {
408
+ state.show = val;
409
+ });
410
+ watch(() => props.listData, (val) => {
411
+ state.formattedColumns = val;
412
+ });
413
+ return __spreadProps(__spreadValues({
414
+ classes
415
+ }, toRefs(state)), {
416
+ column,
417
+ dataType,
418
+ columnList,
419
+ close,
420
+ changeHandler,
421
+ confirm
422
+ });
423
+ }
424
+ });
425
+ const _hoisted_1 = { class: "nut-oldpicker__bar" };
426
+ const _hoisted_2 = { class: "nut-oldpicker__title" };
427
+ const _hoisted_3 = { class: "nut-oldpicker__column" };
428
+ const _hoisted_4 = /* @__PURE__ */ createElementVNode("view", { class: "nut-oldpicker__hairline" }, null, -1);
429
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
430
+ const _component_nut_oldpicker_column = resolveComponent("nut-oldpicker-column");
431
+ const _component_nut_popup = resolveComponent("nut-popup");
432
+ return openBlock(), createElementBlock("view", {
433
+ class: normalizeClass(_ctx.classes)
434
+ }, [
435
+ createVNode(_component_nut_popup, {
436
+ position: "bottom",
437
+ visible: _ctx.show,
438
+ "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => _ctx.show = $event),
439
+ teleport: _ctx.teleport,
440
+ "lock-scroll": _ctx.lockScroll,
441
+ "close-on-click-overlay": _ctx.closeOnClickOverlay,
442
+ onClose: _ctx.close,
443
+ round: true,
444
+ isWrapTeleport: _ctx.isWrapTeleport
445
+ }, {
446
+ default: withCtx(() => [
447
+ createElementVNode("view", _hoisted_1, [
448
+ createElementVNode("view", {
449
+ class: "nut-oldpicker__cancel nut-oldpicker__left nut-oldpicker__button",
450
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.close && _ctx.close(...args))
451
+ }, toDisplayString(_ctx.cancelText), 1),
452
+ createElementVNode("view", _hoisted_2, toDisplayString(_ctx.title), 1),
453
+ createElementVNode("view", {
454
+ class: "nut-oldpicker__confirm nut-oldpicker__button nut-oldpicker__right",
455
+ onClick: _cache[1] || (_cache[1] = ($event) => _ctx.confirm())
456
+ }, toDisplayString(_ctx.okText), 1)
457
+ ]),
458
+ createElementVNode("view", _hoisted_3, [
459
+ _hoisted_4,
460
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.columnList, (item, columnIndex) => {
461
+ return openBlock(), createElementBlock("view", {
462
+ class: "nut-oldpicker__columnitem",
463
+ key: columnIndex
464
+ }, [
465
+ createVNode(_component_nut_oldpicker_column, {
466
+ itemShow: _ctx.show,
467
+ "list-data": item,
468
+ readonly: _ctx.readonly,
469
+ "default-index": item.defaultIndex,
470
+ "data-type": _ctx.dataType,
471
+ onChange: (dataIndex) => {
472
+ _ctx.changeHandler(columnIndex, dataIndex);
473
+ }
474
+ }, null, 8, ["itemShow", "list-data", "readonly", "default-index", "data-type", "onChange"])
475
+ ]);
476
+ }), 128))
477
+ ])
478
+ ]),
479
+ _: 1
480
+ }, 8, ["visible", "teleport", "lock-scroll", "close-on-click-overlay", "onClose", "isWrapTeleport"])
481
+ ], 2);
482
+ }
483
+ var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
484
+ export { index as default };
@@ -15,8 +15,8 @@ var __spreadValues = (a, b) => {
15
15
  return a;
16
16
  };
17
17
  /*!
18
- * @nutui/nutui v3.1.16 Fri Feb 25 2022 18:32:15 GMT+0800 (中国标准时间)
19
- * (c) 2021 @jdf2e.
18
+ * @nutui/nutui v3.1.19-beta.0 Mon Mar 28 2022 17:50:21 GMT+0800 (中国标准时间)
19
+ * (c) 2022 @jdf2e.
20
20
  * Released under the MIT License.
21
21
  */
22
22
  import { computed, watch, onDeactivated, onBeforeUnmount, onMounted, onActivated, openBlock, createBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, withModifiers, normalizeStyle, renderSlot, vShow } from "vue";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.16 Fri Feb 25 2022 18:32:15 GMT+0800 (中国标准时间)
3
- * (c) 2021 @jdf2e.
2
+ * @nutui/nutui v3.1.19-beta.0 Mon Mar 28 2022 17:50:21 GMT+0800 (中国标准时间)
3
+ * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import { toRefs, computed, watchEffect, openBlock, createElementBlock, createElementVNode, normalizeClass, renderSlot, createTextVNode, toDisplayString, Fragment, renderList, createCommentVNode } from "vue";