hys-ui 0.3.0 → 0.5.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 (168) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +68 -73
  3. package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +5 -41
  4. package/dist/components/HysAnimatedNumber/HysAnimatedNumber2.vue.js +467 -2
  5. package/dist/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas.vue.js +7 -0
  6. package/dist/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas2.vue.js +166 -0
  7. package/dist/components/HysAnimatedNumber/NumberDigits/NumberDigits.vue.js +7 -0
  8. package/dist/components/HysAnimatedNumber/NumberDigits/NumberDigits2.vue.js +105 -0
  9. package/dist/components/HysAnimatedNumber/animation/digital.js +186 -0
  10. package/dist/components/HysAnimatedNumber/animation/morph.js +110 -0
  11. package/dist/components/HysAnimatedNumber/animation/paint.js +34 -0
  12. package/dist/components/HysAnimatedNumber/animation/particles.js +51 -0
  13. package/dist/components/HysAnimatedNumber/animation/paths.js +165 -0
  14. package/dist/components/HysAnimatedNumber/animation/physics.js +66 -0
  15. package/dist/components/HysAnimatedNumber/animation/render.js +89 -0
  16. package/dist/components/HysAnimatedNumber/animation/reveal.js +125 -0
  17. package/dist/components/HysAnimatedNumber/animation/rolling.js +66 -0
  18. package/dist/components/HysAnimatedNumber/animation/scenarios.js +217 -0
  19. package/dist/components/HysAnimatedNumber/animation/spatial.js +112 -0
  20. package/dist/components/HysAnimatedNumber/useNumberCountdown.js +58 -0
  21. package/dist/components/HysAnimatedNumber/useNumberVisuals.js +60 -0
  22. package/dist/components/HysButton/HysButton.vue.js +2 -2
  23. package/dist/components/HysButton/HysButton2.vue.js +227 -60
  24. package/dist/components/HysButtonGroup/HysButtonGroup.vue.js +7 -0
  25. package/dist/components/HysButtonGroup/HysButtonGroup2.vue.js +51 -0
  26. package/dist/components/HysFormItem/HysFormItem.vue.js +1 -1
  27. package/dist/components/HysFormItem/HysFormItem2.vue.js +231 -229
  28. package/dist/components/HysInput/HysInput.vue.js +2 -2
  29. package/dist/components/HysInput/HysInput2.vue.js +327 -274
  30. package/dist/components/HysMention/HysMention.vue.js +1 -1
  31. package/dist/components/HysMention/HysMention2.vue.js +1092 -154
  32. package/dist/components/HysModal/HysModal.vue.js +3 -3
  33. package/dist/components/HysModal/HysModal2.vue.js +81 -80
  34. package/dist/components/HysPagination/HysPagination.vue.js +2 -2
  35. package/dist/components/HysPagination/HysPagination2.vue.js +243 -180
  36. package/dist/components/HysSearch/HysSearch.vue.js +5 -82
  37. package/dist/components/HysSearch/HysSearch2.vue.js +176 -2
  38. package/dist/components/HysSelect/HysSelect.vue.js +2 -2
  39. package/dist/components/HysSelect/HysSelect2.vue.js +472 -443
  40. package/dist/components/HysSplitPane/HysSplitPane.vue.js +315 -58
  41. package/dist/components/HysSplitPane/HysSplitPane3.vue.js +5 -0
  42. package/dist/components/HysTable/HysTable.vue.js +2 -2
  43. package/dist/components/HysTable/HysTable2.vue.js +1418 -1150
  44. package/dist/components/HysTextarea/HysTextarea.vue.js +56 -32
  45. package/dist/components/HysTour/HysTour.vue.js +291 -67
  46. package/dist/components/HysTour/HysTour3.vue.js +5 -0
  47. package/dist/composables/animatedNumberDigits.js +106 -0
  48. package/dist/composables/animatedNumberFormat.js +222 -0
  49. package/dist/composables/animatedNumberTiming.js +66 -0
  50. package/dist/composables/buttonGroup.js +12 -0
  51. package/dist/composables/floatingPosition.js +18 -0
  52. package/dist/composables/mentionDocument.js +79 -0
  53. package/dist/composables/mentionEditor.js +58 -0
  54. package/dist/composables/numberAnimation.js +72 -0
  55. package/dist/composables/numberAnimationCatalog.js +301 -0
  56. package/dist/composables/numberAnimationSequence.js +45 -0
  57. package/dist/composables/selectOptions.js +44 -38
  58. package/dist/composables/splitPaneSizes.js +58 -0
  59. package/dist/composables/table.js +128 -105
  60. package/dist/composables/textInput.js +23 -14
  61. package/dist/composables/useDialog.js +50 -50
  62. package/dist/composables/useFloating.js +107 -103
  63. package/dist/composables/useHysAnimatedNumber.js +264 -0
  64. package/dist/composables/useHysNumberAnimationGroup.js +23 -0
  65. package/dist/composables/useMentionCaret.js +81 -0
  66. package/dist/composables/useMentionList.js +81 -0
  67. package/dist/composables/useMentionModel.js +90 -0
  68. package/dist/composables/useMentionOptions.js +421 -0
  69. package/dist/composables/useSplitPaneDrag.js +52 -0
  70. package/dist/composables/useSplitPaneStorage.js +38 -0
  71. package/dist/composables/useTable.js +344 -312
  72. package/dist/composables/useTableSticky.js +79 -0
  73. package/dist/composables/useTextareaSize.js +62 -46
  74. package/dist/composables/useTourLayout.js +129 -0
  75. package/dist/config.js +11 -11
  76. package/dist/index.js +183 -152
  77. package/dist/internal/MultiSplitPane.vue.js +305 -0
  78. package/dist/internal/MultiSplitPane2.vue.js +4 -0
  79. package/dist/style.css +1 -1
  80. package/dist/types/components/HysAnimatedNumber/HysAnimatedNumber.vue.d.ts +99 -6
  81. package/dist/types/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas.vue.d.ts +19 -0
  82. package/dist/types/components/HysAnimatedNumber/NumberDigits/NumberDigits.vue.d.ts +31 -0
  83. package/dist/types/components/HysAnimatedNumber/animation/digital.d.ts +3 -0
  84. package/dist/types/components/HysAnimatedNumber/animation/morph.d.ts +2 -0
  85. package/dist/types/components/HysAnimatedNumber/animation/paint.d.ts +44 -0
  86. package/dist/types/components/HysAnimatedNumber/animation/particles.d.ts +5 -0
  87. package/dist/types/components/HysAnimatedNumber/animation/paths.d.ts +12 -0
  88. package/dist/types/components/HysAnimatedNumber/animation/physics.d.ts +2 -0
  89. package/dist/types/components/HysAnimatedNumber/animation/render.d.ts +2 -0
  90. package/dist/types/components/HysAnimatedNumber/animation/reveal.d.ts +2 -0
  91. package/dist/types/components/HysAnimatedNumber/animation/rolling.d.ts +2 -0
  92. package/dist/types/components/HysAnimatedNumber/animation/scenarios.d.ts +4 -0
  93. package/dist/types/components/HysAnimatedNumber/animation/spatial.d.ts +2 -0
  94. package/dist/types/components/HysAnimatedNumber/useNumberCountdown.d.ts +8 -0
  95. package/dist/types/components/HysAnimatedNumber/useNumberVisuals.d.ts +12 -0
  96. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +12 -3
  97. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +2 -2
  98. package/dist/types/components/HysButton/HysButton.vue.d.ts +82 -22
  99. package/dist/types/components/HysButtonGroup/HysButtonGroup.vue.d.ts +30 -0
  100. package/dist/types/components/HysCard/HysCard.vue.d.ts +1 -1
  101. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +3 -3
  102. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +3 -3
  103. package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +3 -3
  104. package/dist/types/components/HysContextMenu/HysMenuPanel.vue.d.ts +2 -2
  105. package/dist/types/components/HysDatePicker/HysDatePicker.vue.d.ts +3 -3
  106. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +6 -6
  107. package/dist/types/components/HysDateRangePicker/HysDateRangePicker.vue.d.ts +3 -3
  108. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +2 -2
  109. package/dist/types/components/HysFormItem/HysFormItem.vue.d.ts +1 -1
  110. package/dist/types/components/HysInput/HysInput.vue.d.ts +13 -1
  111. package/dist/types/components/HysMention/HysMention.vue.d.ts +91 -40
  112. package/dist/types/components/HysModal/HysModal.vue.d.ts +1 -1
  113. package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +2 -2
  114. package/dist/types/components/HysPagination/HysPagination.vue.d.ts +55 -4
  115. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +1 -1
  116. package/dist/types/components/HysRating/HysRating.vue.d.ts +1 -1
  117. package/dist/types/components/HysSearch/HysSearch.vue.d.ts +46 -8
  118. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +6 -1
  119. package/dist/types/components/HysSkeleton/HysSkeleton.vue.d.ts +2 -2
  120. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +125 -14
  121. package/dist/types/components/HysSteps/HysSteps.vue.d.ts +1 -1
  122. package/dist/types/components/HysTable/HysTable.vue.d.ts +1740 -3
  123. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +1 -1
  124. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +1 -1
  125. package/dist/types/components/HysTextarea/HysTextarea.vue.d.ts +13 -2
  126. package/dist/types/components/HysToast/HysToast.vue.d.ts +1 -1
  127. package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +1 -1
  128. package/dist/types/components/HysTour/HysTour.vue.d.ts +46 -9
  129. package/dist/types/components/HysTreeSelect/HysTreeSelect.vue.d.ts +3 -3
  130. package/dist/types/components/HysUpload/HysUpload.vue.d.ts +2 -2
  131. package/dist/types/composables/animatedNumber.d.ts +220 -0
  132. package/dist/types/composables/animatedNumberDigits.d.ts +32 -0
  133. package/dist/types/composables/animatedNumberFormat.d.ts +16 -0
  134. package/dist/types/composables/animatedNumberTiming.d.ts +21 -0
  135. package/dist/types/composables/buttonGroup.d.ts +9 -0
  136. package/dist/types/composables/drawer.d.ts +1 -1
  137. package/dist/types/composables/floatingPosition.d.ts +14 -0
  138. package/dist/types/composables/mention.d.ts +284 -0
  139. package/dist/types/composables/mentionDocument.d.ts +15 -0
  140. package/dist/types/composables/mentionEditor.d.ts +7 -0
  141. package/dist/types/composables/modal.d.ts +2 -0
  142. package/dist/types/composables/numberAnimation.d.ts +29 -0
  143. package/dist/types/composables/numberAnimationCatalog.d.ts +58 -0
  144. package/dist/types/composables/numberAnimationSequence.d.ts +13 -0
  145. package/dist/types/composables/selectOptions.d.ts +5 -0
  146. package/dist/types/composables/splitPaneSizes.d.ts +11 -0
  147. package/dist/types/composables/table.d.ts +116 -6
  148. package/dist/types/composables/textInput.d.ts +39 -4
  149. package/dist/types/composables/tour.d.ts +68 -0
  150. package/dist/types/composables/useFloating.d.ts +1 -1
  151. package/dist/types/composables/useHysAnimatedNumber.d.ts +37 -0
  152. package/dist/types/composables/useHysNumberAnimationGroup.d.ts +4 -0
  153. package/dist/types/composables/useMentionCaret.d.ts +6 -0
  154. package/dist/types/composables/useMentionList.d.ts +23 -0
  155. package/dist/types/composables/useMentionModel.d.ts +14 -0
  156. package/dist/types/composables/useMentionOptions.d.ts +26 -0
  157. package/dist/types/composables/useSplitPaneDrag.d.ts +14 -0
  158. package/dist/types/composables/useSplitPaneStorage.d.ts +4 -0
  159. package/dist/types/composables/useTable.d.ts +7 -3
  160. package/dist/types/composables/useTableSticky.d.ts +22 -0
  161. package/dist/types/composables/useTextareaSize.d.ts +5 -2
  162. package/dist/types/composables/useTourLayout.d.ts +33 -0
  163. package/dist/types/config.d.ts +1 -0
  164. package/dist/types/index.d.ts +46 -1
  165. package/dist/types/internal/MultiSplitPane.vue.d.ts +54 -0
  166. package/package.json +3 -2
  167. package/dist/components/HysSplitPane/HysSplitPane2.vue.js +0 -4
  168. package/dist/components/HysTour/HysTour2.vue.js +0 -4
@@ -1,10 +1,11 @@
1
- import { defineComponent as y, ref as v, useAttrs as c, computed as i, openBlock as B, createBlock as $, mergeProps as g, unref as b, createSlots as C, withCtx as l, renderSlot as r, normalizeProps as k, guardReactiveProps as w } from "vue";
2
- import x from "../HysInput/HysInput.vue.js";
1
+ import { defineComponent as y, ref as v, useAttrs as B, computed as a, openBlock as x, createBlock as b, mergeProps as g, unref as w, createSlots as $, withCtx as s, renderSlot as r, normalizeProps as C, guardReactiveProps as k } from "vue";
2
+ import P from "../HysInput/HysInput.vue.js";
3
3
  const I = /* @__PURE__ */ y({
4
4
  inheritAttrs: !1,
5
5
  __name: "HysTextarea",
6
6
  props: {
7
7
  modelValue: {},
8
+ modelModifiers: {},
8
9
  defaultValue: {},
9
10
  placeholder: {},
10
11
  label: {},
@@ -13,7 +14,10 @@ const I = /* @__PURE__ */ y({
13
14
  ariaLabel: {},
14
15
  error: {},
15
16
  status: {},
16
- clearable: { type: Boolean },
17
+ clearable: { type: Boolean, default: void 0 },
18
+ allowClear: { type: Boolean },
19
+ addonBefore: {},
20
+ addonAfter: {},
17
21
  clearIcon: {},
18
22
  prefixIcon: {},
19
23
  suffixIcon: {},
@@ -34,24 +38,33 @@ const I = /* @__PURE__ */ y({
34
38
  autosize: { type: [Boolean, Object] },
35
39
  resize: { default: "vertical" },
36
40
  inputProps: {},
41
+ inputStyle: { type: [Boolean, null, String, Object, Array] },
42
+ inputmode: {},
43
+ tabindex: {},
44
+ form: {},
45
+ validateEvent: { type: Boolean, default: !0 },
37
46
  autofocus: { type: Boolean },
38
47
  selectOnFocus: { type: Boolean },
39
48
  bordered: { type: Boolean, default: !0 },
40
49
  round: { type: Boolean }
41
50
  },
42
- emits: ["update:modelValue", "input", "change", "clear", "focus", "blur", "pressEnter", "compositionstart", "compositionupdate", "compositionend"],
43
- setup(u, { expose: d, emit: m }) {
44
- const a = u, s = m, n = v(), f = c();
51
+ emits: ["update:modelValue", "input", "change", "clear", "focus", "blur", "pressEnter", "keydown", "mouseenter", "mouseleave", "compositionstart", "compositionupdate", "compositionend"],
52
+ setup(p, { expose: d, emit: m }) {
53
+ const i = p, l = m, n = v(), f = B();
45
54
  return d({
46
- input: i(() => {
55
+ element: a(() => {
47
56
  var e;
48
57
  return (e = n.value) == null ? void 0 : e.textarea;
49
58
  }),
50
- textarea: i(() => {
59
+ input: a(() => {
51
60
  var e;
52
61
  return (e = n.value) == null ? void 0 : e.textarea;
53
62
  }),
54
- isComposing: i(() => {
63
+ textarea: a(() => {
64
+ var e;
65
+ return (e = n.value) == null ? void 0 : e.textarea;
66
+ }),
67
+ isComposing: a(() => {
55
68
  var e;
56
69
  return ((e = n.value) == null ? void 0 : e.isComposing) ?? !1;
57
70
  }),
@@ -75,71 +88,82 @@ const I = /* @__PURE__ */ y({
75
88
  var e;
76
89
  return ((e = n.value) == null ? void 0 : e.resize()) ?? Promise.resolve();
77
90
  },
91
+ resizeTextarea: () => {
92
+ var e;
93
+ return ((e = n.value) == null ? void 0 : e.resizeTextarea()) ?? Promise.resolve();
94
+ },
95
+ textareaStyle: a(() => {
96
+ var e;
97
+ return ((e = n.value) == null ? void 0 : e.textareaStyle) ?? {};
98
+ }),
78
99
  setSelectionRange: (e, o, t) => {
79
- var p;
80
- return (p = n.value) == null ? void 0 : p.setSelectionRange(e, o, t);
100
+ var u;
101
+ return (u = n.value) == null ? void 0 : u.setSelectionRange(e, o, t);
81
102
  },
82
103
  scrollTo: (e) => {
83
104
  var o;
84
105
  return (o = n.value) == null ? void 0 : o.scrollTo(e);
85
106
  }
86
- }), (e, o) => (B(), $(x, g({
107
+ }), (e, o) => (x(), b(P, g({
87
108
  ref_key: "control",
88
109
  ref: n
89
- }, { ...a, ...b(f) }, {
90
- "show-count": a.showCount ?? a.maxlength !== void 0,
110
+ }, { ...i, ...w(f) }, {
111
+ "show-count": i.showCount ?? i.maxlength !== void 0,
91
112
  type: "textarea",
92
113
  class: "hys-ui-ex-field",
93
- "onUpdate:modelValue": o[0] || (o[0] = (t) => s("update:modelValue", t)),
94
- onInput: o[1] || (o[1] = (t) => s("input", t)),
95
- onChange: o[2] || (o[2] = (t) => s("change", t)),
96
- onClear: o[3] || (o[3] = (t) => s("clear")),
97
- onFocus: o[4] || (o[4] = (t) => s("focus", t)),
98
- onBlur: o[5] || (o[5] = (t) => s("blur", t)),
99
- onPressEnter: o[6] || (o[6] = (t) => s("pressEnter", t)),
100
- onCompositionstart: o[7] || (o[7] = (t) => s("compositionstart", t)),
101
- onCompositionupdate: o[8] || (o[8] = (t) => s("compositionupdate", t)),
102
- onCompositionend: o[9] || (o[9] = (t) => s("compositionend", t))
103
- }), C({ _: 2 }, [
114
+ "onUpdate:modelValue": o[0] || (o[0] = (t) => l("update:modelValue", t)),
115
+ onInput: o[1] || (o[1] = (t) => l("input", t)),
116
+ onChange: o[2] || (o[2] = (t) => l("change", t)),
117
+ onClear: o[3] || (o[3] = (t) => l("clear")),
118
+ onFocus: o[4] || (o[4] = (t) => l("focus", t)),
119
+ onBlur: o[5] || (o[5] = (t) => l("blur", t)),
120
+ onPressEnter: o[6] || (o[6] = (t) => l("pressEnter", t)),
121
+ onKeydown: o[7] || (o[7] = (t) => l("keydown", t)),
122
+ onMouseenter: o[8] || (o[8] = (t) => l("mouseenter", t)),
123
+ onMouseleave: o[9] || (o[9] = (t) => l("mouseleave", t)),
124
+ onCompositionstart: o[10] || (o[10] = (t) => l("compositionstart", t)),
125
+ onCompositionupdate: o[11] || (o[11] = (t) => l("compositionupdate", t)),
126
+ onCompositionend: o[12] || (o[12] = (t) => l("compositionend", t))
127
+ }), $({ _: 2 }, [
104
128
  e.$slots.prefix ? {
105
129
  name: "prefix",
106
- fn: l(() => [
130
+ fn: s(() => [
107
131
  r(e.$slots, "prefix")
108
132
  ]),
109
133
  key: "0"
110
134
  } : void 0,
111
135
  e.$slots.suffix ? {
112
136
  name: "suffix",
113
- fn: l(() => [
137
+ fn: s(() => [
114
138
  r(e.$slots, "suffix")
115
139
  ]),
116
140
  key: "1"
117
141
  } : void 0,
118
142
  e.$slots.prepend ? {
119
143
  name: "prepend",
120
- fn: l(() => [
144
+ fn: s(() => [
121
145
  r(e.$slots, "prepend")
122
146
  ]),
123
147
  key: "2"
124
148
  } : void 0,
125
149
  e.$slots.append ? {
126
150
  name: "append",
127
- fn: l(() => [
151
+ fn: s(() => [
128
152
  r(e.$slots, "append")
129
153
  ]),
130
154
  key: "3"
131
155
  } : void 0,
132
156
  e.$slots["clear-icon"] ? {
133
157
  name: "clear-icon",
134
- fn: l(() => [
158
+ fn: s(() => [
135
159
  r(e.$slots, "clear-icon")
136
160
  ]),
137
161
  key: "4"
138
162
  } : void 0,
139
163
  e.$slots.count ? {
140
164
  name: "count",
141
- fn: l((t) => [
142
- r(e.$slots, "count", k(w(t)))
165
+ fn: s((t) => [
166
+ r(e.$slots, "count", C(k(t)))
143
167
  ]),
144
168
  key: "5"
145
169
  } : void 0
@@ -1,90 +1,314 @@
1
- import { defineComponent as k, useModel as C, ref as V, watch as f, openBlock as B, createBlock as N, withCtx as i, createElementVNode as x, toDisplayString as u, createVNode as c, createTextVNode as m, mergeModels as M } from "vue";
2
- import b from "../HysModal/HysModal.vue.js";
3
- import v from "../HysButton/HysButton.vue.js";
4
- const w = /* @__PURE__ */ k({
1
+ import { defineComponent as ce, useModel as de, ref as W, computed as o, watch as O, openBlock as d, createBlock as D, createSlots as ve, withCtx as v, createElementBlock as C, renderSlot as y, normalizeProps as k, guardReactiveProps as g, createVNode as p, createCommentVNode as I, createElementVNode as j, createTextVNode as Y, toDisplayString as M, mergeProps as Z, resolveDynamicComponent as pe, unref as f, normalizeStyle as fe, mergeModels as _, nextTick as he } from "vue";
2
+ import { X as me } from "lucide-vue-next";
3
+ import H from "../HysButton/HysButton.vue.js";
4
+ import ye from "../HysModal/HysModal.vue.js";
5
+ import { useTourLayout as ke } from "../../composables/useTourLayout.js";
6
+ const ge = ["viewBox"], xe = ["width", "height"], we = ["d", "fill"], Te = ["id"], Be = { key: 0 }, be = {
7
+ key: 0,
8
+ class: "hys-ui-tour-cover"
9
+ }, Ce = { key: 1 }, Se = {
10
+ class: "hys-ui-tour-indicators",
11
+ "aria-live": "polite"
12
+ }, Ve = /* @__PURE__ */ ce({
5
13
  __name: "HysTour",
6
- props: /* @__PURE__ */ M({
7
- popupTransition: {},
8
- popupTransitionDuration: {},
14
+ props: /* @__PURE__ */ _({
9
15
  steps: {},
16
+ open: { type: Boolean, default: void 0 },
10
17
  current: {},
11
- closeOnEscape: { type: Boolean, default: !0 }
18
+ closeOnEscape: { type: Boolean, default: !0 },
19
+ appendTo: { type: [String, Boolean], default: "body" },
20
+ zIndex: {},
21
+ skipText: { default: "跳过" },
22
+ prevText: { default: "上一步" },
23
+ nextText: { default: "下一步" },
24
+ finishText: { default: "完成" },
25
+ popupTransition: {},
26
+ popupTransitionDuration: {},
27
+ placement: { default: "bottom" },
28
+ mask: { type: [Boolean, Object], default: !0 },
29
+ gap: {},
30
+ showArrow: { type: Boolean, default: void 0 },
31
+ arrow: { type: [Boolean, Object], default: void 0 },
32
+ type: { default: "default" },
33
+ contentStyle: {},
34
+ scrollIntoViewOptions: { type: Boolean, default: !0 },
35
+ targetAreaClickable: { type: Boolean, default: !0 },
36
+ showClose: { type: Boolean, default: !0 },
37
+ closeIcon: {},
38
+ prevButtonProps: {},
39
+ nextButtonProps: {}
12
40
  }, {
13
41
  modelValue: { type: Boolean, default: !1 },
14
42
  modelModifiers: {}
15
43
  }),
16
- emits: /* @__PURE__ */ M(["finish", "close", "change", "update:current"], ["update:modelValue"]),
17
- setup(t, { emit: T }) {
18
- const a = t, r = C(t, "modelValue"), s = T, e = V(l(a.current ?? 0));
19
- function l(n) {
20
- return Math.max(0, Math.min(Math.max(0, a.steps.length - 1), Number.isFinite(n) ? Math.floor(n) : 0));
44
+ emits: /* @__PURE__ */ _(["update:open", "update:current", "change", "finish", "close"], ["update:modelValue"]),
45
+ setup(i, { expose: ee, emit: te }) {
46
+ const a = i, F = de(i, "modelValue"), x = te, V = W(), S = o(() => a.open ?? F.value), u = W(h(a.current ?? 0));
47
+ let z;
48
+ const l = o(() => a.steps[u.value]), R = o(() => u.value >= a.steps.length - 1), s = o(() => {
49
+ var e, t;
50
+ return {
51
+ ...a,
52
+ ...l.value,
53
+ gap: { ...a.gap, ...(e = l.value) == null ? void 0 : e.gap },
54
+ contentStyle: { ...a.contentStyle, ...(t = l.value) == null ? void 0 : t.contentStyle }
55
+ };
56
+ }), { bounds: oe, view: $, card: w, arrow: q, path: L } = ke(
57
+ o(() => {
58
+ var e;
59
+ return ((e = V.value) == null ? void 0 : e.open) === !0;
60
+ }),
61
+ o(() => {
62
+ var e;
63
+ return (e = V.value) == null ? void 0 : e.element;
64
+ }),
65
+ s,
66
+ o(() => {
67
+ var e;
68
+ return (e = l.value) == null ? void 0 : e.target;
69
+ })
70
+ ), X = o(() => s.value.mask !== !1), G = o(() => !!oe.value && s.value.targetAreaClickable !== !1), J = o(() => {
71
+ const e = s.value.mask;
72
+ return typeof e == "object" ? e : void 0;
73
+ }), ae = {
74
+ background: "transparent",
75
+ backdropFilter: "none",
76
+ pointerEvents: "none"
77
+ }, le = o(() => {
78
+ var e, t;
79
+ return {
80
+ ...s.value.contentStyle,
81
+ pointerEvents: "auto",
82
+ ...w.value ? { position: "fixed", left: w.value.x + "px", top: w.value.y + "px" } : {},
83
+ "--hys-ui-tour-arrow-x": (((e = q.value) == null ? void 0 : e.x) ?? 0) + "px",
84
+ "--hys-ui-tour-arrow-y": (((t = q.value) == null ? void 0 : t.y) ?? 0) + "px"
85
+ };
86
+ }), ne = o(() => {
87
+ const e = s.value.showArrow ?? s.value.arrow !== !1;
88
+ if (!(!w.value || !e))
89
+ return w.value.placement;
90
+ }), se = o(() => {
91
+ var e;
92
+ return typeof ((e = l.value) == null ? void 0 : e.title) == "string" ? l.value.title : "引导";
93
+ }), ue = o(() => {
94
+ var e;
95
+ return ((e = l.value) == null ? void 0 : e.title) && typeof l.value.title != "string";
96
+ }), ie = o(() => a.popupTransition === "none" ? !1 : a.popupTransition === "slide-fade" ? "slide" : a.popupTransition), T = ({ value: e }) => typeof e == "function" ? e() : e;
97
+ function h(e) {
98
+ return Math.max(0, Math.min(a.steps.length - 1, Number.isFinite(e) ? Math.floor(e) : 0));
21
99
  }
22
- f(() => a.current, (n) => {
23
- n !== void 0 && (e.value = l(n));
24
- }), f(r, (n) => {
25
- n && (e.value = l(a.current ?? 0));
26
- }), f(() => a.steps.length, () => {
27
- e.value = l(e.value);
100
+ O(() => a.current, (e) => {
101
+ e !== void 0 && (u.value = h(e));
102
+ }), O(S, (e) => {
103
+ e && z === void 0 && (u.value = h(a.current ?? 0));
104
+ }, { flush: "sync" }), O(() => a.steps.length, () => {
105
+ u.value = h(u.value);
28
106
  });
29
- function h(n) {
30
- e.value = l(n), s("change", e.value), s("update:current", e.value);
107
+ function K(e) {
108
+ a.open !== void 0 ? x("update:open", e) : F.value = e;
109
+ }
110
+ function B(e) {
111
+ const t = h(e);
112
+ u.value !== t && (u.value = t, x("change", t), x("update:current", t));
113
+ }
114
+ function re(e = a.current ?? 0) {
115
+ const t = h(e);
116
+ S.value || (z = t, K(!0), he(() => {
117
+ z === t && (z = void 0);
118
+ })), B(t);
31
119
  }
32
- function d() {
33
- r.value = !1, s("close");
120
+ function b() {
121
+ var e, t;
122
+ S.value && (K(!1), (t = (e = l.value) == null ? void 0 : e.onClose) == null || t.call(e), x("close"));
34
123
  }
35
- function y() {
36
- e.value >= a.steps.length - 1 ? (s("finish"), d()) : h(e.value + 1);
124
+ function A() {
125
+ B(u.value - 1);
37
126
  }
38
- return (n, o) => {
39
- var g;
40
- return B(), N(b, {
41
- transition: t.popupTransition === "none" ? !1 : t.popupTransition === "slide-fade" ? "slide" : t.popupTransition,
42
- "transition-duration": t.popupTransitionDuration,
43
- open: r.value,
44
- title: ((g = t.steps[e.value]) == null ? void 0 : g.title) || "引导",
45
- "close-on-escape": t.closeOnEscape !== !1,
127
+ function E() {
128
+ if (!R.value) {
129
+ B(u.value + 1);
130
+ return;
131
+ }
132
+ x("finish"), b();
133
+ }
134
+ function Q(e) {
135
+ const { children: t, onClick: c, ...n } = e ?? {};
136
+ return { children: t, onClick: c, props: n };
137
+ }
138
+ const P = o(() => Q(s.value.prevButtonProps)), N = o(() => Q(s.value.nextButtonProps));
139
+ function U(e, t) {
140
+ var n;
141
+ const c = t === "previous" ? P.value : N.value;
142
+ (n = c.onClick) == null || n.call(c, e), e.defaultPrevented || (t === "previous" ? A : E)();
143
+ }
144
+ const m = o(() => ({
145
+ step: l.value,
146
+ current: u.value,
147
+ total: a.steps.length,
148
+ goTo: B,
149
+ previous: A,
150
+ next: E,
151
+ close: b
152
+ }));
153
+ return ee({ start: re, close: b, goTo: B, previous: A, next: E }), (e, t) => {
154
+ var c;
155
+ return d(), D(ye, {
156
+ ref_key: "modal",
157
+ ref: V,
158
+ open: S.value,
159
+ title: se.value,
160
+ modal: X.value && !G.value,
161
+ "modal-penetrable": "",
162
+ "close-on-escape": i.closeOnEscape,
46
163
  "close-on-mask": !1,
47
- onClose: d
48
- }, {
49
- footer: i(() => [
50
- x("span", null, u(t.steps.length ? e.value + 1 : 0) + " / " + u(t.steps.length), 1),
51
- c(v, {
52
- variant: "ghost",
53
- onClick: d
54
- }, {
55
- default: i(() => [...o[1] || (o[1] = [
56
- m("跳过", -1)
57
- ])]),
58
- _: 1
59
- }),
60
- c(v, {
61
- variant: "secondary",
62
- disabled: e.value === 0,
63
- onClick: o[0] || (o[0] = (p) => h(e.value - 1))
64
- }, {
65
- default: i(() => [...o[2] || (o[2] = [
66
- m("上一步", -1)
67
- ])]),
68
- _: 1
69
- }, 8, ["disabled"]),
70
- c(v, { onClick: y }, {
71
- default: i(() => [
72
- m(u(e.value >= t.steps.length - 1 ? "完成" : "下一步"), 1)
164
+ "show-close": s.value.showClose !== !1,
165
+ "append-to": i.appendTo,
166
+ "z-index": i.zIndex,
167
+ transition: ie.value,
168
+ "transition-duration": i.popupTransitionDuration,
169
+ overflow: "",
170
+ "keep-handle-visible": !1,
171
+ width: (c = l.value) != null && c.target ? "min(380px, calc(100vw - 24px))" : void 0,
172
+ "data-hys-tour-placement": ne.value,
173
+ "modal-class": "hys-ui-tour-card hys-ui-tour-card-" + (s.value.type ?? "default"),
174
+ "modal-style": le.value,
175
+ "mask-style": ae,
176
+ onClose: b
177
+ }, ve({
178
+ "close-icon": v(() => [
179
+ y(e.$slots, "close-icon", k(g(m.value)), () => [
180
+ typeof s.value.closeIcon == "string" ? (d(), C("span", Be, M(s.value.closeIcon), 1)) : (d(), D(pe(s.value.closeIcon ?? f(me)), {
181
+ key: 1,
182
+ size: 18
183
+ }))
184
+ ])
185
+ ]),
186
+ footer: v(() => [
187
+ y(e.$slots, "footer", k(g(m.value)), () => [
188
+ j("span", Se, [
189
+ y(e.$slots, "indicators", k(g(m.value)), () => [
190
+ Y(M(i.steps.length ? u.value + 1 : 0) + " / " + M(i.steps.length), 1)
191
+ ])
73
192
  ]),
74
- _: 1
75
- })
193
+ p(H, {
194
+ size: "sm",
195
+ variant: "ghost",
196
+ onClick: b
197
+ }, {
198
+ default: v(() => [
199
+ Y(M(i.skipText), 1)
200
+ ]),
201
+ _: 1
202
+ }),
203
+ p(H, Z({
204
+ size: "sm",
205
+ variant: "secondary"
206
+ }, P.value.props, {
207
+ disabled: u.value === 0 || P.value.props.disabled,
208
+ onClick: t[0] || (t[0] = (n) => U(n, "previous"))
209
+ }), {
210
+ default: v(() => [
211
+ p(T, {
212
+ value: P.value.children ?? i.prevText
213
+ }, null, 8, ["value"])
214
+ ]),
215
+ _: 1
216
+ }, 16, ["disabled"]),
217
+ p(H, Z({
218
+ size: "sm",
219
+ variant: s.value.type === "primary" ? "secondary" : "primary"
220
+ }, N.value.props, {
221
+ onClick: t[1] || (t[1] = (n) => U(n, "next"))
222
+ }), {
223
+ default: v(() => [
224
+ p(T, {
225
+ value: N.value.children ?? (R.value ? i.finishText : i.nextText)
226
+ }, null, 8, ["value"])
227
+ ]),
228
+ _: 1
229
+ }, 16, ["variant"])
230
+ ])
76
231
  ]),
77
- default: i(() => {
78
- var p;
232
+ default: v(() => {
233
+ var n;
79
234
  return [
80
- x("p", null, u(((p = t.steps[e.value]) == null ? void 0 : p.description) || "暂无引导步骤"), 1)
235
+ (n = l.value) != null && n.cover || e.$slots.cover ? (d(), C("div", be, [
236
+ y(e.$slots, "cover", k(g(m.value)), () => {
237
+ var r;
238
+ return [
239
+ p(T, {
240
+ value: (r = l.value) == null ? void 0 : r.cover
241
+ }, null, 8, ["value"])
242
+ ];
243
+ })
244
+ ])) : I("", !0),
245
+ y(e.$slots, "default", k(g(m.value)), () => {
246
+ var r;
247
+ return [
248
+ (r = l.value) != null && r.description ? (d(), D(T, {
249
+ key: 0,
250
+ value: l.value.description
251
+ }, null, 8, ["value"])) : l.value ? I("", !0) : (d(), C("span", Ce, "暂无引导步骤"))
252
+ ];
253
+ })
81
254
  ];
82
255
  }),
83
- _: 1
84
- }, 8, ["transition", "transition-duration", "open", "title", "close-on-escape"]);
256
+ _: 2
257
+ }, [
258
+ X.value ? {
259
+ name: "backdrop",
260
+ fn: v(() => {
261
+ var n, r;
262
+ return [
263
+ f(L) ? (d(), C("svg", {
264
+ key: 0,
265
+ class: "hys-ui-tour-mask",
266
+ viewBox: `0 0 ${f($).width} ${f($).height}`,
267
+ preserveAspectRatio: "none",
268
+ "aria-hidden": "true",
269
+ style: fe((n = J.value) == null ? void 0 : n.style)
270
+ }, [
271
+ G.value ? I("", !0) : (d(), C("rect", {
272
+ key: 0,
273
+ width: f($).width,
274
+ height: f($).height,
275
+ fill: "transparent",
276
+ class: "hys-ui-tour-mask-hit"
277
+ }, null, 8, xe)),
278
+ j("path", {
279
+ d: f(L),
280
+ "fill-rule": "evenodd",
281
+ fill: ((r = J.value) == null ? void 0 : r.color) ?? "rgba(11, 24, 61, 0.48)",
282
+ class: "hys-ui-tour-mask-hit"
283
+ }, null, 8, we)
284
+ ], 12, ge)) : I("", !0)
285
+ ];
286
+ }),
287
+ key: "0"
288
+ } : void 0,
289
+ ue.value || e.$slots.header ? {
290
+ name: "header",
291
+ fn: v(({ titleId: n }) => [
292
+ j("h2", {
293
+ id: n,
294
+ class: "hys-ui-tour-heading"
295
+ }, [
296
+ y(e.$slots, "header", k(g(m.value)), () => {
297
+ var r;
298
+ return [
299
+ p(T, {
300
+ value: (r = l.value) == null ? void 0 : r.title
301
+ }, null, 8, ["value"])
302
+ ];
303
+ })
304
+ ], 8, Te)
305
+ ]),
306
+ key: "1"
307
+ } : void 0
308
+ ]), 1032, ["open", "title", "modal", "close-on-escape", "show-close", "append-to", "z-index", "transition", "transition-duration", "width", "data-hys-tour-placement", "modal-class", "modal-style"]);
85
309
  };
86
310
  }
87
311
  });
88
312
  export {
89
- w as default
313
+ Ve as default
90
314
  };
@@ -0,0 +1,5 @@
1
+ import o from "./HysTour.vue.js";
2
+ /* empty css */
3
+ export {
4
+ o as default
5
+ };
@@ -0,0 +1,106 @@
1
+ const I = [
2
+ "odometer",
3
+ "wheel",
4
+ "flip",
5
+ "slot",
6
+ "random",
7
+ "scramble",
8
+ "appear",
9
+ "disappear"
10
+ ];
11
+ function w(t) {
12
+ return t.reduce(
13
+ (i, { type: r, value: a }) => i + (r === "integer" || r === "fraction" ? [...a].length : 0),
14
+ 0
15
+ );
16
+ }
17
+ function $(t, i) {
18
+ let r = t.filter(({ type: n }) => n === "integer").reduce((n, s) => n + [...s.value].length, 0), a = 0;
19
+ return t.flatMap(({ type: n, value: s }, l) => !i || n !== "integer" && n !== "fraction" ? [{ key: `${n}-${l}`, text: s, type: n, position: 0 }] : [...s].map((f) => {
20
+ const d = n === "integer" ? --r : ++a;
21
+ return {
22
+ key: `${n}-digit-${d}`,
23
+ text: f,
24
+ type: n,
25
+ position: d,
26
+ section: n
27
+ };
28
+ }));
29
+ }
30
+ function N(t, i) {
31
+ const r = { integer: "", fraction: "" };
32
+ for (const a of t.parts)
33
+ (a.type === "integer" || a.type === "fraction") && (r[a.type] += [...a.value].map((n) => Math.max(0, i.indexOf(n))).join(""));
34
+ return r;
35
+ }
36
+ function B(t, i, r) {
37
+ var p, M;
38
+ const a = N(t, r), n = N(i, r), s = Math.max(a.fraction.length, n.fraction.length), l = (e) => BigInt(e.integer + e.fraction.padEnd(s, "0")), f = l(a), d = l(n), g = t.unit === i.unit && ((p = t.parts.find(({ type: e }) => e === "exponentInteger")) == null ? void 0 : p.value) === ((M = i.parts.find(({ type: e }) => e === "exponentInteger")) == null ? void 0 : M.value);
39
+ return (e) => {
40
+ const u = e.section === "integer" ? s + e.position : s - e.position, o = 10n ** BigInt(Math.max(0, u)), h = f / o, m = d / o, c = m - h, x = Number(h % 10n), v = Number(m % 10n), P = c > 40n ? 30 + Number(c % 10n) : c < -40n ? -30 + Number(c % 10n) : Number(c);
41
+ return {
42
+ offset: x,
43
+ destination: v,
44
+ steps: g ? P : v - x,
45
+ carry: g && o > 1n && c !== 0n && c >= -40n && c <= 40n ? {
46
+ start: Number(f % o * 1000000n / o) / 1e6,
47
+ end: Number(d % o * 1000000n / o) / 1e6
48
+ } : void 0,
49
+ fromPresent: e.position < a.integer.length && e.section === "integer" || e.position <= a.fraction.length && e.section === "fraction",
50
+ toPresent: e.position < n.integer.length && e.section === "integer" || e.position <= n.fraction.length && e.section === "fraction"
51
+ };
52
+ };
53
+ }
54
+ const b = (t) => (t % 10 + 10) % 10;
55
+ function E(t, i, r, a, n) {
56
+ const { offset: s, destination: l, steps: f } = i, d = f < 0 ? -1 : 1, g = (u) => (Math.imul(u + 23, 2246822519) ^ Math.imul(a + 17, 3266489917)) >>> 0;
57
+ if (t === "scramble") {
58
+ const u = r * 24, o = Math.floor(u);
59
+ return {
60
+ first: n[o === 0 ? s : g(o) % 10],
61
+ second: n[o >= 23 ? l : g(o + 1) % 10],
62
+ phase: u - o,
63
+ direction: d,
64
+ changed: !0
65
+ };
66
+ }
67
+ if (t === "odometer" && i.carry) {
68
+ const { start: u, end: o } = i.carry, h = u + (f + o - u) * r, m = Math.floor(h), c = Math.max(
69
+ 0.9,
70
+ m === 0 ? u : 0,
71
+ m === f ? o : 0
72
+ );
73
+ return {
74
+ first: n[b(s + m)],
75
+ second: n[b(s + m + 1)],
76
+ phase: Math.max(0, (h - m - c) / (1 - c)),
77
+ direction: 1,
78
+ changed: !0
79
+ };
80
+ }
81
+ if (t === "odometer" || t === "wheel" || t === "slot") {
82
+ const u = (l - s + 10 * d) % 10, o = t === "slot" ? 20 * d + u : t === "wheel" ? u : f, h = Math.abs(o) * r, m = Math.floor(h), c = s + m * d;
83
+ return {
84
+ first: n[b(c)],
85
+ second: n[b(c + d)],
86
+ phase: h - m,
87
+ direction: d,
88
+ changed: o !== 0
89
+ };
90
+ }
91
+ const p = Math.floor(Math.min(r, 0.87) * 37), M = t === "random" && p > 0 ? g(p) % 10 : s, e = t === "appear" || t === "disappear";
92
+ return {
93
+ first: e && !i.fromPresent ? "" : n[M],
94
+ second: e && !i.toPresent ? "" : n[l],
95
+ phase: t === "random" ? Math.max(0, (r - 0.87) / 0.13) : r,
96
+ direction: d,
97
+ changed: s !== l || t === "random" || e && i.fromPresent !== i.toPresent
98
+ };
99
+ }
100
+ export {
101
+ B as createDigitTracks,
102
+ w as digitCount,
103
+ I as digitEffects,
104
+ E as digitMotion,
105
+ $ as numberTokens
106
+ };