@nutui/nutui 3.1.12-beta.0 → 3.1.13

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 (133) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +139 -37
  3. package/dist/nutui.d.ts +12 -2
  4. package/dist/nutui.es.js +6704 -5011
  5. package/dist/nutui.umd.js +6720 -5017
  6. package/dist/packages/_es/ActionSheet.js +1 -1
  7. package/dist/packages/_es/Address.js +18 -17
  8. package/dist/packages/_es/Avatar.js +1 -1
  9. package/dist/packages/_es/BackTop.js +1 -1
  10. package/dist/packages/_es/Badge.js +1 -1
  11. package/dist/packages/_es/Barrage.js +1 -1
  12. package/dist/packages/_es/Button.js +1 -1
  13. package/dist/packages/_es/Calendar.js +1 -1
  14. package/dist/packages/_es/Card.js +105 -0
  15. package/dist/packages/_es/Cascader.js +547 -0
  16. package/dist/packages/_es/Cell.js +1 -1
  17. package/dist/packages/_es/CellGroup.js +10 -4
  18. package/dist/packages/_es/Checkbox.js +1 -1
  19. package/dist/packages/_es/CheckboxGroup.js +2 -2
  20. package/dist/packages/_es/CircleProgress.js +1 -1
  21. package/dist/packages/_es/Col.js +1 -1
  22. package/dist/packages/_es/Collapse.js +1 -1
  23. package/dist/packages/_es/CollapseItem.js +1 -1
  24. package/dist/packages/_es/CountDown.js +3 -4
  25. package/dist/packages/_es/CountUp.js +3 -1
  26. package/dist/packages/_es/DatePicker.js +2 -2
  27. package/dist/packages/_es/Dialog.js +10 -23
  28. package/dist/packages/_es/Divider.js +1 -1
  29. package/dist/packages/_es/Drag.js +1 -1
  30. package/dist/packages/_es/Elevator.js +3 -2
  31. package/dist/packages/_es/Empty.js +74 -0
  32. package/dist/packages/_es/FixedNav.js +1 -1
  33. package/dist/packages/_es/Form.js +151 -0
  34. package/dist/packages/_es/FormItem.js +110 -0
  35. package/dist/packages/_es/Grid.js +12 -0
  36. package/dist/packages/_es/GridItem.js +149 -0
  37. package/dist/packages/_es/Icon.js +1 -1
  38. package/dist/packages/_es/ImagePreview.js +148 -32
  39. package/dist/packages/_es/Indicator.js +66 -0
  40. package/dist/packages/_es/InfiniteLoading.js +1 -1
  41. package/dist/packages/_es/Input.js +1 -1
  42. package/dist/packages/_es/InputNumber.js +1 -1
  43. package/dist/packages/_es/Layout.js +1 -1
  44. package/dist/packages/_es/Menu.js +2 -2
  45. package/dist/packages/_es/MenuItem.js +1 -1
  46. package/dist/packages/_es/Navbar.js +1 -1
  47. package/dist/packages/_es/NoticeBar.js +6 -8
  48. package/dist/packages/_es/Notify.js +1 -1
  49. package/dist/packages/_es/NumberKeyboard.js +9 -7
  50. package/dist/packages/_es/OverLay.js +1 -1
  51. package/dist/packages/_es/Pagination.js +1 -1
  52. package/dist/packages/_es/Picker.js +2 -2
  53. package/dist/packages/_es/Popover.js +11 -17
  54. package/dist/packages/_es/Popup.js +1 -1
  55. package/dist/packages/_es/Price.js +1 -1
  56. package/dist/packages/_es/Progress.js +1 -1
  57. package/dist/packages/_es/Radio.js +1 -1
  58. package/dist/packages/_es/RadioGroup.js +1 -1
  59. package/dist/packages/_es/Range.js +3 -3
  60. package/dist/packages/_es/Rate.js +19 -5
  61. package/dist/packages/_es/Row.js +1 -1
  62. package/dist/packages/_es/SearchBar.js +1 -1
  63. package/dist/packages/_es/ShortPassword.js +1 -1
  64. package/dist/packages/_es/Signature.js +1 -1
  65. package/dist/packages/_es/Skeleton.js +138 -0
  66. package/dist/packages/_es/Sku.js +2 -37
  67. package/dist/packages/_es/Step.js +1 -1
  68. package/dist/packages/_es/Steps.js +1 -1
  69. package/dist/packages/_es/Swipe.js +2 -2
  70. package/dist/packages/_es/Swiper.js +11 -11
  71. package/dist/packages/_es/SwiperItem.js +3 -3
  72. package/dist/packages/_es/Switch.js +43 -13
  73. package/dist/packages/_es/TabPane.js +1 -1
  74. package/dist/packages/_es/Tabbar.js +1 -1
  75. package/dist/packages/_es/TabbarItem.js +1 -1
  76. package/dist/packages/_es/Table.js +191 -0
  77. package/dist/packages/_es/Tabs.js +6 -2
  78. package/dist/packages/_es/Tag.js +1 -1
  79. package/dist/packages/_es/TextArea.js +1 -1
  80. package/dist/packages/_es/TimeDetail.js +1 -1
  81. package/dist/packages/_es/TimePannel.js +1 -1
  82. package/dist/packages/_es/TimeSelect.js +1 -1
  83. package/dist/packages/_es/Toast.js +18 -8
  84. package/dist/packages/_es/Uploader.js +1 -1
  85. package/dist/packages/_es/Video.js +3 -3
  86. package/dist/packages/_es/common.js +136 -0
  87. package/dist/packages/_es/component.js +1 -1
  88. package/dist/packages/_es/index.js +7 -58
  89. package/dist/packages/_es/index2.js +56 -28
  90. package/dist/packages/_es/index3.js +31 -8
  91. package/dist/packages/_es/plugin-vue_export-helper.js +1 -1
  92. package/dist/packages/_es/pxCheck.js +1 -1
  93. package/dist/packages/_es/raf.js +1 -1
  94. package/dist/packages/_es/util.js +47 -0
  95. package/dist/packages/button/index.scss +6 -0
  96. package/dist/packages/card/index.scss +97 -0
  97. package/dist/packages/cascader/index.scss +81 -0
  98. package/dist/packages/cellgroup/index.scss +9 -0
  99. package/dist/packages/checkbox/index.scss +1 -1
  100. package/dist/packages/dialog/index.scss +17 -0
  101. package/dist/packages/drag/index.scss +4 -0
  102. package/dist/packages/empty/index.scss +33 -0
  103. package/dist/packages/fixednav/index.scss +6 -1
  104. package/dist/packages/form/index.scss +2 -0
  105. package/dist/packages/formitem/index.scss +63 -0
  106. package/dist/packages/grid/index.scss +10 -0
  107. package/dist/packages/griditem/index.scss +92 -0
  108. package/dist/packages/icon/index.scss +2 -1
  109. package/dist/packages/indicator/index.scss +48 -0
  110. package/dist/packages/numberkeyboard/index.scss +1 -1
  111. package/dist/packages/popover/index.scss +2 -2
  112. package/dist/packages/rate/index.scss +1 -0
  113. package/dist/packages/skeleton/index.scss +57 -0
  114. package/dist/packages/switch/index.scss +1 -1
  115. package/dist/packages/table/index.scss +81 -0
  116. package/dist/packages/tabs/index.scss +16 -0
  117. package/dist/packages/textarea/index.scss +1 -0
  118. package/dist/packages/timedetail/index.scss +1 -2
  119. package/dist/packages/timeselect/index.scss +3 -0
  120. package/dist/packages/toast/index.scss +6 -0
  121. package/dist/style.css +1 -1
  122. package/dist/styles/.DS_Store +0 -0
  123. package/dist/styles/font/config.json +2 -1
  124. package/dist/styles/font/demo_index.html +26 -3
  125. package/dist/styles/font/iconfont.css +7 -3
  126. package/dist/styles/font/iconfont.js +31 -32
  127. package/dist/styles/font/iconfont.json +7 -0
  128. package/dist/styles/font/iconfont.ttf +0 -0
  129. package/dist/styles/font/iconfont.woff +0 -0
  130. package/dist/styles/font/iconfont.woff2 +0 -0
  131. package/dist/styles/themes/default.scss +44 -34
  132. package/dist/styles/variables.scss +64 -1
  133. package/package.json +3 -4
@@ -0,0 +1,547 @@
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
+ var __restKey = (key) => typeof key === "symbol" ? key : key + "";
21
+ var __objRest = (source, exclude) => {
22
+ var target = {};
23
+ for (var prop in source)
24
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
+ target[prop] = source[prop];
26
+ if (source != null && __getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(source)) {
28
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
+ target[prop] = source[prop];
30
+ }
31
+ return target;
32
+ };
33
+ var __publicField = (obj, key, value) => {
34
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
35
+ return value;
36
+ };
37
+ /*!
38
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
39
+ * (c) 2021 @jdf2e.
40
+ * Released under the MIT License.
41
+ */
42
+ import { computed, ref, watch, resolveComponent, openBlock, createBlock, withCtx, createElementBlock, Fragment, renderList, createElementVNode, normalizeClass, toDisplayString, createCommentVNode, createVNode } from "vue";
43
+ import { c as createComponent } from "./component.js";
44
+ import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
45
+ const formatTree = (tree, parent, config) => tree.map((node) => {
46
+ const { value: valueKey = "value", text: textKey = "text", children: childrenKey = "children" } = config;
47
+ const _a = node, { [valueKey]: value, [textKey]: text, [childrenKey]: children } = _a, others = __objRest(_a, [__restKey(valueKey), __restKey(textKey), __restKey(childrenKey)]);
48
+ const newNode = __spreadProps(__spreadValues({
49
+ loading: false
50
+ }, others), {
51
+ level: parent ? (parent && parent.level || 0) + 1 : 0,
52
+ value,
53
+ text,
54
+ children,
55
+ _parent: parent
56
+ });
57
+ if (newNode.children && newNode.children.length) {
58
+ newNode.children = formatTree(newNode.children, newNode, config);
59
+ }
60
+ return newNode;
61
+ });
62
+ const eachTree = (tree, cb) => {
63
+ let i = 0;
64
+ let node;
65
+ while (node = tree[i++]) {
66
+ if (cb(node) === true) {
67
+ break;
68
+ }
69
+ if (node.children && node.children.length) {
70
+ eachTree(node.children, cb);
71
+ }
72
+ }
73
+ };
74
+ const defaultConvertConfig = {
75
+ topId: null,
76
+ idKey: "id",
77
+ pidKey: "pid",
78
+ sortKey: ""
79
+ };
80
+ const convertListToOptions = (list, options) => {
81
+ const mergedOptions = __spreadValues(__spreadValues({}, defaultConvertConfig), options || {});
82
+ const { topId, idKey, pidKey, sortKey } = mergedOptions;
83
+ let result = [];
84
+ let map = {};
85
+ list.forEach((node) => {
86
+ node = __spreadValues({}, node);
87
+ const { [idKey]: id, [pidKey]: pid } = node;
88
+ const children = map[pid] = map[pid] || [];
89
+ if (!result.length && pid === topId) {
90
+ result = children;
91
+ }
92
+ children.push(node);
93
+ node.children = map[id] || (map[id] = []);
94
+ });
95
+ if (sortKey) {
96
+ Object.keys(map).forEach((i) => {
97
+ if (map[i].length > 1) {
98
+ map[i].sort((a, b) => a[sortKey] - b[sortKey]);
99
+ }
100
+ });
101
+ }
102
+ map = null;
103
+ return result;
104
+ };
105
+ class Tree {
106
+ constructor(nodes, config) {
107
+ __publicField(this, "nodes");
108
+ __publicField(this, "config");
109
+ this.config = __spreadValues({
110
+ value: "value",
111
+ text: "text",
112
+ children: "children"
113
+ }, config || {});
114
+ this.nodes = formatTree(nodes, null, this.config);
115
+ }
116
+ updateChildren(nodes, parent) {
117
+ if (!parent) {
118
+ this.nodes = formatTree(nodes, null, this.config);
119
+ } else {
120
+ parent.children = formatTree(nodes, parent, this.config);
121
+ }
122
+ }
123
+ getNodeByValue(value) {
124
+ let foundNode;
125
+ eachTree(this.nodes, (node) => {
126
+ if (node.value === value) {
127
+ foundNode = node;
128
+ return true;
129
+ }
130
+ });
131
+ return foundNode;
132
+ }
133
+ getPathNodesByNode(node) {
134
+ const nodes = [];
135
+ while (node) {
136
+ nodes.unshift(node);
137
+ node = node._parent;
138
+ }
139
+ return nodes;
140
+ }
141
+ getPathNodesByValue(value) {
142
+ if (Array.isArray(value) && !value.length) {
143
+ return [];
144
+ }
145
+ const tail = Array.isArray(value) ? value[value.length - 1] : value;
146
+ const node = this.getNodeByValue(tail);
147
+ if (!node) {
148
+ return [];
149
+ }
150
+ return this.getPathNodesByNode(node);
151
+ }
152
+ isLeaf(node, lazy) {
153
+ const { leaf, children } = node;
154
+ const hasChildren = Array.isArray(children) && Boolean(children.length);
155
+ return leaf || !hasChildren && !lazy;
156
+ }
157
+ hasChildren(node, lazy) {
158
+ const isLeaf = this.isLeaf(node, lazy);
159
+ if (isLeaf) {
160
+ return false;
161
+ }
162
+ const { children } = node;
163
+ return Array.isArray(children) && Boolean(children.length);
164
+ }
165
+ }
166
+ const { create: create$1 } = createComponent("cascader-item");
167
+ const _sfc_main$1 = create$1({
168
+ props: {
169
+ visible: Boolean,
170
+ modelValue: Array,
171
+ options: {
172
+ type: Array,
173
+ default: () => []
174
+ },
175
+ lazy: Boolean,
176
+ lazyLoad: Function,
177
+ valueKey: {
178
+ type: String,
179
+ default: "value"
180
+ },
181
+ textKey: {
182
+ type: String,
183
+ default: "text"
184
+ },
185
+ childrenKey: {
186
+ type: String,
187
+ default: "children"
188
+ },
189
+ convertConfig: Object
190
+ },
191
+ components: {},
192
+ emits: ["update:modelValue", "change", "pathChange"],
193
+ setup(props, { emit }) {
194
+ const configs = computed(() => ({
195
+ lazy: props.lazy,
196
+ lazyLoad: props.lazyLoad,
197
+ valueKey: props.valueKey,
198
+ textKey: props.textKey,
199
+ childrenKey: props.childrenKey,
200
+ convertConfig: props.convertConfig
201
+ }));
202
+ const tabsCursor = ref(0);
203
+ const initLoading = ref(false);
204
+ const innerValue = ref(props.modelValue);
205
+ const tree = ref(new Tree([], {}));
206
+ const panes = ref([]);
207
+ const isLazy = computed(() => configs.value.lazy && Boolean(configs.value.lazyLoad));
208
+ const lazyLoadMap = new Map();
209
+ let currentProcessNode;
210
+ const init = async () => {
211
+ lazyLoadMap.clear();
212
+ panes.value = [];
213
+ tabsCursor.value = 0;
214
+ initLoading.value = false;
215
+ currentProcessNode = null;
216
+ let { options } = props;
217
+ if (configs.value.convertConfig) {
218
+ options = convertListToOptions(options, configs.value.convertConfig);
219
+ }
220
+ tree.value = new Tree(options, {
221
+ value: configs.value.valueKey,
222
+ text: configs.value.textKey,
223
+ children: configs.value.childrenKey
224
+ });
225
+ if (isLazy.value && !tree.value.nodes.length) {
226
+ await invokeLazyLoad({
227
+ root: true,
228
+ loading: true,
229
+ text: "",
230
+ value: ""
231
+ });
232
+ }
233
+ panes.value = [{ nodes: tree.value.nodes, selectedNode: null }];
234
+ syncValue();
235
+ };
236
+ const syncValue = async () => {
237
+ const currentValue = innerValue.value;
238
+ if (currentValue === void 0 || !tree.value.nodes.length) {
239
+ return;
240
+ }
241
+ if (currentValue.length === 0) {
242
+ tabsCursor.value = 0;
243
+ panes.value = [{ nodes: tree.value.nodes, selectedNode: null }];
244
+ return;
245
+ }
246
+ let needToSync = currentValue;
247
+ if (isLazy.value && Array.isArray(currentValue) && currentValue.length) {
248
+ needToSync = [];
249
+ let parent = tree.value.nodes.find((node) => node.value === currentValue[0]);
250
+ if (parent) {
251
+ needToSync = [parent.value];
252
+ initLoading.value = true;
253
+ const last = await currentValue.slice(1).reduce(async (p, value) => {
254
+ var _a;
255
+ const parent2 = await p;
256
+ await invokeLazyLoad(parent2);
257
+ const node = (_a = parent2 == null ? void 0 : parent2.children) == null ? void 0 : _a.find((item) => item.value === value);
258
+ if (node) {
259
+ needToSync.push(value);
260
+ }
261
+ return Promise.resolve(node);
262
+ }, Promise.resolve(parent));
263
+ await invokeLazyLoad(last);
264
+ initLoading.value = false;
265
+ }
266
+ }
267
+ if (needToSync.length && currentValue === props.modelValue) {
268
+ const pathNodes = tree.value.getPathNodesByValue(needToSync);
269
+ pathNodes.map((node, index2) => {
270
+ tabsCursor.value = index2;
271
+ methods.handleNode(node, true);
272
+ });
273
+ }
274
+ };
275
+ const invokeLazyLoad = async (node) => {
276
+ if (!node) {
277
+ return;
278
+ }
279
+ if (!configs.value.lazyLoad) {
280
+ node.leaf = true;
281
+ return;
282
+ }
283
+ if (tree.value.isLeaf(node, isLazy.value) || tree.value.hasChildren(node, isLazy.value)) {
284
+ return;
285
+ }
286
+ node.loading = true;
287
+ const parent = node.root ? null : node;
288
+ let lazyLoadPromise = lazyLoadMap.get(node);
289
+ if (!lazyLoadPromise) {
290
+ lazyLoadPromise = new Promise((resolve) => {
291
+ var _a, _b;
292
+ (_b = (_a = configs.value).lazyLoad) == null ? void 0 : _b.call(_a, node, resolve);
293
+ });
294
+ lazyLoadMap.set(node, lazyLoadPromise);
295
+ }
296
+ const nodes = await lazyLoadPromise;
297
+ if (Array.isArray(nodes) && nodes.length > 0) {
298
+ tree.value.updateChildren(nodes, parent);
299
+ } else {
300
+ node.leaf = true;
301
+ }
302
+ node.loading = false;
303
+ lazyLoadMap.delete(node);
304
+ };
305
+ const emitChange = (pathNodes) => {
306
+ const emitValue = pathNodes.map((node) => node.value);
307
+ innerValue.value = emitValue;
308
+ emit("change", emitValue, pathNodes);
309
+ emit("update:modelValue", emitValue, pathNodes);
310
+ };
311
+ const methods = {
312
+ async handleNode(node, silent) {
313
+ const { disabled, loading } = node;
314
+ if (!silent && disabled || !panes.value[tabsCursor.value]) {
315
+ return;
316
+ }
317
+ if (tree.value.isLeaf(node, isLazy.value)) {
318
+ node.leaf = true;
319
+ panes.value[tabsCursor.value].selectedNode = node;
320
+ panes.value = panes.value.slice(0, node.level + 1);
321
+ if (!silent) {
322
+ const pathNodes = panes.value.map((pane) => pane.selectedNode);
323
+ emitChange(pathNodes);
324
+ emit("pathChange", pathNodes);
325
+ }
326
+ return;
327
+ }
328
+ if (tree.value.hasChildren(node, isLazy.value)) {
329
+ const level = node.level + 1;
330
+ panes.value[tabsCursor.value].selectedNode = node;
331
+ panes.value = panes.value.slice(0, level);
332
+ panes.value.push({
333
+ nodes: node.children || [],
334
+ selectedNode: null
335
+ });
336
+ tabsCursor.value = level;
337
+ if (!silent) {
338
+ const pathNodes = panes.value.map((pane) => pane.selectedNode);
339
+ emit("pathChange", pathNodes);
340
+ }
341
+ return;
342
+ }
343
+ currentProcessNode = node;
344
+ if (loading) {
345
+ return;
346
+ }
347
+ await invokeLazyLoad(node);
348
+ if (currentProcessNode === node) {
349
+ panes.value[tabsCursor.value].selectedNode = node;
350
+ methods.handleNode(node, silent);
351
+ }
352
+ },
353
+ handleTabClick(tab) {
354
+ currentProcessNode = null;
355
+ tabsCursor.value = tab.paneKey;
356
+ },
357
+ formatTabTitle(pane) {
358
+ return pane.selectedNode ? pane.selectedNode.text : "\u8BF7\u9009\u62E9";
359
+ },
360
+ isSelected(pane, node) {
361
+ return pane.selectedNode && pane.selectedNode.value === node.value;
362
+ }
363
+ };
364
+ watch([configs, () => props.options], () => {
365
+ init();
366
+ }, {
367
+ deep: true,
368
+ immediate: true
369
+ });
370
+ watch(() => props.modelValue, (value) => {
371
+ if (value !== innerValue.value) {
372
+ innerValue.value = value;
373
+ syncValue();
374
+ }
375
+ });
376
+ watch(() => props.visible, (val) => {
377
+ if (val && Array.isArray(innerValue.value) && innerValue.value.length > 0) {
378
+ syncValue();
379
+ }
380
+ });
381
+ return __spreadValues({ panes, initLoading, tabsCursor }, methods);
382
+ }
383
+ });
384
+ const _hoisted_1$1 = {
385
+ role: "menu",
386
+ class: "nut-cascader-pane"
387
+ };
388
+ const _hoisted_2 = ["aria-checked", "aria-disabled", "onClick"];
389
+ const _hoisted_3 = { class: "nut-cascader-item__title" };
390
+ const _hoisted_4 = /* @__PURE__ */ createElementVNode("view", { class: "nut-cascader-pane" }, null, -1);
391
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
392
+ const _component_nut_icon = resolveComponent("nut-icon");
393
+ const _component_nut_tabpane = resolveComponent("nut-tabpane");
394
+ const _component_nut_tabs = resolveComponent("nut-tabs");
395
+ return openBlock(), createBlock(_component_nut_tabs, {
396
+ class: "nut-cascader",
397
+ modelValue: _ctx.tabsCursor,
398
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.tabsCursor = $event),
399
+ onClick: _ctx.handleTabClick,
400
+ "title-scroll": ""
401
+ }, {
402
+ default: withCtx(() => [
403
+ !_ctx.initLoading && _ctx.panes.length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.panes, (pane, index2) => {
404
+ return openBlock(), createBlock(_component_nut_tabpane, {
405
+ title: _ctx.formatTabTitle(pane),
406
+ key: index2
407
+ }, {
408
+ default: withCtx(() => [
409
+ createElementVNode("view", _hoisted_1$1, [
410
+ (openBlock(true), createElementBlock(Fragment, null, renderList(pane.nodes, (node) => {
411
+ return openBlock(), createElementBlock("view", {
412
+ key: node.value,
413
+ class: normalizeClass(["nut-cascader-item", { active: _ctx.isSelected(pane, node), disabled: node.disabled }]),
414
+ "aria-checked": _ctx.isSelected(pane, node),
415
+ "aria-disabled": node.disabled || void 0,
416
+ role: "menuitemradio",
417
+ onClick: ($event) => _ctx.handleNode(node, false)
418
+ }, [
419
+ createElementVNode("view", _hoisted_3, toDisplayString(node.text), 1),
420
+ node.loading ? (openBlock(), createBlock(_component_nut_icon, {
421
+ key: 0,
422
+ class: "nut-cascader-item__icon-loading",
423
+ name: "loading"
424
+ })) : (openBlock(), createBlock(_component_nut_icon, {
425
+ key: 1,
426
+ class: "nut-cascader-item__icon-check",
427
+ name: "checklist"
428
+ }))
429
+ ], 10, _hoisted_2);
430
+ }), 128))
431
+ ])
432
+ ]),
433
+ _: 2
434
+ }, 1032, ["title"]);
435
+ }), 128)) : (openBlock(), createBlock(_component_nut_tabpane, {
436
+ key: 1,
437
+ title: "Loading..."
438
+ }, {
439
+ default: withCtx(() => [
440
+ _hoisted_4
441
+ ]),
442
+ _: 1
443
+ }))
444
+ ]),
445
+ _: 1
446
+ }, 8, ["modelValue", "onClick"]);
447
+ }
448
+ var CascaderItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
449
+ const { create } = createComponent("cascader");
450
+ const _sfc_main = create({
451
+ components: {
452
+ [CascaderItem.name]: CascaderItem
453
+ },
454
+ props: {
455
+ modelValue: Array,
456
+ visible: Boolean,
457
+ title: String,
458
+ options: {
459
+ type: Array,
460
+ default: () => []
461
+ },
462
+ lazy: Boolean,
463
+ lazyLoad: Function,
464
+ valueKey: {
465
+ type: String,
466
+ default: "value"
467
+ },
468
+ textKey: {
469
+ type: String,
470
+ default: "text"
471
+ },
472
+ childrenKey: {
473
+ type: String,
474
+ default: "children"
475
+ },
476
+ convertConfig: Object
477
+ },
478
+ emits: ["update:modelValue", "change", "pathChange", "update:visible"],
479
+ setup(props, { emit }) {
480
+ const innerValue = ref(props.modelValue);
481
+ const innerVisible = computed({
482
+ get() {
483
+ return props.visible;
484
+ },
485
+ set(value) {
486
+ emit("update:visible", value);
487
+ }
488
+ });
489
+ const onChange = (value, pathNodes) => {
490
+ innerValue.value = value;
491
+ innerVisible.value = false;
492
+ emit("change", value, pathNodes);
493
+ emit("update:modelValue", value);
494
+ };
495
+ const onPathChange = (pathNodes) => {
496
+ emit("pathChange", pathNodes);
497
+ };
498
+ watch(() => props.modelValue, (value) => {
499
+ if (value !== innerValue.value) {
500
+ innerValue.value = value;
501
+ }
502
+ });
503
+ return {
504
+ onChange,
505
+ onPathChange,
506
+ innerValue,
507
+ innerVisible
508
+ };
509
+ }
510
+ });
511
+ const _hoisted_1 = {
512
+ key: 0,
513
+ class: "nut-cascader__bar"
514
+ };
515
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
516
+ const _component_nut_cascader_item = resolveComponent("nut-cascader-item");
517
+ const _component_nut_popup = resolveComponent("nut-popup");
518
+ return openBlock(), createBlock(_component_nut_popup, {
519
+ visible: _ctx.innerVisible,
520
+ "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => _ctx.innerVisible = $event),
521
+ position: "bottom",
522
+ "pop-class": "nut-cascader__popup",
523
+ round: "",
524
+ closeable: true,
525
+ "destroy-on-close": false
526
+ }, {
527
+ default: withCtx(() => [
528
+ _ctx.title ? (openBlock(), createElementBlock("view", _hoisted_1, toDisplayString(_ctx.title), 1)) : createCommentVNode("", true),
529
+ createVNode(_component_nut_cascader_item, {
530
+ onChange: _ctx.onChange,
531
+ onPathChange: _ctx.onPathChange,
532
+ modelValue: _ctx.innerValue,
533
+ options: _ctx.options,
534
+ lazy: _ctx.lazy,
535
+ "lazy-load": _ctx.lazyLoad,
536
+ "value-key": _ctx.valueKey,
537
+ "text-key": _ctx.textKey,
538
+ "children-key": _ctx.childrenKey,
539
+ "convert-config": _ctx.convertConfig,
540
+ visible: _ctx.innerVisible
541
+ }, null, 8, ["onChange", "onPathChange", "modelValue", "options", "lazy", "lazy-load", "value-key", "text-key", "children-key", "convert-config", "visible"])
542
+ ]),
543
+ _: 1
544
+ }, 8, ["visible"]);
545
+ }
546
+ var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
547
+ export { index as default };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -9,7 +9,8 @@ import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
9
9
  const { componentName, create } = createComponent("cell-group");
10
10
  const _sfc_main = create({
11
11
  props: {
12
- title: { type: String, default: "" }
12
+ title: { type: String, default: "" },
13
+ desc: { type: String, default: "" }
13
14
  },
14
15
  setup() {
15
16
  const classes = computed(() => {
@@ -27,13 +28,18 @@ const _hoisted_1 = {
27
28
  key: 1,
28
29
  class: "nut-cell-group__title"
29
30
  };
30
- const _hoisted_2 = { class: "nut-cell-group__warp" };
31
+ const _hoisted_2 = {
32
+ key: 3,
33
+ class: "nut-cell-group__desc"
34
+ };
35
+ const _hoisted_3 = { class: "nut-cell-group__warp" };
31
36
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
32
37
  return openBlock(), createElementBlock("view", {
33
38
  class: normalizeClass(_ctx.classes)
34
39
  }, [
35
40
  _ctx.$slots.title ? renderSlot(_ctx.$slots, "title", { key: 0 }) : _ctx.title ? (openBlock(), createElementBlock("view", _hoisted_1, toDisplayString(_ctx.title), 1)) : createCommentVNode("", true),
36
- createElementVNode("view", _hoisted_2, [
41
+ _ctx.$slots.desc ? renderSlot(_ctx.$slots, "desc", { key: 2 }) : _ctx.desc ? (openBlock(), createElementBlock("view", _hoisted_2, toDisplayString(_ctx.desc), 1)) : createCommentVNode("", true),
42
+ createElementVNode("view", _hoisted_3, [
37
43
  renderSlot(_ctx.$slots, "default")
38
44
  ])
39
45
  ], 2);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import { reactive, provide, computed, watch, h } from "vue";
7
7
  import { c as createComponent } from "./component.js";
8
- import { u as useExpose } from "./index3.js";
8
+ import { u as useExpose } from "./index.js";
9
9
  const { create, componentName } = createComponent("checkboxgroup");
10
10
  const _sfc_main = create({
11
11
  props: {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  /*!
21
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
21
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
22
22
  * (c) 2021 @jdf2e.
23
23
  * Released under the MIT License.
24
24
  */
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  /*!
21
- * @nutui/nutui v3.1.12-beta.0 Mon Nov 22 2021 20:58:07 GMT+0800 (中国标准时间)
21
+ * @nutui/nutui v3.1.13 Wed Dec 22 2021 20:42:09 GMT+0800 (GMT+08:00)
22
22
  * (c) 2021 @jdf2e.
23
23
  * Released under the MIT License.
24
24
  */
@@ -62,9 +62,8 @@ const _sfc_main = create({
62
62
  }
63
63
  },
64
64
  components: {},
65
- emits: ["input", "on-end", "on-restart", "on-paused"],
65
+ emits: ["input", "on-end", "on-restart", "on-paused", "update:modelValue"],
66
66
  setup(props, { emit, slots }) {
67
- console.log("componentName", componentName);
68
67
  const state = reactive({
69
68
  restTime: 0,
70
69
  p: 0,
@@ -130,7 +129,7 @@ const _sfc_main = create({
130
129
  if (!props.paused) {
131
130
  let restTime2 = end - (Date.now() - state.p + diffTime);
132
131
  state.restTime = restTime2;
133
- if (restTime2 < delay) {
132
+ if (restTime2 < 0) {
134
133
  state.restTime = 0;
135
134
  emit("on-end");
136
135
  clearInterval(state.timer);