@zag-js/utils 0.1.2 → 0.1.3

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Chakra UI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,42 @@
1
- export * from "./array";
2
- export * from "./events";
3
- export * from "./functions";
4
- export * from "./guard";
5
- export * from "./platform";
6
- export * from "./warning";
7
- //# sourceMappingURL=index.d.ts.map
1
+ declare function toArray<T>(v: T | T[] | undefined | null): T[];
2
+ declare const fromLength: (length: number) => number[];
3
+ declare const first: <T>(v: T[]) => T | undefined;
4
+ declare const last: <T>(v: T[]) => T | undefined;
5
+ declare const isEmpty: <T>(v: T[]) => boolean;
6
+ declare const has: <T>(v: T[], t: any) => boolean;
7
+ declare const add: <T>(v: T[], ...items: T[]) => T[];
8
+ declare const remove: <T>(v: T[], item: T) => T[];
9
+ declare const removeAt: <T>(v: T[], i: number) => T[];
10
+ declare function clear<T>(v: T[]): T[];
11
+ declare type IndexOptions = {
12
+ step?: number;
13
+ loop?: boolean;
14
+ };
15
+ declare function nextIndex<T>(v: T[], idx: number, opts?: IndexOptions): number;
16
+ declare function next<T>(v: T[], idx: number, opts?: IndexOptions): T | undefined;
17
+ declare function prevIndex<T>(v: T[], idx: number, opts?: IndexOptions): number;
18
+ declare function prev<T>(v: T[], index: number, opts?: IndexOptions): T | undefined;
19
+ declare const chunk: <T>(v: T[], size: number) => T[][];
20
+
21
+ declare const runIfFn: <T>(v: T | undefined, ...a: T extends (...a: any[]) => void ? Parameters<T> : never) => T extends (...a: any[]) => void ? NonNullable<ReturnType<T>> : NonNullable<T>;
22
+ declare const cast: <T>(v: unknown) => T;
23
+ declare const noop: () => void;
24
+ declare const callAll: <T extends (...a: any[]) => void>(...fns: (T | undefined)[]) => (...a: Parameters<T>) => void;
25
+ declare const uuid: () => string;
26
+ declare function merge<T, U>(origin: T, patch: U): T & U;
27
+
28
+ declare const isDev: () => boolean;
29
+ declare const isArray: (v: any) => v is any[];
30
+ declare const isBoolean: (v: any) => v is boolean;
31
+ declare const isObject: (v: any) => v is Record<string, any>;
32
+ declare const isNumber: (v: any) => v is number;
33
+ declare const isString: (v: any) => v is string;
34
+ declare const isFunction: (v: any) => v is Function;
35
+ declare const hasProp: <T extends string>(obj: any, prop: T) => obj is Record<T, any>;
36
+
37
+ declare function warn(m: string): void;
38
+ declare function warn(c: boolean, m: string): void;
39
+ declare function invariant(m: string): void;
40
+ declare function invariant(c: boolean, m: string): void;
41
+
42
+ export { IndexOptions, add, callAll, cast, chunk, clear, first, fromLength, has, hasProp, invariant, isArray, isBoolean, isDev, isEmpty, isFunction, isNumber, isObject, isString, last, merge, next, nextIndex, noop, prev, prevIndex, remove, removeAt, runIfFn, toArray, uuid, warn };
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -26,46 +27,27 @@ __export(src_exports, {
26
27
  clear: () => clear,
27
28
  first: () => first,
28
29
  fromLength: () => fromLength,
29
- getPlatform: () => getPlatform,
30
30
  has: () => has,
31
31
  hasProp: () => hasProp,
32
32
  invariant: () => invariant,
33
- isApple: () => isApple,
34
33
  isArray: () => isArray,
35
34
  isBoolean: () => isBoolean,
36
- isCtrlKey: () => isCtrlKey,
37
35
  isDev: () => isDev,
38
- isDom: () => isDom,
39
36
  isEmpty: () => isEmpty,
40
- isFirefox: () => isFirefox,
41
37
  isFunction: () => isFunction,
42
- isIPhone: () => isIPhone,
43
- isIos: () => isIos,
44
- isLeftClick: () => isLeftClick,
45
- isMac: () => isMac,
46
- isModifiedEvent: () => isModifiedEvent,
47
- isMouseEvent: () => isMouseEvent,
48
38
  isNumber: () => isNumber,
49
39
  isObject: () => isObject,
50
- isRightClick: () => isRightClick,
51
- isSafari: () => isSafari,
52
40
  isString: () => isString,
53
- isTouchDevice: () => isTouchDevice,
54
- isTouchEvent: () => isTouchEvent,
55
41
  last: () => last,
56
42
  merge: () => merge,
57
43
  next: () => next,
58
44
  nextIndex: () => nextIndex,
59
45
  noop: () => noop,
60
- pipe: () => pipe,
61
46
  prev: () => prev,
62
47
  prevIndex: () => prevIndex,
63
48
  remove: () => remove,
64
49
  removeAt: () => removeAt,
65
50
  runIfFn: () => runIfFn,
66
- supportsMouseEvent: () => supportsMouseEvent,
67
- supportsPointerEvent: () => supportsPointerEvent,
68
- supportsTouchEvent: () => supportsTouchEvent,
69
51
  toArray: () => toArray,
70
52
  uuid: () => uuid,
71
53
  warn: () => warn
@@ -130,54 +112,14 @@ var chunk = (v, size) => {
130
112
  }, res);
131
113
  };
132
114
 
133
- // src/guard.ts
134
- var isDev = () => void 0 !== "production";
135
- var isDom = () => typeof window !== "undefined";
136
- var isArray = (v) => Array.isArray(v);
137
- var isBoolean = (v) => v === true || v === false;
138
- var isObject = (v) => !(v == null || typeof v !== "object" || isArray(v));
139
- var isNumber = (v) => typeof v === "number" && !Number.isNaN(v);
140
- var isString = (v) => typeof v === "string";
141
- var isFunction = (v) => typeof v === "function";
142
- var hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
143
-
144
- // src/platform.ts
145
- function getPlatform() {
146
- var _a;
147
- const agent = navigator.userAgentData;
148
- return (_a = agent == null ? void 0 : agent.platform) != null ? _a : navigator.platform;
149
- }
150
- var pt = (v) => isDom() && v.test(getPlatform());
151
- var ua = (v) => isDom() && v.test(navigator.userAgent);
152
- var vn = (v) => isDom() && v.test(navigator.vendor);
153
- var isTouchDevice = isDom() && !!navigator.maxTouchPoints;
154
- var isMac = () => pt(/^Mac/) && !isTouchDevice;
155
- var isIPhone = () => pt(/^iPhone/);
156
- var isSafari = () => isApple() && vn(/apple/i);
157
- var isFirefox = () => ua(/firefox\//i);
158
- var isApple = () => pt(/mac|iphone|ipad|ipod/i);
159
- var isIos = () => isApple() && !isMac();
160
-
161
- // src/events.ts
162
- var supportsPointerEvent = () => isDom() && window.onpointerdown === null;
163
- var supportsTouchEvent = () => isDom() && window.ontouchstart === null;
164
- var supportsMouseEvent = () => isDom() && window.onmousedown === null;
165
- var isMouseEvent = (v) => isObject(v) && hasProp(v, "button");
166
- var isTouchEvent = (v) => isObject(v) && hasProp(v, "touches");
167
- var isLeftClick = (v) => v.button === 0;
168
- var isRightClick = (v) => v.button === 2;
169
- var isModifiedEvent = (v) => v.ctrlKey || v.altKey || v.metaKey;
170
- var isCtrlKey = (v) => isMac() ? v.metaKey && !v.ctrlKey : v.ctrlKey && !v.metaKey;
171
-
172
115
  // src/functions.ts
173
116
  var runIfFn = (v, ...a) => {
174
117
  const res = typeof v === "function" ? v(...a) : v;
175
- return res != null ? res : void 0;
118
+ return res ?? void 0;
176
119
  };
177
120
  var cast = (v) => v;
178
121
  var noop = () => {
179
122
  };
180
- var pipe = (...fns) => (v) => fns.reduce((a, b) => b(a), v);
181
123
  var callAll = (...fns) => (...a) => {
182
124
  fns.forEach(function(fn) {
183
125
  fn == null ? void 0 : fn(...a);
@@ -207,19 +149,62 @@ function merge(origin, patch) {
207
149
  return result;
208
150
  }
209
151
 
152
+ // src/guard.ts
153
+ var isDev = () => process.env.NODE_ENV !== "production";
154
+ var isArray = (v) => Array.isArray(v);
155
+ var isBoolean = (v) => v === true || v === false;
156
+ var isObject = (v) => !(v == null || typeof v !== "object" || isArray(v));
157
+ var isNumber = (v) => typeof v === "number" && !Number.isNaN(v);
158
+ var isString = (v) => typeof v === "string";
159
+ var isFunction = (v) => typeof v === "function";
160
+ var hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
161
+
210
162
  // src/warning.ts
211
163
  function warn(...a) {
212
164
  const m = a.length === 1 ? a[0] : a[1];
213
165
  const c = a.length === 2 ? a[0] : true;
214
- if (c && void 0 !== "production") {
166
+ if (c && process.env.NODE_ENV !== "production") {
215
167
  console.warn(m);
216
168
  }
217
169
  }
218
170
  function invariant(...a) {
219
171
  const m = a.length === 1 ? a[0] : a[1];
220
172
  const c = a.length === 2 ? a[0] : true;
221
- if (c && void 0 !== "production") {
173
+ if (c && process.env.NODE_ENV !== "production") {
222
174
  throw new Error(m);
223
175
  }
224
176
  }
225
- //# sourceMappingURL=index.js.map
177
+ // Annotate the CommonJS export names for ESM import in node:
178
+ 0 && (module.exports = {
179
+ add,
180
+ callAll,
181
+ cast,
182
+ chunk,
183
+ clear,
184
+ first,
185
+ fromLength,
186
+ has,
187
+ hasProp,
188
+ invariant,
189
+ isArray,
190
+ isBoolean,
191
+ isDev,
192
+ isEmpty,
193
+ isFunction,
194
+ isNumber,
195
+ isObject,
196
+ isString,
197
+ last,
198
+ merge,
199
+ next,
200
+ nextIndex,
201
+ noop,
202
+ prev,
203
+ prevIndex,
204
+ remove,
205
+ removeAt,
206
+ runIfFn,
207
+ toArray,
208
+ uuid,
209
+ warn
210
+ });
package/dist/index.mjs CHANGED
@@ -56,54 +56,14 @@ var chunk = (v, size) => {
56
56
  }, res);
57
57
  };
58
58
 
59
- // src/guard.ts
60
- var isDev = () => void 0 !== "production";
61
- var isDom = () => typeof window !== "undefined";
62
- var isArray = (v) => Array.isArray(v);
63
- var isBoolean = (v) => v === true || v === false;
64
- var isObject = (v) => !(v == null || typeof v !== "object" || isArray(v));
65
- var isNumber = (v) => typeof v === "number" && !Number.isNaN(v);
66
- var isString = (v) => typeof v === "string";
67
- var isFunction = (v) => typeof v === "function";
68
- var hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
69
-
70
- // src/platform.ts
71
- function getPlatform() {
72
- var _a;
73
- const agent = navigator.userAgentData;
74
- return (_a = agent == null ? void 0 : agent.platform) != null ? _a : navigator.platform;
75
- }
76
- var pt = (v) => isDom() && v.test(getPlatform());
77
- var ua = (v) => isDom() && v.test(navigator.userAgent);
78
- var vn = (v) => isDom() && v.test(navigator.vendor);
79
- var isTouchDevice = isDom() && !!navigator.maxTouchPoints;
80
- var isMac = () => pt(/^Mac/) && !isTouchDevice;
81
- var isIPhone = () => pt(/^iPhone/);
82
- var isSafari = () => isApple() && vn(/apple/i);
83
- var isFirefox = () => ua(/firefox\//i);
84
- var isApple = () => pt(/mac|iphone|ipad|ipod/i);
85
- var isIos = () => isApple() && !isMac();
86
-
87
- // src/events.ts
88
- var supportsPointerEvent = () => isDom() && window.onpointerdown === null;
89
- var supportsTouchEvent = () => isDom() && window.ontouchstart === null;
90
- var supportsMouseEvent = () => isDom() && window.onmousedown === null;
91
- var isMouseEvent = (v) => isObject(v) && hasProp(v, "button");
92
- var isTouchEvent = (v) => isObject(v) && hasProp(v, "touches");
93
- var isLeftClick = (v) => v.button === 0;
94
- var isRightClick = (v) => v.button === 2;
95
- var isModifiedEvent = (v) => v.ctrlKey || v.altKey || v.metaKey;
96
- var isCtrlKey = (v) => isMac() ? v.metaKey && !v.ctrlKey : v.ctrlKey && !v.metaKey;
97
-
98
59
  // src/functions.ts
99
60
  var runIfFn = (v, ...a) => {
100
61
  const res = typeof v === "function" ? v(...a) : v;
101
- return res != null ? res : void 0;
62
+ return res ?? void 0;
102
63
  };
103
64
  var cast = (v) => v;
104
65
  var noop = () => {
105
66
  };
106
- var pipe = (...fns) => (v) => fns.reduce((a, b) => b(a), v);
107
67
  var callAll = (...fns) => (...a) => {
108
68
  fns.forEach(function(fn) {
109
69
  fn == null ? void 0 : fn(...a);
@@ -133,18 +93,28 @@ function merge(origin, patch) {
133
93
  return result;
134
94
  }
135
95
 
96
+ // src/guard.ts
97
+ var isDev = () => process.env.NODE_ENV !== "production";
98
+ var isArray = (v) => Array.isArray(v);
99
+ var isBoolean = (v) => v === true || v === false;
100
+ var isObject = (v) => !(v == null || typeof v !== "object" || isArray(v));
101
+ var isNumber = (v) => typeof v === "number" && !Number.isNaN(v);
102
+ var isString = (v) => typeof v === "string";
103
+ var isFunction = (v) => typeof v === "function";
104
+ var hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
105
+
136
106
  // src/warning.ts
137
107
  function warn(...a) {
138
108
  const m = a.length === 1 ? a[0] : a[1];
139
109
  const c = a.length === 2 ? a[0] : true;
140
- if (c && void 0 !== "production") {
110
+ if (c && process.env.NODE_ENV !== "production") {
141
111
  console.warn(m);
142
112
  }
143
113
  }
144
114
  function invariant(...a) {
145
115
  const m = a.length === 1 ? a[0] : a[1];
146
116
  const c = a.length === 2 ? a[0] : true;
147
- if (c && void 0 !== "production") {
117
+ if (c && process.env.NODE_ENV !== "production") {
148
118
  throw new Error(m);
149
119
  }
150
120
  }
@@ -156,48 +126,28 @@ export {
156
126
  clear,
157
127
  first,
158
128
  fromLength,
159
- getPlatform,
160
129
  has,
161
130
  hasProp,
162
131
  invariant,
163
- isApple,
164
132
  isArray,
165
133
  isBoolean,
166
- isCtrlKey,
167
134
  isDev,
168
- isDom,
169
135
  isEmpty,
170
- isFirefox,
171
136
  isFunction,
172
- isIPhone,
173
- isIos,
174
- isLeftClick,
175
- isMac,
176
- isModifiedEvent,
177
- isMouseEvent,
178
137
  isNumber,
179
138
  isObject,
180
- isRightClick,
181
- isSafari,
182
139
  isString,
183
- isTouchDevice,
184
- isTouchEvent,
185
140
  last,
186
141
  merge,
187
142
  next,
188
143
  nextIndex,
189
144
  noop,
190
- pipe,
191
145
  prev,
192
146
  prevIndex,
193
147
  remove,
194
148
  removeAt,
195
149
  runIfFn,
196
- supportsMouseEvent,
197
- supportsPointerEvent,
198
- supportsTouchEvent,
199
150
  toArray,
200
151
  uuid,
201
152
  warn
202
153
  };
203
- //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/utils",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "js",
@@ -25,12 +25,13 @@
25
25
  "url": "https://github.com/chakra-ui/zag/issues"
26
26
  },
27
27
  "scripts": {
28
- "build:fast": "zag build",
29
- "start": "zag build --watch",
30
- "build": "zag build --prod",
28
+ "build-fast": "tsup src/index.ts --format=esm,cjs",
29
+ "start": "pnpm build --watch",
30
+ "build": "tsup src/index.ts --format=esm,cjs --dts",
31
31
  "test": "jest --config ../../../jest.config.js --rootDir . --passWithNoTests",
32
32
  "lint": "eslint src --ext .ts,.tsx",
33
- "test:ci": "yarn test --ci --runInBand",
34
- "test:watch": "yarn test --watch --updateSnapshot"
33
+ "test-ci": "pnpm test --ci --runInBand",
34
+ "test-watch": "pnpm test --watch -u",
35
+ "typecheck": "tsc --noEmit"
35
36
  }
36
37
  }
package/dist/array.d.ts DELETED
@@ -1,20 +0,0 @@
1
- export declare function toArray<T>(v: T | T[] | undefined | null): T[];
2
- export declare const fromLength: (length: number) => number[];
3
- export declare const first: <T>(v: T[]) => T;
4
- export declare const last: <T>(v: T[]) => T;
5
- export declare const isEmpty: <T>(v: T[]) => boolean;
6
- export declare const has: <T>(v: T[], t: any) => boolean;
7
- export declare const add: <T>(v: T[], ...items: T[]) => T[];
8
- export declare const remove: <T>(v: T[], item: T) => T[];
9
- export declare const removeAt: <T>(v: T[], i: number) => T[];
10
- export declare function clear<T>(v: T[]): T[];
11
- export declare type IndexOptions = {
12
- step?: number;
13
- loop?: boolean;
14
- };
15
- export declare function nextIndex<T>(v: T[], idx: number, opts?: IndexOptions): number;
16
- export declare function next<T>(v: T[], idx: number, opts?: IndexOptions): T | undefined;
17
- export declare function prevIndex<T>(v: T[], idx: number, opts?: IndexOptions): number;
18
- export declare function prev<T>(v: T[], index: number, opts?: IndexOptions): T | undefined;
19
- export declare const chunk: <T>(v: T[], size: number) => T[][];
20
- //# sourceMappingURL=array.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,EAAE,CAG7D;AAED,eAAO,MAAM,UAAU,WAAY,MAAM,aAAqC,CAAA;AAE9E,eAAO,MAAM,KAAK,kBAAqC,CAAA;AAEvD,eAAO,MAAM,IAAI,kBAAgD,CAAA;AAEjE,eAAO,MAAM,OAAO,iBAAgB,OAAyB,CAAA;AAE7D,eAAO,MAAM,GAAG,iBAAkB,GAAG,KAAG,OAA8B,CAAA;AAEtE,eAAO,MAAM,GAAG,mCAAqD,CAAA;AAErE,eAAO,MAAM,MAAM,6BAA4D,CAAA;AAE/E,eAAO,MAAM,QAAQ,iBAAkB,MAAM,QAG5C,CAAA;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAGpC;AAED,oBAAY,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,MAAM,CASjF;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,CAAC,GAAG,SAAS,CAEnF;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,MAAM,CAGjF;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,CAAC,GAAG,SAAS,CAErF;AAED,eAAO,MAAM,KAAK,oBAAqB,MAAM,UAO5C,CAAA"}
package/dist/events.d.ts DELETED
@@ -1,14 +0,0 @@
1
- export declare const supportsPointerEvent: () => boolean;
2
- export declare const supportsTouchEvent: () => boolean;
3
- export declare const supportsMouseEvent: () => boolean;
4
- export declare const isMouseEvent: (v: any) => v is MouseEvent;
5
- export declare const isTouchEvent: (v: any) => v is TouchEvent;
6
- export declare const isLeftClick: (v: {
7
- button: number;
8
- }) => boolean;
9
- export declare const isRightClick: (v: {
10
- button: number;
11
- }) => boolean;
12
- export declare const isModifiedEvent: (v: Pick<KeyboardEvent, "ctrlKey" | "metaKey" | "altKey">) => boolean;
13
- export declare const isCtrlKey: (v: Pick<KeyboardEvent, "ctrlKey" | "metaKey">) => boolean;
14
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,eAAiD,CAAA;AAClF,eAAO,MAAM,kBAAkB,eAAgD,CAAA;AAC/E,eAAO,MAAM,kBAAkB,eAA+C,CAAA;AAE9E,eAAO,MAAM,YAAY,MAAO,GAAG,oBAAyD,CAAA;AAC5F,eAAO,MAAM,YAAY,MAAO,GAAG,oBAA0D,CAAA;AAC7F,eAAO,MAAM,WAAW,MAAO;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,YAAmB,CAAA;AACpE,eAAO,MAAM,YAAY,MAAO;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,YAAmB,CAAA;AACrE,eAAO,MAAM,eAAe,MAAO,KAAK,aAAa,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,YACpD,CAAA;AAEpC,eAAO,MAAM,SAAS,MAAO,KAAK,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,YACV,CAAA"}
@@ -1,8 +0,0 @@
1
- export declare const runIfFn: <T>(v: T, ...a: T extends (...a: any[]) => void ? Parameters<T> : never) => T extends (...a: any[]) => void ? NonNullable<ReturnType<T>> : NonNullable<T>;
2
- export declare const cast: <T>(v: unknown) => T;
3
- export declare const noop: () => void;
4
- export declare const pipe: <T>(...fns: ((a: T) => T)[]) => (v: T) => T;
5
- export declare const callAll: <T extends (...a: any[]) => void>(...fns: T[]) => (...a: Parameters<T>) => void;
6
- export declare const uuid: () => string;
7
- export declare function merge<T, U>(origin: T, patch: U): T & U;
8
- //# sourceMappingURL=functions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,mCAEK,GAAG,EAAE,KAAK,IAAI,8CACnB,GAAG,EAAE,KAAK,IAAI,8CAGjC,CAAA;AAED,eAAO,MAAM,IAAI,SAAU,OAAO,MAAc,CAAA;AAEhD,eAAO,MAAM,IAAI,YAAW,CAAA;AAE5B,eAAO,MAAM,IAAI,6CAGgB,CAAA;AAEjC,eAAO,MAAM,OAAO,oBACA,GAAG,EAAE,KAAK,IAAI,+CAK/B,CAAA;AAEH,eAAO,MAAM,IAAI,cAMb,CAAA;AAEJ,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAWtD"}
package/dist/guard.d.ts DELETED
@@ -1,10 +0,0 @@
1
- export declare const isDev: () => boolean;
2
- export declare const isDom: () => boolean;
3
- export declare const isArray: (v: any) => v is any[];
4
- export declare const isBoolean: (v: any) => v is boolean;
5
- export declare const isObject: (v: any) => v is Record<string, any>;
6
- export declare const isNumber: (v: any) => v is number;
7
- export declare const isString: (v: any) => v is string;
8
- export declare const isFunction: (v: any) => v is Function;
9
- export declare const hasProp: <T extends string>(obj: any, prop: T) => obj is Record<T, any>;
10
- //# sourceMappingURL=guard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,eAA8C,CAAA;AAChE,eAAO,MAAM,KAAK,eAAsC,CAAA;AAExD,eAAO,MAAM,OAAO,MAAO,GAAG,eAAiC,CAAA;AAC/D,eAAO,MAAM,SAAS,MAAO,GAAG,iBAA4C,CAAA;AAC5E,eAAO,MAAM,QAAQ,MAAO,GAAG,6BAAkF,CAAA;AACjH,eAAO,MAAM,QAAQ,MAAO,GAAG,gBAA2D,CAAA;AAC1F,eAAO,MAAM,QAAQ,MAAO,GAAG,gBAAuC,CAAA;AACtE,eAAO,MAAM,UAAU,MAAO,GAAG,kBAA2C,CAAA;AAE5E,eAAO,MAAM,OAAO,0BAA2B,GAAG,mCACD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
package/dist/index.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts", "../src/array.ts", "../src/guard.ts", "../src/platform.ts", "../src/events.ts", "../src/functions.ts", "../src/warning.ts"],
4
- "sourcesContent": ["export * from \"./array\"\nexport * from \"./events\"\nexport * from \"./functions\"\nexport * from \"./guard\"\nexport * from \"./platform\"\nexport * from \"./warning\"\n", "export function toArray<T>(v: T | T[] | undefined | null): T[] {\n if (!v) return []\n return Array.isArray(v) ? v : [v]\n}\n\nexport const fromLength = (length: number) => Array.from(Array(length).keys())\n\nexport const first = <T>(v: T[]): T | undefined => v[0]\n\nexport const last = <T>(v: T[]): T | undefined => v[v.length - 1]\n\nexport const isEmpty = <T>(v: T[]): boolean => v.length === 0\n\nexport const has = <T>(v: T[], t: any): boolean => v.indexOf(t) !== -1\n\nexport const add = <T>(v: T[], ...items: T[]): T[] => v.concat(items)\n\nexport const remove = <T>(v: T[], item: T): T[] => removeAt(v, v.indexOf(item))\n\nexport const removeAt = <T>(v: T[], i: number): T[] => {\n if (i > -1) v.splice(i, 1)\n return v\n}\n\nexport function clear<T>(v: T[]): T[] {\n while (v.length > 0) v.pop()\n return v\n}\n\nexport type IndexOptions = {\n step?: number\n loop?: boolean\n}\n\nexport function nextIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n const next = idx + step\n const len = v.length\n const last = len - 1\n if (idx === -1) return step > 0 ? 0 : last\n if (next < 0) return loop ? last : 0\n if (next >= len) return loop ? 0 : idx > len ? len : idx\n return next\n}\n\nexport function next<T>(v: T[], idx: number, opts: IndexOptions = {}): T | undefined {\n return v[nextIndex(v, idx, opts)]\n}\n\nexport function prevIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n return nextIndex(v, idx, { step: -step, loop })\n}\n\nexport function prev<T>(v: T[], index: number, opts: IndexOptions = {}): T | undefined {\n return v[prevIndex(v, index, opts)]\n}\n\nexport const chunk = <T>(v: T[], size: number): T[][] => {\n const res: T[][] = []\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value])\n else last(rows)?.push(value)\n return rows\n }, res)\n}\n", "export const isDev = () => process.env.NODE_ENV !== \"production\"\nexport const isDom = () => typeof window !== \"undefined\"\n\nexport const isArray = (v: any): v is any[] => Array.isArray(v)\nexport const isBoolean = (v: any): v is boolean => v === true || v === false\nexport const isObject = (v: any): v is Record<string, any> => !(v == null || typeof v !== \"object\" || isArray(v))\nexport const isNumber = (v: any): v is number => typeof v === \"number\" && !Number.isNaN(v)\nexport const isString = (v: any): v is string => typeof v === \"string\"\nexport const isFunction = (v: any): v is Function => typeof v === \"function\"\n\nexport const hasProp = <T extends string>(obj: any, prop: T): obj is Record<T, any> =>\n Object.prototype.hasOwnProperty.call(obj, prop)\n", "import { isDom } from \"./guard\"\n\nexport function getPlatform() {\n const agent = (navigator as any).userAgentData\n return agent?.platform ?? navigator.platform\n}\n\nconst pt = (v: RegExp) => isDom() && v.test(getPlatform())\nconst ua = (v: RegExp) => isDom() && v.test(navigator.userAgent)\nconst vn = (v: RegExp) => isDom() && v.test(navigator.vendor)\n\nexport const isTouchDevice = isDom() && !!navigator.maxTouchPoints\nexport const isMac = () => pt(/^Mac/) && !isTouchDevice\nexport const isIPhone = () => pt(/^iPhone/)\nexport const isSafari = () => isApple() && vn(/apple/i)\nexport const isFirefox = () => ua(/firefox\\//i)\nexport const isApple = () => pt(/mac|iphone|ipad|ipod/i)\nexport const isIos = () => isApple() && !isMac()\n", "import { hasProp, isDom, isObject } from \"./guard\"\nimport { isMac } from \"./platform\"\n\nexport const supportsPointerEvent = () => isDom() && window.onpointerdown === null\nexport const supportsTouchEvent = () => isDom() && window.ontouchstart === null\nexport const supportsMouseEvent = () => isDom() && window.onmousedown === null\n\nexport const isMouseEvent = (v: any): v is MouseEvent => isObject(v) && hasProp(v, \"button\")\nexport const isTouchEvent = (v: any): v is TouchEvent => isObject(v) && hasProp(v, \"touches\")\nexport const isLeftClick = (v: { button: number }) => v.button === 0\nexport const isRightClick = (v: { button: number }) => v.button === 2\nexport const isModifiedEvent = (v: Pick<KeyboardEvent, \"ctrlKey\" | \"metaKey\" | \"altKey\">) =>\n v.ctrlKey || v.altKey || v.metaKey\n\nexport const isCtrlKey = (v: Pick<KeyboardEvent, \"ctrlKey\" | \"metaKey\">) =>\n isMac() ? v.metaKey && !v.ctrlKey : v.ctrlKey && !v.metaKey\n", "export const runIfFn = <T>(\n v: T | undefined,\n ...a: T extends (...a: any[]) => void ? Parameters<T> : never\n): T extends (...a: any[]) => void ? NonNullable<ReturnType<T>> : NonNullable<T> => {\n const res = typeof v === \"function\" ? v(...a) : v\n return res ?? undefined\n}\n\nexport const cast = <T>(v: unknown): T => v as T\n\nexport const noop = () => {}\n\nexport const pipe =\n <T>(...fns: Array<(a: T) => T>) =>\n (v: T) =>\n fns.reduce((a, b) => b(a), v)\n\nexport const callAll =\n <T extends (...a: any[]) => void>(...fns: (T | undefined)[]) =>\n (...a: Parameters<T>) => {\n fns.forEach(function (fn) {\n fn?.(...a)\n })\n }\n\nexport const uuid = /*#__PURE__*/ (() => {\n let id = 0\n return () => {\n id++\n return id.toString(36)\n }\n})()\n\nexport function merge<T, U>(origin: T, patch: U): T & U {\n if (!(typeof patch === \"object\")) return patch as any\n const result = !(typeof origin === \"object\") ? {} : Object.assign({}, origin)\n for (const key of Object.keys(patch)) {\n const value = patch[key]\n const src = result[key]\n if (value === null) delete result[key]\n else if (Array.isArray(value) || Array.isArray(src)) result[key] = (src || []).concat(value || [])\n else result[key] = merge(src, value)\n }\n return result as any\n}\n", "export function warn(m: string): void\nexport function warn(c: boolean, m: string): void\nexport function warn(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m)\n }\n}\n\nexport function invariant(m: string): void\nexport function invariant(c: boolean, m: string): void\nexport function invariant(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m)\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/array.ts", "../src/guard.ts", "../src/platform.ts", "../src/events.ts", "../src/functions.ts", "../src/warning.ts"],
4
- "sourcesContent": ["export function toArray<T>(v: T | T[] | undefined | null): T[] {\n if (!v) return []\n return Array.isArray(v) ? v : [v]\n}\n\nexport const fromLength = (length: number) => Array.from(Array(length).keys())\n\nexport const first = <T>(v: T[]): T | undefined => v[0]\n\nexport const last = <T>(v: T[]): T | undefined => v[v.length - 1]\n\nexport const isEmpty = <T>(v: T[]): boolean => v.length === 0\n\nexport const has = <T>(v: T[], t: any): boolean => v.indexOf(t) !== -1\n\nexport const add = <T>(v: T[], ...items: T[]): T[] => v.concat(items)\n\nexport const remove = <T>(v: T[], item: T): T[] => removeAt(v, v.indexOf(item))\n\nexport const removeAt = <T>(v: T[], i: number): T[] => {\n if (i > -1) v.splice(i, 1)\n return v\n}\n\nexport function clear<T>(v: T[]): T[] {\n while (v.length > 0) v.pop()\n return v\n}\n\nexport type IndexOptions = {\n step?: number\n loop?: boolean\n}\n\nexport function nextIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n const next = idx + step\n const len = v.length\n const last = len - 1\n if (idx === -1) return step > 0 ? 0 : last\n if (next < 0) return loop ? last : 0\n if (next >= len) return loop ? 0 : idx > len ? len : idx\n return next\n}\n\nexport function next<T>(v: T[], idx: number, opts: IndexOptions = {}): T | undefined {\n return v[nextIndex(v, idx, opts)]\n}\n\nexport function prevIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n return nextIndex(v, idx, { step: -step, loop })\n}\n\nexport function prev<T>(v: T[], index: number, opts: IndexOptions = {}): T | undefined {\n return v[prevIndex(v, index, opts)]\n}\n\nexport const chunk = <T>(v: T[], size: number): T[][] => {\n const res: T[][] = []\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value])\n else last(rows)?.push(value)\n return rows\n }, res)\n}\n", "export const isDev = () => process.env.NODE_ENV !== \"production\"\nexport const isDom = () => typeof window !== \"undefined\"\n\nexport const isArray = (v: any): v is any[] => Array.isArray(v)\nexport const isBoolean = (v: any): v is boolean => v === true || v === false\nexport const isObject = (v: any): v is Record<string, any> => !(v == null || typeof v !== \"object\" || isArray(v))\nexport const isNumber = (v: any): v is number => typeof v === \"number\" && !Number.isNaN(v)\nexport const isString = (v: any): v is string => typeof v === \"string\"\nexport const isFunction = (v: any): v is Function => typeof v === \"function\"\n\nexport const hasProp = <T extends string>(obj: any, prop: T): obj is Record<T, any> =>\n Object.prototype.hasOwnProperty.call(obj, prop)\n", "import { isDom } from \"./guard\"\n\nexport function getPlatform() {\n const agent = (navigator as any).userAgentData\n return agent?.platform ?? navigator.platform\n}\n\nconst pt = (v: RegExp) => isDom() && v.test(getPlatform())\nconst ua = (v: RegExp) => isDom() && v.test(navigator.userAgent)\nconst vn = (v: RegExp) => isDom() && v.test(navigator.vendor)\n\nexport const isTouchDevice = isDom() && !!navigator.maxTouchPoints\nexport const isMac = () => pt(/^Mac/) && !isTouchDevice\nexport const isIPhone = () => pt(/^iPhone/)\nexport const isSafari = () => isApple() && vn(/apple/i)\nexport const isFirefox = () => ua(/firefox\\//i)\nexport const isApple = () => pt(/mac|iphone|ipad|ipod/i)\nexport const isIos = () => isApple() && !isMac()\n", "import { hasProp, isDom, isObject } from \"./guard\"\nimport { isMac } from \"./platform\"\n\nexport const supportsPointerEvent = () => isDom() && window.onpointerdown === null\nexport const supportsTouchEvent = () => isDom() && window.ontouchstart === null\nexport const supportsMouseEvent = () => isDom() && window.onmousedown === null\n\nexport const isMouseEvent = (v: any): v is MouseEvent => isObject(v) && hasProp(v, \"button\")\nexport const isTouchEvent = (v: any): v is TouchEvent => isObject(v) && hasProp(v, \"touches\")\nexport const isLeftClick = (v: { button: number }) => v.button === 0\nexport const isRightClick = (v: { button: number }) => v.button === 2\nexport const isModifiedEvent = (v: Pick<KeyboardEvent, \"ctrlKey\" | \"metaKey\" | \"altKey\">) =>\n v.ctrlKey || v.altKey || v.metaKey\n\nexport const isCtrlKey = (v: Pick<KeyboardEvent, \"ctrlKey\" | \"metaKey\">) =>\n isMac() ? v.metaKey && !v.ctrlKey : v.ctrlKey && !v.metaKey\n", "export const runIfFn = <T>(\n v: T | undefined,\n ...a: T extends (...a: any[]) => void ? Parameters<T> : never\n): T extends (...a: any[]) => void ? NonNullable<ReturnType<T>> : NonNullable<T> => {\n const res = typeof v === \"function\" ? v(...a) : v\n return res ?? undefined\n}\n\nexport const cast = <T>(v: unknown): T => v as T\n\nexport const noop = () => {}\n\nexport const pipe =\n <T>(...fns: Array<(a: T) => T>) =>\n (v: T) =>\n fns.reduce((a, b) => b(a), v)\n\nexport const callAll =\n <T extends (...a: any[]) => void>(...fns: (T | undefined)[]) =>\n (...a: Parameters<T>) => {\n fns.forEach(function (fn) {\n fn?.(...a)\n })\n }\n\nexport const uuid = /*#__PURE__*/ (() => {\n let id = 0\n return () => {\n id++\n return id.toString(36)\n }\n})()\n\nexport function merge<T, U>(origin: T, patch: U): T & U {\n if (!(typeof patch === \"object\")) return patch as any\n const result = !(typeof origin === \"object\") ? {} : Object.assign({}, origin)\n for (const key of Object.keys(patch)) {\n const value = patch[key]\n const src = result[key]\n if (value === null) delete result[key]\n else if (Array.isArray(value) || Array.isArray(src)) result[key] = (src || []).concat(value || [])\n else result[key] = merge(src, value)\n }\n return result as any\n}\n", "export function warn(m: string): void\nexport function warn(c: boolean, m: string): void\nexport function warn(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m)\n }\n}\n\nexport function invariant(m: string): void\nexport function invariant(c: boolean, m: string): void\nexport function invariant(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m)\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,9 +0,0 @@
1
- export declare function getPlatform(): any;
2
- export declare const isTouchDevice: boolean;
3
- export declare const isMac: () => boolean;
4
- export declare const isIPhone: () => boolean;
5
- export declare const isSafari: () => boolean;
6
- export declare const isFirefox: () => boolean;
7
- export declare const isApple: () => boolean;
8
- export declare const isIos: () => boolean;
9
- //# sourceMappingURL=platform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,QAG1B;AAMD,eAAO,MAAM,aAAa,SAAwC,CAAA;AAClE,eAAO,MAAM,KAAK,eAAqC,CAAA;AACvD,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAC3C,eAAO,MAAM,QAAQ,eAAkC,CAAA;AACvD,eAAO,MAAM,SAAS,eAAyB,CAAA;AAC/C,eAAO,MAAM,OAAO,eAAoC,CAAA;AACxD,eAAO,MAAM,KAAK,eAA8B,CAAA"}
package/dist/warning.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export declare function warn(m: string): void;
2
- export declare function warn(c: boolean, m: string): void;
3
- export declare function invariant(m: string): void;
4
- export declare function invariant(c: boolean, m: string): void;
5
- //# sourceMappingURL=warning.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"warning.d.ts","sourceRoot":"","sources":["../src/warning.ts"],"names":[],"mappings":"AAAA,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;AACrC,wBAAgB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;AASjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;AAC1C,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA"}