@varlet/cli 1.20.0 → 1.21.1-alpha.64

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 (137) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.en-US.md +11 -0
  3. package/README.md +11 -0
  4. package/generators/sfc/package.json +3 -2
  5. package/generators/sfc/varlet.config.js +5 -0
  6. package/generators/tsx/package.json +3 -2
  7. package/generators/tsx/varlet.config.js +5 -0
  8. package/lib/commands/build.js +19 -15
  9. package/lib/commands/dev.d.ts +3 -2
  10. package/lib/commands/dev.js +23 -34
  11. package/lib/commands/jest.d.ts +3 -3
  12. package/lib/commands/preview.d.ts +1 -0
  13. package/lib/commands/preview.js +65 -0
  14. package/lib/compiler/compileModule.js +7 -14
  15. package/lib/compiler/compileSFC.js +7 -2
  16. package/lib/compiler/compileSiteEntry.d.ts +1 -4
  17. package/lib/compiler/compileSiteEntry.js +10 -20
  18. package/lib/compiler/compileStyle.js +1 -60
  19. package/lib/config/babel.config.js +0 -9
  20. package/lib/config/jest.config.js +1 -1
  21. package/lib/config/jest.lib.mock.d.ts +0 -0
  22. package/lib/config/jest.lib.mock.js +2 -0
  23. package/lib/config/postcss.config.d.ts +4 -1
  24. package/lib/config/postcss.config.js +14 -38
  25. package/lib/config/varlet.config.d.ts +1 -1
  26. package/lib/config/vite.config.d.ts +4 -0
  27. package/lib/config/vite.config.js +128 -0
  28. package/lib/config/webpack.base.config.js +1 -1
  29. package/lib/index.js +7 -2
  30. package/lib/shared/constant.d.ts +2 -8
  31. package/lib/shared/constant.js +3 -9
  32. package/lib/site/components/app-bar/index.d.ts +3 -0
  33. package/lib/site/components/app-bar/index.js +12 -0
  34. package/lib/site/components/app-bar/props.d.ts +21 -0
  35. package/lib/site/components/app-bar/props.js +28 -0
  36. package/lib/site/components/button/index.d.ts +3 -0
  37. package/lib/site/components/button/index.js +12 -0
  38. package/lib/site/components/button/props.d.ts +62 -0
  39. package/lib/site/components/button/props.js +69 -0
  40. package/lib/site/components/cell/index.d.ts +3 -0
  41. package/lib/site/components/cell/index.js +12 -0
  42. package/lib/site/components/cell/props.d.ts +27 -0
  43. package/lib/site/components/cell/props.js +30 -0
  44. package/lib/site/components/context/index.d.ts +15 -0
  45. package/lib/site/components/context/index.js +11 -0
  46. package/lib/site/components/context/lock.d.ts +10 -0
  47. package/lib/site/components/context/lock.js +94 -0
  48. package/lib/site/components/context/zIndex.d.ts +4 -0
  49. package/lib/site/components/context/zIndex.js +19 -0
  50. package/lib/site/components/icon/index.d.ts +3 -0
  51. package/lib/site/components/icon/index.js +12 -0
  52. package/lib/site/components/icon/props.d.ts +23 -0
  53. package/lib/site/components/icon/props.js +25 -0
  54. package/lib/site/components/loading/index.d.ts +3 -0
  55. package/lib/site/components/loading/index.js +12 -0
  56. package/lib/site/components/loading/props.d.ts +26 -0
  57. package/lib/site/components/loading/props.js +34 -0
  58. package/lib/site/components/menu/index.d.ts +3 -0
  59. package/lib/site/components/menu/index.js +12 -0
  60. package/lib/site/components/menu/props.d.ts +40 -0
  61. package/lib/site/components/menu/props.js +43 -0
  62. package/lib/site/components/progress/index.d.ts +3 -0
  63. package/lib/site/components/progress/index.js +12 -0
  64. package/lib/site/components/progress/props.d.ts +43 -0
  65. package/lib/site/components/progress/props.js +57 -0
  66. package/lib/site/components/ripple/index.d.ts +8 -0
  67. package/lib/site/components/ripple/index.js +125 -0
  68. package/lib/site/components/utils/components.d.ts +53 -0
  69. package/lib/site/components/utils/components.js +279 -0
  70. package/lib/site/components/utils/elements.d.ts +30 -0
  71. package/lib/site/components/utils/elements.js +240 -0
  72. package/lib/site/components/utils/shared.d.ts +36 -0
  73. package/lib/site/components/utils/shared.js +181 -0
  74. package/lib/site/mobile/main.d.ts +3 -0
  75. package/lib/site/mobile/main.js +93 -0
  76. package/lib/site/pc/main.d.ts +3 -0
  77. package/lib/site/pc/main.js +69 -0
  78. package/lib/site/useProgress.d.ts +4 -0
  79. package/lib/site/useProgress.js +58 -0
  80. package/lib/site/utils.d.ts +24 -0
  81. package/lib/site/utils.js +133 -0
  82. package/package.json +16 -30
  83. package/site/.DS_Store +0 -0
  84. package/site/components/app-bar/AppBar.vue +45 -0
  85. package/site/components/app-bar/appBar.less +66 -0
  86. package/site/components/app-bar/index.ts +10 -0
  87. package/site/components/app-bar/props.ts +25 -0
  88. package/site/components/button/Button.vue +84 -0
  89. package/site/components/button/button.less +183 -0
  90. package/site/components/button/index.ts +10 -0
  91. package/site/components/button/props.ts +70 -0
  92. package/site/components/cell/Cell.vue +42 -0
  93. package/site/components/cell/cell.less +74 -0
  94. package/site/components/cell/index.ts +10 -0
  95. package/site/components/cell/props.ts +27 -0
  96. package/site/components/context/index.ts +17 -0
  97. package/site/components/context/lock.ts +103 -0
  98. package/site/components/context/zIndex.ts +20 -0
  99. package/site/components/icon/Icon.vue +68 -0
  100. package/site/components/icon/icon.less +25 -0
  101. package/site/components/icon/index.ts +10 -0
  102. package/site/components/icon/props.ts +24 -0
  103. package/site/components/loading/Loading.vue +55 -0
  104. package/site/components/loading/index.ts +10 -0
  105. package/site/components/loading/loading.less +420 -0
  106. package/site/components/loading/props.ts +37 -0
  107. package/site/components/menu/Menu.vue +113 -0
  108. package/site/components/menu/index.ts +10 -0
  109. package/site/components/menu/menu.less +27 -0
  110. package/site/components/menu/props.ts +43 -0
  111. package/site/components/progress/Progress.vue +108 -0
  112. package/site/components/progress/index.ts +10 -0
  113. package/site/components/progress/progress.less +98 -0
  114. package/site/components/progress/props.ts +55 -0
  115. package/site/components/ripple/index.ts +167 -0
  116. package/site/components/ripple/ripple.less +17 -0
  117. package/site/components/styles/common.less +64 -0
  118. package/site/components/styles/elevation.less +126 -0
  119. package/site/components/styles/var.less +27 -0
  120. package/site/components/utils/components.ts +53 -0
  121. package/site/components/utils/elements.ts +83 -0
  122. package/site/components/utils/shared.ts +27 -0
  123. package/site/{pc/index.html → index.html} +6 -4
  124. package/site/mobile/App.vue +20 -18
  125. package/site/mobile/components/AppHome.vue +6 -8
  126. package/site/mobile/main.ts +17 -2
  127. package/site/{mobile/mobile.html → mobile.html} +6 -5
  128. package/site/pc/App.vue +16 -11
  129. package/site/pc/components/AppHeader.vue +15 -13
  130. package/site/pc/components/AppMobile.vue +3 -3
  131. package/site/pc/components/AppSidebar.vue +17 -23
  132. package/site/pc/main.ts +10 -2
  133. package/site/useProgress.ts +11 -9
  134. package/site/utils.ts +14 -3
  135. package/varlet.default.config.js +3 -2
  136. package/generators/sfc/yarn.lock +0 -11231
  137. package/generators/tsx/yarn.lock +0 -11231
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __rest = (this && this.__rest) || function (s, e) {
50
+ var t = {};
51
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
+ t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
+ t[p[i]] = s[p[i]];
57
+ }
58
+ return t;
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ exports.useTeleport = exports.addRouteListener = exports.useValidation = exports.keyInProvides = exports.useParent = exports.useChildren = exports.useAtParentIndex = exports.useAtChildrenCounter = exports.flatVNodes = exports.mountInstance = exports.mount = exports.pickProps = void 0;
62
+ var vue_1 = require("vue");
63
+ var shared_1 = require("./shared");
64
+ function pickProps(props, propsKey) {
65
+ return Array.isArray(propsKey)
66
+ ? propsKey.reduce(function (pickedProps, key) {
67
+ pickedProps[key] = props[key];
68
+ return pickedProps;
69
+ }, {})
70
+ : props[propsKey];
71
+ }
72
+ exports.pickProps = pickProps;
73
+ function mount(component) {
74
+ var app = vue_1.createApp(component);
75
+ var host = document.createElement('div');
76
+ document.body.appendChild(host);
77
+ return {
78
+ instance: app.mount(host),
79
+ unmount: function () {
80
+ app.unmount();
81
+ document.body.removeChild(host);
82
+ },
83
+ };
84
+ }
85
+ exports.mount = mount;
86
+ function mountInstance(component, props, eventListener) {
87
+ if (props === void 0) { props = {}; }
88
+ if (eventListener === void 0) { eventListener = {}; }
89
+ var Host = {
90
+ setup: function () {
91
+ return function () {
92
+ return vue_1.h(component, __assign(__assign({}, props), eventListener));
93
+ };
94
+ },
95
+ };
96
+ var unmount = mount(Host).unmount;
97
+ return { unmountInstance: unmount };
98
+ }
99
+ exports.mountInstance = mountInstance;
100
+ function flatVNodes(subTree) {
101
+ var vNodes = [];
102
+ var flat = function (subTree) {
103
+ if (subTree === null || subTree === void 0 ? void 0 : subTree.component) {
104
+ flat(subTree === null || subTree === void 0 ? void 0 : subTree.component.subTree);
105
+ return;
106
+ }
107
+ if (Array.isArray(subTree === null || subTree === void 0 ? void 0 : subTree.children)) {
108
+ subTree.children.forEach(function (child) {
109
+ if (vue_1.isVNode(child)) {
110
+ vNodes.push(child);
111
+ flat(child);
112
+ }
113
+ });
114
+ }
115
+ };
116
+ flat(subTree);
117
+ return vNodes;
118
+ }
119
+ exports.flatVNodes = flatVNodes;
120
+ function useAtChildrenCounter(key) {
121
+ var instances = vue_1.reactive([]);
122
+ var parentInstance = vue_1.getCurrentInstance();
123
+ var sortInstances = function () {
124
+ var vNodes = flatVNodes(parentInstance.subTree);
125
+ instances.sort(function (a, b) {
126
+ return vNodes.indexOf(a.vnode) - vNodes.indexOf(b.vnode);
127
+ });
128
+ };
129
+ var collect = function (instance) {
130
+ instances.push(instance);
131
+ sortInstances();
132
+ };
133
+ var clear = function (instance) {
134
+ shared_1.removeItem(instances, instance);
135
+ };
136
+ vue_1.provide(key, {
137
+ collect: collect,
138
+ clear: clear,
139
+ instances: instances,
140
+ });
141
+ var length = vue_1.computed(function () { return instances.length; });
142
+ return {
143
+ length: length,
144
+ };
145
+ }
146
+ exports.useAtChildrenCounter = useAtChildrenCounter;
147
+ function useAtParentIndex(key) {
148
+ if (!keyInProvides(key)) {
149
+ return { index: null };
150
+ }
151
+ var childrenCounter = vue_1.inject(key);
152
+ var collect = childrenCounter.collect, clear = childrenCounter.clear, instances = childrenCounter.instances;
153
+ var instance = vue_1.getCurrentInstance();
154
+ vue_1.onMounted(function () {
155
+ vue_1.nextTick().then(function () { return collect(instance); });
156
+ });
157
+ vue_1.onUnmounted(function () {
158
+ vue_1.nextTick().then(function () { return clear(instance); });
159
+ });
160
+ var index = vue_1.computed(function () { return instances.indexOf(instance); });
161
+ return {
162
+ index: index,
163
+ };
164
+ }
165
+ exports.useAtParentIndex = useAtParentIndex;
166
+ function useChildren(key) {
167
+ var childProviders = [];
168
+ var collect = function (childProvider) {
169
+ childProviders.push(childProvider);
170
+ };
171
+ var clear = function (childProvider) {
172
+ shared_1.removeItem(childProviders, childProvider);
173
+ };
174
+ var bindChildren = function (parentProvider) {
175
+ vue_1.provide(key, __assign({ collect: collect, clear: clear }, parentProvider));
176
+ };
177
+ return {
178
+ childProviders: childProviders,
179
+ bindChildren: bindChildren,
180
+ };
181
+ }
182
+ exports.useChildren = useChildren;
183
+ function useParent(key) {
184
+ if (!keyInProvides(key)) {
185
+ return {
186
+ parentProvider: null,
187
+ bindParent: null,
188
+ };
189
+ }
190
+ var rawParentProvider = vue_1.inject(key);
191
+ var collect = rawParentProvider.collect, clear = rawParentProvider.clear, parentProvider = __rest(rawParentProvider, ["collect", "clear"]);
192
+ var bindParent = function (childProvider) {
193
+ vue_1.onMounted(function () { return collect(childProvider); });
194
+ vue_1.onBeforeUnmount(function () { return clear(childProvider); });
195
+ };
196
+ return {
197
+ parentProvider: parentProvider,
198
+ bindParent: bindParent,
199
+ };
200
+ }
201
+ exports.useParent = useParent;
202
+ function keyInProvides(key) {
203
+ var instance = vue_1.getCurrentInstance();
204
+ return key in instance.provides;
205
+ }
206
+ exports.keyInProvides = keyInProvides;
207
+ function useValidation() {
208
+ var _this = this;
209
+ var errorMessage = vue_1.ref('');
210
+ var validate = function (rules, value, apis) { return __awaiter(_this, void 0, void 0, function () {
211
+ var resArr;
212
+ return __generator(this, function (_a) {
213
+ switch (_a.label) {
214
+ case 0:
215
+ if (!shared_1.isArray(rules) || !rules.length) {
216
+ return [2 /*return*/, true];
217
+ }
218
+ return [4 /*yield*/, Promise.all(rules.map(function (rule) { return rule(value, apis); }))];
219
+ case 1:
220
+ resArr = _a.sent();
221
+ return [2 /*return*/, !resArr.some(function (res) {
222
+ if (res !== true) {
223
+ errorMessage.value = String(res);
224
+ return true;
225
+ }
226
+ return false;
227
+ })];
228
+ }
229
+ });
230
+ }); };
231
+ var resetValidation = function () {
232
+ errorMessage.value = '';
233
+ };
234
+ var validateWithTrigger = function (validateTrigger, trigger, rules, value, apis) { return __awaiter(_this, void 0, void 0, function () {
235
+ return __generator(this, function (_a) {
236
+ switch (_a.label) {
237
+ case 0:
238
+ if (!validateTrigger.includes(trigger)) return [3 /*break*/, 2];
239
+ ;
240
+ return [4 /*yield*/, validate(rules, value, apis)];
241
+ case 1:
242
+ (_a.sent()) && (errorMessage.value = '');
243
+ _a.label = 2;
244
+ case 2: return [2 /*return*/];
245
+ }
246
+ });
247
+ }); };
248
+ return {
249
+ errorMessage: errorMessage,
250
+ validate: validate,
251
+ resetValidation: resetValidation,
252
+ validateWithTrigger: validateWithTrigger,
253
+ };
254
+ }
255
+ exports.useValidation = useValidation;
256
+ function addRouteListener(cb) {
257
+ vue_1.onMounted(function () {
258
+ window.addEventListener('hashchange', cb);
259
+ window.addEventListener('popstate', cb);
260
+ });
261
+ vue_1.onUnmounted(function () {
262
+ window.removeEventListener('hashchange', cb);
263
+ window.removeEventListener('popstate', cb);
264
+ });
265
+ }
266
+ exports.addRouteListener = addRouteListener;
267
+ function useTeleport() {
268
+ var disabled = vue_1.ref(false);
269
+ vue_1.onActivated(function () {
270
+ disabled.value = false;
271
+ });
272
+ vue_1.onDeactivated(function () {
273
+ disabled.value = true;
274
+ });
275
+ return {
276
+ disabled: disabled,
277
+ };
278
+ }
279
+ exports.useTeleport = useTeleport;
@@ -0,0 +1,30 @@
1
+ import type { StyleVars } from '../../utils';
2
+ export declare function getLeft(element: HTMLElement): number;
3
+ export declare function getTop(element: HTMLElement): number;
4
+ export declare function getScrollTop(element: Element | Window): number;
5
+ export declare function getScrollLeft(element: Element | Window): number;
6
+ export declare function inViewport(element: HTMLElement): Promise<boolean>;
7
+ export declare function getTranslate(el: HTMLElement): number;
8
+ export declare function isHidden(el: HTMLElement): boolean;
9
+ export declare function getParentScroller(el: HTMLElement): HTMLElement | Window;
10
+ export declare function getAllParentScroller(el: HTMLElement): Array<HTMLElement | Window>;
11
+ export declare const isRem: (value: unknown) => boolean;
12
+ export declare const isPx: (value: unknown) => boolean;
13
+ export declare const isPercent: (value: unknown) => boolean;
14
+ export declare const isVw: (value: unknown) => boolean;
15
+ export declare const isVh: (value: unknown) => boolean;
16
+ export declare const toPxNum: (value: unknown) => number;
17
+ export declare const toSizeUnit: (value: unknown) => unknown;
18
+ export declare function requestAnimationFrame(fn: FrameRequestCallback): number;
19
+ export declare function cancelAnimationFrame(handle: number): void;
20
+ export declare function nextTickFrame(fn: FrameRequestCallback): void;
21
+ export declare function doubleRaf(): Promise<unknown>;
22
+ interface ScrollToOptions {
23
+ top?: number;
24
+ left?: number;
25
+ duration?: number;
26
+ animation: (progress: number) => number;
27
+ }
28
+ export declare function scrollTo(element: HTMLElement | Window, { top, left, duration, animation }: ScrollToOptions): Promise<void>;
29
+ export declare function formatStyleVars(styleVars: StyleVars): StyleVars;
30
+ export {};
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __read = (this && this.__read) || function (o, n) {
39
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
40
+ if (!m) return o;
41
+ var i = m.call(o), r, ar = [], e;
42
+ try {
43
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
+ }
45
+ catch (error) { e = { error: error }; }
46
+ finally {
47
+ try {
48
+ if (r && !r.done && (m = i["return"])) m.call(i);
49
+ }
50
+ finally { if (e) throw e.error; }
51
+ }
52
+ return ar;
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.formatStyleVars = exports.scrollTo = exports.doubleRaf = exports.nextTickFrame = exports.cancelAnimationFrame = exports.requestAnimationFrame = exports.toSizeUnit = exports.toPxNum = exports.isVh = exports.isVw = exports.isPercent = exports.isPx = exports.isRem = exports.getAllParentScroller = exports.getParentScroller = exports.isHidden = exports.getTranslate = exports.inViewport = exports.getScrollLeft = exports.getScrollTop = exports.getTop = exports.getLeft = void 0;
56
+ var shared_1 = require("./shared");
57
+ function getLeft(element) {
58
+ var left = element.getBoundingClientRect().left;
59
+ return left + (document.body.scrollLeft || document.documentElement.scrollLeft);
60
+ }
61
+ exports.getLeft = getLeft;
62
+ function getTop(element) {
63
+ var top = element.getBoundingClientRect().top;
64
+ return top + (document.body.scrollTop || document.documentElement.scrollTop);
65
+ }
66
+ exports.getTop = getTop;
67
+ function getScrollTop(element) {
68
+ var top = 'scrollTop' in element ? element.scrollTop : element.pageYOffset;
69
+ // iOS scroll bounce cause minus scrollTop
70
+ return Math.max(top, 0);
71
+ }
72
+ exports.getScrollTop = getScrollTop;
73
+ function getScrollLeft(element) {
74
+ var left = 'scrollLeft' in element ? element.scrollLeft : element.pageXOffset;
75
+ return Math.max(left, 0);
76
+ }
77
+ exports.getScrollLeft = getScrollLeft;
78
+ function inViewport(element) {
79
+ return __awaiter(this, void 0, void 0, function () {
80
+ var _a, top, bottom, left, right, innerWidth, innerHeight, xInViewport, yInViewport;
81
+ return __generator(this, function (_b) {
82
+ switch (_b.label) {
83
+ case 0: return [4 /*yield*/, doubleRaf()];
84
+ case 1:
85
+ _b.sent();
86
+ _a = element.getBoundingClientRect(), top = _a.top, bottom = _a.bottom, left = _a.left, right = _a.right;
87
+ innerWidth = window.innerWidth, innerHeight = window.innerHeight;
88
+ xInViewport = left <= innerWidth && right >= 0;
89
+ yInViewport = top <= innerHeight && bottom >= 0;
90
+ return [2 /*return*/, xInViewport && yInViewport];
91
+ }
92
+ });
93
+ });
94
+ }
95
+ exports.inViewport = inViewport;
96
+ function getTranslate(el) {
97
+ var transform = window.getComputedStyle(el).transform;
98
+ return +transform.slice(transform.lastIndexOf(',') + 2, transform.length - 1);
99
+ }
100
+ exports.getTranslate = getTranslate;
101
+ function isHidden(el) {
102
+ var _a = el.getBoundingClientRect(), width = _a.width, height = _a.height;
103
+ return width === 0 && height === 0;
104
+ }
105
+ exports.isHidden = isHidden;
106
+ function getParentScroller(el) {
107
+ var element = el;
108
+ while (element) {
109
+ if (!element.parentNode) {
110
+ break;
111
+ }
112
+ element = element.parentNode;
113
+ if (element === document.body || element === document.documentElement) {
114
+ break;
115
+ }
116
+ var scrollRE = /(scroll|auto)/;
117
+ var _a = window.getComputedStyle(element), overflowY = _a.overflowY, overflow = _a.overflow;
118
+ if (scrollRE.test(overflowY) || scrollRE.test(overflow)) {
119
+ return element;
120
+ }
121
+ }
122
+ return window;
123
+ }
124
+ exports.getParentScroller = getParentScroller;
125
+ function getAllParentScroller(el) {
126
+ var allParentScroller = [];
127
+ var element = el;
128
+ while (element !== window) {
129
+ element = getParentScroller(element);
130
+ allParentScroller.push(element);
131
+ }
132
+ return allParentScroller;
133
+ }
134
+ exports.getAllParentScroller = getAllParentScroller;
135
+ // example 1rem
136
+ var isRem = function (value) { return shared_1.isString(value) && value.endsWith('rem'); };
137
+ exports.isRem = isRem;
138
+ // example 1 || 1px
139
+ var isPx = function (value) { return (shared_1.isString(value) && value.endsWith('px')) || shared_1.isNumber(value); };
140
+ exports.isPx = isPx;
141
+ // example 1%
142
+ var isPercent = function (value) { return shared_1.isString(value) && value.endsWith('%'); };
143
+ exports.isPercent = isPercent;
144
+ // example 1vw
145
+ var isVw = function (value) { return shared_1.isString(value) && value.endsWith('vw'); };
146
+ exports.isVw = isVw;
147
+ // example 1vh
148
+ var isVh = function (value) { return shared_1.isString(value) && value.endsWith('vh'); };
149
+ exports.isVh = isVh;
150
+ // example return 1
151
+ var toPxNum = function (value) {
152
+ if (shared_1.isNumber(value)) {
153
+ return value;
154
+ }
155
+ if (exports.isPx(value)) {
156
+ return +value.replace('px', '');
157
+ }
158
+ if (exports.isVw(value)) {
159
+ return (+value.replace('vw', '') * window.innerWidth) / 100;
160
+ }
161
+ if (exports.isVh(value)) {
162
+ return (+value.replace('vh', '') * window.innerHeight) / 100;
163
+ }
164
+ if (exports.isRem(value)) {
165
+ var num = +value.replace('rem', '');
166
+ var rootFontSize = window.getComputedStyle(document.documentElement).fontSize;
167
+ return num * parseFloat(rootFontSize);
168
+ }
169
+ if (shared_1.isString(value)) {
170
+ return shared_1.toNumber(value);
171
+ }
172
+ // % and other
173
+ return 0;
174
+ };
175
+ exports.toPxNum = toPxNum;
176
+ // example return 1px 1% 1vw 1vh 1rem null
177
+ var toSizeUnit = function (value) {
178
+ if (value == null) {
179
+ return null;
180
+ }
181
+ if (exports.isPercent(value) || exports.isVw(value) || exports.isVh(value) || exports.isRem(value)) {
182
+ return value;
183
+ }
184
+ return exports.toPxNum(value) + "px";
185
+ };
186
+ exports.toSizeUnit = toSizeUnit;
187
+ function requestAnimationFrame(fn) {
188
+ return window.requestAnimationFrame ? window.requestAnimationFrame(fn) : window.setTimeout(fn, 16);
189
+ }
190
+ exports.requestAnimationFrame = requestAnimationFrame;
191
+ function cancelAnimationFrame(handle) {
192
+ window.cancelAnimationFrame ? window.cancelAnimationFrame(handle) : window.clearTimeout(handle);
193
+ }
194
+ exports.cancelAnimationFrame = cancelAnimationFrame;
195
+ function nextTickFrame(fn) {
196
+ requestAnimationFrame(function () {
197
+ requestAnimationFrame(fn);
198
+ });
199
+ }
200
+ exports.nextTickFrame = nextTickFrame;
201
+ function doubleRaf() {
202
+ return new Promise(function (resolve) {
203
+ requestAnimationFrame(function () {
204
+ requestAnimationFrame(resolve);
205
+ });
206
+ });
207
+ }
208
+ exports.doubleRaf = doubleRaf;
209
+ function scrollTo(element, _a) {
210
+ var _b = _a.top, top = _b === void 0 ? 0 : _b, _c = _a.left, left = _c === void 0 ? 0 : _c, _d = _a.duration, duration = _d === void 0 ? 300 : _d, animation = _a.animation;
211
+ var startTime = Date.now();
212
+ var scrollTop = getScrollTop(element);
213
+ var scrollLeft = getScrollLeft(element);
214
+ return new Promise(function (resolve) {
215
+ var frame = function () {
216
+ var progress = (Date.now() - startTime) / duration;
217
+ if (progress < 1) {
218
+ var nextTop = scrollTop + (top - scrollTop) * animation(progress);
219
+ var nextLeft = scrollLeft + (left - scrollLeft) * animation(progress);
220
+ element.scrollTo(nextLeft, nextTop);
221
+ requestAnimationFrame(frame);
222
+ }
223
+ else {
224
+ element.scrollTo(left, top);
225
+ resolve();
226
+ }
227
+ };
228
+ requestAnimationFrame(frame);
229
+ });
230
+ }
231
+ exports.scrollTo = scrollTo;
232
+ function formatStyleVars(styleVars) {
233
+ return Object.entries(styleVars).reduce(function (styles, _a) {
234
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
235
+ var cssVar = key.startsWith('--') ? key : "--" + shared_1.kebabCase(key);
236
+ styles[cssVar] = value;
237
+ return styles;
238
+ }, {});
239
+ }
240
+ exports.formatStyleVars = formatStyleVars;
@@ -0,0 +1,36 @@
1
+ export declare type Time = {
2
+ days: number;
3
+ hours: number;
4
+ minutes: number;
5
+ seconds: number;
6
+ milliseconds: number;
7
+ };
8
+ export interface CacheInstance<T> {
9
+ cache: T[];
10
+ has(key: T): boolean;
11
+ add(key: T): void;
12
+ remove(key: T): void;
13
+ clear(): void;
14
+ }
15
+ export declare const toNumber: (val: number | string | boolean | undefined | null) => number;
16
+ export declare const isHTMLSupportImage: (val: string) => boolean;
17
+ export declare const isHTMLSupportVideo: (val: string) => boolean;
18
+ export declare const isString: (val: unknown) => val is string;
19
+ export declare const isBool: (val: unknown) => val is boolean;
20
+ export declare const isNumber: (val: unknown) => val is number;
21
+ export declare const isPlainObject: (val: unknown) => val is Record<string, any>;
22
+ export declare const isArray: (val: unknown) => val is any[];
23
+ export declare const isURL: (val: string) => boolean;
24
+ export declare const isEmpty: (val: unknown) => boolean;
25
+ export declare const removeItem: (arr: Array<unknown>, item: unknown) => unknown[] | undefined;
26
+ export declare const throttle: (method: any, mustRunDelay?: number) => (() => void);
27
+ export declare const debounce: (method: any, delay?: number) => (this: unknown, ...args: any[]) => void;
28
+ export declare const createCache: <T>(max: number) => CacheInstance<T>;
29
+ export declare const linear: (value: number) => number;
30
+ export declare const cubic: (value: number) => number;
31
+ export declare const easeInOutCubic: (value: number) => number;
32
+ export declare function parseFormat(format: string, time: Time): string;
33
+ export declare const dt: (value: unknown, defaultText: string) => unknown;
34
+ export declare const inBrowser: boolean;
35
+ export declare const uniq: (arr: Array<any>) => any[];
36
+ export declare function kebabCase(str: string): string;