@nutui/nutui 4.0.0 → 4.0.1-2.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 (285) hide show
  1. package/CHANGELOG.md +226 -0
  2. package/README.md +34 -65
  3. package/dist/nutui.es.js +10 -17
  4. package/dist/nutui.js +16202 -0
  5. package/dist/nutui.umd.js +1 -7
  6. package/dist/packages/_es/ActionSheet.js +79 -94
  7. package/dist/packages/_es/Address.js +260 -345
  8. package/dist/packages/_es/AddressList.js +269 -354
  9. package/dist/packages/_es/Animate.js +46 -38
  10. package/dist/packages/_es/Audio.js +128 -180
  11. package/dist/packages/_es/AudioOperate.js +60 -52
  12. package/dist/packages/_es/Avatar.js +67 -75
  13. package/dist/packages/_es/AvatarGroup.js +23 -31
  14. package/dist/packages/_es/Backtop.js +59 -99
  15. package/dist/packages/_es/Badge.js +39 -46
  16. package/dist/packages/_es/Barrage.js +68 -145
  17. package/dist/packages/_es/Button.js +47 -66
  18. package/dist/packages/_es/Calendar.js +135 -152
  19. package/dist/packages/_es/CalendarItem.js +6 -6
  20. package/dist/packages/_es/Card.js +42 -56
  21. package/dist/packages/_es/Cascader.js +323 -433
  22. package/dist/packages/_es/Category.js +29 -39
  23. package/dist/packages/_es/CategoryPane.js +57 -83
  24. package/dist/packages/_es/Cell.js +56 -71
  25. package/dist/packages/_es/CellGroup.js +19 -27
  26. package/dist/packages/_es/Checkbox.js +109 -138
  27. package/dist/packages/_es/CheckboxGroup.js +38 -61
  28. package/dist/packages/_es/CircleProgress.js +67 -96
  29. package/dist/packages/_es/Col.js +23 -31
  30. package/dist/packages/_es/Collapse.js +37 -67
  31. package/dist/packages/_es/CollapseItem.js +91 -184
  32. package/dist/packages/_es/Comment.js +207 -279
  33. package/dist/packages/_es/ConfigProvider.js +38 -56
  34. package/dist/packages/_es/Countdown.js +100 -194
  35. package/dist/packages/_es/Countup.js +232 -428
  36. package/dist/packages/_es/DatePicker.js +169 -245
  37. package/dist/packages/_es/Dialog.js +163 -188
  38. package/dist/packages/_es/Divider.js +42 -40
  39. package/dist/packages/_es/Drag.js +70 -153
  40. package/dist/packages/_es/Ecard.js +64 -104
  41. package/dist/packages/_es/Elevator.js +144 -201
  42. package/dist/packages/_es/Ellipsis.js +95 -159
  43. package/dist/packages/_es/Empty.js +23 -39
  44. package/dist/packages/_es/FixedNav.js +93 -116
  45. package/dist/packages/_es/Form.js +108 -164
  46. package/dist/packages/_es/FormItem.js +48 -61
  47. package/dist/packages/_es/Grid.js +5 -6
  48. package/dist/packages/_es/GridItem.js +58 -84
  49. package/dist/packages/_es/Image.js +98 -88
  50. package/dist/packages/_es/ImagePreview.js +262 -392
  51. package/dist/packages/_es/Indicator.js +30 -34
  52. package/dist/packages/_es/InfiniteLoading.js +83 -117
  53. package/dist/packages/_es/Input.js +176 -223
  54. package/dist/packages/_es/InputNumber.js +81 -117
  55. package/dist/packages/_es/Interceptor-6e26b757.js +18 -0
  56. package/dist/packages/_es/Invoice.js +105 -113
  57. package/dist/packages/_es/Layout.js +3 -4
  58. package/dist/packages/_es/List.js +147 -89
  59. package/dist/packages/_es/Menu.js +96 -152
  60. package/dist/packages/_es/MenuItem.js +117 -153
  61. package/dist/packages/_es/Navbar.js +103 -119
  62. package/dist/packages/_es/Noticebar.js +207 -273
  63. package/dist/packages/_es/Notify.js +110 -147
  64. package/dist/packages/_es/NumberKeyboard.js +127 -202
  65. package/dist/packages/_es/Overlay.js +53 -66
  66. package/dist/packages/_es/Pagination.js +70 -100
  67. package/dist/packages/_es/Picker.js +276 -425
  68. package/dist/packages/_es/Popover.js +122 -225
  69. package/dist/packages/_es/Popup.js +4 -4
  70. package/dist/packages/_es/Price.js +47 -80
  71. package/dist/packages/_es/Progress.js +63 -79
  72. package/dist/packages/_es/PullRefresh.js +96 -157
  73. package/dist/packages/_es/Radio.js +4 -4
  74. package/dist/packages/_es/RadioGroup.js +3 -3
  75. package/dist/packages/_es/Range.js +205 -329
  76. package/dist/packages/_es/Rate.js +93 -122
  77. package/dist/packages/_es/Row.js +21 -27
  78. package/dist/packages/_es/Searchbar.js +130 -160
  79. package/dist/packages/_es/ShortPassword.js +69 -93
  80. package/dist/packages/_es/SideNavbar.js +49 -59
  81. package/dist/packages/_es/SideNavbarItem.js +22 -32
  82. package/dist/packages/_es/Signature.js +83 -128
  83. package/dist/packages/_es/Skeleton.js +110 -130
  84. package/dist/packages/_es/Sku.js +251 -326
  85. package/dist/packages/_es/Step.js +60 -69
  86. package/dist/packages/_es/Steps.js +26 -31
  87. package/dist/packages/_es/Sticky.js +4 -4
  88. package/dist/packages/_es/SubSideNavbar.js +52 -56
  89. package/dist/packages/_es/Swipe.js +84 -137
  90. package/dist/packages/_es/Swiper.js +175 -310
  91. package/dist/packages/_es/SwiperItem.js +28 -44
  92. package/dist/packages/_es/Switch.js +55 -67
  93. package/dist/packages/_es/TabPane.js +32 -20
  94. package/dist/packages/_es/Tabbar.js +41 -52
  95. package/dist/packages/_es/TabbarItem.js +61 -81
  96. package/dist/packages/_es/Table.js +110 -148
  97. package/dist/packages/_es/Tabs.js +284 -205
  98. package/dist/packages/_es/Tag.js +44 -61
  99. package/dist/packages/_es/Textarea.js +80 -124
  100. package/dist/packages/_es/TimeDetail.js +49 -57
  101. package/dist/packages/_es/TimePannel.js +35 -31
  102. package/dist/packages/_es/TimeSelect.js +47 -68
  103. package/dist/packages/_es/Toast.js +150 -203
  104. package/dist/packages/_es/Tour.js +139 -175
  105. package/dist/packages/_es/TrendArrow.js +57 -58
  106. package/dist/packages/_es/Uploader.js +235 -359
  107. package/dist/packages/_es/Video.js +191 -298
  108. package/dist/packages/_es/Watermark.js +84 -98
  109. package/dist/packages/_es/_plugin-vue_export-helper-dad06003.js +9 -0
  110. package/dist/packages/_es/common-d218746f.js +116 -0
  111. package/dist/packages/_es/component-234624bc.js +89 -0
  112. package/dist/packages/_es/index-14dfadc4.js +561 -0
  113. package/dist/packages/_es/index-192a3ef6.js +29 -0
  114. package/dist/packages/_es/index-360c5092.js +210 -0
  115. package/dist/packages/_es/index-496e6e05.js +24 -0
  116. package/dist/packages/_es/index-50eed3d9.js +7 -0
  117. package/dist/packages/_es/index-53ec2d4d.js +34 -0
  118. package/dist/packages/_es/index-fadb0974.js +8 -0
  119. package/dist/packages/_es/index.vue_vue_type_script_lang-1139b29a.js +43 -0
  120. package/dist/packages/_es/index.vue_vue_type_script_lang-43b774dd.js +77 -0
  121. package/dist/packages/_es/index.vue_vue_type_script_lang-f44c159d.js +110 -0
  122. package/dist/packages/_es/mountComponent-6d4ff200.js +23 -0
  123. package/dist/packages/_es/pxCheck-38173291.js +4 -0
  124. package/dist/packages/_es/raf-a74f1a06.js +16 -0
  125. package/dist/packages/_es/renderIcon-47498b32.js +5 -0
  126. package/dist/packages/actionsheet/index.scss +2 -0
  127. package/dist/packages/actionsheet/style.mjs +0 -2
  128. package/dist/packages/address/index.scss +5 -2
  129. package/dist/packages/address/style.mjs +0 -3
  130. package/dist/packages/addresslist/index.scss +3 -0
  131. package/dist/packages/addresslist/style.mjs +0 -2
  132. package/dist/packages/audio/index.scss +2 -0
  133. package/dist/packages/audio/style.mjs +0 -1
  134. package/dist/packages/audiooperate/index.scss +2 -0
  135. package/dist/packages/audiooperate/style.mjs +0 -1
  136. package/dist/packages/badge/index.scss +3 -0
  137. package/dist/packages/button/index.scss +1 -1
  138. package/dist/packages/calendar/index.scss +3 -0
  139. package/dist/packages/calendar/style.mjs +0 -3
  140. package/dist/packages/card/index.scss +3 -0
  141. package/dist/packages/card/style.mjs +0 -2
  142. package/dist/packages/cascader/index.scss +4 -0
  143. package/dist/packages/cascader/style.mjs +0 -5
  144. package/dist/packages/cellgroup/index.scss +1 -1
  145. package/dist/packages/checkbox/index.scss +41 -0
  146. package/dist/packages/col/index.scss +2 -2
  147. package/dist/packages/comment/index.scss +2 -0
  148. package/dist/packages/comment/style.mjs +0 -1
  149. package/dist/packages/datepicker/index.scss +1 -2
  150. package/dist/packages/datepicker/style.mjs +0 -3
  151. package/dist/packages/dialog/index.scss +11 -0
  152. package/dist/packages/dialog/style.mjs +0 -3
  153. package/dist/packages/ecard/index.scss +2 -0
  154. package/dist/packages/ecard/style.mjs +0 -1
  155. package/dist/packages/fixednav/index.scss +2 -0
  156. package/dist/packages/fixednav/style.mjs +0 -1
  157. package/dist/packages/form/index.scss +1 -2
  158. package/dist/packages/form/style.mjs +0 -1
  159. package/dist/packages/formitem/index.scss +3 -0
  160. package/dist/packages/formitem/style.mjs +0 -1
  161. package/dist/packages/imagepreview/index.scss +5 -5
  162. package/dist/packages/imagepreview/style.mjs +0 -5
  163. package/dist/packages/input/index.scss +13 -13
  164. package/dist/packages/invoice/index.scss +6 -0
  165. package/dist/packages/invoice/style.mjs +0 -7
  166. package/dist/packages/list/index.scss +8 -8
  167. package/dist/packages/menuitem/index.scss +9 -10
  168. package/dist/packages/menuitem/style.mjs +0 -2
  169. package/dist/packages/navbar/index.scss +0 -1
  170. package/dist/packages/noticebar/index.scss +12 -2
  171. package/dist/packages/notify/index.scss +2 -0
  172. package/dist/packages/notify/style.mjs +0 -2
  173. package/dist/packages/numberkeyboard/index.scss +2 -0
  174. package/dist/packages/numberkeyboard/style.mjs +0 -2
  175. package/dist/packages/picker/index.scss +4 -9
  176. package/dist/packages/picker/style.mjs +0 -2
  177. package/dist/packages/popover/index.scss +2 -0
  178. package/dist/packages/popover/style.mjs +0 -2
  179. package/dist/packages/popup/index.scss +2 -0
  180. package/dist/packages/popup/style.mjs +0 -1
  181. package/dist/packages/price/index.scss +5 -10
  182. package/dist/packages/rate/index.scss +6 -9
  183. package/dist/packages/searchbar/index.scss +4 -0
  184. package/dist/packages/shortpassword/index.scss +18 -0
  185. package/dist/packages/shortpassword/style.mjs +0 -2
  186. package/dist/packages/signature/index.scss +2 -0
  187. package/dist/packages/signature/style.mjs +0 -1
  188. package/dist/packages/skeleton/index.scss +2 -0
  189. package/dist/packages/skeleton/style.mjs +0 -1
  190. package/dist/packages/sku/index.scss +4 -0
  191. package/dist/packages/sku/style.mjs +0 -4
  192. package/dist/packages/tabbaritem/index.scss +2 -0
  193. package/dist/packages/tabbaritem/style.mjs +0 -1
  194. package/dist/packages/tabs/index.scss +36 -2
  195. package/dist/packages/tabs/style.mjs +0 -1
  196. package/dist/packages/textarea/index.scss +2 -0
  197. package/dist/packages/timeselect/index.scss +2 -0
  198. package/dist/packages/timeselect/style.mjs +0 -2
  199. package/dist/packages/tour/index.scss +2 -0
  200. package/dist/packages/tour/style.mjs +0 -3
  201. package/dist/packages/uploader/index.scss +10 -2
  202. package/dist/packages/uploader/style.mjs +0 -2
  203. package/dist/resolver/index.d.ts +6 -0
  204. package/dist/resolver/index.js +1 -0
  205. package/dist/resolver/index.mjs +24 -0
  206. package/dist/resolver/package.json +20 -0
  207. package/dist/smartips/web-types.json +114 -15
  208. package/dist/style.css +1 -1
  209. package/dist/styles/themes/default.scss +155 -52
  210. package/dist/styles/themes/jdb.scss +155 -52
  211. package/dist/styles/themes/jddkh.scss +155 -52
  212. package/dist/styles/themes/jdt.scss +155 -52
  213. package/dist/styles/variables-jdb.scss +9 -1
  214. package/dist/styles/variables-jddkh.scss +9 -1
  215. package/dist/styles/variables-jdt.scss +9 -1
  216. package/dist/styles/variables.scss +8 -0
  217. package/dist/types/__VUE/address/index.vue.d.ts +2 -1
  218. package/dist/types/__VUE/addresslist/components/GeneralShell.vue.d.ts +1 -1
  219. package/dist/types/__VUE/addresslist/components/ItemContents.vue.d.ts +1 -1
  220. package/dist/types/__VUE/addresslist/index.vue.d.ts +1 -1
  221. package/dist/types/__VUE/animate/index.vue.d.ts +6 -0
  222. package/dist/types/__VUE/audiooperate/index.vue.d.ts +4 -4
  223. package/dist/types/__VUE/badge/index.vue.d.ts +9 -0
  224. package/dist/types/__VUE/button/type.d.ts +1 -0
  225. package/dist/types/__VUE/calendaritem/type.d.ts +1 -0
  226. package/dist/types/__VUE/collapse/index.vue.d.ts +31 -5
  227. package/dist/types/__VUE/collapseitem/index.vue.d.ts +117 -11
  228. package/dist/types/__VUE/configprovider/index.vue.d.ts +2 -2
  229. package/dist/types/__VUE/datepicker/index.vue.d.ts +1 -1
  230. package/dist/types/__VUE/dialog/index.d.ts +1 -0
  231. package/dist/types/__VUE/dialog/index.vue.d.ts +1 -0
  232. package/dist/types/__VUE/grid/index.vue.d.ts +1 -1
  233. package/dist/types/__VUE/image/index.vue.d.ts +14 -3
  234. package/dist/types/__VUE/imagepreview/imagePreviewItem.vue.d.ts +9 -0
  235. package/dist/types/__VUE/imagepreview/index.vue.d.ts +1 -1
  236. package/dist/types/__VUE/input/index.vue.d.ts +27 -2
  237. package/dist/types/__VUE/list/index.vue.d.ts +42 -13
  238. package/dist/types/__VUE/list/type.d.ts +13 -0
  239. package/dist/types/__VUE/menu/index.vue.d.ts +0 -2
  240. package/dist/types/__VUE/menuitem/index.vue.d.ts +9 -17
  241. package/dist/types/__VUE/navbar/index.vue.d.ts +1 -1
  242. package/dist/types/__VUE/noticebar/index.vue.d.ts +5 -2
  243. package/dist/types/__VUE/picker/common.d.ts +2 -0
  244. package/dist/types/__VUE/picker/usePicker.d.ts +1 -1
  245. package/dist/types/__VUE/price/index.vue.d.ts +9 -0
  246. package/dist/types/__VUE/rate/index.vue.d.ts +110 -3
  247. package/dist/types/__VUE/row/index.vue.d.ts +1 -1
  248. package/dist/types/__VUE/searchbar/index.vue.d.ts +121 -5
  249. package/dist/types/__VUE/skeleton/index.vue.d.ts +2 -2
  250. package/dist/types/__VUE/swiper/index.vue.d.ts +9 -2
  251. package/dist/types/__VUE/switch/index.vue.d.ts +1 -0
  252. package/dist/types/__VUE/table/common.d.ts +55 -2
  253. package/dist/types/__VUE/tabpane/index.vue.d.ts +1 -4
  254. package/dist/types/__VUE/tabs/hooks.d.ts +12 -0
  255. package/dist/types/__VUE/tabs/index.vue.d.ts +35 -5
  256. package/dist/types/__VUE/tabs/types.d.ts +12 -0
  257. package/dist/types/__VUE/timeselect/index.vue.d.ts +1 -1
  258. package/dist/types/__VUE/toast/index.vue.d.ts +11 -4
  259. package/dist/types/__VUE/uploader/type.d.ts +2 -1
  260. package/dist/types/__VUE/watermark/index.vue.d.ts +1 -1
  261. package/dist/types/index.d.ts +1 -2
  262. package/dist/types/resolver/index.d.ts +6 -0
  263. package/dist/types/utils/date.d.ts +4 -0
  264. package/dist/types/utils/useTaroRect/index.d.ts +1 -1
  265. package/dist/types/utils/util.d.ts +1 -1
  266. package/package.json +13 -6
  267. package/dist/packages/_es/_plugin-vue_export-helper-cc2b3d55.js +0 -10
  268. package/dist/packages/_es/common-b9a5e726.js +0 -145
  269. package/dist/packages/_es/component-81a4c1d0.js +0 -145
  270. package/dist/packages/_es/index-29892cda.js +0 -33
  271. package/dist/packages/_es/index-2ae3ae87.js +0 -846
  272. package/dist/packages/_es/index-43c34ac6.js +0 -30
  273. package/dist/packages/_es/index-54d03fc1.js +0 -8
  274. package/dist/packages/_es/index-79c5dc33.js +0 -10
  275. package/dist/packages/_es/index-7a7385e4.js +0 -67
  276. package/dist/packages/_es/index-991c279f.js +0 -244
  277. package/dist/packages/_es/index.vue_vue_type_script_lang-22dfc112.js +0 -46
  278. package/dist/packages/_es/index.vue_vue_type_script_lang-442e4704.js +0 -98
  279. package/dist/packages/_es/index.vue_vue_type_script_lang-cc5c4086.js +0 -151
  280. package/dist/packages/_es/interceptor-956b24fc.js +0 -29
  281. package/dist/packages/_es/mountComponent-1ece4110.js +0 -39
  282. package/dist/packages/_es/pxCheck-c6b9f6b7.js +0 -6
  283. package/dist/packages/_es/raf-729dad54.js +0 -25
  284. package/dist/packages/_es/renderIcon-3d0fd47c.js +0 -9
  285. /package/dist/types/utils/{interceptor.d.ts → Interceptor.d.ts} +0 -0
@@ -1,9 +1,20 @@
1
- import { toRefs, reactive, computed, openBlock, createElementBlock, createElementVNode, normalizeClass, renderSlot } from "vue";
2
- import { c as createComponent } from "./component-81a4c1d0.js";
3
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-cc2b3d55.js";
1
+ var f = Object.defineProperty, k = Object.defineProperties;
2
+ var v = Object.getOwnPropertyDescriptors;
3
+ var r = Object.getOwnPropertySymbols;
4
+ var y = Object.prototype.hasOwnProperty, C = Object.prototype.propertyIsEnumerable;
5
+ var c = (e, t, o) => t in e ? f(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, p = (e, t) => {
6
+ for (var o in t || (t = {}))
7
+ y.call(t, o) && c(e, o, t[o]);
8
+ if (r)
9
+ for (var o of r(t))
10
+ C.call(t, o) && c(e, o, t[o]);
11
+ return e;
12
+ }, u = (e, t) => k(e, v(t));
13
+ import { toRefs as d, reactive as $, computed as S, openBlock as _, createElementBlock as g, createElementVNode as h, normalizeClass as B, normalizeStyle as N, renderSlot as w } from "vue";
14
+ import { c as z } from "./component-234624bc.js";
15
+ import { _ as E } from "./_plugin-vue_export-helper-dad06003.js";
4
16
  import "../locale/lang";
5
- const { componentName, create } = createComponent("animate");
6
- const _sfc_main = create({
17
+ const { componentName: b, create: D } = z("animate"), R = D({
7
18
  props: {
8
19
  type: {
9
20
  type: String,
@@ -15,47 +26,44 @@ const _sfc_main = create({
15
26
  },
16
27
  loop: {
17
28
  type: Boolean,
18
- default: false
29
+ default: !1
30
+ },
31
+ duration: {
32
+ type: [String, Number]
19
33
  }
20
34
  },
21
35
  emits: ["click"],
22
- setup(props, { emit }) {
23
- const { type, loop, action } = toRefs(props);
24
- const state = reactive({
25
- clicked: false
26
- });
27
- let classes = computed(() => {
28
- const prefixCls = componentName;
29
- return {
30
- "nut-animate__container": true,
31
- [`${prefixCls}-${type.value}`]: action.value === "initial" || state.clicked ? type.value : false,
32
- loop: loop.value
33
- };
36
+ setup(e, { emit: t }) {
37
+ const { type: o, loop: n, action: l } = d(e), a = $({
38
+ clicked: !1
34
39
  });
35
- const handleClick = (event) => {
36
- state.clicked = true;
37
- if (!loop.value) {
38
- setTimeout(() => {
39
- state.clicked = false;
40
- }, 1e3);
41
- }
42
- emit("click", event);
40
+ let i = S(() => ({
41
+ "nut-animate__container": !0,
42
+ [`${b}-${o.value}`]: l.value === "initial" || a.clicked ? o.value : !1,
43
+ loop: n.value
44
+ }));
45
+ const m = (s) => {
46
+ a.clicked = !0, n.value || setTimeout(() => {
47
+ a.clicked = !1;
48
+ }, 1e3), t("click", s);
43
49
  };
44
- return { ...toRefs(state), classes, handleClick };
50
+ return u(p({}, d(a)), { classes: i, handleClick: m });
45
51
  }
46
- });
47
- const _hoisted_1 = { class: "nut-animate" };
48
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
49
- return openBlock(), createElementBlock("view", _hoisted_1, [
50
- createElementVNode("view", {
51
- class: normalizeClass(_ctx.classes),
52
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleClick && _ctx.handleClick(...args))
52
+ }), T = { class: "nut-animate" };
53
+ function V(e, t, o, n, l, a) {
54
+ return _(), g("view", T, [
55
+ h("view", {
56
+ class: B(e.classes),
57
+ onClick: t[0] || (t[0] = (...i) => e.handleClick && e.handleClick(...i)),
58
+ style: N({
59
+ animationDuration: e.duration ? `${e.duration}ms` : void 0
60
+ })
53
61
  }, [
54
- renderSlot(_ctx.$slots, "default")
55
- ], 2)
62
+ w(e.$slots, "default")
63
+ ], 6)
56
64
  ]);
57
65
  }
58
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
66
+ const G = /* @__PURE__ */ E(R, [["render", V]]);
59
67
  export {
60
- index as default
68
+ G as default
61
69
  };
@@ -1,13 +1,24 @@
1
- import { ref, reactive, onMounted, watch, provide, toRefs, resolveComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, withCtx, createCommentVNode, normalizeClass, createBlock, renderSlot } from "vue";
2
- import { c as createComponent } from "./component-81a4c1d0.js";
3
- import { Service } from "@nutui/icons-vue";
4
- import Range from "./Range.js";
5
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-cc2b3d55.js";
1
+ var I = Object.defineProperty, z = Object.defineProperties;
2
+ var L = Object.getOwnPropertyDescriptors;
3
+ var C = Object.getOwnPropertySymbols;
4
+ var U = Object.prototype.hasOwnProperty, j = Object.prototype.propertyIsEnumerable;
5
+ var M = (e, n, i) => n in e ? I(e, n, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[n] = i, g = (e, n) => {
6
+ for (var i in n || (n = {}))
7
+ U.call(n, i) && M(e, i, n[i]);
8
+ if (C)
9
+ for (var i of C(n))
10
+ j.call(n, i) && M(e, i, n[i]);
11
+ return e;
12
+ }, B = (e, n) => z(e, L(n));
13
+ import { ref as q, reactive as A, onMounted as F, watch as G, provide as H, toRefs as b, resolveComponent as _, openBlock as s, createElementBlock as p, createElementVNode as l, toDisplayString as E, createVNode as J, withCtx as K, createCommentVNode as m, normalizeClass as O, createBlock as V, renderSlot as w } from "vue";
14
+ import { c as Q } from "./component-234624bc.js";
15
+ import { Service as W } from "@nutui/icons-vue";
16
+ import P from "./Range.js";
17
+ import { _ as X } from "./_plugin-vue_export-helper-dad06003.js";
6
18
  import "../locale/lang";
7
- import "./index-7a7385e4.js";
8
- import "./index-29892cda.js";
9
- const { componentName, create } = createComponent("audio");
10
- const _sfc_main = create({
19
+ import "./index-53ec2d4d.js";
20
+ import "./index-192a3ef6.js";
21
+ const { componentName: he, create: Y } = Q("audio"), Z = Y({
11
22
  props: {
12
23
  url: {
13
24
  type: String,
@@ -16,17 +27,17 @@ const _sfc_main = create({
16
27
  // 静音
17
28
  muted: {
18
29
  type: Boolean,
19
- default: false
30
+ default: !1
20
31
  },
21
32
  // 自动播放
22
33
  autoplay: {
23
34
  type: Boolean,
24
- default: false
35
+ default: !1
25
36
  },
26
37
  // 循环播放
27
38
  loop: {
28
39
  type: Boolean,
29
- default: false
40
+ default: !1
30
41
  },
31
42
  // 是否预加载音频
32
43
  preload: {
@@ -45,213 +56,150 @@ const _sfc_main = create({
45
56
  }
46
57
  },
47
58
  components: {
48
- Service,
49
- [Range.name]: Range
59
+ Service: W,
60
+ [P.name]: P
50
61
  },
51
62
  emits: ["fastBack", "play", "forward", "ended", "changeProgress", "mute", "can-play"],
52
- setup(props, { emit, slots }) {
53
- const audioRef = ref(null);
54
- const audioData = reactive({
63
+ setup(e, { emit: n, slots: i }) {
64
+ const u = q(null), t = A({
55
65
  currentTime: 0,
56
66
  currentDuration: "00:00:00",
57
67
  percent: 0,
58
68
  duration: "00:00:00",
59
69
  second: 0,
60
- hanMuted: props.muted,
61
- playing: props.autoplay,
62
- handPlaying: false
70
+ hanMuted: e.muted,
71
+ playing: e.autoplay,
72
+ handPlaying: !1
63
73
  });
64
- onMounted(() => {
65
- var arr = ["webkitVisibilityState", "visibilitychange"];
74
+ F(() => {
75
+ var o = ["webkitVisibilityState", "visibilitychange"];
66
76
  try {
67
- for (let i = 0; i < arr.length; i++) {
68
- document.addEventListener(arr[i], () => {
69
- if (document.hidden) {
70
- audioRef.value.pause();
71
- } else {
72
- if (audioData.playing) {
73
- setTimeout(() => {
74
- audioRef.value.play();
75
- }, 200);
76
- }
77
- }
77
+ for (let a = 0; a < o.length; a++)
78
+ document.addEventListener(o[a], () => {
79
+ document.hidden ? u.value.pause() : t.playing && setTimeout(() => {
80
+ u.value.play();
81
+ }, 200);
78
82
  });
79
- }
80
- } catch (e) {
81
- console.log(e.message);
83
+ } catch (a) {
84
+ console.log(a.message);
82
85
  }
83
86
  });
84
- const onCanplay = (e) => {
85
- const audioR = audioRef.value;
86
- if (props.autoplay) {
87
- if (audioR && audioR.paused) {
88
- audioR.play();
89
- }
90
- }
91
- audioData.second = audioR.duration;
92
- audioData.duration = formatSeconds(audioR.duration);
93
- emit("can-play", e);
94
- };
95
- const onTimeupdate = (e) => {
96
- audioData.currentTime = parseInt(e.target.currentTime);
97
- };
98
- const fastBack = () => {
99
- if (audioData.currentTime > 0) {
100
- audioData.currentTime--;
101
- }
102
- audioRef.value.currentTime = audioData.currentTime;
103
- emit("fastBack", audioData.currentTime);
104
- };
105
- const changeStatus = () => {
106
- const audioR = audioRef.value;
107
- if (audioData.playing) {
108
- audioR.pause();
109
- audioData.handPlaying = false;
110
- } else {
111
- audioR.play();
112
- audioData.handPlaying = true;
113
- }
114
- audioData.playing = !audioData.playing;
115
- emit("play", audioData.playing);
116
- };
117
- const forward = () => {
118
- audioData.currentTime++;
119
- audioRef.value.currentTime = audioData.currentTime;
120
- emit("forward", audioData.currentTime);
121
- };
122
- const handle = (val) => {
123
- audioData.currentDuration = formatSeconds(val);
124
- audioData.percent = val / audioData.second * 100;
125
- };
126
- const audioEnd = () => {
127
- audioData.playing = false;
128
- emit("ended");
129
- };
130
- const progressChange = (val) => {
131
- const ar = audioRef.value;
132
- ar.currentTime = audioData.second * val / 100;
133
- emit("changeProgress", ar.currentTime);
134
- };
135
- const handleMute = () => {
136
- audioData.hanMuted = !audioData.hanMuted;
137
- emit("mute", audioData.hanMuted);
138
- };
139
- const formatSeconds = (value) => {
140
- if (!value) {
87
+ const h = (o) => {
88
+ const a = u.value;
89
+ e.autoplay && a && a.paused && a.play(), t.second = a.duration, t.duration = S(a.duration), n("can-play", o);
90
+ }, y = (o) => {
91
+ t.currentTime = parseInt(o.target.currentTime);
92
+ }, d = () => {
93
+ t.currentTime > 0 && t.currentTime--, u.value.currentTime = t.currentTime, n("fastBack", t.currentTime);
94
+ }, r = () => {
95
+ const o = u.value;
96
+ t.playing ? (o.pause(), t.handPlaying = !1) : (o.play(), t.handPlaying = !0), t.playing = !t.playing, n("play", t.playing);
97
+ }, v = () => {
98
+ t.currentTime++, u.value.currentTime = t.currentTime, n("forward", t.currentTime);
99
+ }, R = (o) => {
100
+ t.currentDuration = S(o), t.percent = o / t.second * 100;
101
+ }, $ = () => {
102
+ t.playing = !1, n("ended");
103
+ }, D = (o) => {
104
+ const a = u.value;
105
+ a.currentTime = t.second * o / 100, n("changeProgress", a.currentTime);
106
+ }, T = () => {
107
+ t.hanMuted = !t.hanMuted, n("mute", t.hanMuted);
108
+ }, S = (o) => {
109
+ if (!o)
141
110
  return "00:00:00";
142
- }
143
- let time = parseInt(value);
144
- let hours = Math.floor(time / 3600);
145
- let minutes = Math.floor((time - hours * 3600) / 60);
146
- let seconds = time - hours * 3600 - minutes * 60;
147
- let result = "";
148
- result += ("0" + hours.toString()).slice(-2) + ":";
149
- result += ("0" + minutes.toString()).slice(-2) + ":";
150
- result += ("0" + seconds.toString()).slice(-2);
151
- return result;
111
+ let a = parseInt(o), f = Math.floor(a / 3600), k = Math.floor((a - f * 3600) / 60), N = a - f * 3600 - k * 60, c = "";
112
+ return c += ("0" + f.toString()).slice(-2) + ":", c += ("0" + k.toString()).slice(-2) + ":", c += ("0" + N.toString()).slice(-2), c;
152
113
  };
153
- watch(
154
- () => audioData.currentTime,
155
- (value) => {
156
- handle(value);
114
+ return G(
115
+ () => t.currentTime,
116
+ (o) => {
117
+ R(o);
157
118
  }
158
- );
159
- provide("audioParent", {
119
+ ), H("audioParent", {
160
120
  children: [],
161
- props,
162
- audioData,
163
- handleMute,
164
- forward,
165
- fastBack,
166
- changeStatus
121
+ props: e,
122
+ audioData: t,
123
+ handleMute: T,
124
+ forward: v,
125
+ fastBack: d,
126
+ changeStatus: r
127
+ }), B(g(g({}, b(e)), b(t)), {
128
+ audioRef: u,
129
+ fastBack: d,
130
+ forward: v,
131
+ changeStatus: r,
132
+ progressChange: D,
133
+ audioEnd: $,
134
+ onTimeupdate: y,
135
+ handleMute: T,
136
+ onCanplay: h,
137
+ slots: i
167
138
  });
168
- return {
169
- ...toRefs(props),
170
- ...toRefs(audioData),
171
- audioRef,
172
- fastBack,
173
- forward,
174
- changeStatus,
175
- progressChange,
176
- audioEnd,
177
- onTimeupdate,
178
- handleMute,
179
- onCanplay,
180
- slots
181
- };
182
139
  }
183
- });
184
- const _hoisted_1 = { class: "nut-audio" };
185
- const _hoisted_2 = {
140
+ }), x = { class: "nut-audio" }, ee = {
186
141
  key: 0,
187
142
  class: "nut-audio__progress"
188
- };
189
- const _hoisted_3 = { class: "nut-audio__time" };
190
- const _hoisted_4 = { class: "nut-audio__bar" };
191
- const _hoisted_5 = /* @__PURE__ */ createElementVNode("div", { class: "nut-audio__button--custom" }, null, -1);
192
- const _hoisted_6 = { class: "nut-audio__time" };
193
- const _hoisted_7 = {
143
+ }, ne = { class: "nut-audio__time" }, te = { class: "nut-audio__bar" }, oe = /* @__PURE__ */ l("div", { class: "nut-audio__button--custom" }, null, -1), ae = { class: "nut-audio__time" }, re = {
194
144
  key: 1,
195
145
  class: "nut-audio__icon"
196
- };
197
- const _hoisted_8 = ["controls", "src", "preload", "autoplay", "loop", "muted"];
198
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
199
- const _component_nut_range = resolveComponent("nut-range");
200
- const _component_Service = resolveComponent("Service");
201
- return openBlock(), createElementBlock("div", _hoisted_1, [
202
- _ctx.type == "progress" ? (openBlock(), createElementBlock("div", _hoisted_2, [
203
- createElementVNode("div", _hoisted_3, toDisplayString(_ctx.currentDuration), 1),
204
- createElementVNode("div", _hoisted_4, [
205
- createVNode(_component_nut_range, {
206
- modelValue: _ctx.percent,
207
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.percent = $event),
146
+ }, ie = ["controls", "src", "preload", "autoplay", "loop", "muted"];
147
+ function ue(e, n, i, u, t, h) {
148
+ const y = _("nut-range"), d = _("Service");
149
+ return s(), p("div", x, [
150
+ e.type == "progress" ? (s(), p("div", ee, [
151
+ l("div", ne, E(e.currentDuration), 1),
152
+ l("div", te, [
153
+ J(y, {
154
+ modelValue: e.percent,
155
+ "onUpdate:modelValue": n[0] || (n[0] = (r) => e.percent = r),
208
156
  "hidden-range": "",
209
- onChange: _ctx.progressChange,
157
+ onChange: e.progressChange,
210
158
  "inactive-color": "#cccccc",
211
159
  "active-color": "#fa2c19"
212
160
  }, {
213
- button: withCtx(() => [
214
- _hoisted_5
161
+ button: K(() => [
162
+ oe
215
163
  ]),
216
164
  _: 1
217
165
  }, 8, ["modelValue", "onChange"])
218
166
  ]),
219
- createElementVNode("div", _hoisted_6, toDisplayString(_ctx.duration), 1)
220
- ])) : createCommentVNode("", true),
221
- _ctx.type == "icon" ? (openBlock(), createElementBlock("div", _hoisted_7, [
222
- createElementVNode("div", {
223
- class: normalizeClass(["nut-audio__icon--box", _ctx.playing ? "nut-audio__icon--play" : "nut-audio__icon--stop"]),
224
- onClick: _cache[1] || (_cache[1] = (...args) => _ctx.changeStatus && _ctx.changeStatus(...args))
167
+ l("div", ae, E(e.duration), 1)
168
+ ])) : m("", !0),
169
+ e.type == "icon" ? (s(), p("div", re, [
170
+ l("div", {
171
+ class: O(["nut-audio__icon--box", e.playing ? "nut-audio__icon--play" : "nut-audio__icon--stop"]),
172
+ onClick: n[1] || (n[1] = (...r) => e.changeStatus && e.changeStatus(...r))
225
173
  }, [
226
- _ctx.playing ? (openBlock(), createBlock(_component_Service, {
174
+ e.playing ? (s(), V(d, {
227
175
  key: 0,
228
176
  class: "nut-icon-am-rotate nut-icon-am-infinite"
229
- })) : (openBlock(), createBlock(_component_Service, { key: 1 }))
177
+ })) : (s(), V(d, { key: 1 }))
230
178
  ], 2)
231
- ])) : createCommentVNode("", true),
232
- _ctx.type == "none" ? (openBlock(), createElementBlock("div", {
179
+ ])) : m("", !0),
180
+ e.type == "none" ? (s(), p("div", {
233
181
  key: 2,
234
- onClick: _cache[2] || (_cache[2] = (...args) => _ctx.changeStatus && _ctx.changeStatus(...args))
182
+ onClick: n[2] || (n[2] = (...r) => e.changeStatus && e.changeStatus(...r))
235
183
  }, [
236
- renderSlot(_ctx.$slots, "default")
237
- ])) : createCommentVNode("", true),
238
- _ctx.type != "none" ? renderSlot(_ctx.$slots, "default", { key: 3 }) : createCommentVNode("", true),
239
- createElementVNode("audio", {
184
+ w(e.$slots, "default")
185
+ ])) : m("", !0),
186
+ e.type != "none" ? w(e.$slots, "default", { key: 3 }) : m("", !0),
187
+ l("audio", {
240
188
  class: "audioMain",
241
- controls: _ctx.type == "controls",
189
+ controls: e.type == "controls",
242
190
  ref: "audioRef",
243
- src: _ctx.url,
244
- preload: _ctx.preload,
245
- autoplay: _ctx.autoplay,
246
- loop: _ctx.loop,
247
- onTimeupdate: _cache[3] || (_cache[3] = (...args) => _ctx.onTimeupdate && _ctx.onTimeupdate(...args)),
248
- onCanplay: _cache[4] || (_cache[4] = (...args) => _ctx.onCanplay && _ctx.onCanplay(...args)),
249
- onEnded: _cache[5] || (_cache[5] = (...args) => _ctx.audioEnd && _ctx.audioEnd(...args)),
250
- muted: _ctx.hanMuted
251
- }, null, 40, _hoisted_8)
191
+ src: e.url,
192
+ preload: e.preload,
193
+ autoplay: e.autoplay,
194
+ loop: e.loop,
195
+ onTimeupdate: n[3] || (n[3] = (...r) => e.onTimeupdate && e.onTimeupdate(...r)),
196
+ onCanplay: n[4] || (n[4] = (...r) => e.onCanplay && e.onCanplay(...r)),
197
+ onEnded: n[5] || (n[5] = (...r) => e.audioEnd && e.audioEnd(...r)),
198
+ muted: e.hanMuted
199
+ }, null, 40, ie)
252
200
  ]);
253
201
  }
254
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
202
+ const ve = /* @__PURE__ */ X(Z, [["render", ue]]);
255
203
  export {
256
- index as default
204
+ ve as default
257
205
  };
@@ -1,11 +1,22 @@
1
- import { inject, reactive, ref, useSlots, toRefs, resolveComponent, openBlock, createElementBlock, createBlock, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot } from "vue";
2
- import { c as createComponent } from "./component-81a4c1d0.js";
3
- import Button from "./Button.js";
4
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-cc2b3d55.js";
1
+ var v = Object.defineProperty, g = Object.defineProperties;
2
+ var b = Object.getOwnPropertyDescriptors;
3
+ var S = Object.getOwnPropertySymbols;
4
+ var w = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable;
5
+ var c = (t, e, o) => e in t ? v(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o, d = (t, e) => {
6
+ for (var o in e || (e = {}))
7
+ w.call(e, o) && c(t, o, e[o]);
8
+ if (S)
9
+ for (var o of S(e))
10
+ z.call(e, o) && c(t, o, e[o]);
11
+ return t;
12
+ }, $ = (t, e) => g(t, b(e));
13
+ import { inject as D, reactive as M, ref as N, useSlots as E, toRefs as B, resolveComponent as F, openBlock as a, createElementBlock as n, createBlock as l, withCtx as i, createTextVNode as p, toDisplayString as f, createCommentVNode as r, renderSlot as m } from "vue";
14
+ import { c as V } from "./component-234624bc.js";
15
+ import C from "./Button.js";
16
+ import { _ as j } from "./_plugin-vue_export-helper-dad06003.js";
5
17
  import "../locale/lang";
6
18
  import "@nutui/icons-vue";
7
- const { componentName, create, translate } = createComponent("audio-operate");
8
- const _sfc_main = create({
19
+ const { componentName: Q, create: P, translate: R } = V("audio-operate"), T = P({
9
20
  props: {
10
21
  // 展示的形式 back 倒退 play 开始 or 暂停 forward 快进 mute 静音
11
22
  type: {
@@ -14,91 +25,88 @@ const _sfc_main = create({
14
25
  }
15
26
  },
16
27
  components: {
17
- [Button.name]: Button
28
+ [C.name]: C
18
29
  },
19
30
  emits: ["click"],
20
- setup(props, { emit }) {
21
- const audio = inject("audioParent");
22
- const parent = reactive(audio);
23
- const customSlot = ref(useSlots().default);
24
- return { ...toRefs(props), ...toRefs(parent), customSlot, translate };
31
+ setup(t, { emit: e }) {
32
+ const o = D("audioParent"), y = M(o), k = N(E().default);
33
+ return $(d(d({}, B(t)), B(y)), { customSlot: k, translate: R });
25
34
  }
26
- });
27
- const _hoisted_1 = { class: "nut-audio-operate" };
28
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
29
- const _component_nut_button = resolveComponent("nut-button");
30
- return openBlock(), createElementBlock("div", _hoisted_1, [
31
- _ctx.type == "back" ? (openBlock(), createElementBlock("div", {
35
+ }), h = { class: "nut-audio-operate" };
36
+ function q(t, e, o, y, k, A) {
37
+ const u = F("nut-button");
38
+ return a(), n("div", h, [
39
+ t.type == "back" ? (a(), n("div", {
32
40
  key: 0,
33
41
  class: "nut-audio-operate-item",
34
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.fastBack && _ctx.fastBack(...args))
42
+ onClick: e[0] || (e[0] = (...s) => t.fastBack && t.fastBack(...s))
35
43
  }, [
36
- !_ctx.customSlot ? (openBlock(), createBlock(_component_nut_button, {
44
+ t.customSlot ? r("", !0) : (a(), l(u, {
37
45
  key: 0,
38
46
  type: "primary",
39
47
  size: "small"
40
48
  }, {
41
- default: withCtx(() => [
42
- createTextVNode(toDisplayString(_ctx.translate("back")), 1)
49
+ default: i(() => [
50
+ p(f(t.translate("back")), 1)
43
51
  ]),
44
52
  _: 1
45
- })) : createCommentVNode("", true),
46
- renderSlot(_ctx.$slots, "default")
47
- ])) : createCommentVNode("", true),
48
- _ctx.type == "play" ? (openBlock(), createElementBlock("div", {
53
+ })),
54
+ m(t.$slots, "default")
55
+ ])) : r("", !0),
56
+ t.type == "play" ? (a(), n("div", {
49
57
  key: 1,
50
58
  class: "nut-audio-operate-item",
51
- onClick: _cache[1] || (_cache[1] = (...args) => _ctx.changeStatus && _ctx.changeStatus(...args))
59
+ onClick: e[1] || (e[1] = (...s) => t.changeStatus && t.changeStatus(...s))
52
60
  }, [
53
- !_ctx.customSlot ? (openBlock(), createBlock(_component_nut_button, {
61
+ t.customSlot ? r("", !0) : (a(), l(u, {
54
62
  key: 0,
55
63
  type: "primary",
56
64
  size: "small"
57
65
  }, {
58
- default: withCtx(() => [
59
- createTextVNode(toDisplayString(!_ctx.audioData.playing ? `${_ctx.translate("start")}` : `${_ctx.translate("pause")}`), 1)
66
+ default: i(() => [
67
+ p(f(t.audioData.playing ? `${t.translate("pause")}` : `${t.translate("start")}`), 1)
60
68
  ]),
61
69
  _: 1
62
- })) : createCommentVNode("", true),
63
- renderSlot(_ctx.$slots, "default")
64
- ])) : createCommentVNode("", true),
65
- _ctx.type == "forward" ? (openBlock(), createElementBlock("div", {
70
+ })),
71
+ m(t.$slots, "default")
72
+ ])) : r("", !0),
73
+ t.type == "forward" ? (a(), n("div", {
66
74
  key: 2,
67
75
  class: "nut-audio-operate-item",
68
- onClick: _cache[2] || (_cache[2] = (...args) => _ctx.forward && _ctx.forward(...args))
76
+ onClick: e[2] || (e[2] = (...s) => t.forward && t.forward(...s))
69
77
  }, [
70
- !_ctx.customSlot ? (openBlock(), createBlock(_component_nut_button, {
78
+ t.customSlot ? r("", !0) : (a(), l(u, {
71
79
  key: 0,
72
80
  type: "primary",
73
81
  size: "small"
74
82
  }, {
75
- default: withCtx(() => [
76
- createTextVNode("快进")
83
+ default: i(() => [
84
+ p("快进")
77
85
  ]),
78
86
  _: 1
79
- })) : createCommentVNode("", true),
80
- renderSlot(_ctx.$slots, "default")
81
- ])) : createCommentVNode("", true),
82
- _ctx.type == "mute" ? (openBlock(), createElementBlock("div", {
87
+ })),
88
+ m(t.$slots, "default")
89
+ ])) : r("", !0),
90
+ t.type == "mute" ? (a(), n("div", {
83
91
  key: 3,
84
92
  class: "nut-audio-operate-item",
85
- onClick: _cache[3] || (_cache[3] = (...args) => _ctx.handleMute && _ctx.handleMute(...args))
93
+ onClick: e[3] || (e[3] = (...s) => t.handleMute && t.handleMute(...s))
86
94
  }, [
87
- !_ctx.customSlot ? (openBlock(), createBlock(_component_nut_button, {
95
+ t.customSlot ? r("", !0) : (a(), l(u, {
88
96
  key: 0,
89
- type: !_ctx.audioData.hanMuted ? "primary" : "default",
97
+ type: t.audioData.hanMuted ? "default" : "primary",
90
98
  size: "small"
91
99
  }, {
92
- default: withCtx(() => [
93
- createTextVNode(toDisplayString(_ctx.translate("mute")), 1)
100
+ default: i(() => [
101
+ p(f(t.translate("mute")), 1)
94
102
  ]),
95
103
  _: 1
96
- }, 8, ["type"])) : createCommentVNode("", true),
97
- renderSlot(_ctx.$slots, "default")
98
- ])) : createCommentVNode("", true)
104
+ }, 8, ["type"])),
105
+ m(t.$slots, "default")
106
+ ])) : r("", !0)
99
107
  ]);
100
108
  }
101
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
109
+ const U = /* @__PURE__ */ j(T, [["render", q]]);
102
110
  export {
103
- index as default
111
+ U as default
104
112
  };