@nutui/nutui 3.1.22-beta.3 → 3.1.23-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +3 -4
  3. package/dist/nutui.es.js +20426 -4050
  4. package/dist/nutui.umd.js +20529 -4049
  5. package/dist/packages/_es/ActionSheet.js +149 -36
  6. package/dist/packages/_es/Address.js +535 -129
  7. package/dist/packages/_es/AddressList.js +615 -113
  8. package/dist/packages/_es/Animate.js +64 -0
  9. package/dist/packages/_es/Audio.js +257 -72
  10. package/dist/packages/_es/AudioOperate.js +100 -32
  11. package/dist/packages/_es/Avatar.js +162 -54
  12. package/dist/packages/_es/AvatarGroup.js +73 -14
  13. package/dist/packages/_es/BackTop.js +156 -43
  14. package/dist/packages/_es/Badge.js +86 -14
  15. package/dist/packages/_es/Barrage.js +120 -41
  16. package/dist/packages/_es/Button.js +128 -23
  17. package/dist/packages/_es/Calendar.js +246 -24
  18. package/dist/packages/_es/CalendarItem.js +2 -1
  19. package/dist/packages/_es/Card.js +107 -10
  20. package/dist/packages/_es/Cascader.js +496 -179
  21. package/dist/packages/_es/Category.js +58 -15
  22. package/dist/packages/_es/CategoryPane.js +111 -11
  23. package/dist/packages/_es/Cell.js +108 -21
  24. package/dist/packages/_es/CellGroup.js +44 -9
  25. package/dist/packages/_es/Checkbox.js +134 -29
  26. package/dist/packages/_es/CheckboxGroup.js +79 -29
  27. package/dist/packages/_es/CircleProgress.js +150 -28
  28. package/dist/packages/_es/Col.js +56 -14
  29. package/dist/packages/_es/Collapse.js +110 -24
  30. package/dist/packages/_es/CollapseItem.js +252 -80
  31. package/dist/packages/_es/Comment.js +434 -64
  32. package/dist/packages/_es/ConfigProvider.js +25 -0
  33. package/dist/packages/_es/CountDown.js +238 -75
  34. package/dist/packages/_es/CountUp.js +539 -159
  35. package/dist/packages/_es/DatePicker.js +315 -117
  36. package/dist/packages/_es/Dialog.js +289 -79
  37. package/dist/packages/_es/Divider.js +65 -32
  38. package/dist/packages/_es/Drag.js +197 -56
  39. package/dist/packages/_es/Ecard.js +159 -24
  40. package/dist/packages/_es/Elevator.js +255 -77
  41. package/dist/packages/_es/Ellipsis.js +206 -0
  42. package/dist/packages/_es/Empty.js +71 -12
  43. package/dist/packages/_es/FixedNav.js +122 -15
  44. package/dist/packages/_es/Form.js +151 -64
  45. package/dist/packages/_es/FormItem.js +114 -15
  46. package/dist/packages/_es/Grid.js +6 -5
  47. package/dist/packages/_es/GridItem.js +144 -33
  48. package/dist/packages/_es/Icon.js +40 -15
  49. package/dist/packages/_es/Image.js +142 -0
  50. package/dist/packages/_es/ImagePreview.js +547 -84
  51. package/dist/packages/_es/Indicator.js +62 -15
  52. package/dist/packages/_es/InfiniteLoading.js +249 -76
  53. package/dist/packages/_es/Input.js +433 -51
  54. package/dist/packages/_es/InputNumber.js +160 -41
  55. package/dist/packages/_es/Layout.js +5 -4
  56. package/dist/packages/_es/List.js +106 -37
  57. package/dist/packages/_es/Menu.js +168 -29
  58. package/dist/packages/_es/MenuItem.js +173 -34
  59. package/dist/packages/_es/Navbar.js +192 -30
  60. package/dist/packages/_es/NoticeBar.js +380 -93
  61. package/dist/packages/_es/Notify.js +227 -91
  62. package/dist/packages/_es/NumberKeyboard.js +272 -41
  63. package/dist/packages/_es/OldPicker.js +457 -149
  64. package/dist/packages/_es/OverLay.js +98 -40
  65. package/dist/packages/_es/Pagination.js +157 -39
  66. package/dist/packages/_es/Picker.js +460 -148
  67. package/dist/packages/_es/Popover.js +957 -337
  68. package/dist/packages/_es/Popup.js +299 -74
  69. package/dist/packages/_es/Price.js +118 -16
  70. package/dist/packages/_es/Progress.js +146 -14
  71. package/dist/packages/_es/PullRefresh.js +339 -100
  72. package/dist/packages/_es/Radio.js +90 -22
  73. package/dist/packages/_es/RadioGroup.js +37 -8
  74. package/dist/packages/_es/Range.js +408 -102
  75. package/dist/packages/_es/Rate.js +193 -16
  76. package/dist/packages/_es/Row.js +64 -22
  77. package/dist/packages/_es/SearchBar.js +238 -56
  78. package/dist/packages/_es/ShortPassword.js +225 -35
  79. package/dist/packages/_es/SideNavBar.js +81 -43
  80. package/dist/packages/_es/SideNavBarItem.js +46 -11
  81. package/dist/packages/_es/Signature.js +160 -60
  82. package/dist/packages/_es/Skeleton.js +136 -20
  83. package/dist/packages/_es/Sku.js +491 -103
  84. package/dist/packages/_es/Step.js +115 -39
  85. package/dist/packages/_es/Steps.js +53 -18
  86. package/dist/packages/_es/Sticky.js +138 -53
  87. package/dist/packages/_es/SubSideNavBar.js +82 -36
  88. package/dist/packages/_es/Swipe.js +178 -60
  89. package/dist/packages/_es/Swiper.js +433 -121
  90. package/dist/packages/_es/SwiperItem.js +53 -22
  91. package/dist/packages/_es/Switch.js +116 -21
  92. package/dist/packages/_es/TabPane.js +39 -12
  93. package/dist/packages/_es/Tabbar.js +72 -17
  94. package/dist/packages/_es/TabbarItem.js +151 -29
  95. package/dist/packages/_es/Table.js +178 -37
  96. package/dist/packages/_es/Tabs.js +202 -59
  97. package/dist/packages/_es/Tag.js +97 -20
  98. package/dist/packages/_es/TextArea.js +160 -42
  99. package/dist/packages/_es/TimeDetail.js +79 -37
  100. package/dist/packages/_es/TimePannel.js +48 -33
  101. package/dist/packages/_es/TimeSelect.js +112 -15
  102. package/dist/packages/_es/Toast.js +310 -90
  103. package/dist/packages/_es/Uploader.js +455 -120
  104. package/dist/packages/_es/Video.js +332 -93
  105. package/dist/packages/_es/common.js +128 -38
  106. package/dist/packages/_es/component.js +76 -35
  107. package/dist/packages/_es/index.js +6 -5
  108. package/dist/packages/_es/index2.js +30 -9
  109. package/dist/packages/_es/index3.js +8 -6
  110. package/dist/packages/_es/index4.js +64 -13
  111. package/dist/packages/_es/index5.js +783 -130
  112. package/dist/packages/_es/plugin-vue_export-helper.js +8 -7
  113. package/dist/packages/_es/pxCheck.js +5 -3
  114. package/dist/packages/_es/raf.js +15 -8
  115. package/dist/packages/animate/index.scss +299 -0
  116. package/dist/packages/cell/index.scss +7 -1
  117. package/dist/packages/checkbox/index.scss +10 -0
  118. package/dist/packages/configprovider/index.scss +2 -0
  119. package/dist/packages/ellipsis/index.scss +12 -0
  120. package/dist/packages/formitem/index.scss +12 -0
  121. package/dist/packages/griditem/index.scss +11 -0
  122. package/dist/packages/image/index.scss +39 -0
  123. package/dist/packages/imagepreview/index.scss +26 -2
  124. package/dist/packages/input/index.scss +13 -0
  125. package/dist/packages/inputnumber/index.scss +21 -0
  126. package/dist/packages/locale/lang/baseLang.js +3 -3
  127. package/dist/packages/locale/lang/en-US.js +105 -5
  128. package/dist/packages/locale/lang/id-ID.js +105 -5
  129. package/dist/packages/locale/lang/index.js +38 -16
  130. package/dist/packages/locale/lang/zh-CN.js +105 -5
  131. package/dist/packages/locale/lang/zh-TW.js +105 -5
  132. package/dist/packages/menu/index.scss +45 -36
  133. package/dist/packages/menuitem/index.scss +4 -0
  134. package/dist/packages/navbar/index.scss +9 -0
  135. package/dist/packages/pagination/index.scss +19 -0
  136. package/dist/packages/radio/index.scss +18 -0
  137. package/dist/packages/range/index.scss +19 -0
  138. package/dist/packages/rate/index.scss +1 -1
  139. package/dist/packages/searchbar/index.scss +21 -0
  140. package/dist/packages/switch/index.scss +1 -0
  141. package/dist/packages/tabbar/index.scss +5 -0
  142. package/dist/packages/tabbaritem/index.scss +7 -0
  143. package/dist/packages/tabpane/index.scss +5 -0
  144. package/dist/packages/tabs/index.scss +22 -0
  145. package/dist/packages/textarea/index.scss +8 -0
  146. package/dist/smartips/attributes.json +140 -4
  147. package/dist/smartips/tags.json +55 -6
  148. package/dist/smartips/web-types.json +6963 -0
  149. package/dist/style.css +1 -1
  150. package/dist/style.es.js +1 -1
  151. package/dist/styles/font/config.json +3 -1
  152. package/dist/styles/font/demo_index.html +49 -3
  153. package/dist/styles/font/iconfont.css +11 -3
  154. package/dist/styles/font/iconfont.js +15 -15
  155. package/dist/styles/font/iconfont.json +14 -0
  156. package/dist/styles/font/iconfont.ttf +0 -0
  157. package/dist/styles/font/iconfont.woff +0 -0
  158. package/dist/styles/font/iconfont.woff2 +0 -0
  159. package/dist/styles/themes/default.scss +54 -50
  160. package/dist/styles/themes/jdb.scss +54 -50
  161. package/dist/styles/themes/jdt.scss +54 -50
  162. package/dist/styles/variables-jdb.scss +12 -0
  163. package/dist/styles/variables-jdt.scss +12 -0
  164. package/dist/styles/variables.scss +12 -0
  165. package/dist/types/__VUE/actionsheet/index.vue.d.ts +3 -3
  166. package/dist/types/__VUE/address/index.vue.d.ts +7 -7
  167. package/dist/types/__VUE/animate/index.vue.d.ts +48 -0
  168. package/dist/types/__VUE/animate/type.d.ts +6 -0
  169. package/dist/types/__VUE/avatar/index.vue.d.ts +3 -3
  170. package/dist/types/__VUE/calendar/index.vue.d.ts +1 -1
  171. package/dist/types/__VUE/calendaritem/index.vue.d.ts +10 -2
  172. package/dist/types/__VUE/cascader/index.vue.d.ts +2 -2
  173. package/dist/types/__VUE/circleprogress/index.vue.d.ts +2 -2
  174. package/dist/types/__VUE/collapse/index.vue.d.ts +3 -1
  175. package/dist/types/__VUE/configprovider/common.d.ts +20 -0
  176. package/dist/types/__VUE/configprovider/index.vue.d.ts +33 -0
  177. package/dist/types/__VUE/datepicker/index.vue.d.ts +2 -2
  178. package/dist/types/__VUE/dialog/index.vue.d.ts +2 -2
  179. package/dist/types/__VUE/ellipsis/index.vue.d.ts +72 -0
  180. package/dist/types/__VUE/fixednav/index.vue.d.ts +2 -2
  181. package/dist/types/__VUE/grid/index.vue.d.ts +2 -2
  182. package/dist/types/__VUE/image/index.vue.d.ts +105 -0
  183. package/dist/types/__VUE/image/type.d.ts +6 -0
  184. package/dist/types/__VUE/imagepreview/imagePreviewItem.vue.d.ts +95 -0
  185. package/dist/types/__VUE/imagepreview/index.vue.d.ts +56 -24
  186. package/dist/types/__VUE/menu/index.vue.d.ts +31 -4
  187. package/dist/types/__VUE/menuitem/index.vue.d.ts +12 -3
  188. package/dist/types/__VUE/noticebar/index.vue.d.ts +1 -1
  189. package/dist/types/__VUE/numberkeyboard/index.vue.d.ts +2 -2
  190. package/dist/types/__VUE/oldpicker/index.vue.d.ts +4 -4
  191. package/dist/types/__VUE/picker/index.vue.d.ts +4 -4
  192. package/dist/types/__VUE/popover/index.vue.d.ts +8 -8
  193. package/dist/types/__VUE/popup/index.vue.d.ts +4 -4
  194. package/dist/types/__VUE/range/index.vue.d.ts +1 -1
  195. package/dist/types/__VUE/rate/common.d.ts +149 -0
  196. package/dist/types/__VUE/rate/index.vue.d.ts +17 -7
  197. package/dist/types/__VUE/row/index.vue.d.ts +2 -2
  198. package/dist/types/__VUE/shortpassword/index.vue.d.ts +2 -2
  199. package/dist/types/__VUE/sku/index.vue.d.ts +3 -3
  200. package/dist/types/__VUE/swipe/index.vue.d.ts +2 -2
  201. package/dist/types/__VUE/swiper/index.vue.d.ts +2 -2
  202. package/dist/types/__VUE/switch/index.vue.d.ts +2 -2
  203. package/dist/types/__VUE/timeselect/index.vue.d.ts +3 -2
  204. package/dist/types/__VUE/uploader/uploader.d.ts +1 -0
  205. package/dist/types/index.d.ts +1 -1
  206. package/dist/types/nutui.d.ts +5 -1
  207. package/package.json +5 -4
@@ -1,83 +1,246 @@
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 = (a2, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a2, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a2, prop, b[prop]);
16
- }
17
- return a2;
18
- };
19
- var __spreadProps = (a2, b) => __defProps(a2, __getOwnPropDescs(b));
20
1
  /*!
21
- * @nutui/nutui v3.1.22-beta.3 Wed Jun 15 2022 20:12:30 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.1.23-beta.0 Mon Jun 27 2022 17:55:50 GMT+0800 (中国标准时间)
22
3
  * (c) 2022 @jdf2e.
23
4
  * Released under the MIT License.
24
5
  */
25
- import { reactive as e, computed as t, onBeforeMount as n, watch as r, toRefs as a, openBlock as i, createElementBlock as o, normalizeClass as s, renderSlot as m } from "vue";
26
- import { c as l } from "./component.js";
27
- import { _ as u } from "./plugin-vue_export-helper.js";
6
+ import { reactive, computed, onBeforeMount, watch, toRefs, openBlock, createElementBlock, normalizeClass, renderSlot } from "vue";
7
+ import { c as createComponent } from "./component.js";
8
+ import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
28
9
  import "../locale/lang";
29
- const d = (e2, t2 = 2) => {
30
- for (e2 += ""; e2.length < t2; )
31
- e2 = "0" + e2;
32
- return e2.toString();
33
- }, c = (e2) => {
34
- if (!e2)
10
+ const padZero = (num, length = 2) => {
11
+ num += "";
12
+ while (num.length < length) {
13
+ num = "0" + num;
14
+ }
15
+ return num.toString();
16
+ };
17
+ const getTimeStamp = (timeStr) => {
18
+ if (!timeStr)
35
19
  return Date.now();
36
- let t2 = e2;
37
- return t2 = t2 > 0 ? +t2 : t2.toString().replace(/\-/g, "/"), new Date(t2).getTime();
38
- }, { componentName: p, create: T, translate: f } = l("countdown"), S = T({ props: { modelValue: { type: Object, default: () => ({}) }, paused: { default: false, type: Boolean }, startTime: { type: [Number, String], validator: (e2) => new Date(e2).toString().toLowerCase() !== "invalid date" }, endTime: { type: [Number, String], validator: (e2) => new Date(e2).toString().toLowerCase() !== "invalid date" }, millisecond: { default: false, type: Boolean }, format: { type: String, default: "HH:mm:ss" }, autoStart: { type: Boolean, default: true }, time: { type: [Number, String], default: 0 } }, emits: ["input", "on-end", "on-restart", "on-paused", "update:modelValue"], setup(i2, { emit: o2, slots: s2 }) {
39
- const m2 = e({ restTime: 0, timer: null, counting: !i2.paused && i2.autoStart, handleEndTime: Date.now(), diffTime: 0 }), l2 = t(() => ({ [p]: true })), u2 = t(() => g2(m2.restTime)), T2 = () => {
40
- m2.handleEndTime = i2.endTime, m2.diffTime = Date.now() - c(i2.startTime), m2.counting || (m2.counting = true), S2();
41
- }, S2 = () => {
42
- window !== void 0 && (m2.timer = requestAnimationFrame(() => {
43
- if (m2.counting) {
44
- const e2 = Date.now() - m2.diffTime, t2 = Math.max(m2.handleEndTime - e2, 0);
45
- m2.restTime = t2, t2 || (m2.counting = false, w(), o2("on-end")), t2 > 0 && S2();
20
+ let t = timeStr;
21
+ t = t > 0 ? +t : t.toString().replace(/\-/g, "/");
22
+ return new Date(t).getTime();
23
+ };
24
+ const { componentName, create, translate } = createComponent("countdown");
25
+ const _sfc_main = create({
26
+ props: {
27
+ modelValue: {
28
+ type: Object,
29
+ default: () => {
30
+ return {};
31
+ }
32
+ },
33
+ paused: {
34
+ default: false,
35
+ type: Boolean
36
+ },
37
+ startTime: {
38
+ type: [Number, String],
39
+ validator(v) {
40
+ const dateStr = new Date(v).toString().toLowerCase();
41
+ return dateStr !== "invalid date";
46
42
  }
47
- }));
48
- }, g2 = (e2, t2) => {
49
- const n2 = e2;
50
- let r2 = { d: 0, h: 0, m: 0, s: 0, ms: 0 };
51
- const a2 = 1e3, i3 = 6e4, o3 = 36e5, s3 = 24 * o3;
52
- return n2 > 0 && (r2.d = n2 >= a2 ? Math.floor(n2 / s3) : 0, r2.h = Math.floor(n2 % s3 / o3), r2.m = Math.floor(n2 % o3 / i3), r2.s = Math.floor(n2 % i3 / a2), r2.ms = Math.floor(n2 % a2)), t2 == "custom" ? r2 : h2(__spreadValues({}, r2));
53
- }, h2 = (e2) => {
54
- let { d: t2, h: n2, m: r2, s: a2, ms: o3 } = e2, s3 = i2.format;
55
- if (s3.includes("DD") ? s3 = s3.replace("DD", d(t2)) : n2 += 24 * Number(t2), s3.includes("HH") ? s3 = s3.replace("HH", d(n2)) : r2 += 60 * Number(n2), s3.includes("mm") ? s3 = s3.replace("mm", d(r2)) : a2 += 60 * Number(r2), s3.includes("ss") ? s3 = s3.replace("ss", d(a2)) : o3 += 1e3 * Number(a2), s3.includes("S")) {
56
- const e3 = d(o3, 3).toString();
57
- s3.includes("SSS") ? s3 = s3.replace("SSS", e3) : s3.includes("SS") ? s3 = s3.replace("SS", e3.slice(0, 2)) : s3.includes("S") && (s3 = s3.replace("SS", e3.slice(0, 1)));
43
+ },
44
+ endTime: {
45
+ type: [Number, String],
46
+ validator(v) {
47
+ const dateStr = new Date(v).toString().toLowerCase();
48
+ return dateStr !== "invalid date";
49
+ }
50
+ },
51
+ millisecond: {
52
+ default: false,
53
+ type: Boolean
54
+ },
55
+ format: {
56
+ type: String,
57
+ default: "HH:mm:ss"
58
+ },
59
+ autoStart: {
60
+ type: Boolean,
61
+ default: true
62
+ },
63
+ time: {
64
+ type: [Number, String],
65
+ default: 0
58
66
  }
59
- return s3;
60
- }, w = () => {
61
- cancelAnimationFrame(m2.timer), m2.counting = false, o2("on-paused", m2.restTime);
62
- };
63
- return n(() => {
64
- i2.autoStart ? T2() : m2.restTime = i2.time;
65
- }), r(() => m2.restTime, (e2) => {
66
- let t2 = g2(e2, "custom");
67
- o2("update:modelValue", t2), o2("input", t2);
68
- }), r(() => i2.paused, (e2, t2) => {
69
- t2 ? (m2.counting || (m2.counting = true, m2.handleEndTime = Date.now() + Number(m2.restTime), S2()), o2("on-restart", m2.restTime)) : m2.counting && w();
70
- }), r(() => i2.endTime, (e2) => {
71
- T2();
72
- }), r(() => i2.startTime, (e2) => {
73
- T2();
74
- }), __spreadProps(__spreadValues({}, a(i2)), { slots: s2, classes: l2, getTimeStamp: c, start: () => {
75
- m2.counting || i2.autoStart || (m2.counting = true, m2.handleEndTime = Date.now() + Number(m2.restTime), S2(), o2("on-restart", m2.restTime));
76
- }, pause: w, renderTime: u2, translate: f, reset: () => {
77
- i2.autoStart || (w(), m2.restTime = i2.time);
78
- } });
79
- } }), g = ["innerHTML"];
80
- var h = u(S, [["render", function(e2, t2, n2, r2, a2, l2) {
81
- return i(), o("view", { class: s(e2.classes) }, [e2.slots.default ? m(e2.$slots, "default", { key: 0 }) : (i(), o("view", { key: 1, class: "nut-cd-block", innerHTML: e2.renderTime }, null, 8, g))], 2);
82
- }]]);
83
- export { h as default };
67
+ },
68
+ emits: ["input", "on-end", "on-restart", "on-paused", "update:modelValue"],
69
+ setup(props, { emit, slots }) {
70
+ const state = reactive({
71
+ restTime: 0,
72
+ timer: null,
73
+ counting: !props.paused && props.autoStart,
74
+ handleEndTime: Date.now(),
75
+ diffTime: 0
76
+ });
77
+ const classes = computed(() => {
78
+ const prefixCls = componentName;
79
+ return {
80
+ [prefixCls]: true
81
+ };
82
+ });
83
+ const renderTime = computed(() => {
84
+ return formatRemainTime(state.restTime);
85
+ });
86
+ const initTime = () => {
87
+ state.handleEndTime = props.endTime;
88
+ state.diffTime = Date.now() - getTimeStamp(props.startTime);
89
+ if (!state.counting)
90
+ state.counting = true;
91
+ tick();
92
+ };
93
+ const tick = () => {
94
+ if (window !== void 0) {
95
+ state.timer = requestAnimationFrame(() => {
96
+ if (state.counting) {
97
+ const currentTime = Date.now() - state.diffTime;
98
+ const remainTime = Math.max(state.handleEndTime - currentTime, 0);
99
+ state.restTime = remainTime;
100
+ if (!remainTime) {
101
+ state.counting = false;
102
+ pause();
103
+ emit("on-end");
104
+ }
105
+ if (remainTime > 0) {
106
+ tick();
107
+ }
108
+ }
109
+ });
110
+ }
111
+ };
112
+ const formatRemainTime = (t, type) => {
113
+ const ts = t;
114
+ let rest = {
115
+ d: 0,
116
+ h: 0,
117
+ m: 0,
118
+ s: 0,
119
+ ms: 0
120
+ };
121
+ const SECOND = 1e3;
122
+ const MINUTE = 60 * SECOND;
123
+ const HOUR = 60 * MINUTE;
124
+ const DAY = 24 * HOUR;
125
+ if (ts > 0) {
126
+ rest.d = ts >= SECOND ? Math.floor(ts / DAY) : 0;
127
+ rest.h = Math.floor(ts % DAY / HOUR);
128
+ rest.m = Math.floor(ts % HOUR / MINUTE);
129
+ rest.s = Math.floor(ts % MINUTE / SECOND);
130
+ rest.ms = Math.floor(ts % SECOND);
131
+ }
132
+ return type == "custom" ? rest : parseFormat({ ...rest });
133
+ };
134
+ const parseFormat = (time) => {
135
+ let { d, h, m, s, ms } = time;
136
+ let format = props.format;
137
+ if (format.includes("DD")) {
138
+ format = format.replace("DD", padZero(d));
139
+ } else {
140
+ h += Number(d) * 24;
141
+ }
142
+ if (format.includes("HH")) {
143
+ format = format.replace("HH", padZero(h));
144
+ } else {
145
+ m += Number(h) * 60;
146
+ }
147
+ if (format.includes("mm")) {
148
+ format = format.replace("mm", padZero(m));
149
+ } else {
150
+ s += Number(m) * 60;
151
+ }
152
+ if (format.includes("ss")) {
153
+ format = format.replace("ss", padZero(s));
154
+ } else {
155
+ ms += Number(s) * 1e3;
156
+ }
157
+ if (format.includes("S")) {
158
+ const msC = padZero(ms, 3).toString();
159
+ if (format.includes("SSS")) {
160
+ format = format.replace("SSS", msC);
161
+ } else if (format.includes("SS")) {
162
+ format = format.replace("SS", msC.slice(0, 2));
163
+ } else if (format.includes("S")) {
164
+ format = format.replace("SS", msC.slice(0, 1));
165
+ }
166
+ }
167
+ return format;
168
+ };
169
+ const start = () => {
170
+ if (!state.counting && !props.autoStart) {
171
+ state.counting = true;
172
+ state.handleEndTime = Date.now() + Number(state.restTime);
173
+ tick();
174
+ emit("on-restart", state.restTime);
175
+ }
176
+ };
177
+ const pause = () => {
178
+ cancelAnimationFrame(state.timer);
179
+ state.counting = false;
180
+ emit("on-paused", state.restTime);
181
+ };
182
+ const reset = () => {
183
+ if (!props.autoStart) {
184
+ pause();
185
+ state.restTime = props.time;
186
+ }
187
+ };
188
+ onBeforeMount(() => {
189
+ if (props.autoStart) {
190
+ initTime();
191
+ } else {
192
+ state.restTime = props.time;
193
+ }
194
+ });
195
+ watch(() => state.restTime, (value) => {
196
+ let tranTime = formatRemainTime(value, "custom");
197
+ emit("update:modelValue", tranTime);
198
+ emit("input", tranTime);
199
+ });
200
+ watch(() => props.paused, (v, ov) => {
201
+ if (!ov) {
202
+ if (state.counting) {
203
+ pause();
204
+ }
205
+ } else {
206
+ if (!state.counting) {
207
+ state.counting = true;
208
+ state.handleEndTime = Date.now() + Number(state.restTime);
209
+ tick();
210
+ }
211
+ emit("on-restart", state.restTime);
212
+ }
213
+ });
214
+ watch(() => props.endTime, (value) => {
215
+ initTime();
216
+ });
217
+ watch(() => props.startTime, (value) => {
218
+ initTime();
219
+ });
220
+ return {
221
+ ...toRefs(props),
222
+ slots,
223
+ classes,
224
+ getTimeStamp,
225
+ start,
226
+ pause,
227
+ renderTime,
228
+ translate,
229
+ reset
230
+ };
231
+ }
232
+ });
233
+ const _hoisted_1 = ["innerHTML"];
234
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
235
+ return openBlock(), createElementBlock("view", {
236
+ class: normalizeClass(_ctx.classes)
237
+ }, [
238
+ _ctx.slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock("view", {
239
+ key: 1,
240
+ class: "nut-cd-block",
241
+ innerHTML: _ctx.renderTime
242
+ }, null, 8, _hoisted_1))
243
+ ], 2);
244
+ }
245
+ var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
246
+ export { index as default };