@nutui/nutui 3.1.18-beta.0 → 3.1.19-beta.1

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 (149) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/LICENSE +1 -1
  3. package/README.md +6 -0
  4. package/dist/nutui.d.ts +39 -36
  5. package/dist/nutui.es.js +13149 -11288
  6. package/dist/nutui.umd.js +13156 -11381
  7. package/dist/packages/_es/ActionSheet.js +13 -19
  8. package/dist/packages/_es/Address.js +70 -55
  9. package/dist/packages/_es/Audio.js +13 -13
  10. package/dist/packages/_es/AudioOperate.js +125 -0
  11. package/dist/packages/_es/Avatar.js +4 -4
  12. package/dist/packages/_es/BackTop.js +69 -108
  13. package/dist/packages/_es/Badge.js +4 -4
  14. package/dist/packages/_es/Barrage.js +63 -56
  15. package/dist/packages/_es/Button.js +3 -3
  16. package/dist/packages/_es/Calendar.js +30 -702
  17. package/dist/packages/_es/CalendarItem.js +10 -0
  18. package/dist/packages/_es/Card.js +7 -6
  19. package/dist/packages/_es/Cascader.js +8 -8
  20. package/dist/packages/_es/Cell.js +27 -27
  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 +3 -3
  24. package/dist/packages/_es/CircleProgress.js +150 -41
  25. package/dist/packages/_es/Col.js +2 -2
  26. package/dist/packages/_es/Collapse.js +35 -9
  27. package/dist/packages/_es/CollapseItem.js +79 -38
  28. package/dist/packages/_es/CountDown.js +8 -6
  29. package/dist/packages/_es/CountUp.js +31 -30
  30. package/dist/packages/_es/DatePicker.js +81 -44
  31. package/dist/packages/_es/Dialog.js +7 -83
  32. package/dist/packages/_es/Divider.js +5 -5
  33. package/dist/packages/_es/Drag.js +93 -55
  34. package/dist/packages/_es/Elevator.js +75 -50
  35. package/dist/packages/_es/Empty.js +4 -4
  36. package/dist/packages/_es/FixedNav.js +6 -6
  37. package/dist/packages/_es/Form.js +11 -9
  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 +9 -27
  41. package/dist/packages/_es/Icon.js +2 -2
  42. package/dist/packages/_es/ImagePreview.js +14 -83
  43. package/dist/packages/_es/Indicator.js +4 -4
  44. package/dist/packages/_es/InfiniteLoading.js +94 -108
  45. package/dist/packages/_es/Input.js +297 -73
  46. package/dist/packages/_es/InputNumber.js +24 -17
  47. package/dist/packages/_es/Layout.js +2 -2
  48. package/dist/packages/_es/List.js +131 -0
  49. package/dist/packages/_es/Menu.js +16 -13
  50. package/dist/packages/_es/MenuItem.js +8 -8
  51. package/dist/packages/_es/Navbar.js +17 -12
  52. package/dist/packages/_es/NoticeBar.js +47 -39
  53. package/dist/packages/_es/Notify.js +28 -163
  54. package/dist/packages/_es/NumberKeyboard.js +4 -4
  55. package/dist/packages/_es/OldPicker.js +486 -0
  56. package/dist/packages/_es/OverLay.js +6 -26
  57. package/dist/packages/_es/Pagination.js +8 -8
  58. package/dist/packages/_es/Picker.js +192 -163
  59. package/dist/packages/_es/Popover.js +155 -30
  60. package/dist/packages/_es/Popup.js +7 -70
  61. package/dist/packages/_es/Price.js +18 -6
  62. package/dist/packages/_es/Progress.js +29 -27
  63. package/dist/packages/_es/PullRefresh.js +363 -0
  64. package/dist/packages/_es/Radio.js +4 -4
  65. package/dist/packages/_es/RadioGroup.js +2 -2
  66. package/dist/packages/_es/Range.js +169 -46
  67. package/dist/packages/_es/Rate.js +17 -20
  68. package/dist/packages/_es/Row.js +2 -2
  69. package/dist/packages/_es/SearchBar.js +9 -7
  70. package/dist/packages/_es/ShortPassword.js +90 -68
  71. package/dist/packages/_es/SideNavBar.js +6 -17
  72. package/dist/packages/_es/SideNavBarItem.js +2 -2
  73. package/dist/packages/_es/Signature.js +70 -70
  74. package/dist/packages/_es/Skeleton.js +9 -12
  75. package/dist/packages/_es/Sku.js +40 -31
  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 +29 -24
  79. package/dist/packages/_es/SubSideNavBar.js +2 -2
  80. package/dist/packages/_es/Swipe.js +40 -27
  81. package/dist/packages/_es/Swiper.js +32 -14
  82. package/dist/packages/_es/SwiperItem.js +2 -2
  83. package/dist/packages/_es/Switch.js +4 -4
  84. package/dist/packages/_es/TabPane.js +2 -2
  85. package/dist/packages/_es/Tabbar.js +4 -4
  86. package/dist/packages/_es/TabbarItem.js +28 -23
  87. package/dist/packages/_es/Table.js +14 -14
  88. package/dist/packages/_es/Tabs.js +19 -15
  89. package/dist/packages/_es/Tag.js +14 -8
  90. package/dist/packages/_es/TextArea.js +49 -15
  91. package/dist/packages/_es/TimeDetail.js +5 -4
  92. package/dist/packages/_es/TimePannel.js +4 -4
  93. package/dist/packages/_es/TimeSelect.js +9 -8
  94. package/dist/packages/_es/Toast.js +42 -171
  95. package/dist/packages/_es/Uploader.js +108 -139
  96. package/dist/packages/_es/Video.js +14 -10
  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 +45 -7
  100. package/dist/packages/_es/index.taro.js +719 -0
  101. package/dist/packages/_es/index2.js +2 -2
  102. package/dist/packages/_es/index3.js +57 -29
  103. package/dist/packages/_es/index4.js +414 -57
  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/use-lock-scroll.js +23 -0
  107. package/dist/packages/_es/util.js +2 -2
  108. package/dist/packages/badge/index.scss +11 -13
  109. package/dist/packages/button/index.scss +1 -0
  110. package/dist/packages/calendar/index.scss +9 -4
  111. package/dist/packages/calendaritem/index.scss +0 -207
  112. package/dist/packages/cell/index.scss +6 -6
  113. package/dist/packages/checkbox/index.scss +4 -3
  114. package/dist/packages/collapseitem/index.scss +21 -11
  115. package/dist/packages/countdown/index.scss +3 -1
  116. package/dist/packages/divider/index.scss +8 -8
  117. package/dist/packages/elevator/index.scss +36 -36
  118. package/dist/packages/formitem/index.scss +15 -8
  119. package/dist/packages/indicator/index.scss +1 -1
  120. package/dist/packages/input/index.scss +70 -24
  121. package/dist/packages/inputnumber/index.scss +4 -2
  122. package/dist/packages/list/index.scss +24 -0
  123. package/dist/packages/menu/index.scss +3 -3
  124. package/dist/packages/navbar/index.scss +28 -8
  125. package/dist/packages/noticebar/index.scss +7 -8
  126. package/dist/packages/notify/index.scss +9 -0
  127. package/dist/packages/numberkeyboard/index.scss +22 -21
  128. package/dist/packages/oldpicker/index.scss +131 -0
  129. package/dist/packages/picker/index.scss +38 -32
  130. package/dist/packages/progress/index.scss +6 -5
  131. package/dist/packages/radio/index.scss +7 -6
  132. package/dist/packages/range/index.scss +109 -2
  133. package/dist/packages/searchbar/index.scss +7 -7
  134. package/dist/packages/sidenavbaritem/index.scss +5 -5
  135. package/dist/packages/step/index.scss +29 -29
  136. package/dist/packages/subsidenavbar/index.scss +10 -8
  137. package/dist/packages/tabbaritem/index.scss +15 -0
  138. package/dist/packages/timedetail/index.scss +13 -13
  139. package/dist/packages/timepannel/index.scss +7 -7
  140. package/dist/packages/timeselect/index.scss +3 -3
  141. package/dist/packages/uploader/index.scss +6 -6
  142. package/dist/style.css +1 -1
  143. package/dist/styles/themes/default.scss +64 -62
  144. package/dist/styles/themes/jdt.scss +91 -0
  145. package/dist/styles/variables-jdt.scss +728 -0
  146. package/dist/styles/variables.scss +250 -44
  147. package/package.json +2 -1
  148. package/dist/packages/_es/raf.js +0 -19
  149. package/dist/styles/themes/jdd.scss +0 -2
@@ -19,12 +19,13 @@ var __publicField = (obj, key, value) => {
19
19
  return value;
20
20
  };
21
21
  /*!
22
- * @nutui/nutui v3.1.18-beta.0 Tue Mar 08 2022 10:41:31 GMT+0800 (中国标准时间)
23
- * (c) 2021 @jdf2e.
22
+ * @nutui/nutui v3.1.19-beta.1 Sat Apr 02 2022 16:26:37 GMT+0800 (中国标准时间)
23
+ * (c) 2022 @jdf2e.
24
24
  * Released under the MIT License.
25
25
  */
26
- import { reactive, computed, resolveComponent, openBlock, createElementBlock, normalizeClass, renderSlot, Fragment, createCommentVNode, renderList, createElementVNode, toDisplayString, createVNode, createBlock, createTextVNode } from "vue";
26
+ import { reactive, computed, resolveComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createBlock, createCommentVNode, Fragment, renderList, createElementVNode, toDisplayString, createVNode, createTextVNode } from "vue";
27
27
  import { c as createComponent } from "./component.js";
28
+ import Taro from "@tarojs/taro";
28
29
  import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
29
30
  class UploadOptions {
30
31
  constructor() {
@@ -116,17 +117,26 @@ class FileItem {
116
117
  __publicField(this, "status", "ready");
117
118
  __publicField(this, "message", "\u51C6\u5907\u5B8C\u6210");
118
119
  __publicField(this, "uid", new Date().getTime().toString());
119
- __publicField(this, "name");
120
120
  __publicField(this, "url");
121
+ __publicField(this, "path");
122
+ __publicField(this, "name");
121
123
  __publicField(this, "type");
122
124
  __publicField(this, "percentage", 0);
123
- __publicField(this, "formData", new FormData());
125
+ __publicField(this, "formData", {});
124
126
  }
125
127
  }
126
128
  const _sfc_main = create({
127
129
  props: {
128
130
  name: { type: String, default: "file" },
129
131
  url: { type: String, default: "" },
132
+ sizeType: {
133
+ type: Array,
134
+ default: () => ["original", "compressed"]
135
+ },
136
+ sourceType: {
137
+ type: Array,
138
+ default: () => ["album", "camera"]
139
+ },
130
140
  timeout: { type: [Number, String], default: 1e3 * 30 },
131
141
  fileList: { type: Array, default: () => [] },
132
142
  isPreview: { type: Boolean, default: true },
@@ -135,7 +145,7 @@ const _sfc_main = create({
135
145
  method: { type: String, default: "post" },
136
146
  capture: { type: Boolean, default: false },
137
147
  maximize: { type: [Number, String], default: Number.MAX_VALUE },
138
- maximum: { type: [Number, String], default: 1 },
148
+ maximum: { type: [Number, String], default: 9 },
139
149
  clearInput: { type: Boolean, default: true },
140
150
  accept: { type: String, default: "*" },
141
151
  headers: { type: Object, default: {} },
@@ -143,8 +153,6 @@ const _sfc_main = create({
143
153
  uploadIcon: { type: String, default: "photograph" },
144
154
  uploadIconSize: { type: [String, Number], default: "" },
145
155
  xhrState: { type: [Number, String], default: 200 },
146
- withCredentials: { type: Boolean, default: false },
147
- multiple: { type: Boolean, default: false },
148
156
  disabled: { type: Boolean, default: false },
149
157
  autoUpload: { type: Boolean, default: true },
150
158
  beforeUpload: {
@@ -179,97 +187,101 @@ const _sfc_main = create({
179
187
  [prefixCls]: true
180
188
  };
181
189
  });
182
- const clearInput = (el) => {
183
- el.value = "";
190
+ const chooseImage = () => {
191
+ if (props.disabled) {
192
+ return;
193
+ }
194
+ Taro.chooseImage({
195
+ count: props.maximum * 1 - props.fileList.length,
196
+ sizeType: props.sizeType,
197
+ sourceType: props.sourceType,
198
+ success: onChange
199
+ });
184
200
  };
185
201
  const fileItemClick = (fileItem) => {
186
202
  emit("file-item-click", { fileItem });
187
203
  };
188
- const executeUpload = (fileItem, index2) => {
204
+ const executeUpload = (fileItem, index) => {
189
205
  const uploadOption = new UploadOptions();
206
+ uploadOption.name = props.name;
190
207
  uploadOption.url = props.url;
208
+ for (const [key, value] of Object.entries(props.data)) {
209
+ fileItem.formData[key] = value;
210
+ }
191
211
  uploadOption.formData = fileItem.formData;
192
- uploadOption.timeout = props.timeout * 1;
193
212
  uploadOption.method = props.method;
194
- uploadOption.xhrState = props.xhrState;
195
213
  uploadOption.headers = props.headers;
196
- uploadOption.withCredentials = props.withCredentials;
214
+ uploadOption.taroFilePath = fileItem.path;
197
215
  uploadOption.onStart = (option) => {
198
216
  fileItem.status = "ready";
199
217
  fileItem.message = "\u51C6\u5907\u4E0A\u4F20";
200
- clearUploadQueue(index2);
218
+ clearUploadQueue(index);
201
219
  emit("start", option);
202
220
  };
203
221
  uploadOption.onProgress = (event, option) => {
204
222
  fileItem.status = "uploading";
205
223
  fileItem.message = "\u4E0A\u4F20\u4E2D";
206
- fileItem.percentage = (event.loaded / event.total * 100).toFixed(0);
224
+ fileItem.percentage = event.progress;
207
225
  emit("progress", { event, option, percentage: fileItem.percentage });
208
226
  };
209
- uploadOption.onSuccess = (responseText, option) => {
227
+ uploadOption.onSuccess = (data, option) => {
210
228
  fileItem.status = "success";
211
229
  fileItem.message = "\u4E0A\u4F20\u6210\u529F";
212
230
  emit("success", {
213
- responseText,
231
+ data,
214
232
  option,
215
233
  fileItem
216
234
  });
217
235
  emit("update:fileList", fileList);
218
236
  };
219
- uploadOption.onFailure = (responseText, option) => {
237
+ uploadOption.onFailure = (data, option) => {
220
238
  fileItem.status = "error";
221
239
  fileItem.message = "\u4E0A\u4F20\u5931\u8D25";
222
240
  emit("failure", {
223
- responseText,
241
+ data,
224
242
  option,
225
243
  fileItem
226
244
  });
227
245
  };
228
246
  let task = new Uploader(uploadOption);
229
247
  if (props.autoUpload) {
230
- task.upload();
248
+ task.uploadTaro(Taro.uploadFile);
231
249
  } else {
232
250
  uploadQueue.push(new Promise((resolve, reject) => {
233
251
  resolve(task);
234
252
  }));
235
253
  }
236
254
  };
237
- const clearUploadQueue = (index2 = -1) => {
238
- if (index2 > -1) {
239
- uploadQueue.splice(index2, 1);
255
+ const clearUploadQueue = (index = -1) => {
256
+ if (index > -1) {
257
+ uploadQueue.splice(index, 1);
240
258
  } else {
241
259
  uploadQueue = [];
242
260
  }
243
261
  };
244
262
  const submit = () => {
245
263
  Promise.all(uploadQueue).then((res) => {
246
- res.forEach((i) => i.upload());
264
+ res.forEach((i) => i.uploadTaro(Taro.uploadFile));
247
265
  });
248
266
  };
249
267
  const readFile = (files) => {
250
- files.forEach((file, index2) => {
251
- const formData = new FormData();
252
- for (const [key, value] of Object.entries(props.data)) {
253
- formData.append(key, value);
254
- }
255
- formData.append(props.name, file);
268
+ const imgReg = /\.(png|jpeg|jpg|webp|gif)$/i;
269
+ files.forEach((file, index) => {
270
+ let fileType = file.type;
256
271
  const fileItem = reactive(new FileItem());
257
- fileItem.name = file.name;
272
+ if (!fileType && imgReg.test(file.path)) {
273
+ fileType = "image";
274
+ }
275
+ fileItem.path = file.path;
276
+ fileItem.name = file.path;
258
277
  fileItem.status = "ready";
259
- fileItem.type = file.type;
260
- fileItem.formData = formData;
261
278
  fileItem.message = "\u7B49\u5F85\u4E0A\u4F20";
262
- executeUpload(fileItem, index2);
263
- if (props.isPreview && file.type.includes("image")) {
264
- const reader = new FileReader();
265
- reader.onload = (event) => {
266
- fileItem.url = event.target.result;
267
- fileList.push(fileItem);
268
- };
269
- reader.readAsDataURL(file);
270
- } else {
271
- fileList.push(fileItem);
279
+ fileItem.type = fileType;
280
+ if (props.isPreview) {
281
+ fileItem.url = file.path;
272
282
  }
283
+ fileList.push(fileItem);
284
+ executeUpload(fileItem, index);
273
285
  });
274
286
  };
275
287
  const filterFiles = (files) => {
@@ -293,47 +305,39 @@ const _sfc_main = create({
293
305
  }
294
306
  return files;
295
307
  };
296
- const onDelete = (file, index2) => {
297
- clearUploadQueue(index2);
308
+ const onDelete = (file, index) => {
309
+ clearUploadQueue(index);
298
310
  if (props.beforeDelete(file, fileList)) {
299
- fileList.splice(index2, 1);
311
+ fileList.splice(index, 1);
300
312
  emit("delete", {
301
313
  file,
302
314
  fileList,
303
- index: index2
315
+ index
304
316
  });
305
317
  } else {
306
318
  console.log("\u7528\u6237\u963B\u6B62\u4E86\u5220\u9664\uFF01");
307
319
  }
308
320
  };
309
- const onChange = (event) => {
310
- if (props.disabled) {
311
- return;
312
- }
313
- const $el = event.target;
314
- let { files } = $el;
321
+ const onChange = (res) => {
322
+ const { tempFilePaths, tempFiles } = res;
315
323
  if (props.beforeUpload) {
316
- props.beforeUpload(files).then((f) => {
317
- const _files = filterFiles(new Array().slice.call(f));
324
+ props.beforeUpload(tempFiles).then((f) => {
325
+ const _files = filterFiles(f);
318
326
  readFile(_files);
319
327
  });
320
328
  } else {
321
- const _files = filterFiles(new Array().slice.call(files));
329
+ const _files = filterFiles(tempFiles);
322
330
  readFile(_files);
323
331
  }
324
332
  emit("change", {
325
- fileList,
326
- event
333
+ fileList
327
334
  });
328
- if (props.clearInput) {
329
- clearInput($el);
330
- }
331
335
  };
332
336
  return {
333
- onChange,
334
337
  onDelete,
335
338
  fileList,
336
339
  classes,
340
+ chooseImage,
337
341
  fileItemClick,
338
342
  clearUploadQueue,
339
343
  submit
@@ -344,37 +348,34 @@ const _hoisted_1 = {
344
348
  key: 0,
345
349
  class: "nut-uploader__slot"
346
350
  };
347
- const _hoisted_2 = ["accept", "multiple", "name", "disabled"];
348
- const _hoisted_3 = ["accept", "multiple", "name", "disabled"];
349
- const _hoisted_4 = {
351
+ const _hoisted_2 = {
350
352
  key: 0,
351
353
  class: "nut-uploader__preview-img"
352
354
  };
353
- const _hoisted_5 = {
355
+ const _hoisted_3 = {
354
356
  key: 0,
355
357
  class: "nut-uploader__preview__progress"
356
358
  };
357
- const _hoisted_6 = { class: "nut-uploader__preview__progress__msg" };
358
- const _hoisted_7 = {
359
+ const _hoisted_4 = { class: "nut-uploader__preview__progress__msg" };
360
+ const _hoisted_5 = {
359
361
  key: 1,
360
362
  class: "nut-uploader__preview__progress"
361
363
  };
362
- const _hoisted_8 = { class: "nut-uploader__preview__progress__msg" };
363
- const _hoisted_9 = ["onClick", "src"];
364
- const _hoisted_10 = {
364
+ const _hoisted_6 = { class: "nut-uploader__preview__progress__msg" };
365
+ const _hoisted_7 = ["onClick", "src"];
366
+ const _hoisted_8 = {
365
367
  key: 4,
366
368
  class: "nut-uploader__preview-img__file"
367
369
  };
368
- const _hoisted_11 = ["onClick"];
369
- const _hoisted_12 = { class: "tips" };
370
- const _hoisted_13 = {
370
+ const _hoisted_9 = ["onClick"];
371
+ const _hoisted_10 = { class: "tips" };
372
+ const _hoisted_11 = {
371
373
  key: 1,
372
374
  class: "nut-uploader__preview-list"
373
375
  };
374
- const _hoisted_14 = ["onClick"];
375
- const _hoisted_15 = ["accept", "multiple", "name", "disabled"];
376
- const _hoisted_16 = ["accept", "multiple", "name", "disabled"];
376
+ const _hoisted_12 = ["onClick"];
377
377
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
378
+ const _component_nut_button = resolveComponent("nut-button");
378
379
  const _component_nut_icon = resolveComponent("nut-icon");
379
380
  const _component_nut_progress = resolveComponent("nut-progress");
380
381
  return openBlock(), createElementBlock("view", {
@@ -382,80 +383,64 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
382
383
  }, [
383
384
  _ctx.$slots.default ? (openBlock(), createElementBlock("view", _hoisted_1, [
384
385
  renderSlot(_ctx.$slots, "default"),
385
- _ctx.maximum - _ctx.fileList.length ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
386
- _ctx.capture ? (openBlock(), createElementBlock("input", {
387
- key: 0,
388
- class: "nut-uploader__input",
389
- type: "file",
390
- capture: "camera",
391
- accept: _ctx.accept,
392
- multiple: _ctx.multiple,
393
- name: _ctx.name,
394
- disabled: _ctx.disabled,
395
- onChange: _cache[0] || (_cache[0] = (...args) => _ctx.onChange && _ctx.onChange(...args))
396
- }, null, 40, _hoisted_2)) : (openBlock(), createElementBlock("input", {
397
- key: 1,
398
- class: "nut-uploader__input",
399
- type: "file",
400
- accept: _ctx.accept,
401
- multiple: _ctx.multiple,
402
- name: _ctx.name,
403
- disabled: _ctx.disabled,
404
- onChange: _cache[1] || (_cache[1] = (...args) => _ctx.onChange && _ctx.onChange(...args))
405
- }, null, 40, _hoisted_3))
406
- ], 64)) : createCommentVNode("", true)
386
+ _ctx.maximum - _ctx.fileList.length ? (openBlock(), createBlock(_component_nut_button, {
387
+ key: 0,
388
+ class: "nut-uploader__input",
389
+ onClick: _ctx.chooseImage
390
+ }, null, 8, ["onClick"])) : createCommentVNode("", true)
407
391
  ])) : createCommentVNode("", true),
408
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.fileList, (item, index2) => {
392
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.fileList, (item, index) => {
393
+ var _a;
409
394
  return openBlock(), createElementBlock("view", {
410
395
  class: normalizeClass(["nut-uploader__preview", [_ctx.listType]]),
411
396
  key: item.uid
412
397
  }, [
413
- _ctx.listType == "picture" && !_ctx.$slots.default ? (openBlock(), createElementBlock("view", _hoisted_4, [
414
- item.status == "ready" ? (openBlock(), createElementBlock("view", _hoisted_5, [
415
- createElementVNode("view", _hoisted_6, toDisplayString(item.message), 1)
416
- ])) : item.status != "success" ? (openBlock(), createElementBlock("view", _hoisted_7, [
398
+ _ctx.listType == "picture" && !_ctx.$slots.default ? (openBlock(), createElementBlock("view", _hoisted_2, [
399
+ item.status == "ready" ? (openBlock(), createElementBlock("view", _hoisted_3, [
400
+ createElementVNode("view", _hoisted_4, toDisplayString(item.message), 1)
401
+ ])) : item.status != "success" ? (openBlock(), createElementBlock("view", _hoisted_5, [
417
402
  createVNode(_component_nut_icon, {
418
403
  color: "#fff",
419
404
  name: item.status == "error" ? "failure" : "loading"
420
405
  }, null, 8, ["name"]),
421
- createElementVNode("view", _hoisted_8, toDisplayString(item.message), 1)
406
+ createElementVNode("view", _hoisted_6, toDisplayString(item.message), 1)
422
407
  ])) : createCommentVNode("", true),
423
408
  _ctx.isDeletable ? (openBlock(), createBlock(_component_nut_icon, {
424
409
  key: 2,
425
410
  color: "rgba(0,0,0,0.6)",
426
- onClick: ($event) => _ctx.onDelete(item, index2),
411
+ onClick: ($event) => _ctx.onDelete(item, index),
427
412
  class: "close",
428
413
  name: "failure"
429
414
  }, null, 8, ["onClick"])) : createCommentVNode("", true),
430
- item.type.includes("image") && item.url ? (openBlock(), createElementBlock("img", {
415
+ ((_a = item.type) == null ? void 0 : _a.includes("image")) && item.url ? (openBlock(), createElementBlock("img", {
431
416
  key: 3,
432
417
  class: "nut-uploader__preview-img__c",
433
418
  onClick: ($event) => _ctx.fileItemClick(item),
434
419
  src: item.url
435
- }, null, 8, _hoisted_9)) : (openBlock(), createElementBlock("view", _hoisted_10, [
420
+ }, null, 8, _hoisted_7)) : (openBlock(), createElementBlock("view", _hoisted_8, [
436
421
  createElementVNode("view", {
437
- onClick: ($event) => _ctx.fileItemClick(item),
438
- class: "nut-uploader__preview-img__file__name"
422
+ class: "nut-uploader__preview-img__file__name",
423
+ onClick: ($event) => _ctx.fileItemClick(item)
439
424
  }, [
440
425
  createVNode(_component_nut_icon, {
441
426
  color: "#808080",
442
427
  name: "link"
443
428
  }),
444
429
  createTextVNode("\xA0" + toDisplayString(item.name), 1)
445
- ], 8, _hoisted_11)
430
+ ], 8, _hoisted_9)
446
431
  ])),
447
- createElementVNode("view", _hoisted_12, toDisplayString(item.name), 1)
448
- ])) : _ctx.listType == "list" ? (openBlock(), createElementBlock("view", _hoisted_13, [
432
+ createElementVNode("view", _hoisted_10, toDisplayString(item.name), 1)
433
+ ])) : _ctx.listType == "list" ? (openBlock(), createElementBlock("view", _hoisted_11, [
449
434
  createElementVNode("view", {
450
- onClick: ($event) => _ctx.fileItemClick(item),
451
- class: normalizeClass(["nut-uploader__preview-img__file__name", [item.status]])
435
+ class: normalizeClass(["nut-uploader__preview-img__file__name", [item.status]]),
436
+ onClick: ($event) => _ctx.fileItemClick(item)
452
437
  }, [
453
438
  createVNode(_component_nut_icon, { name: "link" }),
454
439
  createTextVNode("\xA0" + toDisplayString(item.name), 1)
455
- ], 10, _hoisted_14),
440
+ ], 10, _hoisted_12),
456
441
  createVNode(_component_nut_icon, {
457
442
  class: "nut-uploader__preview-img__file__del",
458
- onClick: ($event) => _ctx.onDelete(item, index2),
443
+ onClick: ($event) => _ctx.onDelete(item, index),
459
444
  color: "#808080",
460
445
  name: "del"
461
446
  }, null, 8, ["onClick"]),
@@ -478,28 +463,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
478
463
  color: "#808080",
479
464
  name: _ctx.uploadIcon
480
465
  }, null, 8, ["size", "name"]),
481
- _ctx.capture ? (openBlock(), createElementBlock("input", {
482
- key: 0,
483
- class: "nut-uploader__input",
484
- type: "file",
485
- capture: "camera",
486
- accept: _ctx.accept,
487
- multiple: _ctx.multiple,
488
- name: _ctx.name,
489
- disabled: _ctx.disabled,
490
- onChange: _cache[2] || (_cache[2] = (...args) => _ctx.onChange && _ctx.onChange(...args))
491
- }, null, 40, _hoisted_15)) : (openBlock(), createElementBlock("input", {
492
- key: 1,
466
+ createVNode(_component_nut_button, {
493
467
  class: "nut-uploader__input",
494
- type: "file",
495
- accept: _ctx.accept,
496
- multiple: _ctx.multiple,
497
- name: _ctx.name,
498
- disabled: _ctx.disabled,
499
- onChange: _cache[3] || (_cache[3] = (...args) => _ctx.onChange && _ctx.onChange(...args))
500
- }, null, 40, _hoisted_16))
468
+ onClick: _ctx.chooseImage
469
+ }, null, 8, ["onClick"])
501
470
  ], 2)) : createCommentVNode("", true)
502
471
  ], 2);
503
472
  }
504
- var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
505
- export { FileItem, index as default };
473
+ var index_taro = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
474
+ export { FileItem, index_taro as default };
@@ -18,8 +18,8 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  /*!
21
- * @nutui/nutui v3.1.18-beta.0 Tue Mar 08 2022 10:41:31 GMT+0800 (中国标准时间)
22
- * (c) 2021 @jdf2e.
21
+ * @nutui/nutui v3.1.19-beta.1 Sat Apr 02 2022 16:26:37 GMT+0800 (中国标准时间)
22
+ * (c) 2022 @jdf2e.
23
23
  * Released under the MIT License.
24
24
  */
25
25
  import { reactive, ref, computed, watch, nextTick, onMounted, toRefs, openBlock, createElementBlock, createElementVNode, createCommentVNode, withDirectives, vShow, normalizeClass, toDisplayString, normalizeStyle, withModifiers } from "vue";
@@ -90,24 +90,26 @@ const _sfc_main = create({
90
90
  },
91
91
  showTouchMask: false
92
92
  });
93
- const root = ref();
93
+ const root = ref(null);
94
94
  const isDisabled = computed(() => {
95
95
  return props.options.disabled;
96
96
  });
97
- watch(props.source, (newValue) => {
97
+ watch(() => props.source, (newValue) => {
98
98
  if (newValue.src) {
99
99
  nextTick(() => {
100
100
  state.videoElm.load();
101
101
  });
102
102
  }
103
103
  });
104
- watch(props.options, (newValue) => {
105
- state.state.isMuted = newValue.muted ? newValue.muted : false;
104
+ watch(() => props.options, (newValue) => {
105
+ state.state.isMuted = newValue ? newValue.muted : false;
106
106
  }, { immediate: true });
107
107
  const init = () => {
108
108
  state.videoElm = root.value;
109
109
  if (props.options.autoplay) {
110
- state.videoElm.play();
110
+ setTimeout(() => {
111
+ state.videoElm.play();
112
+ }, 200);
111
113
  }
112
114
  if (props.options.touchPlay) {
113
115
  state.showTouchMask = true;
@@ -150,7 +152,9 @@ const _sfc_main = create({
150
152
  if (state.videoElm) {
151
153
  if (state.state.playing) {
152
154
  try {
153
- state.videoElm.play();
155
+ setTimeout(() => {
156
+ state.videoElm.play();
157
+ }, 200);
154
158
  state.videoElm.addEventListener("progress", () => {
155
159
  getLoadTime();
156
160
  });
@@ -347,5 +351,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
347
351
  ])
348
352
  ], 512);
349
353
  }
350
- var Video = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
351
- export { Video as default };
354
+ var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
355
+ export { index as default };
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.18-beta.0 Tue Mar 08 2022 10:41:31 GMT+0800 (中国标准时间)
3
- * (c) 2021 @jdf2e.
2
+ * @nutui/nutui v3.1.19-beta.1 Sat Apr 02 2022 16:26:37 GMT+0800 (中国标准时间)
3
+ * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import { provide, shallowReactive, getCurrentInstance, markRaw, isVNode, computed, h } from "vue";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.18-beta.0 Tue Mar 08 2022 10:41:31 GMT+0800 (中国标准时间)
3
- * (c) 2021 @jdf2e.
2
+ * @nutui/nutui v3.1.19-beta.1 Sat Apr 02 2022 16:26:37 GMT+0800 (中国标准时间)
3
+ * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import { defineComponent } from "vue";
@@ -1,11 +1,49 @@
1
1
  /*!
2
- * @nutui/nutui v3.1.18-beta.0 Tue Mar 08 2022 10:41:31 GMT+0800 (中国标准时间)
3
- * (c) 2021 @jdf2e.
2
+ * @nutui/nutui v3.1.19-beta.1 Sat Apr 02 2022 16:26:37 GMT+0800 (中国标准时间)
3
+ * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
6
- import { getCurrentInstance } from "vue";
7
- function useRouter() {
8
- const proxy = getCurrentInstance().proxy;
9
- return proxy.$router || null;
6
+ import { unref } from "vue";
7
+ function isWindow(val) {
8
+ return val === window;
10
9
  }
11
- export { useRouter as u };
10
+ const useTaroRect = (elementRef, Taro) => {
11
+ let element = unref(elementRef);
12
+ return new Promise((resolve) => {
13
+ if (Taro.getEnv() === "WEB") {
14
+ if (element && element.$el) {
15
+ element = element.$el;
16
+ }
17
+ if (isWindow(element)) {
18
+ const width = element.innerWidth;
19
+ const height = element.innerHeight;
20
+ resolve({
21
+ top: 0,
22
+ left: 0,
23
+ right: width,
24
+ bottom: height,
25
+ width,
26
+ height
27
+ });
28
+ }
29
+ if (element && element.getBoundingClientRect) {
30
+ resolve(element.getBoundingClientRect());
31
+ }
32
+ resolve({
33
+ top: 0,
34
+ left: 0,
35
+ right: 0,
36
+ bottom: 0,
37
+ width: 0,
38
+ height: 0
39
+ });
40
+ } else {
41
+ const query = Taro.createSelectorQuery();
42
+ query.select(`#${element.id}`) && query.select(`#${element.id}`).boundingClientRect();
43
+ query.exec(function(res) {
44
+ resolve(res[0]);
45
+ });
46
+ }
47
+ });
48
+ };
49
+ export { useTaroRect as u };