pts 0.10.7 → 0.10.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/es2015/Canvas.js +27 -12
  2. package/dist/es2015/Canvas.js.map +1 -0
  3. package/dist/es2015/Color.js +1 -1
  4. package/dist/es2015/Color.js.map +1 -0
  5. package/dist/es2015/Create.js +1 -1
  6. package/dist/es2015/Create.js.map +1 -0
  7. package/dist/es2015/Dom.js +1 -1
  8. package/dist/es2015/Dom.js.map +1 -0
  9. package/dist/es2015/Form.js +1 -1
  10. package/dist/es2015/Form.js.map +1 -0
  11. package/dist/es2015/Image.js +78 -12
  12. package/dist/es2015/Image.js.map +1 -0
  13. package/dist/es2015/LinearAlgebra.js +36 -1
  14. package/dist/es2015/LinearAlgebra.js.map +1 -0
  15. package/dist/es2015/Num.js +1 -1
  16. package/dist/es2015/Num.js.map +1 -0
  17. package/dist/es2015/Op.js +1 -1
  18. package/dist/es2015/Op.js.map +1 -0
  19. package/dist/es2015/Physics.js +1 -1
  20. package/dist/es2015/Physics.js.map +1 -0
  21. package/dist/es2015/Play.js.map +1 -0
  22. package/dist/es2015/Pt.js +4 -1
  23. package/dist/es2015/Pt.js.map +1 -0
  24. package/dist/es2015/Space.js +95 -34
  25. package/dist/es2015/Space.js.map +1 -0
  26. package/dist/es2015/Svg.js +1 -1
  27. package/dist/es2015/Svg.js.map +1 -0
  28. package/dist/es2015/Types.js +1 -1
  29. package/dist/es2015/Types.js.map +1 -0
  30. package/dist/es2015/Typography.js +1 -1
  31. package/dist/es2015/Typography.js.map +1 -0
  32. package/dist/es2015/UI.js +6 -2
  33. package/dist/es2015/UI.js.map +1 -0
  34. package/dist/es2015/Util.js +14 -1
  35. package/dist/es2015/Util.js.map +1 -0
  36. package/dist/es2015/_lib.js.map +1 -0
  37. package/dist/es2015/_module.js.map +1 -0
  38. package/dist/es2015/uheprng.js.map +1 -0
  39. package/dist/es5.js +393 -70
  40. package/dist/es5.js.map +1 -0
  41. package/dist/index.js +270 -73
  42. package/dist/index.js.map +1 -0
  43. package/dist/pts.d.ts +42 -7
  44. package/dist/pts.js +271 -74
  45. package/dist/pts.js.map +1 -0
  46. package/dist/pts.min.js +2 -2
  47. package/dist/pts.min.js.map +1 -0
  48. package/dist/pts.module.js.map +1 -0
  49. package/package.json +1 -1
package/dist/pts.d.ts CHANGED
@@ -51,6 +51,7 @@ export class CanvasForm extends VisualForm {
51
51
  alpha(a: number): this;
52
52
  fill(c: string | boolean | CanvasGradient | CanvasPattern): this;
53
53
  stroke(c: string | boolean | CanvasGradient | CanvasPattern, width?: number, linejoin?: CanvasLineJoin, linecap?: CanvasLineCap): this;
54
+ applyFillStroke(filled?: boolean | string, stroked?: boolean | string, strokeWidth?: number): this;
54
55
  gradient(stops: [number, string][] | string[]): ((area1: GroupLike, area2?: GroupLike) => CanvasGradient);
55
56
  composite(mode?: string): this;
56
57
  clip(): this;
@@ -335,11 +336,17 @@ export class Img {
335
336
  protected _scale: number;
336
337
  protected _loaded: boolean;
337
338
  protected _editable: boolean;
338
- constructor(editable?: boolean, pixelScale?: number, crossOrigin?: boolean);
339
- static load(src: string, editable?: boolean, pixelScale?: number, ready?: (img: any) => {}): Img;
339
+ protected _space: CanvasSpace;
340
+ constructor(editable?: boolean, space?: CanvasSpace, crossOrigin?: boolean);
341
+ static load(src: string, editable?: boolean, space?: CanvasSpace, ready?: (img: any) => {}): Img;
342
+ static loadAsync(src: string, editable?: boolean, space?: CanvasSpace): Promise<Img>;
343
+ static loadPattern(src: string, space: CanvasSpace, repeat?: CanvasPatternRepetition, editable?: boolean): Promise<CanvasPattern>;
344
+ static blank(size: PtLike, space: CanvasSpace, scale?: number): Img;
340
345
  load(src: string): Promise<Img>;
341
346
  protected _drawToScale(canvasScale: number | PtLike, img: CanvasImageSource): void;
347
+ initCanvas(width: number, height: number, canvasScale?: number | PtLike): void;
342
348
  bitmap(size?: PtLike): Promise<ImageBitmap>;
349
+ pattern(reptition?: CanvasPatternRepetition, dynamic?: boolean): CanvasPattern;
343
350
  sync(): void;
344
351
  pixel(p: PtLike, rescale?: boolean | number): Pt;
345
352
  static getPixel(imgData: ImageData, p: PtLike): Pt;
@@ -347,10 +354,11 @@ export class Img {
347
354
  crop(box: Bound): ImageData;
348
355
  filter(css: string): this;
349
356
  cleanup(): void;
350
- static fromBlob(blob: Blob, editable?: boolean, pixelScale?: number): Promise<Img>;
357
+ static fromBlob(blob: Blob, editable?: boolean, space?: CanvasSpace): Promise<Img>;
351
358
  static imageDataToBlob(data: ImageData): Promise<Blob>;
352
359
  toBase64(): string;
353
360
  toBlob(): Promise<Blob>;
361
+ getForm(): CanvasForm;
354
362
  get current(): CanvasImageSource;
355
363
  get image(): HTMLImageElement;
356
364
  get canvas(): HTMLCanvasElement;
@@ -360,6 +368,7 @@ export class Img {
360
368
  get pixelScale(): number;
361
369
  get imageSize(): Pt;
362
370
  get canvasSize(): Pt;
371
+ get scaledMatrix(): Mat;
363
372
  }
364
373
 
365
374
  export class Vec {
@@ -388,11 +397,21 @@ export class Vec {
388
397
  static map(a: PtLike, fn: (n: number, index: number, arr: any) => number): PtLike;
389
398
  }
390
399
  export class Mat {
400
+ protected _33: GroupLike;
401
+ constructor();
402
+ get value(): GroupLike;
403
+ get domMatrix(): DOMMatrix;
404
+ reset(): void;
405
+ scale2D(val: PtLike, at?: PtLike): this;
406
+ rotate2D(ang: number, at?: PtLike): this;
407
+ translate2D(val: PtLike): this;
408
+ shear2D(val: PtLike, at?: PtLike): this;
391
409
  static add(a: GroupLike, b: GroupLike | number[][] | number): Group;
392
410
  static multiply(a: GroupLike, b: GroupLike | number[][] | number, transposed?: boolean, elementwise?: boolean): Group;
393
411
  static zipSlice(g: GroupLike | number[][], index: number, defaultValue?: number | boolean): Pt;
394
412
  static zip(g: GroupLike | number[][], defaultValue?: number | boolean, useLongest?: boolean): Group;
395
413
  static transpose(g: GroupLike | number[][], defaultValue?: number | boolean, useLongest?: boolean): Group;
414
+ static toDOMMatrix(m: GroupLike | number[][]): number[];
396
415
  static transform2D(pt: PtLike, m: GroupLike | number[][]): Pt;
397
416
  static scale2DMatrix(x: number, y: number): GroupLike;
398
417
  static rotate2DMatrix(cosA: number, sinA: number): GroupLike;
@@ -878,6 +897,7 @@ export class Group extends Array<Pt> {
878
897
  $matrixMultiply(g: GroupLike | number, transposed?: boolean, elementwise?: boolean): Group;
879
898
  zipSlice(index: number, defaultValue?: number | boolean): Pt;
880
899
  $zip(defaultValue?: number | boolean, useLongest?: boolean): Group;
900
+ toBound(): Group;
881
901
  toString(): string;
882
902
  }
883
903
  export class Bound extends Group implements IPt {
@@ -927,7 +947,10 @@ export abstract class Space {
927
947
  protected _pointer: Pt;
928
948
  protected _isReady: boolean;
929
949
  protected _playing: boolean;
950
+ protected _keyDownBind: (evt: KeyboardEvent) => boolean;
951
+ protected _keyUpBind: (evt: KeyboardEvent) => boolean;
930
952
  refresh(b: boolean): this;
953
+ minFrameTime(ms?: number): void;
931
954
  add(p: IPlayer | AnimateCallbackFn): this;
932
955
  remove(player: IPlayer): this;
933
956
  removeAll(): this;
@@ -957,12 +980,16 @@ export abstract class MultiTouchSpace extends Space {
957
980
  protected _dragged: boolean;
958
981
  protected _hasMouse: boolean;
959
982
  protected _hasTouch: boolean;
983
+ protected _hasKeyboard: boolean;
960
984
  protected _canvas: EventTarget;
961
985
  get pointer(): Pt;
962
- bindCanvas(evt: string, callback: EventListener, options?: any): void;
963
- unbindCanvas(evt: string, callback: EventListener, options?: any): void;
964
- bindMouse(_bind?: boolean): this;
965
- bindTouch(bind?: boolean, passive?: boolean): this;
986
+ bindCanvas(evt: string, callback: EventListener, options?: any, customTarget?: Element): void;
987
+ unbindCanvas(evt: string, callback: EventListener, options?: any, customTarget?: Element): void;
988
+ bindDoc(evt: string, callback: EventListener, options?: any): void;
989
+ unbindDoc(evt: string, callback: EventListener, options?: any): void;
990
+ bindMouse(bind?: boolean, customTarget?: Element): this;
991
+ bindTouch(bind?: boolean, passive?: boolean, customTarget?: Element): this;
992
+ bindKeyboard(bind?: boolean): this;
966
993
  touchesToPoints(evt: TouchEvent, which?: TouchPointsKey): Pt[];
967
994
  protected _mouseAction(type: string, evt: MouseEvent | TouchEvent): void;
968
995
  protected _mouseDown(evt: MouseEvent | TouchEvent): boolean;
@@ -974,6 +1001,9 @@ export abstract class MultiTouchSpace extends Space {
974
1001
  protected _contextMenu(evt: MouseEvent): boolean;
975
1002
  protected _touchMove(evt: TouchEvent): boolean;
976
1003
  protected _touchStart(evt: TouchEvent): boolean;
1004
+ protected _keyDown(evt: KeyboardEvent): boolean;
1005
+ protected _keyUp(evt: KeyboardEvent): boolean;
1006
+ protected _keyboardAction(type: string, evt: KeyboardEvent): void;
977
1007
  }
978
1008
 
979
1009
  export class SVGSpace extends DOMSpace {
@@ -1066,6 +1096,7 @@ export interface ITimer {
1066
1096
  prev: number;
1067
1097
  diff: number;
1068
1098
  end: number;
1099
+ min: number;
1069
1100
  }
1070
1101
  export type TouchPointsKey = "touches" | "changedTouches" | "targetTouches";
1071
1102
  export interface MultiTouchElement {
@@ -1145,6 +1176,7 @@ export type DefaultFormStyle = {
1145
1176
  lineCap?: string;
1146
1177
  globalAlpha?: number;
1147
1178
  };
1179
+ export type CanvasPatternRepetition = "repeat" | "repeat-x" | "repeat-y" | "no-repeat";
1148
1180
 
1149
1181
  export class Typography {
1150
1182
  static textWidthEstimator(fn: (string: any) => number, samples?: string[], distribution?: number[]): (string: any) => number;
@@ -1177,6 +1209,8 @@ export const UIPointerActions: {
1177
1209
  enter: string;
1178
1210
  leave: string;
1179
1211
  click: string;
1212
+ keydown: string;
1213
+ keyup: string;
1180
1214
  contextmenu: string;
1181
1215
  all: string;
1182
1216
  };
@@ -1285,6 +1319,7 @@ export class Util {
1285
1319
  static stepper(max: number, min?: number, stride?: number, callback?: (n: number) => void): (() => number);
1286
1320
  static forRange(fn: (index: number) => any, range: number, start?: number, step?: number): any[];
1287
1321
  static load(url: string, callback: (response: string, success: boolean) => void): void;
1322
+ static download(space: CanvasSpace, filename?: string, filetype?: ("jpeg" | "jpg" | "png" | "webp"), quality?: number): void;
1288
1323
  static performance(avgFrames?: number): () => number;
1289
1324
  static arrayCheck(pts: PtLikeIterable, minRequired?: number): boolean;
1290
1325
  static iterToArray(it: Iterable<any>): any[];