@baleada/logic 0.21.0 → 0.21.1

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.cjs CHANGED
@@ -194,239 +194,6 @@ class Pipeable {
194
194
  }
195
195
  }
196
196
 
197
- function toEvent(eventType, options) {
198
- const implementation = toImplementation(eventType);
199
- switch (implementation) {
200
- case "keycombo": {
201
- const combo = toCombo(eventType), modifiers = createSlice(0, combo.length - 1)(combo), { 0: name } = createSlice(combo.length - 1)(combo);
202
- return new KeyboardEvent("keyDirection" in options ? `key${options.keyDirection}` : "keydown", {
203
- ...options.init || {},
204
- key: toKey(name),
205
- ...createReduce((flags, alias) => {
206
- flags[toModifierFlag(alias)] = true;
207
- return flags;
208
- }, {})(modifiers)
209
- });
210
- }
211
- case "leftclickcombo":
212
- case "rightclickcombo": {
213
- const combo = toCombo(eventType), modifiers = createSlice(0, combo.length - 1)(combo), { 0: name } = createSlice(combo.length - 1)(combo);
214
- return new MouseEvent(name === "rightclick" ? "contextmenu" : name, {
215
- ...options.init || {},
216
- ...createReduce((flags, alias) => {
217
- flags[toModifierFlag(alias)] = true;
218
- return flags;
219
- }, {})(modifiers)
220
- });
221
- }
222
- case "pointercombo": {
223
- const combo = toCombo(eventType), modifiers = createSlice(0, combo.length - 1)(combo), { 0: name } = createSlice(combo.length - 1)(combo);
224
- return new PointerEvent(name === "rightclick" ? "contextmenu" : name, {
225
- ...options.init || {},
226
- ...createReduce((flags, alias) => {
227
- flags[toModifierFlag(alias)] = true;
228
- return flags;
229
- }, {})(modifiers)
230
- });
231
- }
232
- case "documentevent":
233
- case "event":
234
- if (eventType === "abort")
235
- return new UIEvent(eventType, options.init);
236
- if (eventType === "animationcancel")
237
- return new AnimationEvent(eventType, options.init);
238
- if (eventType === "animationend")
239
- return new AnimationEvent(eventType, options.init);
240
- if (eventType === "animationiteration")
241
- return new AnimationEvent(eventType, options.init);
242
- if (eventType === "animationstart")
243
- return new AnimationEvent(eventType, options.init);
244
- if (eventType === "auxclick")
245
- return new MouseEvent(eventType, options.init);
246
- if (eventType === "beforeinput")
247
- return new InputEvent(eventType, options.init);
248
- if (eventType === "blur")
249
- return new FocusEvent(eventType, options.init);
250
- if (eventType === "canplay")
251
- return new Event(eventType, options.init);
252
- if (eventType === "canplaythrough")
253
- return new Event(eventType, options.init);
254
- if (eventType === "change")
255
- return new Event(eventType, options.init);
256
- if (eventType === "click")
257
- return new MouseEvent(eventType, options.init);
258
- if (eventType === "close")
259
- return new Event(eventType, options.init);
260
- if (eventType === "compositionend")
261
- return new CompositionEvent(eventType, options.init);
262
- if (eventType === "compositionstart")
263
- return new CompositionEvent(eventType, options.init);
264
- if (eventType === "compositionupdate")
265
- return new CompositionEvent(eventType, options.init);
266
- if (eventType === "contextmenu")
267
- return new MouseEvent(eventType, options.init);
268
- if (eventType === "cuechange")
269
- return new Event(eventType, options.init);
270
- if (eventType === "dblclick")
271
- return new MouseEvent(eventType, options.init);
272
- if (eventType === "drag")
273
- return new DragEvent(eventType, options.init);
274
- if (eventType === "dragend")
275
- return new DragEvent(eventType, options.init);
276
- if (eventType === "dragenter")
277
- return new DragEvent(eventType, options.init);
278
- if (eventType === "dragleave")
279
- return new DragEvent(eventType, options.init);
280
- if (eventType === "dragover")
281
- return new DragEvent(eventType, options.init);
282
- if (eventType === "dragstart")
283
- return new DragEvent(eventType, options.init);
284
- if (eventType === "drop")
285
- return new DragEvent(eventType, options.init);
286
- if (eventType === "durationchange")
287
- return new Event(eventType, options.init);
288
- if (eventType === "emptied")
289
- return new Event(eventType, options.init);
290
- if (eventType === "ended")
291
- return new Event(eventType, options.init);
292
- if (eventType === "error")
293
- return new ErrorEvent(eventType, options.init);
294
- if (eventType === "focus")
295
- return new FocusEvent(eventType, options.init);
296
- if (eventType === "focusin")
297
- return new FocusEvent(eventType, options.init);
298
- if (eventType === "focusout")
299
- return new FocusEvent(eventType, options.init);
300
- if (eventType === "gotpointercapture")
301
- return new PointerEvent(eventType, options.init);
302
- if (eventType === "input")
303
- return new Event(eventType, options.init);
304
- if (eventType === "invalid")
305
- return new Event(eventType, options.init);
306
- if (eventType === "keydown")
307
- return new KeyboardEvent(eventType, options.init);
308
- if (eventType === "keypress")
309
- return new KeyboardEvent(eventType, options.init);
310
- if (eventType === "keyup")
311
- return new KeyboardEvent(eventType, options.init);
312
- if (eventType === "load")
313
- return new Event(eventType, options.init);
314
- if (eventType === "loadeddata")
315
- return new Event(eventType, options.init);
316
- if (eventType === "loadedmetadata")
317
- return new Event(eventType, options.init);
318
- if (eventType === "loadstart")
319
- return new Event(eventType, options.init);
320
- if (eventType === "lostpointercapture")
321
- return new PointerEvent(eventType, options.init);
322
- if (eventType === "mousedown")
323
- return new MouseEvent(eventType, options.init);
324
- if (eventType === "mouseenter")
325
- return new MouseEvent(eventType, options.init);
326
- if (eventType === "mouseleave")
327
- return new MouseEvent(eventType, options.init);
328
- if (eventType === "mousemove")
329
- return new MouseEvent(eventType, options.init);
330
- if (eventType === "mouseout")
331
- return new MouseEvent(eventType, options.init);
332
- if (eventType === "mouseover")
333
- return new MouseEvent(eventType, options.init);
334
- if (eventType === "mouseup")
335
- return new MouseEvent(eventType, options.init);
336
- if (eventType === "pause")
337
- return new Event(eventType, options.init);
338
- if (eventType === "play")
339
- return new Event(eventType, options.init);
340
- if (eventType === "playing")
341
- return new Event(eventType, options.init);
342
- if (eventType === "pointercancel")
343
- return new PointerEvent(eventType, options.init);
344
- if (eventType === "pointerdown")
345
- return new PointerEvent(eventType, options.init);
346
- if (eventType === "pointerenter")
347
- return new PointerEvent(eventType, options.init);
348
- if (eventType === "pointerleave")
349
- return new PointerEvent(eventType, options.init);
350
- if (eventType === "pointermove")
351
- return new PointerEvent(eventType, options.init);
352
- if (eventType === "pointerout")
353
- return new PointerEvent(eventType, options.init);
354
- if (eventType === "pointerover")
355
- return new PointerEvent(eventType, options.init);
356
- if (eventType === "pointerup")
357
- return new PointerEvent(eventType, options.init);
358
- if (eventType === "progress")
359
- return new ProgressEvent(eventType, options.init);
360
- if (eventType === "ratechange")
361
- return new Event(eventType, options.init);
362
- if (eventType === "reset")
363
- return new Event(eventType, options.init);
364
- if (eventType === "scroll")
365
- return new Event(eventType, options.init);
366
- if (eventType === "securitypolicyviolation")
367
- return new SecurityPolicyViolationEvent(eventType, options.init);
368
- if (eventType === "seeked")
369
- return new Event(eventType, options.init);
370
- if (eventType === "seeking")
371
- return new Event(eventType, options.init);
372
- if (eventType === "select")
373
- return new Event(eventType, options.init);
374
- if (eventType === "selectionchange")
375
- return new Event(eventType, options.init);
376
- if (eventType === "selectstart")
377
- return new Event(eventType, options.init);
378
- if (eventType === "stalled")
379
- return new Event(eventType, options.init);
380
- if (eventType === "submit")
381
- return new Event(eventType, options.init);
382
- if (eventType === "suspend")
383
- return new Event(eventType, options.init);
384
- if (eventType === "timeupdate")
385
- return new Event(eventType, options.init);
386
- if (eventType === "toggle")
387
- return new Event(eventType, options.init);
388
- if (eventType === "touchcancel")
389
- return new TouchEvent(eventType, options.init);
390
- if (eventType === "touchend")
391
- return new TouchEvent(eventType, options.init);
392
- if (eventType === "touchmove")
393
- return new TouchEvent(eventType, options.init);
394
- if (eventType === "touchstart")
395
- return new TouchEvent(eventType, options.init);
396
- if (eventType === "transitioncancel")
397
- return new TransitionEvent(eventType, options.init);
398
- if (eventType === "transitionend")
399
- return new TransitionEvent(eventType, options.init);
400
- if (eventType === "transitionrun")
401
- return new TransitionEvent(eventType, options.init);
402
- if (eventType === "transitionstart")
403
- return new TransitionEvent(eventType, options.init);
404
- if (eventType === "volumechange")
405
- return new Event(eventType, options.init);
406
- if (eventType === "waiting")
407
- return new Event(eventType, options.init);
408
- if (eventType === "wheel")
409
- return new WheelEvent(eventType, options.init);
410
- if (eventType === "copy")
411
- return new ClipboardEvent(eventType, options.init);
412
- if (eventType === "cut")
413
- return new ClipboardEvent(eventType, options.init);
414
- if (eventType === "paste")
415
- return new ClipboardEvent(eventType, options.init);
416
- if (eventType === "fullscreenchange")
417
- return new Event(eventType, options.init);
418
- if (eventType === "fullscreenerror")
419
- return new Event(eventType, options.init);
420
- if (eventType === "pointerlockchange")
421
- return new Event(eventType, options.init);
422
- if (eventType === "pointerlockerror")
423
- return new Event(eventType, options.init);
424
- if (eventType === "readystatechange")
425
- return new Event(eventType, options.init);
426
- if (eventType === "visibilitychange")
427
- return new Event(eventType, options.init);
428
- }
429
- }
430
197
  function toKey(name) {
431
198
  return name in keysByName ? keysByName[name] : name;
432
199
  }
@@ -524,20 +291,6 @@ const modifiersByAlias = {
524
291
  opt: "alt",
525
292
  option: "alt"
526
293
  };
527
- function toModifierFlag(modifierOrAlias) {
528
- return flagsByModifierOrAlias[modifierOrAlias];
529
- }
530
- const flagsByModifierOrAlias = {
531
- shift: "shiftKey",
532
- cmd: "metaKey",
533
- command: "metaKey",
534
- meta: "metaKey",
535
- ctrl: "ctrlKey",
536
- control: "ctrlKey",
537
- alt: "altKey",
538
- opt: "altKey",
539
- option: "altKey"
540
- };
541
294
  function createExceptAndOnlyEffect(effect, options) {
542
295
  const { except = [], only = [] } = options;
543
296
  return (event) => {
@@ -2258,10 +2011,10 @@ class Copyable {
2258
2011
  }
2259
2012
  computedResponse;
2260
2013
  computedError;
2261
- async copy(options = { type: "clipboard" }) {
2014
+ async copy(options = { kind: "clipboard" }) {
2262
2015
  this.copying();
2263
- const { type } = options;
2264
- switch (type) {
2016
+ const { kind } = options;
2017
+ switch (kind) {
2265
2018
  case "clipboard":
2266
2019
  try {
2267
2020
  this.computedResponse = await navigator.clipboard.writeText(this.string);
@@ -2449,44 +2202,6 @@ class Delayable {
2449
2202
  }
2450
2203
  }
2451
2204
 
2452
- class Dispatchable {
2453
- constructor(type, options = {}) {
2454
- this.setType(type);
2455
- this.ready();
2456
- }
2457
- computedStatus;
2458
- ready() {
2459
- this.computedStatus = "ready";
2460
- }
2461
- get type() {
2462
- return this.computedType;
2463
- }
2464
- set type(type) {
2465
- this.setType(type);
2466
- }
2467
- get cancelled() {
2468
- return this.computedCancelled;
2469
- }
2470
- get status() {
2471
- return this.computedStatus;
2472
- }
2473
- computedType;
2474
- setType(type) {
2475
- this.computedType = type;
2476
- return this;
2477
- }
2478
- computedCancelled;
2479
- dispatch(options = {}) {
2480
- const { target = window, ...rest } = options, event = toEvent(this.type, rest);
2481
- this.computedCancelled = !target.dispatchEvent(event);
2482
- this.dispatched();
2483
- return this;
2484
- }
2485
- dispatched() {
2486
- this.computedStatus = "dispatched";
2487
- }
2488
- }
2489
-
2490
2205
  const defaultOptions$3 = {
2491
2206
  toD: (stroke) => stroke.length === 0 ? "" : toD(stroke)
2492
2207
  };
@@ -3088,7 +2803,7 @@ class Pickable {
3088
2803
  picked() {
3089
2804
  this.computedStatus = "picked";
3090
2805
  }
3091
- omit(indexOrIndices) {
2806
+ omit(indexOrIndices, options = { reference: "array" }) {
3092
2807
  if (isUndefined(indexOrIndices)) {
3093
2808
  this.computedPicks = [];
3094
2809
  this.computedFirst = void 0;
@@ -3097,7 +2812,7 @@ class Pickable {
3097
2812
  return this;
3098
2813
  }
3099
2814
  const omits = ensureIndices(indexOrIndices);
3100
- this.computedPicks = createFilter((pick) => isUndefined(lazyCollections.find((omit) => pick === omit)(omits)))(this.computedPicks);
2815
+ this.computedPicks = createFilter((pick, index) => options.reference === "array" ? isUndefined(lazyCollections.find((omit) => pick === omit)(omits)) : isUndefined(lazyCollections.find((omit) => index === omit)(omits)))(this.computedPicks);
3101
2816
  this.computedFirst = Math.min(...this.picks);
3102
2817
  this.computedLast = Math.max(...this.picks);
3103
2818
  this.omitted();
@@ -3205,15 +2920,15 @@ class Searchable {
3205
2920
  }
3206
2921
 
3207
2922
  const defaultOptions = {
3208
- type: "local",
2923
+ kind: "local",
3209
2924
  statusKeySuffix: " status"
3210
2925
  };
3211
2926
  class Storeable {
3212
- type;
2927
+ kind;
3213
2928
  statusKeySuffix;
3214
2929
  constructor(key, options = {}) {
3215
2930
  this.constructing();
3216
- this.type = options.type ?? defaultOptions.type;
2931
+ this.kind = options.kind ?? defaultOptions.kind;
3217
2932
  this.statusKeySuffix = options.statusKeySuffix ?? defaultOptions.statusKeySuffix;
3218
2933
  this.setKey(key);
3219
2934
  this.ready();
@@ -3246,7 +2961,7 @@ class Storeable {
3246
2961
  return this.computedStatus;
3247
2962
  }
3248
2963
  get storage() {
3249
- switch (this.type) {
2964
+ switch (this.kind) {
3250
2965
  case "local":
3251
2966
  return localStorage;
3252
2967
  case "session":
@@ -3329,7 +3044,6 @@ exports.Animateable = Animateable;
3329
3044
  exports.Completeable = Completeable;
3330
3045
  exports.Copyable = Copyable;
3331
3046
  exports.Delayable = Delayable;
3332
- exports.Dispatchable = Dispatchable;
3333
3047
  exports.Drawable = Drawable;
3334
3048
  exports.Fetchable = Fetchable;
3335
3049
  exports.Fullscreenable = Fullscreenable;
package/lib/index.d.ts CHANGED
@@ -231,7 +231,7 @@ declare class Copyable {
231
231
  private computedResponse;
232
232
  private computedError;
233
233
  copy(options?: {
234
- type: 'clipboard' | 'deprecated';
234
+ kind: 'clipboard' | 'deprecated';
235
235
  }): Promise<this>;
236
236
  private copying;
237
237
  private copied;
@@ -276,6 +276,139 @@ declare class Delayable {
276
276
  private stopped;
277
277
  }
278
278
 
279
+ declare type DrawableState = ReturnType<typeof getStroke>;
280
+ declare type DrawableOptions = {
281
+ toD?: (stroke: DrawableState) => string;
282
+ };
283
+ declare type DrawableStatus = 'ready' | 'drawing' | 'drawn';
284
+ declare class Drawable {
285
+ private computedD;
286
+ private toD;
287
+ constructor(stroke: DrawableState, options?: DrawableOptions);
288
+ computedStatus: DrawableStatus;
289
+ private ready;
290
+ get stroke(): number[][];
291
+ set stroke(stroke: number[][]);
292
+ get status(): DrawableStatus;
293
+ get d(): string;
294
+ private computedStroke;
295
+ setStroke(stroke: DrawableState): this;
296
+ draw(points: Parameters<typeof getStroke>[0], options?: StrokeOptions): this;
297
+ private drawing;
298
+ private drawn;
299
+ }
300
+ declare function toD(stroke: number[][]): string;
301
+ declare function toFlattenedD(stroke: number[][]): string;
302
+
303
+ declare type ResolveableOptions = Record<string, never>;
304
+ declare type ResolveableGetPromise<Value> = (...args: any[]) => (Promise<Value> | Promise<Value>[]);
305
+ declare type ResolveableStatus = 'ready' | 'resolving' | 'resolved' | 'errored';
306
+ declare class Resolveable<Value> {
307
+ constructor(getPromise: ResolveableGetPromise<Value>, options?: ResolveableOptions);
308
+ private computedStatus;
309
+ private ready;
310
+ get getPromise(): (...args: any[]) => Promise<Value> | Promise<Value>[];
311
+ set getPromise(getPromise: (...args: any[]) => Promise<Value> | Promise<Value>[]);
312
+ get status(): ResolveableStatus;
313
+ get value(): Error | Value | Value[];
314
+ private computedGetPromise;
315
+ setGetPromise(getPromise: (...args: any[]) => (Promise<Value> | Promise<Value>[])): this;
316
+ private computedValue;
317
+ resolve(...args: any[]): Promise<this>;
318
+ private resolving;
319
+ private resolved;
320
+ private errored;
321
+ }
322
+
323
+ declare type FetchableOptions = Record<string, never>;
324
+ declare type FetchableStatus = 'ready' | 'fetching' | 'fetched' | 'aborted' | 'errored';
325
+ declare type FetchOptions = RequestInit | ((api: FetchOptionsApi) => RequestInit);
326
+ declare class Fetchable {
327
+ private computedArrayBuffer;
328
+ private computedBlob;
329
+ private computedFormData;
330
+ private computedJson;
331
+ private computedText;
332
+ constructor(resource: string, options?: FetchableOptions);
333
+ private computedStatus;
334
+ private ready;
335
+ get resource(): string;
336
+ set resource(resource: string);
337
+ private computedAbortController;
338
+ get abortController(): AbortController;
339
+ get status(): FetchableStatus;
340
+ get response(): Response;
341
+ get error(): Error;
342
+ get arrayBuffer(): Resolveable<ArrayBuffer> | Promise<Resolveable<ArrayBuffer>>;
343
+ get blob(): Resolveable<Blob> | Promise<Resolveable<Blob>>;
344
+ get formData(): Resolveable<FormData> | Promise<Resolveable<FormData>>;
345
+ get json(): Resolveable<any> | Promise<Resolveable<any>>;
346
+ get text(): Resolveable<string> | Promise<Resolveable<string>>;
347
+ private getUsedBody;
348
+ private computedResource;
349
+ setResource(resource: string): this;
350
+ private computedResponse;
351
+ private computedError;
352
+ fetch(options?: FetchOptions): Promise<this>;
353
+ get(options?: FetchOptions): Promise<this>;
354
+ patch(options?: FetchOptions): Promise<this>;
355
+ post(options?: FetchOptions): Promise<this>;
356
+ put(options?: FetchOptions): Promise<this>;
357
+ delete(options?: FetchOptions): Promise<this>;
358
+ abort(): this;
359
+ }
360
+ declare type FetchOptionsApi = {
361
+ withJson: (data: Record<any, any>) => {
362
+ body: string;
363
+ headers: {
364
+ 'Accept': 'application/json';
365
+ 'Content-Type': 'application/json';
366
+ };
367
+ };
368
+ };
369
+
370
+ declare type FullscreenableOptions = Record<string, never>;
371
+ declare type FullscreenableGetElement<ElementType> = ((...args: any[]) => ElementType);
372
+ declare type FullscreenableStatus = 'ready' | 'fullscreened' | 'errored' | 'exited';
373
+ declare class Fullscreenable<ElementType extends Element> {
374
+ constructor(getElement: FullscreenableGetElement<ElementType>, options?: FullscreenableOptions);
375
+ private computedStatus;
376
+ private ready;
377
+ get getElement(): (...args: any[]) => ElementType;
378
+ set getElement(getElement: (...args: any[]) => ElementType);
379
+ get status(): FullscreenableStatus;
380
+ get element(): ElementType;
381
+ get error(): Error;
382
+ private computedGetElement;
383
+ setGetElement(getElement: ((...args: any[]) => ElementType)): this;
384
+ enter(options?: FullscreenOptions): Promise<this>;
385
+ private computedError;
386
+ fullscreen(options?: FullscreenOptions): Promise<this>;
387
+ private fullscreened;
388
+ private errored;
389
+ exit(): Promise<this>;
390
+ private exited;
391
+ }
392
+
393
+ declare type GrantableOptions = Record<string, never>;
394
+ declare type GrantableStatus = 'ready' | 'querying' | 'queried' | 'errored';
395
+ declare class Grantable<DescriptorType extends PermissionDescriptor> {
396
+ constructor(descriptor: DescriptorType, options?: GrantableOptions);
397
+ private computedStatus;
398
+ private ready;
399
+ get descriptor(): DescriptorType;
400
+ set descriptor(descriptor: DescriptorType);
401
+ get permission(): Error | PermissionStatus;
402
+ get status(): GrantableStatus;
403
+ private computedDescriptor;
404
+ setDescriptor(descriptor: DescriptorType): this;
405
+ private computedPermission;
406
+ query(): Promise<this>;
407
+ private querying;
408
+ private queried;
409
+ private errored;
410
+ }
411
+
279
412
  declare type RecognizeableOptions<Type extends ListenableSupportedType, Metadata extends Record<any, any>> = {
280
413
  maxSequenceLength?: true | number;
281
414
  effectsIncludeCombos?: boolean;
@@ -430,276 +563,6 @@ declare function eventMatchesKeycombo({ event, keycombo }: {
430
563
  keycombo: ListenableKeycomboItem[];
431
564
  }): boolean;
432
565
 
433
- declare type DispatchableOptions = Record<string, never>;
434
- declare type DispatchableStatus = 'ready' | 'dispatched';
435
- declare type DispatchOptions<EventType extends ListenableSupportedEventType> = {
436
- init?: EventType extends ListenableClickcombo ? EventHandlersEventInitMap['mousedown'] : EventType extends ListenablePointercombo ? EventHandlersEventInitMap['pointerdown'] : EventType extends ListenableKeycombo ? EventHandlersEventInitMap['keydown'] : EventType extends keyof Omit<HTMLElementEventMap$1, 'resize'> ? EventHandlersEventInitMap[EventType] : EventType extends keyof Omit<DocumentEventMap, 'resize'> ? EventHandlersEventInitMap[EventType] : never;
437
- target?: Window & typeof globalThis | Document | Element;
438
- } & (EventType extends ListenableKeycombo ? {
439
- keyDirection?: 'up' | 'down';
440
- } : {});
441
- declare class Dispatchable<EventType extends ListenableSupportedEventType> {
442
- constructor(type: EventType, options?: DispatchableOptions);
443
- private computedStatus;
444
- private ready;
445
- get type(): EventType;
446
- set type(type: EventType);
447
- get cancelled(): boolean;
448
- get status(): DispatchableStatus;
449
- private computedType;
450
- setType(type: any): this;
451
- private computedCancelled;
452
- dispatch(options?: DispatchOptions<EventType>): this;
453
- private dispatched;
454
- }
455
- declare type EventHandlersEventInitMap = GlobalEventHandlersEventInitMap & DocumentAndElementEventHandlersEventInitMap & DocumentEventInitMap & HTMLElementEventMap$1;
456
- declare type HTMLElementEventMap$1 = {
457
- "fullscreenchange": EventInit;
458
- "fullscreenerror": EventInit;
459
- };
460
- declare type GlobalEventHandlersEventInitMap = {
461
- "abort": UIEventInit;
462
- "animationcancel": AnimationEventInit;
463
- "animationend": AnimationEventInit;
464
- "animationiteration": AnimationEventInit;
465
- "animationstart": AnimationEventInit;
466
- "auxclick": MouseEventInit;
467
- "beforeinput": InputEventInit;
468
- "blur": FocusEventInit;
469
- "canplay": EventInit;
470
- "canplaythrough": EventInit;
471
- "change": EventInit;
472
- "click": MouseEventInit;
473
- "close": EventInit;
474
- "compositionend": CompositionEventInit;
475
- "compositionstart": CompositionEventInit;
476
- "compositionupdate": CompositionEventInit;
477
- "contextmenu": MouseEventInit;
478
- "cuechange": EventInit;
479
- "dblclick": MouseEventInit;
480
- "drag": DragEventInit;
481
- "dragend": DragEventInit;
482
- "dragenter": DragEventInit;
483
- "dragleave": DragEventInit;
484
- "dragover": DragEventInit;
485
- "dragstart": DragEventInit;
486
- "drop": DragEventInit;
487
- "durationchange": EventInit;
488
- "emptied": EventInit;
489
- "ended": EventInit;
490
- "error": ErrorEventInit;
491
- "focus": FocusEventInit;
492
- "focusin": FocusEventInit;
493
- "focusout": FocusEventInit;
494
- "formdata": FormDataEventInit;
495
- "gotpointercapture": PointerEventInit;
496
- "input": EventInit;
497
- "invalid": EventInit;
498
- "keydown": KeyboardEventInit;
499
- "keypress": KeyboardEventInit;
500
- "keyup": KeyboardEventInit;
501
- "load": EventInit;
502
- "loadeddata": EventInit;
503
- "loadedmetadata": EventInit;
504
- "loadstart": EventInit;
505
- "lostpointercapture": PointerEventInit;
506
- "mousedown": MouseEventInit;
507
- "mouseenter": MouseEventInit;
508
- "mouseleave": MouseEventInit;
509
- "mousemove": MouseEventInit;
510
- "mouseout": MouseEventInit;
511
- "mouseover": MouseEventInit;
512
- "mouseup": MouseEventInit;
513
- "pause": EventInit;
514
- "play": EventInit;
515
- "playing": EventInit;
516
- "pointercancel": PointerEventInit;
517
- "pointerdown": PointerEventInit;
518
- "pointerenter": PointerEventInit;
519
- "pointerleave": PointerEventInit;
520
- "pointermove": PointerEventInit;
521
- "pointerout": PointerEventInit;
522
- "pointerover": PointerEventInit;
523
- "pointerup": PointerEventInit;
524
- "progress": ProgressEventInit;
525
- "ratechange": EventInit;
526
- "reset": EventInit;
527
- "resize": UIEventInit;
528
- "scroll": EventInit;
529
- "securitypolicyviolation": SecurityPolicyViolationEventInit;
530
- "seeked": EventInit;
531
- "seeking": EventInit;
532
- "select": EventInit;
533
- "selectionchange": EventInit;
534
- "selectstart": EventInit;
535
- "stalled": EventInit;
536
- "submit": EventInit;
537
- "suspend": EventInit;
538
- "timeupdate": EventInit;
539
- "toggle": EventInit;
540
- "touchcancel": TouchEventInit;
541
- "touchend": TouchEventInit;
542
- "touchmove": TouchEventInit;
543
- "touchstart": TouchEventInit;
544
- "transitioncancel": TransitionEventInit;
545
- "transitionend": TransitionEventInit;
546
- "transitionrun": TransitionEventInit;
547
- "transitionstart": TransitionEventInit;
548
- "volumechange": EventInit;
549
- "waiting": EventInit;
550
- "webkitanimationend": EventInit;
551
- "webkitanimationiteration": EventInit;
552
- "webkitanimationstart": EventInit;
553
- "webkittransitionend": EventInit;
554
- "wheel": WheelEventInit;
555
- };
556
- declare type DocumentAndElementEventHandlersEventInitMap = {
557
- "copy": ClipboardEventInit;
558
- "cut": ClipboardEventInit;
559
- "paste": ClipboardEventInit;
560
- };
561
- declare type DocumentEventInitMap = {
562
- "fullscreenchange": EventInit;
563
- "fullscreenerror": EventInit;
564
- "pointerlockchange": EventInit;
565
- "pointerlockerror": EventInit;
566
- "readystatechange": EventInit;
567
- "visibilitychange": EventInit;
568
- };
569
-
570
- declare type DrawableState = ReturnType<typeof getStroke>;
571
- declare type DrawableOptions = {
572
- toD?: (stroke: DrawableState) => string;
573
- };
574
- declare type DrawableStatus = 'ready' | 'drawing' | 'drawn';
575
- declare class Drawable {
576
- private computedD;
577
- private toD;
578
- constructor(stroke: DrawableState, options?: DrawableOptions);
579
- computedStatus: DrawableStatus;
580
- private ready;
581
- get stroke(): number[][];
582
- set stroke(stroke: number[][]);
583
- get status(): DrawableStatus;
584
- get d(): string;
585
- private computedStroke;
586
- setStroke(stroke: DrawableState): this;
587
- draw(points: Parameters<typeof getStroke>[0], options?: StrokeOptions): this;
588
- private drawing;
589
- private drawn;
590
- }
591
- declare function toD(stroke: number[][]): string;
592
- declare function toFlattenedD(stroke: number[][]): string;
593
-
594
- declare type ResolveableOptions = Record<string, never>;
595
- declare type ResolveableGetPromise<Value> = (...args: any[]) => (Promise<Value> | Promise<Value>[]);
596
- declare type ResolveableStatus = 'ready' | 'resolving' | 'resolved' | 'errored';
597
- declare class Resolveable<Value> {
598
- constructor(getPromise: ResolveableGetPromise<Value>, options?: ResolveableOptions);
599
- private computedStatus;
600
- private ready;
601
- get getPromise(): (...args: any[]) => Promise<Value> | Promise<Value>[];
602
- set getPromise(getPromise: (...args: any[]) => Promise<Value> | Promise<Value>[]);
603
- get status(): ResolveableStatus;
604
- get value(): Error | Value | Value[];
605
- private computedGetPromise;
606
- setGetPromise(getPromise: (...args: any[]) => (Promise<Value> | Promise<Value>[])): this;
607
- private computedValue;
608
- resolve(...args: any[]): Promise<this>;
609
- private resolving;
610
- private resolved;
611
- private errored;
612
- }
613
-
614
- declare type FetchableOptions = Record<string, never>;
615
- declare type FetchableStatus = 'ready' | 'fetching' | 'fetched' | 'aborted' | 'errored';
616
- declare type FetchOptions = RequestInit | ((api: FetchOptionsApi) => RequestInit);
617
- declare class Fetchable {
618
- private computedArrayBuffer;
619
- private computedBlob;
620
- private computedFormData;
621
- private computedJson;
622
- private computedText;
623
- constructor(resource: string, options?: FetchableOptions);
624
- private computedStatus;
625
- private ready;
626
- get resource(): string;
627
- set resource(resource: string);
628
- private computedAbortController;
629
- get abortController(): AbortController;
630
- get status(): FetchableStatus;
631
- get response(): Response;
632
- get error(): Error;
633
- get arrayBuffer(): Resolveable<ArrayBuffer> | Promise<Resolveable<ArrayBuffer>>;
634
- get blob(): Resolveable<Blob> | Promise<Resolveable<Blob>>;
635
- get formData(): Resolveable<FormData> | Promise<Resolveable<FormData>>;
636
- get json(): Resolveable<any> | Promise<Resolveable<any>>;
637
- get text(): Resolveable<string> | Promise<Resolveable<string>>;
638
- private getUsedBody;
639
- private computedResource;
640
- setResource(resource: string): this;
641
- private computedResponse;
642
- private computedError;
643
- fetch(options?: FetchOptions): Promise<this>;
644
- get(options?: FetchOptions): Promise<this>;
645
- patch(options?: FetchOptions): Promise<this>;
646
- post(options?: FetchOptions): Promise<this>;
647
- put(options?: FetchOptions): Promise<this>;
648
- delete(options?: FetchOptions): Promise<this>;
649
- abort(): this;
650
- }
651
- declare type FetchOptionsApi = {
652
- withJson: (data: Record<any, any>) => {
653
- body: string;
654
- headers: {
655
- 'Accept': 'application/json';
656
- 'Content-Type': 'application/json';
657
- };
658
- };
659
- };
660
-
661
- declare type FullscreenableOptions = Record<string, never>;
662
- declare type FullscreenableGetElement<ElementType> = ((...args: any[]) => ElementType);
663
- declare type FullscreenableStatus = 'ready' | 'fullscreened' | 'errored' | 'exited';
664
- declare class Fullscreenable<ElementType extends Element> {
665
- constructor(getElement: FullscreenableGetElement<ElementType>, options?: FullscreenableOptions);
666
- private computedStatus;
667
- private ready;
668
- get getElement(): (...args: any[]) => ElementType;
669
- set getElement(getElement: (...args: any[]) => ElementType);
670
- get status(): FullscreenableStatus;
671
- get element(): ElementType;
672
- get error(): Error;
673
- private computedGetElement;
674
- setGetElement(getElement: ((...args: any[]) => ElementType)): this;
675
- enter(options?: FullscreenOptions): Promise<this>;
676
- private computedError;
677
- fullscreen(options?: FullscreenOptions): Promise<this>;
678
- private fullscreened;
679
- private errored;
680
- exit(): Promise<this>;
681
- private exited;
682
- }
683
-
684
- declare type GrantableOptions = Record<string, never>;
685
- declare type GrantableStatus = 'ready' | 'querying' | 'queried' | 'errored';
686
- declare class Grantable<DescriptorType extends PermissionDescriptor> {
687
- constructor(descriptor: DescriptorType, options?: GrantableOptions);
688
- private computedStatus;
689
- private ready;
690
- get descriptor(): DescriptorType;
691
- set descriptor(descriptor: DescriptorType);
692
- get permission(): Error | PermissionStatus;
693
- get status(): GrantableStatus;
694
- private computedDescriptor;
695
- setDescriptor(descriptor: DescriptorType): this;
696
- private computedPermission;
697
- query(): Promise<this>;
698
- private querying;
699
- private queried;
700
- private errored;
701
- }
702
-
703
566
  declare type NavigateableOptions = {
704
567
  initialLocation?: number;
705
568
  };
@@ -771,7 +634,9 @@ declare class Pickable<Item> {
771
634
  replace?: 'none' | 'all' | 'fifo' | 'lifo';
772
635
  }): this;
773
636
  private picked;
774
- omit(indexOrIndices?: number | number[]): this;
637
+ omit(indexOrIndices?: number | number[], options?: {
638
+ reference?: 'array' | 'picks';
639
+ }): this;
775
640
  private omitted;
776
641
  }
777
642
 
@@ -814,12 +679,12 @@ declare class Searchable<Item extends string | object> {
814
679
  }
815
680
 
816
681
  declare type StoreableOptions = {
817
- type?: 'local' | 'session';
682
+ kind?: 'local' | 'session';
818
683
  statusKeySuffix?: string;
819
684
  };
820
685
  declare type StoreableStatus = 'ready' | 'constructing' | 'stored' | 'errored' | 'removed';
821
686
  declare class Storeable {
822
- private type;
687
+ private kind;
823
688
  private statusKeySuffix;
824
689
  constructor(key: string, options?: StoreableOptions);
825
690
  private constructing;
@@ -888,4 +753,4 @@ declare class Pipeable {
888
753
  pipeAsync(...fns: ((...args: any[]) => Promise<any>)[]): Promise<any>;
889
754
  }
890
755
 
891
- export { AnimateFrame, AnimateFrameEffect, AnimateOptions, Animateable, AnimateableKeyframe, AnimateableOptions, AnimateableStatus, ArrayFunction, ArrayFunctionAsync, CompleteOptions, Completeable, CompleteableOptions, CompleteableStatus, Copyable, CopyableOptions, CopyableStatus, Delayable, DelayableEffect, DelayableOptions, DelayableStatus, DispatchOptions, Dispatchable, DispatchableOptions, DispatchableStatus, Drawable, DrawableOptions, DrawableState, DrawableStatus, FetchOptions, FetchOptionsApi, Fetchable, FetchableOptions, FetchableStatus, Fullscreenable, FullscreenableGetElement, FullscreenableOptions, FullscreenableStatus, Grantable, GrantableOptions, GrantableStatus, ListenEffect, ListenEffectParam, ListenOptions, Listenable, ListenableActive, ListenableClickcombo, ListenableKeycombo, ListenableKeycomboItem, ListenableOptions, ListenablePointercombo, ListenableStatus, ListenableSupportedEventType, ListenableSupportedType, MapFunction, Navigateable, NavigateableOptions, NavigateableStatus, NumberFunction, ObjectFunction, Pickable, PickableOptions, PickableStatus, Pipeable, RecognizeOptions, Recognizeable, RecognizeableEffectApi, RecognizeableOptions, RecognizeableStatus, Resolveable, ResolveableGetPromise, ResolveableOptions, ResolveableStatus, Sanitizeable, SanitizeableOptions, SanitizeableStatus, Searchable, SearchableOptions, SearchableStatus, Storeable, StoreableOptions, StoreableStatus, StringFunction, createClamp, createClip, createConcat, createDelete, createDetermine, createFilter, createFilterAsync, createForEachAsync, createInsert, createMap, createMapAsync, createReduce, createReduceAsync, createRename, createReorder, createReplace, createReverse, createSlice, createSlug, createSort, createSwap, createToEntries, createUnique, easingsNetInBack, easingsNetInCirc, easingsNetInCubic, easingsNetInExpo, easingsNetInOutBack, easingsNetInOutCirc, easingsNetInOutCubic, easingsNetInOutExpo, easingsNetInOutQuad, easingsNetInOutQuint, easingsNetInOutSine, easingsNetInQuad, easingsNetInQuart, easingsNetInQuint, easingsNetInSine, easingsNetOutBack, easingsNetOutCirc, easingsNetOutCubic, easingsNetOutExpo, easingsNetOutQuad, easingsNetOutQuint, easingsNetOutSine, ensureKeycombo, eventMatchesKeycombo, linear, materialAccelerated, materialDecelerated, materialStandard, toD, toFlattenedD, verouEase, verouEaseIn, verouEaseInOut, verouEaseOut };
756
+ export { AnimateFrame, AnimateFrameEffect, AnimateOptions, Animateable, AnimateableKeyframe, AnimateableOptions, AnimateableStatus, ArrayFunction, ArrayFunctionAsync, CompleteOptions, Completeable, CompleteableOptions, CompleteableStatus, Copyable, CopyableOptions, CopyableStatus, Delayable, DelayableEffect, DelayableOptions, DelayableStatus, Drawable, DrawableOptions, DrawableState, DrawableStatus, FetchOptions, FetchOptionsApi, Fetchable, FetchableOptions, FetchableStatus, Fullscreenable, FullscreenableGetElement, FullscreenableOptions, FullscreenableStatus, Grantable, GrantableOptions, GrantableStatus, ListenEffect, ListenEffectParam, ListenOptions, Listenable, ListenableActive, ListenableClickcombo, ListenableKeycombo, ListenableKeycomboItem, ListenableOptions, ListenablePointercombo, ListenableStatus, ListenableSupportedEventType, ListenableSupportedType, MapFunction, Navigateable, NavigateableOptions, NavigateableStatus, NumberFunction, ObjectFunction, Pickable, PickableOptions, PickableStatus, Pipeable, RecognizeOptions, Recognizeable, RecognizeableEffectApi, RecognizeableOptions, RecognizeableStatus, Resolveable, ResolveableGetPromise, ResolveableOptions, ResolveableStatus, Sanitizeable, SanitizeableOptions, SanitizeableStatus, Searchable, SearchableOptions, SearchableStatus, Storeable, StoreableOptions, StoreableStatus, StringFunction, createClamp, createClip, createConcat, createDelete, createDetermine, createFilter, createFilterAsync, createForEachAsync, createInsert, createMap, createMapAsync, createReduce, createReduceAsync, createRename, createReorder, createReplace, createReverse, createSlice, createSlug, createSort, createSwap, createToEntries, createUnique, easingsNetInBack, easingsNetInCirc, easingsNetInCubic, easingsNetInExpo, easingsNetInOutBack, easingsNetInOutCirc, easingsNetInOutCubic, easingsNetInOutExpo, easingsNetInOutQuad, easingsNetInOutQuint, easingsNetInOutSine, easingsNetInQuad, easingsNetInQuart, easingsNetInQuint, easingsNetInSine, easingsNetOutBack, easingsNetOutCirc, easingsNetOutCubic, easingsNetOutExpo, easingsNetOutQuad, easingsNetOutQuint, easingsNetOutSine, ensureKeycombo, eventMatchesKeycombo, linear, materialAccelerated, materialDecelerated, materialStandard, toD, toFlattenedD, verouEase, verouEaseIn, verouEaseInOut, verouEaseOut };
package/lib/index.js CHANGED
@@ -183,239 +183,6 @@ class Pipeable {
183
183
  }
184
184
  }
185
185
 
186
- function toEvent(eventType, options) {
187
- const implementation = toImplementation(eventType);
188
- switch (implementation) {
189
- case "keycombo": {
190
- const combo = toCombo(eventType), modifiers = createSlice(0, combo.length - 1)(combo), { 0: name } = createSlice(combo.length - 1)(combo);
191
- return new KeyboardEvent("keyDirection" in options ? `key${options.keyDirection}` : "keydown", {
192
- ...options.init || {},
193
- key: toKey(name),
194
- ...createReduce((flags, alias) => {
195
- flags[toModifierFlag(alias)] = true;
196
- return flags;
197
- }, {})(modifiers)
198
- });
199
- }
200
- case "leftclickcombo":
201
- case "rightclickcombo": {
202
- const combo = toCombo(eventType), modifiers = createSlice(0, combo.length - 1)(combo), { 0: name } = createSlice(combo.length - 1)(combo);
203
- return new MouseEvent(name === "rightclick" ? "contextmenu" : name, {
204
- ...options.init || {},
205
- ...createReduce((flags, alias) => {
206
- flags[toModifierFlag(alias)] = true;
207
- return flags;
208
- }, {})(modifiers)
209
- });
210
- }
211
- case "pointercombo": {
212
- const combo = toCombo(eventType), modifiers = createSlice(0, combo.length - 1)(combo), { 0: name } = createSlice(combo.length - 1)(combo);
213
- return new PointerEvent(name === "rightclick" ? "contextmenu" : name, {
214
- ...options.init || {},
215
- ...createReduce((flags, alias) => {
216
- flags[toModifierFlag(alias)] = true;
217
- return flags;
218
- }, {})(modifiers)
219
- });
220
- }
221
- case "documentevent":
222
- case "event":
223
- if (eventType === "abort")
224
- return new UIEvent(eventType, options.init);
225
- if (eventType === "animationcancel")
226
- return new AnimationEvent(eventType, options.init);
227
- if (eventType === "animationend")
228
- return new AnimationEvent(eventType, options.init);
229
- if (eventType === "animationiteration")
230
- return new AnimationEvent(eventType, options.init);
231
- if (eventType === "animationstart")
232
- return new AnimationEvent(eventType, options.init);
233
- if (eventType === "auxclick")
234
- return new MouseEvent(eventType, options.init);
235
- if (eventType === "beforeinput")
236
- return new InputEvent(eventType, options.init);
237
- if (eventType === "blur")
238
- return new FocusEvent(eventType, options.init);
239
- if (eventType === "canplay")
240
- return new Event(eventType, options.init);
241
- if (eventType === "canplaythrough")
242
- return new Event(eventType, options.init);
243
- if (eventType === "change")
244
- return new Event(eventType, options.init);
245
- if (eventType === "click")
246
- return new MouseEvent(eventType, options.init);
247
- if (eventType === "close")
248
- return new Event(eventType, options.init);
249
- if (eventType === "compositionend")
250
- return new CompositionEvent(eventType, options.init);
251
- if (eventType === "compositionstart")
252
- return new CompositionEvent(eventType, options.init);
253
- if (eventType === "compositionupdate")
254
- return new CompositionEvent(eventType, options.init);
255
- if (eventType === "contextmenu")
256
- return new MouseEvent(eventType, options.init);
257
- if (eventType === "cuechange")
258
- return new Event(eventType, options.init);
259
- if (eventType === "dblclick")
260
- return new MouseEvent(eventType, options.init);
261
- if (eventType === "drag")
262
- return new DragEvent(eventType, options.init);
263
- if (eventType === "dragend")
264
- return new DragEvent(eventType, options.init);
265
- if (eventType === "dragenter")
266
- return new DragEvent(eventType, options.init);
267
- if (eventType === "dragleave")
268
- return new DragEvent(eventType, options.init);
269
- if (eventType === "dragover")
270
- return new DragEvent(eventType, options.init);
271
- if (eventType === "dragstart")
272
- return new DragEvent(eventType, options.init);
273
- if (eventType === "drop")
274
- return new DragEvent(eventType, options.init);
275
- if (eventType === "durationchange")
276
- return new Event(eventType, options.init);
277
- if (eventType === "emptied")
278
- return new Event(eventType, options.init);
279
- if (eventType === "ended")
280
- return new Event(eventType, options.init);
281
- if (eventType === "error")
282
- return new ErrorEvent(eventType, options.init);
283
- if (eventType === "focus")
284
- return new FocusEvent(eventType, options.init);
285
- if (eventType === "focusin")
286
- return new FocusEvent(eventType, options.init);
287
- if (eventType === "focusout")
288
- return new FocusEvent(eventType, options.init);
289
- if (eventType === "gotpointercapture")
290
- return new PointerEvent(eventType, options.init);
291
- if (eventType === "input")
292
- return new Event(eventType, options.init);
293
- if (eventType === "invalid")
294
- return new Event(eventType, options.init);
295
- if (eventType === "keydown")
296
- return new KeyboardEvent(eventType, options.init);
297
- if (eventType === "keypress")
298
- return new KeyboardEvent(eventType, options.init);
299
- if (eventType === "keyup")
300
- return new KeyboardEvent(eventType, options.init);
301
- if (eventType === "load")
302
- return new Event(eventType, options.init);
303
- if (eventType === "loadeddata")
304
- return new Event(eventType, options.init);
305
- if (eventType === "loadedmetadata")
306
- return new Event(eventType, options.init);
307
- if (eventType === "loadstart")
308
- return new Event(eventType, options.init);
309
- if (eventType === "lostpointercapture")
310
- return new PointerEvent(eventType, options.init);
311
- if (eventType === "mousedown")
312
- return new MouseEvent(eventType, options.init);
313
- if (eventType === "mouseenter")
314
- return new MouseEvent(eventType, options.init);
315
- if (eventType === "mouseleave")
316
- return new MouseEvent(eventType, options.init);
317
- if (eventType === "mousemove")
318
- return new MouseEvent(eventType, options.init);
319
- if (eventType === "mouseout")
320
- return new MouseEvent(eventType, options.init);
321
- if (eventType === "mouseover")
322
- return new MouseEvent(eventType, options.init);
323
- if (eventType === "mouseup")
324
- return new MouseEvent(eventType, options.init);
325
- if (eventType === "pause")
326
- return new Event(eventType, options.init);
327
- if (eventType === "play")
328
- return new Event(eventType, options.init);
329
- if (eventType === "playing")
330
- return new Event(eventType, options.init);
331
- if (eventType === "pointercancel")
332
- return new PointerEvent(eventType, options.init);
333
- if (eventType === "pointerdown")
334
- return new PointerEvent(eventType, options.init);
335
- if (eventType === "pointerenter")
336
- return new PointerEvent(eventType, options.init);
337
- if (eventType === "pointerleave")
338
- return new PointerEvent(eventType, options.init);
339
- if (eventType === "pointermove")
340
- return new PointerEvent(eventType, options.init);
341
- if (eventType === "pointerout")
342
- return new PointerEvent(eventType, options.init);
343
- if (eventType === "pointerover")
344
- return new PointerEvent(eventType, options.init);
345
- if (eventType === "pointerup")
346
- return new PointerEvent(eventType, options.init);
347
- if (eventType === "progress")
348
- return new ProgressEvent(eventType, options.init);
349
- if (eventType === "ratechange")
350
- return new Event(eventType, options.init);
351
- if (eventType === "reset")
352
- return new Event(eventType, options.init);
353
- if (eventType === "scroll")
354
- return new Event(eventType, options.init);
355
- if (eventType === "securitypolicyviolation")
356
- return new SecurityPolicyViolationEvent(eventType, options.init);
357
- if (eventType === "seeked")
358
- return new Event(eventType, options.init);
359
- if (eventType === "seeking")
360
- return new Event(eventType, options.init);
361
- if (eventType === "select")
362
- return new Event(eventType, options.init);
363
- if (eventType === "selectionchange")
364
- return new Event(eventType, options.init);
365
- if (eventType === "selectstart")
366
- return new Event(eventType, options.init);
367
- if (eventType === "stalled")
368
- return new Event(eventType, options.init);
369
- if (eventType === "submit")
370
- return new Event(eventType, options.init);
371
- if (eventType === "suspend")
372
- return new Event(eventType, options.init);
373
- if (eventType === "timeupdate")
374
- return new Event(eventType, options.init);
375
- if (eventType === "toggle")
376
- return new Event(eventType, options.init);
377
- if (eventType === "touchcancel")
378
- return new TouchEvent(eventType, options.init);
379
- if (eventType === "touchend")
380
- return new TouchEvent(eventType, options.init);
381
- if (eventType === "touchmove")
382
- return new TouchEvent(eventType, options.init);
383
- if (eventType === "touchstart")
384
- return new TouchEvent(eventType, options.init);
385
- if (eventType === "transitioncancel")
386
- return new TransitionEvent(eventType, options.init);
387
- if (eventType === "transitionend")
388
- return new TransitionEvent(eventType, options.init);
389
- if (eventType === "transitionrun")
390
- return new TransitionEvent(eventType, options.init);
391
- if (eventType === "transitionstart")
392
- return new TransitionEvent(eventType, options.init);
393
- if (eventType === "volumechange")
394
- return new Event(eventType, options.init);
395
- if (eventType === "waiting")
396
- return new Event(eventType, options.init);
397
- if (eventType === "wheel")
398
- return new WheelEvent(eventType, options.init);
399
- if (eventType === "copy")
400
- return new ClipboardEvent(eventType, options.init);
401
- if (eventType === "cut")
402
- return new ClipboardEvent(eventType, options.init);
403
- if (eventType === "paste")
404
- return new ClipboardEvent(eventType, options.init);
405
- if (eventType === "fullscreenchange")
406
- return new Event(eventType, options.init);
407
- if (eventType === "fullscreenerror")
408
- return new Event(eventType, options.init);
409
- if (eventType === "pointerlockchange")
410
- return new Event(eventType, options.init);
411
- if (eventType === "pointerlockerror")
412
- return new Event(eventType, options.init);
413
- if (eventType === "readystatechange")
414
- return new Event(eventType, options.init);
415
- if (eventType === "visibilitychange")
416
- return new Event(eventType, options.init);
417
- }
418
- }
419
186
  function toKey(name) {
420
187
  return name in keysByName ? keysByName[name] : name;
421
188
  }
@@ -513,20 +280,6 @@ const modifiersByAlias = {
513
280
  opt: "alt",
514
281
  option: "alt"
515
282
  };
516
- function toModifierFlag(modifierOrAlias) {
517
- return flagsByModifierOrAlias[modifierOrAlias];
518
- }
519
- const flagsByModifierOrAlias = {
520
- shift: "shiftKey",
521
- cmd: "metaKey",
522
- command: "metaKey",
523
- meta: "metaKey",
524
- ctrl: "ctrlKey",
525
- control: "ctrlKey",
526
- alt: "altKey",
527
- opt: "altKey",
528
- option: "altKey"
529
- };
530
283
  function createExceptAndOnlyEffect(effect, options) {
531
284
  const { except = [], only = [] } = options;
532
285
  return (event) => {
@@ -2247,10 +2000,10 @@ class Copyable {
2247
2000
  }
2248
2001
  computedResponse;
2249
2002
  computedError;
2250
- async copy(options = { type: "clipboard" }) {
2003
+ async copy(options = { kind: "clipboard" }) {
2251
2004
  this.copying();
2252
- const { type } = options;
2253
- switch (type) {
2005
+ const { kind } = options;
2006
+ switch (kind) {
2254
2007
  case "clipboard":
2255
2008
  try {
2256
2009
  this.computedResponse = await navigator.clipboard.writeText(this.string);
@@ -2438,44 +2191,6 @@ class Delayable {
2438
2191
  }
2439
2192
  }
2440
2193
 
2441
- class Dispatchable {
2442
- constructor(type, options = {}) {
2443
- this.setType(type);
2444
- this.ready();
2445
- }
2446
- computedStatus;
2447
- ready() {
2448
- this.computedStatus = "ready";
2449
- }
2450
- get type() {
2451
- return this.computedType;
2452
- }
2453
- set type(type) {
2454
- this.setType(type);
2455
- }
2456
- get cancelled() {
2457
- return this.computedCancelled;
2458
- }
2459
- get status() {
2460
- return this.computedStatus;
2461
- }
2462
- computedType;
2463
- setType(type) {
2464
- this.computedType = type;
2465
- return this;
2466
- }
2467
- computedCancelled;
2468
- dispatch(options = {}) {
2469
- const { target = window, ...rest } = options, event = toEvent(this.type, rest);
2470
- this.computedCancelled = !target.dispatchEvent(event);
2471
- this.dispatched();
2472
- return this;
2473
- }
2474
- dispatched() {
2475
- this.computedStatus = "dispatched";
2476
- }
2477
- }
2478
-
2479
2194
  const defaultOptions$3 = {
2480
2195
  toD: (stroke) => stroke.length === 0 ? "" : toD(stroke)
2481
2196
  };
@@ -3077,7 +2792,7 @@ class Pickable {
3077
2792
  picked() {
3078
2793
  this.computedStatus = "picked";
3079
2794
  }
3080
- omit(indexOrIndices) {
2795
+ omit(indexOrIndices, options = { reference: "array" }) {
3081
2796
  if (isUndefined(indexOrIndices)) {
3082
2797
  this.computedPicks = [];
3083
2798
  this.computedFirst = void 0;
@@ -3086,7 +2801,7 @@ class Pickable {
3086
2801
  return this;
3087
2802
  }
3088
2803
  const omits = ensureIndices(indexOrIndices);
3089
- this.computedPicks = createFilter((pick) => isUndefined(find((omit) => pick === omit)(omits)))(this.computedPicks);
2804
+ this.computedPicks = createFilter((pick, index) => options.reference === "array" ? isUndefined(find((omit) => pick === omit)(omits)) : isUndefined(find((omit) => index === omit)(omits)))(this.computedPicks);
3090
2805
  this.computedFirst = Math.min(...this.picks);
3091
2806
  this.computedLast = Math.max(...this.picks);
3092
2807
  this.omitted();
@@ -3194,15 +2909,15 @@ class Searchable {
3194
2909
  }
3195
2910
 
3196
2911
  const defaultOptions = {
3197
- type: "local",
2912
+ kind: "local",
3198
2913
  statusKeySuffix: " status"
3199
2914
  };
3200
2915
  class Storeable {
3201
- type;
2916
+ kind;
3202
2917
  statusKeySuffix;
3203
2918
  constructor(key, options = {}) {
3204
2919
  this.constructing();
3205
- this.type = options.type ?? defaultOptions.type;
2920
+ this.kind = options.kind ?? defaultOptions.kind;
3206
2921
  this.statusKeySuffix = options.statusKeySuffix ?? defaultOptions.statusKeySuffix;
3207
2922
  this.setKey(key);
3208
2923
  this.ready();
@@ -3235,7 +2950,7 @@ class Storeable {
3235
2950
  return this.computedStatus;
3236
2951
  }
3237
2952
  get storage() {
3238
- switch (this.type) {
2953
+ switch (this.kind) {
3239
2954
  case "local":
3240
2955
  return localStorage;
3241
2956
  case "session":
@@ -3314,4 +3029,4 @@ class Storeable {
3314
3029
  }
3315
3030
  }
3316
3031
 
3317
- export { Animateable, Completeable, Copyable, Delayable, Dispatchable, Drawable, Fetchable, Fullscreenable, Grantable, Listenable, Navigateable, Pickable, Pipeable, Recognizeable, Resolveable, Sanitizeable, Searchable, Storeable, createClamp, createClip, createConcat, createDelete, createDetermine, createFilter, createFilterAsync, createForEachAsync, createInsert, createMap, createMapAsync, createReduce, createReduceAsync, createRename, createReorder, createReplace, createReverse, createSlice, createSlug, createSort, createSwap, createToEntries, createUnique, easingsNetInBack, easingsNetInCirc, easingsNetInCubic, easingsNetInExpo, easingsNetInOutBack, easingsNetInOutCirc, easingsNetInOutCubic, easingsNetInOutExpo, easingsNetInOutQuad, easingsNetInOutQuint, easingsNetInOutSine, easingsNetInQuad, easingsNetInQuart, easingsNetInQuint, easingsNetInSine, easingsNetOutBack, easingsNetOutCirc, easingsNetOutCubic, easingsNetOutExpo, easingsNetOutQuad, easingsNetOutQuint, easingsNetOutSine, ensureKeycombo, eventMatchesKeycombo, linear, materialAccelerated, materialDecelerated, materialStandard, toD, toFlattenedD, verouEase, verouEaseIn, verouEaseInOut, verouEaseOut };
3032
+ export { Animateable, Completeable, Copyable, Delayable, Drawable, Fetchable, Fullscreenable, Grantable, Listenable, Navigateable, Pickable, Pipeable, Recognizeable, Resolveable, Sanitizeable, Searchable, Storeable, createClamp, createClip, createConcat, createDelete, createDetermine, createFilter, createFilterAsync, createForEachAsync, createInsert, createMap, createMapAsync, createReduce, createReduceAsync, createRename, createReorder, createReplace, createReverse, createSlice, createSlug, createSort, createSwap, createToEntries, createUnique, easingsNetInBack, easingsNetInCirc, easingsNetInCubic, easingsNetInExpo, easingsNetInOutBack, easingsNetInOutCirc, easingsNetInOutCubic, easingsNetInOutExpo, easingsNetInOutQuad, easingsNetInOutQuint, easingsNetInOutSine, easingsNetInQuad, easingsNetInQuart, easingsNetInQuint, easingsNetInSine, easingsNetOutBack, easingsNetOutCirc, easingsNetOutCubic, easingsNetOutExpo, easingsNetOutQuad, easingsNetOutQuint, easingsNetOutSine, ensureKeycombo, eventMatchesKeycombo, linear, materialAccelerated, materialDecelerated, materialStandard, toD, toFlattenedD, verouEase, verouEaseIn, verouEaseInOut, verouEaseOut };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baleada/logic",
3
- "version": "0.21.0",
3
+ "version": "0.21.1",
4
4
  "description": "UI logic for the Baleada toolkit",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "lib/index.js",
@@ -43,17 +43,16 @@
43
43
  },
44
44
  "homepage": "https://baleada.netlify.com",
45
45
  "devDependencies": {
46
- "@baleada/animateable-utils": "^0.0.2",
47
46
  "@baleada/prepare": "^0.5.20",
48
47
  "@types/node": "^14.14.41",
49
48
  "@vue/compiler-sfc": "^3.2.9",
50
49
  "esbuild": "^0.9.7",
51
50
  "esbuild-register": "^2.6.0",
52
- "rollup": "^2.56.3",
51
+ "rollup": "^2.70.1",
53
52
  "tailwindcss": "^2.1.1",
54
- "typescript": "^4.5.5",
53
+ "typescript": "^4.6.2",
55
54
  "uvu": "^0.5.1",
56
- "vite": "^2.7.2",
55
+ "vite": "^2.8.6",
57
56
  "vue": "^3.2.12",
58
57
  "vue-router": "^4.0.3"
59
58
  },
@@ -63,7 +62,7 @@
63
62
  "@snigo.dev/color": "^0.0.6",
64
63
  "@types/dompurify": "^2.2.3",
65
64
  "@types/requestidlecallback": "^0.3.1",
66
- "@types/resize-observer-browser": "^0.1.5",
65
+ "@types/resize-observer-browser": "^0.1.7",
67
66
  "bezier-easing": "^2.1.0",
68
67
  "dompurify": "^2.2.6",
69
68
  "fast-fuzzy": "^1.11.1",