@varlet/shared 2.18.0-alpha.1697555377370 → 2.18.0-alpha.1697608760113

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.
package/lib/index.d.ts CHANGED
@@ -1,3 +1,25 @@
1
+ declare const uniq: (arr: Array<any>) => any[];
2
+ declare const normalizeToArray: <T>(value: T | T[]) => T[];
3
+ declare const removeItem: (arr: Array<unknown>, item: unknown) => unknown[] | undefined;
4
+ declare const toggleItem: (arr: Array<unknown>, item: unknown) => void;
5
+ declare const find: <T>(arr: T[], callback: (item: T, index: number, array: T[]) => any, from?: 'start' | 'end') => [T, number] | [null, -1];
6
+
7
+ declare const getGlobalThis: () => typeof globalThis;
8
+ declare const requestAnimationFrame: (fn: FrameRequestCallback) => number;
9
+ declare const cancelAnimationFrame: (handle: number) => void;
10
+ declare const raf: () => Promise<unknown>;
11
+ declare const doubleRaf: () => Promise<unknown>;
12
+ declare const getStyle: (element: Element) => CSSStyleDeclaration;
13
+ declare const getRect: (element: Element | Window) => DOMRect;
14
+ declare const inViewport: (element: HTMLElement) => boolean;
15
+ declare const toDataURL: (file: File) => Promise<string>;
16
+ declare const preventDefault: (event: Event) => void;
17
+ declare const getScrollTop: (element: Element | Window) => number;
18
+ declare const getScrollLeft: (element: Element | Window) => number;
19
+
20
+ declare const debounce: (fn: any, delay?: number) => (this: unknown, ...args: any[]) => void;
21
+ declare const throttle: (fn: any, delay?: number) => (() => void);
22
+
1
23
  declare const isString: (val: unknown) => val is string;
2
24
  declare const isBoolean: (val: unknown) => val is boolean;
3
25
  declare const isNumber: (val: unknown) => val is number;
@@ -9,28 +31,14 @@ declare const isURL: (val: string | undefined | null) => boolean;
9
31
  declare const isEmpty: (val: unknown) => boolean;
10
32
  declare const isWindow: (val: unknown) => val is Window;
11
33
  declare const supportTouch: () => boolean;
12
- declare const toNumber: (val: number | string | boolean | undefined | null) => number;
13
- declare const removeItem: (arr: Array<unknown>, item: unknown) => unknown[] | undefined;
14
- declare const toggleItem: (arr: Array<unknown>, item: unknown) => void;
15
- declare const throttle: (method: any, mustRunDelay?: number) => (() => void);
16
34
  declare const inBrowser: () => boolean;
17
- declare const uniq: (arr: Array<any>) => any[];
35
+
36
+ declare const toNumber: (val: number | string | boolean | undefined | null) => number;
37
+ declare const clamp: (num: number, min: number, max: number) => number;
38
+ declare const clampArrayRange: (index: number, arr: Array<unknown>) => number;
39
+
18
40
  declare const bigCamelize: (s: string) => string;
19
41
  declare const camelize: (s: string) => string;
20
42
  declare const kebabCase: (s: string) => string;
21
- declare const find: <T>(arr: T[], callback: (item: T, index: number, array: T[]) => any, from?: 'start' | 'end') => [T, number] | [null, -1];
22
- declare const normalizeToArray: <T>(value: T | T[]) => T[];
23
- declare const clamp: (num: number, min: number, max: number) => number;
24
- declare const clampArrayRange: (index: number, arr: Array<unknown>) => number;
25
- declare const getGlobalThis: () => typeof globalThis;
26
- declare const requestAnimationFrame: (fn: FrameRequestCallback) => number;
27
- declare const cancelAnimationFrame: (handle: number) => void;
28
- declare const raf: () => Promise<unknown>;
29
- declare const doubleRaf: () => Promise<unknown>;
30
- declare const getStyle: (element: Element) => CSSStyleDeclaration;
31
- declare const getRect: (element: Element | Window) => DOMRect;
32
- declare const inViewport: (element: HTMLElement) => boolean;
33
- declare const toDataURL: (file: File) => Promise<string>;
34
- declare const preventDefault: (event: Event) => void;
35
43
 
36
- export { bigCamelize, camelize, cancelAnimationFrame, clamp, clampArrayRange, doubleRaf, find, getGlobalThis, getRect, getStyle, inBrowser, inViewport, isArray, isBoolean, isEmpty, isFunction, isNumber, isObject, isPlainObject, isString, isURL, isWindow, kebabCase, normalizeToArray, preventDefault, raf, removeItem, requestAnimationFrame, supportTouch, throttle, toDataURL, toNumber, toggleItem, uniq };
44
+ export { bigCamelize, camelize, cancelAnimationFrame, clamp, clampArrayRange, debounce, doubleRaf, find, getGlobalThis, getRect, getScrollLeft, getScrollTop, getStyle, inBrowser, inViewport, isArray, isBoolean, isEmpty, isFunction, isNumber, isObject, isPlainObject, isString, isURL, isWindow, kebabCase, normalizeToArray, preventDefault, raf, removeItem, requestAnimationFrame, supportTouch, throttle, toDataURL, toNumber, toggleItem, uniq };
package/lib/index.js CHANGED
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
 
21
- // src/index.ts
21
+ // src/is.ts
22
22
  var isString = (val) => typeof val === "string";
23
23
  var isBoolean = (val) => typeof val === "boolean";
24
24
  var isNumber = (val) => typeof val === "number";
@@ -35,18 +35,11 @@ var isURL = (val) => {
35
35
  var isEmpty = (val) => val === void 0 || val === null || val === "" || Array.isArray(val) && !val.length;
36
36
  var isWindow = (val) => val === window;
37
37
  var supportTouch = () => inBrowser() && "ontouchstart" in window;
38
- var toNumber = (val) => {
39
- if (val == null)
40
- return 0;
41
- if (isString(val)) {
42
- val = parseFloat(val);
43
- val = Number.isNaN(val) ? 0 : val;
44
- return val;
45
- }
46
- if (isBoolean(val))
47
- return Number(val);
48
- return val;
49
- };
38
+ var inBrowser = () => typeof window !== "undefined";
39
+
40
+ // src/array.ts
41
+ var uniq = (arr) => [...new Set(arr)];
42
+ var normalizeToArray = (value) => isArray(value) ? value : [value];
50
43
  var removeItem = (arr, item) => {
51
44
  if (arr.length) {
52
45
  const index = arr.indexOf(item);
@@ -58,36 +51,6 @@ var removeItem = (arr, item) => {
58
51
  var toggleItem = (arr, item) => {
59
52
  arr.includes(item) ? removeItem(arr, item) : arr.push(item);
60
53
  };
61
- var throttle = (method, mustRunDelay = 200) => {
62
- let timer;
63
- let start = 0;
64
- return function loop(...args) {
65
- const now = Date.now();
66
- const elapsed = now - start;
67
- if (!start) {
68
- start = now;
69
- }
70
- if (timer) {
71
- window.clearTimeout(timer);
72
- }
73
- if (elapsed >= mustRunDelay) {
74
- method.apply(this, args);
75
- start = now;
76
- } else {
77
- timer = window.setTimeout(() => {
78
- loop.apply(this, args);
79
- }, mustRunDelay - elapsed);
80
- }
81
- };
82
- };
83
- var inBrowser = () => typeof window !== "undefined";
84
- var uniq = (arr) => [...new Set(arr)];
85
- var bigCamelize = (s) => camelize(s).replace(s.charAt(0), s.charAt(0).toUpperCase());
86
- var camelize = (s) => s.replace(/-(\w)/g, (_, p) => p.toUpperCase());
87
- var kebabCase = (s) => {
88
- const ret = s.replace(/([A-Z])/g, " $1").trim();
89
- return ret.split(" ").join("-").toLowerCase();
90
- };
91
54
  var find = (arr, callback, from = "start") => {
92
55
  let i = from === "start" ? 0 : arr.length - 1;
93
56
  while (arr.length > 0 && i >= 0 && i <= arr.length - 1) {
@@ -99,9 +62,8 @@ var find = (arr, callback, from = "start") => {
99
62
  }
100
63
  return [null, -1];
101
64
  };
102
- var normalizeToArray = (value) => isArray(value) ? value : [value];
103
- var clamp = (num, min, max) => Math.min(max, Math.max(min, num));
104
- var clampArrayRange = (index, arr) => clamp(index, 0, arr.length - 1);
65
+
66
+ // src/elements.ts
105
67
  var getGlobalThis = () => {
106
68
  if (typeof globalThis !== "undefined") {
107
69
  return globalThis;
@@ -168,16 +130,86 @@ var preventDefault = (event) => {
168
130
  }
169
131
  event.preventDefault();
170
132
  };
133
+ var getScrollTop = (element) => {
134
+ const top = "scrollTop" in element ? element.scrollTop : element.scrollY;
135
+ return Math.max(top, 0);
136
+ };
137
+ var getScrollLeft = (element) => {
138
+ const left = "scrollLeft" in element ? element.scrollLeft : element.scrollX;
139
+ return Math.max(left, 0);
140
+ };
141
+
142
+ // src/function.ts
143
+ var debounce = (fn, delay = 0) => {
144
+ let timer;
145
+ return function(...args) {
146
+ if (timer) {
147
+ window.clearTimeout(timer);
148
+ }
149
+ timer = window.setTimeout(() => {
150
+ fn.apply(this, args);
151
+ }, delay);
152
+ };
153
+ };
154
+ var throttle = (fn, delay = 200) => {
155
+ let timer;
156
+ let start = 0;
157
+ return function loop(...args) {
158
+ const now = Date.now();
159
+ const elapsed = now - start;
160
+ if (!start) {
161
+ start = now;
162
+ }
163
+ if (timer) {
164
+ window.clearTimeout(timer);
165
+ }
166
+ if (elapsed >= delay) {
167
+ fn.apply(this, args);
168
+ start = now;
169
+ } else {
170
+ timer = window.setTimeout(() => {
171
+ loop.apply(this, args);
172
+ }, delay - elapsed);
173
+ }
174
+ };
175
+ };
176
+
177
+ // src/number.ts
178
+ var toNumber = (val) => {
179
+ if (val == null)
180
+ return 0;
181
+ if (isString(val)) {
182
+ val = parseFloat(val);
183
+ val = Number.isNaN(val) ? 0 : val;
184
+ return val;
185
+ }
186
+ if (isBoolean(val))
187
+ return Number(val);
188
+ return val;
189
+ };
190
+ var clamp = (num, min, max) => Math.min(max, Math.max(min, num));
191
+ var clampArrayRange = (index, arr) => clamp(index, 0, arr.length - 1);
192
+
193
+ // src/string.ts
194
+ var bigCamelize = (s) => camelize(s).replace(s.charAt(0), s.charAt(0).toUpperCase());
195
+ var camelize = (s) => s.replace(/-(\w)/g, (_, p) => p.toUpperCase());
196
+ var kebabCase = (s) => {
197
+ const ret = s.replace(/([A-Z])/g, " $1").trim();
198
+ return ret.split(" ").join("-").toLowerCase();
199
+ };
171
200
  export {
172
201
  bigCamelize,
173
202
  camelize,
174
203
  cancelAnimationFrame,
175
204
  clamp,
176
205
  clampArrayRange,
206
+ debounce,
177
207
  doubleRaf,
178
208
  find,
179
209
  getGlobalThis,
180
210
  getRect,
211
+ getScrollLeft,
212
+ getScrollTop,
181
213
  getStyle,
182
214
  inBrowser,
183
215
  inViewport,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@varlet/shared",
3
- "version": "2.18.0-alpha.1697555377370",
3
+ "version": "2.18.0-alpha.1697608760113",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.js",