@nativescript/canvas-polyfill 2.0.0-beta.15 → 2.0.0-beta.17

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 (54) hide show
  1. package/DOM/CharacterData.d.ts +1 -1
  2. package/DOM/CharacterData.js +1 -1
  3. package/DOM/CharacterData.js.map +1 -1
  4. package/DOM/Document.d.ts +16 -10
  5. package/DOM/Document.js +55 -27
  6. package/DOM/Document.js.map +1 -1
  7. package/DOM/Element.d.ts +33 -10
  8. package/DOM/Element.js +120 -17
  9. package/DOM/Element.js.map +1 -1
  10. package/DOM/EventTarget.d.ts +7 -0
  11. package/DOM/EventTarget.js +51 -0
  12. package/DOM/EventTarget.js.map +1 -0
  13. package/DOM/HTMLCanvasElement.d.ts +7 -7
  14. package/DOM/HTMLCanvasElement.js +28 -17
  15. package/DOM/HTMLCanvasElement.js.map +1 -1
  16. package/DOM/HTMLDivElement.d.ts +4 -0
  17. package/DOM/HTMLDivElement.js +16 -0
  18. package/DOM/HTMLDivElement.js.map +1 -0
  19. package/DOM/HTMLElement.d.ts +15 -0
  20. package/DOM/HTMLElement.js +43 -0
  21. package/DOM/HTMLElement.js.map +1 -0
  22. package/DOM/HTMLImageElement.d.ts +4 -4
  23. package/DOM/HTMLImageElement.js +18 -16
  24. package/DOM/HTMLImageElement.js.map +1 -1
  25. package/DOM/HTMLVideoElement.d.ts +2 -4
  26. package/DOM/HTMLVideoElement.js +5 -9
  27. package/DOM/HTMLVideoElement.js.map +1 -1
  28. package/DOM/Node.d.ts +7 -28
  29. package/DOM/Node.js +10 -129
  30. package/DOM/Node.js.map +1 -1
  31. package/DOM/XMLDocument.d.ts +3 -9
  32. package/DOM/XMLDocument.js +4 -23
  33. package/DOM/XMLDocument.js.map +1 -1
  34. package/DOM/svg/SVGCircleElement.d.ts +2 -9
  35. package/DOM/svg/SVGCircleElement.js +4 -34
  36. package/DOM/svg/SVGCircleElement.js.map +1 -1
  37. package/DOM/svg/SVGElement.d.ts +6 -10
  38. package/DOM/svg/SVGElement.js +30 -44
  39. package/DOM/svg/SVGElement.js.map +1 -1
  40. package/DOM/svg/SVGGGElement.d.ts +2 -9
  41. package/DOM/svg/SVGGGElement.js +4 -35
  42. package/DOM/svg/SVGGGElement.js.map +1 -1
  43. package/DOM/svg/SVGPathElement.d.ts +2 -9
  44. package/DOM/svg/SVGPathElement.js +4 -35
  45. package/DOM/svg/SVGPathElement.js.map +1 -1
  46. package/DOM/svg/SVGRectElement.d.ts +2 -9
  47. package/DOM/svg/SVGRectElement.js +4 -35
  48. package/DOM/svg/SVGRectElement.js.map +1 -1
  49. package/async/xhr/TNSXMLHttpRequest.js +18 -4
  50. package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
  51. package/package.json +7 -4
  52. package/window.d.ts +2 -3
  53. package/window.js +12 -7
  54. package/window.js.map +1 -1
@@ -1,4 +1,4 @@
1
- import { Node } from "./Node";
1
+ import { Node } from './Node';
2
2
  export declare class CharacterData extends Node {
3
3
  constructor(data: any);
4
4
  }
@@ -1,4 +1,4 @@
1
- import { Node } from "./Node";
1
+ import { Node } from './Node';
2
2
  export class CharacterData extends Node {
3
3
  constructor(data) {
4
4
  super(data);
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterData.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/CharacterData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,OAAO,aAAc,SAAQ,IAAI;IACtC,YAAY,IAAI;QACf,KAAK,CAAC,IAAI,CAAC,CAAC;IACb,CAAC;CACD"}
1
+ {"version":3,"file":"CharacterData.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/CharacterData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,OAAO,aAAc,SAAQ,IAAI;IACtC,YAAY,IAAI;QACf,KAAK,CAAC,IAAI,CAAC,CAAC;IACb,CAAC;CACD"}
package/DOM/Document.d.ts CHANGED
@@ -1,17 +1,23 @@
1
- import { Element } from './Element';
1
+ import { HTMLElement } from './HTMLElement';
2
2
  import { HTMLVideoElement } from './HTMLVideoElement';
3
3
  import { HTMLCanvasElement } from './HTMLCanvasElement';
4
- import { SVGElement, SVGCircleElement, SVGRectElement, SVGGElement, SVGPathElement } from './svg';
5
4
  import { Text } from './Text';
6
- export declare class Document extends Element {
7
- private body;
8
- documentElement: any;
5
+ import { Node } from './Node';
6
+ import { Element } from './Element';
7
+ export declare class Document extends Node {
8
+ readonly body: Element;
9
+ private _documentElement;
9
10
  private readyState;
10
- private head;
11
- private defaultView;
11
+ readonly head: Element;
12
+ get defaultView(): Window & typeof globalThis;
12
13
  constructor();
13
- createElement(tagName: any): Element | HTMLVideoElement | HTMLCanvasElement | SVGElement | SVGCircleElement | SVGRectElement | SVGGElement | SVGPathElement;
14
- createElementNS(...args: any[]): any;
14
+ createElement(tagName: string): Element | HTMLVideoElement | HTMLCanvasElement | SVGElement;
15
+ createElementNS(namespaceURI: string, qualifiedName?: string, options?: {}): any;
15
16
  createTextNode(data: any): Text;
16
- getElementById(id: any): Element | HTMLCanvasElement;
17
+ getElementById(id: string): HTMLElement | HTMLCanvasElement;
18
+ getElementsByTagName(tagname: string): any[];
19
+ get documentElement(): Element;
20
+ set documentElement(value: Element);
21
+ querySelectorAll(selector: any): any[];
22
+ querySelector(selector: any): any;
17
23
  }
package/DOM/Document.js CHANGED
@@ -1,22 +1,29 @@
1
- import { Element } from './Element';
1
+ import { HTMLElement } from './HTMLElement';
2
2
  import { HTMLVideoElement } from './HTMLVideoElement';
3
3
  import { HTMLImageElement } from './HTMLImageElement';
4
4
  import { HTMLCanvasElement } from './HTMLCanvasElement';
5
- import { SVGElement, SVGCircleElement, SVGRectElement, SVGGElement, SVGPathElement } from './svg';
5
+ import { HTMLDivElement } from './HTMLDivElement';
6
6
  import { Text } from './Text';
7
7
  import { Canvas } from '@nativescript/canvas';
8
- import { Frame } from '@nativescript/core';
9
- export class Document extends Element {
8
+ import { Frame, StackLayout } from '@nativescript/core';
9
+ import { Node } from './Node';
10
+ import { Element } from './Element';
11
+ export class Document extends Node {
10
12
  constructor() {
11
13
  super('#document');
12
14
  this.body = new Element('BODY');
13
15
  this.documentElement = new Element('HTML');
14
16
  this.readyState = 'complete';
15
17
  this.head = new Element('HEAD');
16
- this.defaultView = global.window;
17
18
  }
19
+ get defaultView() {
20
+ return global.window;
21
+ }
22
+ ;
18
23
  createElement(tagName) {
19
24
  switch ((tagName || '').toLowerCase()) {
25
+ case 'div':
26
+ return new HTMLDivElement();
20
27
  case 'video':
21
28
  return new HTMLVideoElement();
22
29
  case 'img':
@@ -40,22 +47,12 @@ export class Document extends Element {
40
47
  return new Element(tagName);
41
48
  }
42
49
  }
43
- createElementNS(...args) {
44
- let name;
45
- let namespaceURI;
46
- if (Array.isArray(args) && args.length === 1) {
47
- name = args[0];
48
- }
49
- else if (Array.isArray(args) && args.length > 1) {
50
- name = args[1];
51
- namespaceURI = args[0];
52
- }
53
- else {
54
- name = args;
55
- }
56
- const element = this.createElement(name);
50
+ createElementNS(namespaceURI, qualifiedName, options) {
51
+ const element = this.createElement(qualifiedName);
57
52
  element.namespaceURI = namespaceURI;
58
- element.toDataURL = () => ({});
53
+ if (qualifiedName?.toLowerCase?.() !== 'canvas') {
54
+ element.toDataURL = () => ({});
55
+ }
59
56
  return element;
60
57
  }
61
58
  createTextNode(data) {
@@ -63,20 +60,51 @@ export class Document extends Element {
63
60
  }
64
61
  getElementById(id) {
65
62
  const topmost = Frame.topmost();
66
- if (id instanceof Canvas) {
67
- const canvas = new HTMLCanvasElement();
68
- canvas._canvas = id;
69
- return canvas;
70
- }
71
63
  if (topmost) {
72
64
  const nativeElement = topmost.getViewById(id);
73
65
  if (nativeElement) {
74
- const element = new Element('div');
66
+ if (nativeElement instanceof Canvas) {
67
+ const canvas = new HTMLCanvasElement();
68
+ canvas.nativeElement = nativeElement;
69
+ return canvas;
70
+ }
71
+ else if (nativeElement instanceof StackLayout) {
72
+ const div = new HTMLDivElement();
73
+ div.nativeElement = nativeElement;
74
+ return div;
75
+ }
76
+ const element = new HTMLElement();
75
77
  element.nativeElement = nativeElement;
76
78
  return element;
77
79
  }
78
80
  }
79
- return new Element('div');
81
+ return null;
82
+ }
83
+ getElementsByTagName(tagname) {
84
+ return [];
85
+ }
86
+ get documentElement() {
87
+ return this._documentElement;
88
+ }
89
+ //@ts-ignore
90
+ set documentElement(value) {
91
+ }
92
+ querySelectorAll(selector) {
93
+ return [];
94
+ //return (this as any)._instance?.querySelectorAll?.(selector) ?? [];
95
+ }
96
+ querySelector(selector) {
97
+ // const ret = (this as any)._instance?.querySelectorAll?.(selector);
98
+ // let element = ret?.[0] ?? null;
99
+ // if (ret === undefined) {
100
+ // const items = (this as any)._instance.getElementsByTagName(selector);
101
+ // element = items[0];
102
+ // }
103
+ //
104
+ // if (element) {
105
+ // return new (Element as any)(element);
106
+ // }
107
+ return null;
80
108
  }
81
109
  }
82
110
  //# sourceMappingURL=Document.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/Document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/Document.ts"],"names":[],"mappings":"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"}
package/DOM/Element.d.ts CHANGED
@@ -1,21 +1,42 @@
1
1
  import { Node } from './Node';
2
+ import { ViewBase } from '@nativescript/core';
3
+ export declare class DOMRectReadOnly {
4
+ readonly bottom: number;
5
+ readonly height: number;
6
+ readonly left: number;
7
+ readonly right: number;
8
+ readonly top: number;
9
+ readonly width: number;
10
+ readonly x: number;
11
+ readonly y: number;
12
+ constructor(x: number, y: number, width: number, height: number, top?: number, right?: number, bottom?: number, left?: number);
13
+ }
14
+ export declare class DOMRect extends DOMRectReadOnly {
15
+ constructor(x: number, y: number, width: number, height: number, top?: number, right?: number, bottom?: number, left?: number);
16
+ }
2
17
  export declare class Element extends Node {
3
- private doc;
4
18
  private _classList;
5
- namespaceURI: any;
6
- nativeElement: any;
19
+ _nativeElement: ViewBase;
7
20
  private _width;
8
21
  private _height;
9
- _instance: any;
10
- constructor(tagName: any);
11
- get classList(): any;
22
+ private _attrs;
23
+ private _attributeOriginalValue;
24
+ private _jsBuffer;
25
+ set nativeElement(value: ViewBase);
26
+ get nativeElement(): ViewBase;
27
+ private get _boundingClientRect();
28
+ constructor(tagName: string);
29
+ get classList(): Set<unknown>;
12
30
  get tagName(): string;
13
- getAttribute(key: any): any;
14
- setAttribute(key: any, value: any): void;
15
- removeAttribute(key: any, value: any): void;
31
+ getAttribute(key: string): unknown;
32
+ setAttribute(key: string, value: unknown): void;
33
+ removeAttribute(key: string): void;
16
34
  setAttributeNS(): void;
17
35
  removeAttributeNS(): void;
18
- get attributes(): any;
36
+ querySelector(selector: string): any;
37
+ querySelectorAll(selector: string): any;
38
+ getBoundingClientRect(): any;
39
+ get attributes(): any[];
19
40
  get clientWidth(): number;
20
41
  get clientHeight(): number;
21
42
  get offsetWidth(): number;
@@ -27,4 +48,6 @@ export declare class Element extends Node {
27
48
  get height(): number;
28
49
  set height(value: number);
29
50
  get ontouchstart(): {};
51
+ setPointerCapture(id: string): void;
52
+ releasePointerCapture(id: string): void;
30
53
  }
package/DOM/Element.js CHANGED
@@ -1,19 +1,47 @@
1
1
  import { Node } from './Node';
2
+ import setValue from 'set-value';
3
+ import querySelector from 'query-selector';
4
+ export class DOMRectReadOnly {
5
+ constructor(x, y, width, height, top, right, bottom, left) {
6
+ this.x = x;
7
+ this.y = y;
8
+ this.width = width;
9
+ this.height = height;
10
+ this.left = left ?? x;
11
+ this.top = top ?? y;
12
+ this.right = right ?? x + width;
13
+ this.bottom = bottom ?? y + height;
14
+ }
15
+ }
16
+ export class DOMRect extends DOMRectReadOnly {
17
+ constructor(x, y, width, height, top, right, bottom, left) {
18
+ super(x, y, width, height, top, right, bottom, left);
19
+ }
20
+ }
2
21
  export class Element extends Node {
3
22
  constructor(tagName) {
4
- if (typeof tagName === 'object') {
5
- super(tagName.tagName);
6
- this._instance = tagName;
23
+ super(tagName.toUpperCase());
24
+ this._classList = new Set();
25
+ this._attrs = new Map();
26
+ this._attributeOriginalValue = new Map();
27
+ }
28
+ set nativeElement(value) {
29
+ this._nativeElement = value;
30
+ if (value) {
31
+ this._emitter = new WeakRef(value);
7
32
  }
8
33
  else {
9
- super(tagName.toUpperCase());
34
+ this._emitter = value;
10
35
  }
11
- this.doc = {
12
- body: {
13
- innerHTML: '',
14
- },
15
- };
16
- this._classList = new Set();
36
+ }
37
+ get nativeElement() {
38
+ return this._nativeElement;
39
+ }
40
+ get _boundingClientRect() {
41
+ if (this._jsBuffer === undefined) {
42
+ this._jsBuffer = new Float32Array(8);
43
+ }
44
+ return this._jsBuffer;
17
45
  }
18
46
  get classList() {
19
47
  return this._classList;
@@ -22,18 +50,77 @@ export class Element extends Node {
22
50
  return this.nodeName;
23
51
  }
24
52
  getAttribute(key) {
25
- return this._instance?.getAttribute?.(key) ?? null;
53
+ if (this.nativeElement) {
54
+ return this.nativeElement[key];
55
+ }
56
+ return this._attrs.get(key);
26
57
  }
27
58
  setAttribute(key, value) {
28
- this._instance?.setAttribute?.(key, value);
59
+ if (this.nativeElement) {
60
+ if (!this._attributeOriginalValue.has(key)) {
61
+ this._attributeOriginalValue.set(key, this.nativeElement[key]);
62
+ setValue(this.nativeElement, key, value);
63
+ }
64
+ }
65
+ else {
66
+ if (!this._attributeOriginalValue.has(key)) {
67
+ this._attributeOriginalValue.set(key, this._attrs.get(key));
68
+ setValue(this._attrs, key, value);
69
+ }
70
+ }
29
71
  }
30
- removeAttribute(key, value) {
31
- this._instance?.removeAttribute?.(key, value);
72
+ removeAttribute(key) {
73
+ const originalValue = this._attributeOriginalValue.get(key);
74
+ this._attributeOriginalValue.delete(key);
75
+ if (this.nativeElement) {
76
+ setValue(this.nativeElement, key, originalValue);
77
+ }
78
+ else {
79
+ setValue(this._attrs, key, originalValue);
80
+ }
81
+ }
82
+ setAttributeNS() {
83
+ }
84
+ removeAttributeNS() {
85
+ }
86
+ querySelector(selector) {
87
+ const selection = querySelector(selector, this);
88
+ if (Array.isArray(selection)) {
89
+ return selection[0];
90
+ }
91
+ return null;
92
+ }
93
+ querySelectorAll(selector) {
94
+ return querySelector(selector, this);
95
+ }
96
+ getBoundingClientRect() {
97
+ const nativeElement = this['nativeElement'];
98
+ if (this.nodeName === 'CANVAS') {
99
+ return nativeElement.getBoundingClientRect();
100
+ }
101
+ if (nativeElement) {
102
+ if (global.isIOS) {
103
+ NSCanvas.getBoundingClientRect(nativeElement.nativeView, this._boundingClientRect);
104
+ }
105
+ if (globalThis.isAndroid) {
106
+ nativeElement.nativeView.getBoundingClientRect(this._boundingClientRect);
107
+ }
108
+ const rectBuffer = this._boundingClientRect;
109
+ return new DOMRect(rectBuffer[6], rectBuffer[7], rectBuffer[4], rectBuffer[5], rectBuffer[0], rectBuffer[1], rectBuffer[2], rectBuffer[3]);
110
+ }
111
+ return {
112
+ left: 0,
113
+ top: 0,
114
+ right: this.innerWidth,
115
+ bottom: this.innerHeight,
116
+ x: 0,
117
+ y: 0,
118
+ width: this.innerWidth,
119
+ height: this.innerHeight
120
+ };
32
121
  }
33
- setAttributeNS() { }
34
- removeAttributeNS() { }
35
122
  get attributes() {
36
- return this._instance?.attributes ?? [];
123
+ return [];
37
124
  }
38
125
  get clientWidth() {
39
126
  return this.innerWidth;
@@ -54,19 +141,35 @@ export class Element extends Node {
54
141
  return this.height;
55
142
  }
56
143
  get width() {
144
+ if (this.nativeElement) {
145
+ return this.nativeElement['width'];
146
+ }
57
147
  return this._width;
58
148
  }
59
149
  set width(value) {
60
150
  this._width = value;
151
+ if (this.nativeElement) {
152
+ setValue(this.nativeElement, 'width', value);
153
+ }
61
154
  }
62
155
  get height() {
156
+ if (this.nativeElement) {
157
+ return this.nativeElement['height'];
158
+ }
63
159
  return this._height;
64
160
  }
65
161
  set height(value) {
66
162
  this._height = value;
163
+ if (this.nativeElement) {
164
+ setValue(this.nativeElement, 'height', value);
165
+ }
67
166
  }
68
167
  get ontouchstart() {
69
168
  return {};
70
169
  }
170
+ setPointerCapture(id) {
171
+ }
172
+ releasePointerCapture(id) {
173
+ }
71
174
  }
72
175
  //# sourceMappingURL=Element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Element.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/Element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,OAAO,OAAQ,SAAQ,IAAI;IAQhC,YAAY,OAAO;QAClB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;SACzB;aAAM;YACN,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,GAAG,GAAG;YACV,IAAI,EAAE;gBACL,SAAS,EAAE,EAAE;aACb;SACD,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,GAAG;QACf,OAAO,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAED,YAAY,CAAC,GAAG,EAAE,KAAK;QACtB,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,GAAG,EAAE,KAAK;QACzB,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,KAAI,CAAC;IAEnB,iBAAiB,KAAI,CAAC;IAEtB,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,CAAC,KAAa;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,YAAY;QACf,OAAO,EAAE,CAAC;IACX,CAAC;CACD"}
1
+ {"version":3,"file":"Element.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/Element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Observable } from '@nativescript/core';
2
+ export declare class EventTarget {
3
+ _emitter?: WeakRef<Observable>;
4
+ addEventListener(event: string, handler: any, options?: AddEventListenerOptions): void;
5
+ removeEventListener(event: string, handler?: any): void;
6
+ dispatchEvent(event: any): void;
7
+ }
@@ -0,0 +1,51 @@
1
+ export class EventTarget {
2
+ addEventListener(event, handler, options = {}) {
3
+ const { capture, once } = options;
4
+ if (capture) {
5
+ // debug("Bubble propagation is not supported");
6
+ }
7
+ if (once) {
8
+ const oldHandler = handler;
9
+ const self = this;
10
+ handler = (...args) => {
11
+ oldHandler.call(null, ...args);
12
+ self.removeEventListener(event, handler);
13
+ };
14
+ }
15
+ let emitter;
16
+ if (global.isAndroid) {
17
+ emitter = this._emitter?.get?.();
18
+ }
19
+ if (global.isIOS) {
20
+ emitter = this._emitter?.deref?.();
21
+ }
22
+ if (emitter !== null && emitter !== undefined) {
23
+ emitter.addEventListener(event, handler);
24
+ }
25
+ }
26
+ removeEventListener(event, handler) {
27
+ let emitter;
28
+ if (global.isAndroid) {
29
+ emitter = this._emitter?.get?.();
30
+ }
31
+ if (global.isIOS) {
32
+ emitter = this._emitter?.deref?.();
33
+ }
34
+ if (emitter !== null && emitter !== undefined) {
35
+ emitter.removeEventListener(event, handler);
36
+ }
37
+ }
38
+ dispatchEvent(event) {
39
+ let emitter;
40
+ if (global.isAndroid) {
41
+ emitter = this._emitter?.get?.();
42
+ }
43
+ if (global.isIOS) {
44
+ emitter = this._emitter?.deref?.();
45
+ }
46
+ if (emitter !== null && emitter !== undefined) {
47
+ emitter.notify({ ...event, eventName: event.type, object: event.target ?? this });
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=EventTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventTarget.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/EventTarget.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAGvB,gBAAgB,CACf,KAAa,EACb,OAAY,EACZ,UAAmC,EAAE;QAErC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAClC,IAAI,OAAO,EAAE;YACZ,kDAAkD;SAClD;QACD,IAAI,IAAI,EAAE;YACT,MAAM,UAAU,GAAG,OAAO,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC;YAClB,OAAO,GAAG,CAAC,GAAG,IAAS,EAAE,EAAE;gBAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC,CAAC;SACF;QACD,IAAI,OAAmB,CAAC;QAExB,IAAI,MAAM,CAAC,SAAS,EAAE;YACrB,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;SACjC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;SACnC;QACD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC9C,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACzC;IACF,CAAC;IAED,mBAAmB,CAAC,KAAa,EAAE,OAAa;QAC/C,IAAI,OAAmB,CAAC;QAExB,IAAI,MAAM,CAAC,SAAS,EAAE;YACrB,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;SACjC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;SACnC;QAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC9C,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC5C;IACF,CAAC;IAED,aAAa,CAAC,KAAK;QAClB,IAAI,OAAmB,CAAC;QAExB,IAAI,MAAM,CAAC,SAAS,EAAE;YACrB,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;SACjC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;SACnC;QAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC9C,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAe,IAAI,IAAI,EAAE,CAAC,CAAC;SAC3F;IACF,CAAC;CACD"}
@@ -1,13 +1,13 @@
1
- import { Element } from './Element';
2
- export declare class HTMLCanvasElement extends Element {
1
+ import { HTMLElement } from './HTMLElement';
2
+ export declare class HTMLCanvasElement extends HTMLElement {
3
3
  constructor();
4
+ get _canvas(): import("@nativescript/core").ViewBase;
4
5
  set width(value: any);
5
6
  get width(): any;
6
7
  set height(value: any);
7
8
  get height(): any;
8
- toDataURL(type: any, encoderOptions: any): any;
9
- getContext(contextType: any, contextOptions: any): any;
10
- setPointerCapture(id: any): void;
11
- releasePointerCapture(id: any): void;
12
- getBoundingClientRect(): any;
9
+ toDataURL(type: string, encoderOptions?: number): string;
10
+ getContext(contextType: string, contextOptions: any): any;
11
+ setPointerCapture(id: string): void;
12
+ releasePointerCapture(id: string): void;
13
13
  }
@@ -1,41 +1,52 @@
1
1
  import { Canvas } from '@nativescript/canvas';
2
- import { Element } from './Element';
3
- export class HTMLCanvasElement extends Element {
2
+ import { HTMLElement } from './HTMLElement';
3
+ import setValue from 'set-value';
4
+ export class HTMLCanvasElement extends HTMLElement {
4
5
  constructor() {
5
6
  super('canvas');
6
7
  let canvas = undefined;
7
- if (arguments.length > 1) {
8
- canvas = arguments[1];
8
+ if (arguments.length > 0) {
9
+ canvas = arguments[0];
9
10
  }
10
11
  if (canvas instanceof Canvas) {
11
- this._canvas = canvas;
12
+ this.nativeElement = canvas;
12
13
  }
13
14
  else {
14
- this._canvas = Canvas.createCustomView(true);
15
+ this.nativeElement = Canvas.createCustomView();
15
16
  }
16
17
  }
18
+ get _canvas() {
19
+ return this.nativeElement;
20
+ }
17
21
  set width(value) {
18
- this._canvas.width = value;
22
+ setValue(this.nativeElement, 'width', value);
19
23
  }
20
24
  get width() {
21
- return this._canvas.width;
25
+ return this.nativeElement['width'];
22
26
  }
23
27
  set height(value) {
24
- this._canvas.height = value;
28
+ setValue(this.nativeElement, 'height', value);
25
29
  }
26
30
  get height() {
27
- return this._canvas.height;
31
+ return this.nativeElement['height'];
28
32
  }
29
- toDataURL(type, encoderOptions) {
30
- return this._canvas.toDataURL(type, encoderOptions);
33
+ toDataURL(type, encoderOptions = 0.92) {
34
+ const nativeElement = this.nativeElement;
35
+ if (nativeElement) {
36
+ return nativeElement.toDataURL?.(type, encoderOptions);
37
+ }
38
+ return 'data:,';
31
39
  }
32
40
  getContext(contextType, contextOptions) {
33
- return this._canvas.getContext(contextType, contextOptions);
41
+ const nativeElement = this.nativeElement;
42
+ if (nativeElement) {
43
+ return nativeElement.getContext(contextType, contextOptions);
44
+ }
45
+ return null;
46
+ }
47
+ setPointerCapture(id) {
34
48
  }
35
- setPointerCapture(id) { }
36
- releasePointerCapture(id) { }
37
- getBoundingClientRect() {
38
- return this._canvas.getBoundingClientRect();
49
+ releasePointerCapture(id) {
39
50
  }
40
51
  }
41
52
  //# sourceMappingURL=HTMLCanvasElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLCanvasElement.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/HTMLCanvasElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAC7C;QACC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,MAAM,GAAG,SAAS,CAAC;QACvB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;SACtB;QAED,IAAI,MAAM,YAAY,MAAM,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACtB;aAAM;YACN,IAAI,CAAC,OAAO,GAAI,MAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACtD;IACF,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACf,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,cAAc;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,UAAU,CAAC,WAAW,EAAE,cAAc;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,iBAAiB,CAAC,EAAE,IAAG,CAAC;IAExB,qBAAqB,CAAC,EAAE,IAAG,CAAC;IAE5B,qBAAqB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,CAAC;CACD"}
1
+ {"version":3,"file":"HTMLCanvasElement.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/HTMLCanvasElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACjD;QACC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,MAAM,GAAG,SAAS,CAAC;QACvB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;SACtB;QAED,IAAI,MAAM,YAAY,MAAM,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;SAC5B;aAAM;YACN,IAAI,CAAC,aAAa,GAAI,MAAc,CAAC,gBAAgB,EAAE,CAAC;SACxD;IACF,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACd,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACf,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,iBAAyB,IAAI;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,aAE1B,CAAC;QAEF,IAAI,aAAa,EAAE;YAClB,OAAO,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;SACvD;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,WAAmB,EAAE,cAAc;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,aAE1B,CAAC;QACF,IAAI,aAAa,EAAE;YAClB,OAAO,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iBAAiB,CAAC,EAAU;IAC5B,CAAC;IAED,qBAAqB,CAAC,EAAU;IAChC,CAAC;CAED"}
@@ -0,0 +1,4 @@
1
+ import { HTMLElement } from './HTMLElement';
2
+ export declare class HTMLDivElement extends HTMLElement {
3
+ constructor();
4
+ }
@@ -0,0 +1,16 @@
1
+ import { HTMLElement } from './HTMLElement';
2
+ import { StackLayout } from '@nativescript/core';
3
+ export class HTMLDivElement extends HTMLElement {
4
+ constructor() {
5
+ super('div');
6
+ const div = arguments[0];
7
+ // using StackLayout for now
8
+ if (!(div instanceof StackLayout)) {
9
+ this.nativeElement = new StackLayout();
10
+ }
11
+ else {
12
+ this.nativeElement = arguments[0];
13
+ }
14
+ }
15
+ }
16
+ //# sourceMappingURL=HTMLDivElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLDivElement.js","sourceRoot":"","sources":["../../../../packages/canvas-polyfill/DOM/HTMLDivElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC9C;QACC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAEzB,4BAA4B;QAC5B,IAAI,CAAC,CAAC,GAAG,YAAY,WAAW,CAAC,EAAE;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC;SACvC;aAAM;YACN,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;SAClC;IACF,CAAC;CACD"}