@kizmann/pico-js 1.0.13 → 2.0.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.
- package/README.md +27 -7
- package/dist/pico-js.browser.js +2 -0
- package/dist/pico-js.browser.js.map +1 -0
- package/dist/pico-js.esm.js +2 -0
- package/dist/pico-js.esm.js.map +1 -0
- package/package.json +20 -7
- package/src/dom/DomAttribute.js +374 -0
- package/src/dom/DomBuilder.js +152 -0
- package/src/dom/DomEvent.js +253 -0
- package/src/dom/DomFinder.js +669 -0
- package/src/dom/DomForm.js +57 -0
- package/src/dom/DomGlobal.js +193 -0
- package/src/dom/DomInview.js +332 -0
- package/src/dom/DomMeta.js +66 -0
- package/src/dom/DomObserver.js +57 -0
- package/src/dom/DomRectangle.js +657 -0
- package/src/format/FormatFile.js +54 -0
- package/src/format/FormatOption.js +108 -0
- package/src/format/FormatParam.js +107 -0
- package/src/format/FormatParser.js +156 -0
- package/src/format/FormatUrl.js +75 -0
- package/src/index.browser.js +10 -0
- package/src/index.esm.js +138 -0
- package/src/now/NowDefault.js +533 -0
- package/src/now/NowFormat.js +196 -0
- package/src/now/NowGrid.js +251 -0
- package/src/now/NowHuman.js +118 -0
- package/src/now/NowMatch.js +175 -0
- package/src/now/NowRange.js +70 -0
- package/src/now/NowWalker.js +544 -0
- package/src/tool/scope.js +103 -0
- package/src/utils/Array.js +986 -0
- package/src/utils/Cookie.js +184 -0
- package/src/utils/Data.js +200 -0
- package/src/utils/Dom.js +208 -0
- package/src/utils/Event.js +140 -0
- package/src/utils/Format.js +62 -0
- package/src/utils/Hash.js +164 -0
- package/src/utils/Locale.js +229 -0
- package/src/utils/Mixed.js +887 -0
- package/src/utils/Now.js +234 -0
- package/src/utils/Number.js +238 -0
- package/src/utils/Object.js +655 -0
- package/src/utils/Route.js +67 -0
- package/src/utils/Runner.js +327 -0
- package/src/utils/String.js +618 -0
- package/src/{library/element.js → wip/Element.js} +90 -16
- package/src/{library/map.js → wip/Map.js} +256 -40
- package/types/dom/DomAttribute.d.ts +137 -0
- package/types/dom/DomBuilder.d.ts +67 -0
- package/types/dom/DomEvent.d.ts +103 -0
- package/types/dom/DomFinder.d.ts +321 -0
- package/types/dom/DomForm.d.ts +21 -0
- package/types/dom/DomGlobal.d.ts +79 -0
- package/types/dom/DomInview.d.ts +114 -0
- package/types/dom/DomMeta.d.ts +29 -0
- package/types/dom/DomObserver.d.ts +21 -0
- package/types/dom/DomRectangle.d.ts +270 -0
- package/types/format/FormatFile.d.ts +18 -0
- package/types/format/FormatOption.d.ts +40 -0
- package/types/format/FormatParam.d.ts +39 -0
- package/types/format/FormatParser.d.ts +46 -0
- package/types/format/FormatUrl.d.ts +17 -0
- package/types/index.browser.d.ts +1 -0
- package/types/index.esm.d.ts +52 -0
- package/types/now/NowDefault.d.ts +183 -0
- package/types/now/NowFormat.d.ts +70 -0
- package/types/now/NowGrid.d.ts +107 -0
- package/types/now/NowHuman.d.ts +37 -0
- package/types/now/NowMatch.d.ts +108 -0
- package/types/now/NowRange.d.ts +21 -0
- package/types/now/NowWalker.d.ts +301 -0
- package/types/tool/scope.d.ts +24 -0
- package/types/utils/Array.d.ts +480 -0
- package/types/utils/Cookie.d.ts +60 -0
- package/types/utils/Data.d.ts +91 -0
- package/types/utils/Dom.d.ts +138 -0
- package/types/utils/Event.d.ts +58 -0
- package/types/utils/Format.d.ts +37 -0
- package/types/utils/Hash.d.ts +81 -0
- package/types/utils/Locale.d.ts +115 -0
- package/types/utils/Mixed.d.ts +469 -0
- package/types/utils/Now.d.ts +125 -0
- package/types/utils/Number.d.ts +127 -0
- package/types/utils/Object.d.ts +255 -0
- package/types/utils/Route.d.ts +37 -0
- package/types/utils/Runner.d.ts +139 -0
- package/types/utils/String.d.ts +330 -0
- package/types/wip/Element.d.ts +119 -0
- package/types/wip/Map.d.ts +254 -0
- package/dist/.ignore.js +0 -0
- package/dist/pico-js.js +0 -2
- package/dist/pico-js.js.map +0 -1
- package/src/element/default.js +0 -46
- package/src/element/example.js +0 -58
- package/src/index.js +0 -90
- package/src/library/cookie.js +0 -123
- package/src/library/data.js +0 -111
- package/src/library/event.js +0 -91
- package/src/library/locale.js +0 -84
- package/src/library/queue.js +0 -64
- package/src/library/route.js +0 -28
- package/src/utility/any.js +0 -369
- package/src/utility/array.js +0 -410
- package/src/utility/dom.js +0 -1425
- package/src/utility/now.js +0 -544
- package/src/utility/number.js +0 -128
- package/src/utility/object.js +0 -429
- package/src/utility/string.js +0 -328
- package/types/index.d.ts +0 -77
- package/types/library/cookie.d.ts +0 -10
- package/types/library/data.d.ts +0 -15
- package/types/library/element.d.ts +0 -22
- package/types/library/event.d.ts +0 -13
- package/types/library/locale.d.ts +0 -14
- package/types/library/map.d.ts +0 -43
- package/types/library/queue.d.ts +0 -18
- package/types/library/route.d.ts +0 -11
- package/types/utility/any.d.ts +0 -35
- package/types/utility/array.d.ts +0 -46
- package/types/utility/dom.d.ts +0 -101
- package/types/utility/now.d.ts +0 -79
- package/types/utility/number.d.ts +0 -17
- package/types/utility/object.d.ts +0 -29
- package/types/utility/string.d.ts +0 -26
package/src/utility/object.js
DELETED
|
@@ -1,429 +0,0 @@
|
|
|
1
|
-
import Arr from "./array.js";
|
|
2
|
-
import Any from "./any.js";
|
|
3
|
-
|
|
4
|
-
export class Obj
|
|
5
|
-
{
|
|
6
|
-
static has(obj, keys)
|
|
7
|
-
{
|
|
8
|
-
if ( obj === null || obj === undefined ) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if ( keys === null || keys === undefined ) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
if ( Any.isArray(keys) ) {
|
|
17
|
-
keys = keys.join('.');
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
if ( ! Any.isString(keys) ) {
|
|
21
|
-
keys = keys.toString();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
keys = keys.split('.');
|
|
25
|
-
|
|
26
|
-
let lst = keys.pop(), index = 0, length = keys.length;
|
|
27
|
-
|
|
28
|
-
while (obj !== undefined && obj !== null && index < length) {
|
|
29
|
-
obj = obj[keys[index++]];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if ( obj === undefined || obj === null) {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return obj[lst] !== undefined;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
static empty(obj, key)
|
|
40
|
-
{
|
|
41
|
-
return Any.isEmpty(this.get(obj, key, null));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
static get(obj, keys, fallback = null)
|
|
45
|
-
{
|
|
46
|
-
if ( obj === null || obj === undefined ) {
|
|
47
|
-
return fallback;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if ( keys === null || keys === undefined ) {
|
|
51
|
-
return fallback;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if ( Any.isArray(keys) ) {
|
|
55
|
-
keys = keys.join('.');
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
let undef = true;
|
|
59
|
-
|
|
60
|
-
if ( typeof obj === 'object' ) {
|
|
61
|
-
undef = obj[keys] === null || obj[keys] === undefined
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if ( ! undef ) {
|
|
65
|
-
return obj[keys];
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if ( ! Any.isString(keys) ) {
|
|
69
|
-
keys = keys.toString();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
keys = keys.split('.');
|
|
73
|
-
|
|
74
|
-
let index = 0, length = keys.length;
|
|
75
|
-
|
|
76
|
-
if ( length === 0 ) {
|
|
77
|
-
return fallback;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
while (obj !== undefined && obj !== null && index < length) {
|
|
81
|
-
obj = obj[keys[index++]];
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if ( obj === undefined || obj === null) {
|
|
85
|
-
return fallback;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return obj;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
static set(obj, keys, val)
|
|
92
|
-
{
|
|
93
|
-
if ( Any.isArray(keys) ) {
|
|
94
|
-
keys = keys.join('.');
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if ( ! Any.isString(keys) ) {
|
|
98
|
-
keys = keys.toString();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
let undef = true;
|
|
102
|
-
|
|
103
|
-
if ( typeof obj === 'object' ) {
|
|
104
|
-
undef = obj[keys] === null || obj[keys] === undefined
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if ( ! undef ) {
|
|
108
|
-
obj[keys] = val; return obj;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
keys = keys.split('.');
|
|
112
|
-
|
|
113
|
-
let index = 0, length = keys.length, nested = obj;
|
|
114
|
-
|
|
115
|
-
if ( length === 0 ) {
|
|
116
|
-
return obj;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
while (nested !== null && index < length) {
|
|
120
|
-
|
|
121
|
-
if ( nested[keys[index]] === undefined || nested[keys[index]] === null ) {
|
|
122
|
-
nested[keys[index]] = {};
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if ( index == length - 1 ) {
|
|
126
|
-
nested[keys[index]] = val;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
nested = nested[keys[index++]];
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return obj;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
static unset(obj, keys)
|
|
136
|
-
{
|
|
137
|
-
if ( Any.isArray(keys) ) {
|
|
138
|
-
keys = keys.join('.');
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
if ( ! Any.isString(keys) ) {
|
|
142
|
-
keys = keys.toString();
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
keys = keys.split('.');
|
|
146
|
-
|
|
147
|
-
let key = keys.shift();
|
|
148
|
-
|
|
149
|
-
if ( typeof obj[key] === 'undefined' ) {
|
|
150
|
-
return obj;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if ( keys.length === 0 ) {
|
|
154
|
-
delete obj[key];
|
|
155
|
-
return obj;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
return this.unset(obj[key], keys);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
static pluck(obj, keys, fallback = null)
|
|
162
|
-
{
|
|
163
|
-
let value = this.get(obj, keys, fallback);
|
|
164
|
-
|
|
165
|
-
this.unset(obj, keys);
|
|
166
|
-
|
|
167
|
-
return value;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
static only(obj, keys, assign = null)
|
|
171
|
-
{
|
|
172
|
-
let result = {};
|
|
173
|
-
|
|
174
|
-
this.each(obj, (val, key) => {
|
|
175
|
-
if ( Arr.has(keys, key) === true ) {
|
|
176
|
-
result[key] = val;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
if ( !Any.isEmpty(assign) ) {
|
|
181
|
-
result = this.assign(result, assign);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
return result;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
static except(obj, keys, assign = null)
|
|
188
|
-
{
|
|
189
|
-
let result = {};
|
|
190
|
-
|
|
191
|
-
this.each(obj, (val, key) => {
|
|
192
|
-
if ( Arr.has(keys, key) === false ) {
|
|
193
|
-
result[key] = val;
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
if ( !Any.isEmpty(assign) ) {
|
|
198
|
-
result = this.assign(result, assign);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
return result;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
static includes(obj, val)
|
|
205
|
-
{
|
|
206
|
-
let result = true;
|
|
207
|
-
|
|
208
|
-
for ( let key of Any.keys(obj) ) {
|
|
209
|
-
if ( typeof val[key] !== 'undefined' ) {
|
|
210
|
-
result = (Any.isPlain(obj[key]) || Any.isArray(obj[key]) ?
|
|
211
|
-
this.includes(obj[key], val[key]) : obj[key] === val[key]) && result;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
return result;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
static matches(obj, val)
|
|
219
|
-
{
|
|
220
|
-
let result = true;
|
|
221
|
-
|
|
222
|
-
for ( let key of Any.keys(obj) ) {
|
|
223
|
-
if ( typeof val[key] !== 'undefined' ) {
|
|
224
|
-
result = (Any.isObject(obj[key]) ?
|
|
225
|
-
this.matches(obj[key], val[key]) : obj[key] === val[key]) && result;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return result;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
static sort(obj, key)
|
|
233
|
-
{
|
|
234
|
-
let keys = Any.keys(obj);
|
|
235
|
-
|
|
236
|
-
if ( Any.isFunction(key) ) {
|
|
237
|
-
keys = keys.sort((a, b) => {
|
|
238
|
-
return key.call({}, obj[a], obj[b]);
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
if ( !Any.isFunction(key) ) {
|
|
243
|
-
keys = keys.sort((a, b) => {
|
|
244
|
-
return Any.integer(Obj.get(obj[a], key)) - Any.integer(Obj.get(obj[b], key));
|
|
245
|
-
})
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
let result = [];
|
|
249
|
-
|
|
250
|
-
Arr.each(keys, (key, index) => {
|
|
251
|
-
obj[key]['_key'] = key;
|
|
252
|
-
result[index] = obj[key];
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
return result;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
static sortString(obj, key)
|
|
259
|
-
{
|
|
260
|
-
let keys = Any.keys(obj);
|
|
261
|
-
|
|
262
|
-
if ( !Any.isFunction(key) ) {
|
|
263
|
-
keys = keys.sort((a, b) => {
|
|
264
|
-
|
|
265
|
-
let va = Any.string(Obj.get(obj[a], key)).toLowerCase();
|
|
266
|
-
let vb = Any.string(Obj.get(obj[b], key)).toLowerCase();
|
|
267
|
-
|
|
268
|
-
return (va < vb) ? - 1 : (va > vb) ? 1 : 0;
|
|
269
|
-
})
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
let result = [];
|
|
273
|
-
|
|
274
|
-
Arr.each(keys, (key, index) => {
|
|
275
|
-
obj[key]['_key'] = key;
|
|
276
|
-
result[index] = obj[key];
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
return result;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
static filter(obj, filter)
|
|
283
|
-
{
|
|
284
|
-
let result = {};
|
|
285
|
-
|
|
286
|
-
Obj.each(Obj.filterIndex(obj, filter), (key) => {
|
|
287
|
-
result[key] = obj[key];
|
|
288
|
-
});
|
|
289
|
-
|
|
290
|
-
return result;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
static filterIndex(obj, filter)
|
|
294
|
-
{
|
|
295
|
-
return Any.keys(obj).filter((key) => {
|
|
296
|
-
|
|
297
|
-
if ( typeof filter === "undefined" ) {
|
|
298
|
-
return Any.isEmpty(obj[key]);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
if ( Any.isFunction(filter) ) {
|
|
302
|
-
return filter.call({}, obj[key], key);
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
if ( Any.isPlain(filter) ) {
|
|
306
|
-
return Obj.includes(filter, obj[key]);
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
if ( Any.isArray(filter) ) {
|
|
310
|
-
return Arr.includes(filter, obj[key]);
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
return filter === obj[key];
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
static find(arr, obj, fallback = null)
|
|
318
|
-
{
|
|
319
|
-
return Arr.first(Obj.filter(arr, obj)) || fallback;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
static findIndex(arr, obj, fallback = - 1)
|
|
323
|
-
{
|
|
324
|
-
return Arr.first(Obj.filterIndex(arr, obj)) || fallback;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
static clone(obj)
|
|
328
|
-
{
|
|
329
|
-
let clone;
|
|
330
|
-
|
|
331
|
-
if ( Any.isArray(obj) === true ) {
|
|
332
|
-
return Arr.clone(obj);
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
if ( Any.isPlain(obj) === true ) {
|
|
336
|
-
|
|
337
|
-
clone = {};
|
|
338
|
-
|
|
339
|
-
for ( let key of Any.keys(obj) ) {
|
|
340
|
-
clone[key] = Obj.clone(obj[key]);
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
return clone;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
return clone || obj;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
static assign(...args)
|
|
350
|
-
{
|
|
351
|
-
return Object.assign(...args);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
static remove(obj, keys)
|
|
355
|
-
{
|
|
356
|
-
Arr.each(keys, (key) => delete obj[key]);
|
|
357
|
-
|
|
358
|
-
return obj;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
static each(obj, callback)
|
|
362
|
-
{
|
|
363
|
-
let result = {};
|
|
364
|
-
|
|
365
|
-
if ( FormData && obj instanceof FormData ) {
|
|
366
|
-
|
|
367
|
-
for ( let [key, value] of obj.entries() ) {
|
|
368
|
-
result[key] = callback(value, key);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
return obj;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
for ( let key of Any.keys(obj) ) {
|
|
375
|
-
result[key] = callback(obj[key], key);
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
return result;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
static map(obj, callback)
|
|
382
|
-
{
|
|
383
|
-
for ( let key of Any.keys(obj) ) {
|
|
384
|
-
obj[key] = callback(obj[key], key);
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
return obj;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
static values(obj)
|
|
391
|
-
{
|
|
392
|
-
let result = [];
|
|
393
|
-
|
|
394
|
-
this.each(obj, val => result.push(val));
|
|
395
|
-
|
|
396
|
-
return result;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
static flatten(obj)
|
|
400
|
-
{
|
|
401
|
-
let result = {};
|
|
402
|
-
|
|
403
|
-
let callback = (val, sey = null) => {
|
|
404
|
-
|
|
405
|
-
Arr.each(Any.keys(val), (key) => {
|
|
406
|
-
|
|
407
|
-
let tey = key;
|
|
408
|
-
|
|
409
|
-
if ( ! Any.isEmpty(sey) ) {
|
|
410
|
-
tey = `${sey}.${key}`;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
if ( Any.isPlain(val[key]) ) {
|
|
414
|
-
return callback(val[key], tey);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
result[tey] = val[key];
|
|
418
|
-
});
|
|
419
|
-
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
callback(obj);
|
|
423
|
-
|
|
424
|
-
return result;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
export default Obj;
|