@nativescript/canvas-polyfill 2.0.0-alpha.3 → 2.0.0-alpha.30
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/DOM/Document.d.ts +3 -2
- package/DOM/Element.d.ts +3 -3
- package/DOM/Element.js +14 -10
- package/DOM/Element.js.map +1 -1
- package/DOM/HTMLCanvasElement.d.ts +2 -0
- package/DOM/HTMLCanvasElement.js +12 -0
- package/DOM/HTMLCanvasElement.js.map +1 -1
- package/DOM/HTMLImageElement.js +14 -24
- package/DOM/HTMLImageElement.js.map +1 -1
- package/DOM/HTMLVideoElement.js +10 -20
- package/DOM/HTMLVideoElement.js.map +1 -1
- package/DOM/Node.d.ts +2 -0
- package/DOM/Node.js +15 -0
- package/DOM/Node.js.map +1 -1
- package/DOM/XMLDocument.d.ts +4 -0
- package/DOM/XMLDocument.js +18 -0
- package/DOM/XMLDocument.js.map +1 -1
- package/LICENSE +201 -0
- package/MutationObserver.d.ts +10 -0
- package/MutationObserver.js +22 -0
- package/MutationObserver.js.map +1 -0
- package/URL.android.d.ts +8 -0
- package/URL.android.js +36 -10
- package/URL.android.js.map +1 -1
- package/URL.ios.d.ts +11 -1
- package/URL.ios.js +106 -84
- package/URL.ios.js.map +1 -1
- package/async/file/file.android.js +2 -3
- package/async/file/file.android.js.map +1 -1
- package/async/file/file.ios.js +26 -39
- package/async/file/file.ios.js.map +1 -1
- package/async/http/http.android.js +6 -1
- package/async/http/http.android.js.map +1 -1
- package/async/http/http.ios.js +9 -4
- package/async/http/http.ios.js.map +1 -1
- package/async/xhr/TNSXMLHttpRequest.js +175 -41
- package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +8 -0
- package/index.js.map +1 -1
- package/localStorage.d.ts +2 -0
- package/localStorage.js +150 -0
- package/localStorage.js.map +1 -0
- package/package.json +5 -5
- package/performance.js +11 -11
- package/performance.js.map +1 -1
- package/platforms/android/async-release.aar +0 -0
- package/platforms/android/canvas_polyfill.aar +0 -0
- package/platforms/android/java/org/nativescript/canvas/polyfill/Utils.java +33 -7
- package/resize.js +15 -10
- package/resize.js.map +1 -1
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,SAAS,CAAC,CAAC;AAEnB,IAAI,MAAM,CAAC,OAAO,IAAI,CAAE,MAAc,CAAC,cAAc,EAAE;IACtD,IAAI;QACH,+CAA+C;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAc,CAAC,cAAc,GAAG,IAAI,CAAC;KACtC;IAAC,OAAO,CAAC,EAAE,GAAE;CACd;AACD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC3B,MAAc,CAAC,QAAQ,GAAI,MAAc,CAAC,MAAM,CAAC,QAAQ,GAAI,MAAc,CAAC,QAAQ,IAAI,IAAI,QAAQ,EAAE,CAAC;AAEvG,MAAc,CAAC,MAAM,CAAC,iBAAiB,GAAI,MAAc,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;IAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;QACjF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,kEAAkE,CAAC,CAAC,CAAC;KAC1G;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,YAAY;QACZ,OAAO,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACrC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,YAAY;QACZ,OAAO,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;KACpD;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,YAAY;QACZ,OAAO,WAAW,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACpE;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,YAAY;QACZ,OAAO,WAAW,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7E;AACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/index.ts"],"names":[],"mappings":"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"}
|
package/localStorage.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { File, knownFolders } from '@nativescript/core';
|
|
2
|
+
let file;
|
|
3
|
+
let localStorageTimeout = null;
|
|
4
|
+
const internalSaveData = function (storage) {
|
|
5
|
+
try {
|
|
6
|
+
file.writeText(JSON.stringify(storage._localStorageData));
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
// This should never happen on normal data, but if they tried to put non JS stuff it won't serialize
|
|
10
|
+
console.log('localStorage: unable to write storage, error: ', err);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const saveData = function (storage) {
|
|
14
|
+
if (localStorageTimeout !== null) {
|
|
15
|
+
clearTimeout(localStorageTimeout);
|
|
16
|
+
}
|
|
17
|
+
localStorageTimeout = setTimeout(() => {
|
|
18
|
+
internalSaveData(storage);
|
|
19
|
+
}, 250);
|
|
20
|
+
};
|
|
21
|
+
class Storage {
|
|
22
|
+
constructor() {
|
|
23
|
+
this._localStorageData = {};
|
|
24
|
+
}
|
|
25
|
+
getItem(name) {
|
|
26
|
+
if (this._localStorageData.hasOwnProperty(name)) {
|
|
27
|
+
return this._localStorageData[name];
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
key(id) {
|
|
32
|
+
const keys = Object.keys(this._localStorageData);
|
|
33
|
+
if (id >= keys.length) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return keys[id];
|
|
37
|
+
}
|
|
38
|
+
setItemObject(name, value) {
|
|
39
|
+
this._localStorageData[name] = value;
|
|
40
|
+
saveData(this);
|
|
41
|
+
}
|
|
42
|
+
// Revamp this to be "String" only
|
|
43
|
+
// https://github.com/NathanaelA/nativescript-localstorage/issues/17
|
|
44
|
+
setItem(name, value) {
|
|
45
|
+
if (value == null) {
|
|
46
|
+
if (value === null) {
|
|
47
|
+
this._localStorageData[name] = 'null';
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this._localStorageData[name] = 'undefined';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this._localStorageData[name] = value.toString();
|
|
55
|
+
}
|
|
56
|
+
saveData(this);
|
|
57
|
+
}
|
|
58
|
+
removeItem(name) {
|
|
59
|
+
if (this._localStorageData[name]) {
|
|
60
|
+
delete this._localStorageData[name];
|
|
61
|
+
saveData(this);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
clear() {
|
|
65
|
+
this._localStorageData = {};
|
|
66
|
+
saveData(this);
|
|
67
|
+
}
|
|
68
|
+
get length() {
|
|
69
|
+
return Object.keys(this._localStorageData).length;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
class SessionStorage {
|
|
73
|
+
constructor() {
|
|
74
|
+
this._storage = new Map();
|
|
75
|
+
}
|
|
76
|
+
getItem(name) {
|
|
77
|
+
return this._storage.get(name) ?? null;
|
|
78
|
+
}
|
|
79
|
+
key(id) {
|
|
80
|
+
const keys = Array.from(this._storage.keys());
|
|
81
|
+
if (id >= keys.length) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return keys[id];
|
|
85
|
+
}
|
|
86
|
+
setItemObject(name, value) {
|
|
87
|
+
this._storage.set(name, value);
|
|
88
|
+
}
|
|
89
|
+
setItem(name, value) {
|
|
90
|
+
if (value == null) {
|
|
91
|
+
if (value === null) {
|
|
92
|
+
this._storage.set(name, 'null');
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this._storage.set(name, 'undefined');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this._storage.set(name, value.toString());
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
removeItem(name) {
|
|
103
|
+
this._storage.delete(name);
|
|
104
|
+
}
|
|
105
|
+
clear() {
|
|
106
|
+
this._storage.clear();
|
|
107
|
+
}
|
|
108
|
+
get length() {
|
|
109
|
+
return this._storage.size;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (!global.Storage) {
|
|
113
|
+
global.Storage = Storage;
|
|
114
|
+
}
|
|
115
|
+
if (!global.localStorage || module.hot) {
|
|
116
|
+
const path = knownFolders.documents().path + '/localStorage.db';
|
|
117
|
+
file = File.fromPath(path);
|
|
118
|
+
localStorageTimeout = null;
|
|
119
|
+
const loadData = function (storage) {
|
|
120
|
+
if (!File.exists(path)) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
let data;
|
|
124
|
+
if (file.size === 0) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
let textData = file.readTextSync();
|
|
129
|
+
data = JSON.parse(textData);
|
|
130
|
+
storage._localStorageData = data;
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
console.log('localStorage: error reading storage, Error: ', err);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const storage = new Storage();
|
|
137
|
+
loadData(storage);
|
|
138
|
+
global.localStorage = storage;
|
|
139
|
+
}
|
|
140
|
+
if (!global.sessionStorage) {
|
|
141
|
+
global.sessionStorage = new SessionStorage();
|
|
142
|
+
}
|
|
143
|
+
export default global.localStorage;
|
|
144
|
+
if (module.hot) {
|
|
145
|
+
module.hot.accept();
|
|
146
|
+
module.hot.dispose(() => {
|
|
147
|
+
global.localStorage = undefined;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=localStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/localStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExD,IAAI,IAAU,CAAC;AACf,IAAI,mBAAmB,GAAG,IAAI,CAAC;AAE/B,MAAM,gBAAgB,GAAG,UAAU,OAAgB;IAClD,IAAI;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC1D;IAAC,OAAO,GAAG,EAAE;QACb,oGAAoG;QACpG,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;KACnE;AACF,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,UAAU,OAAgB;IAC1C,IAAI,mBAAmB,KAAK,IAAI,EAAE;QACjC,YAAY,CAAC,mBAAmB,CAAC,CAAC;KAClC;IACD,mBAAmB,GAAG,UAAU,CAAC,GAAG,EAAE;QACrC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,OAAO;IAAb;QACC,sBAAiB,GAAG,EAAE,CAAC;IAgDxB,CAAC;IA/CA,OAAO,CAAC,IAAI;QACX,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,GAAG,CAAC,EAAE;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,IAAI,EAAE,KAAK;QACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,kCAAkC;IAClC,oEAAoE;IACpE,OAAO,CAAC,IAAI,EAAE,KAAK;QAClB,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,IAAI,KAAK,KAAK,IAAI,EAAE;gBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;aACtC;iBAAM;gBACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;aAC3C;SACD;aAAM;YACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;SAChD;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,UAAU,CAAC,IAAI;QACd,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACf;IACF,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;IACnD,CAAC;CACD;AAED,MAAM,cAAc;IAApB;QACS,aAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAsC9B,CAAC;IArCA,OAAO,CAAC,IAAI;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IACD,GAAG,CAAC,EAAE;QACL,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,IAAI,EAAE,KAAK;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAK;QAClB,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,IAAI,KAAK,KAAK,IAAI,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aAChC;iBAAM;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;aACrC;SACD;aAAM;YACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1C;IACF,CAAC;IAED,UAAU,CAAC,IAAI;QACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK;QACJ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;CACD;AAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IACd,MAAO,CAAC,OAAO,GAAG,OAAO,CAAC;CAChC;AAED,IAAI,CAAC,MAAM,CAAC,YAAY,IAAU,MAAO,CAAC,GAAG,EAAE;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,mBAAmB,GAAG,IAAI,CAAC;IAE3B,MAAM,QAAQ,GAAG,UAAU,OAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO;SACP;QAED,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,OAAO;SACP;QACD,IAAI;YACH,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;SACjE;IACF,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC;CAC9B;AAED,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;IAC3B,MAAM,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;CAC7C;AAED,eAAe,MAAM,CAAC,YAAY,CAAC;AAEnC,IAAU,MAAO,CAAC,GAAG,EAAE;IAChB,MAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACrB,MAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;IACjC,CAAC,CAAC,CAAC;CACH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nativescript/canvas-polyfill",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.30",
|
|
4
4
|
"description": "Polyfill for making NativeScript compatible with web libs like pixi.js, three.js, phaser.js, babylon.js, etc....",
|
|
5
5
|
"main": "index",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"readmeFilename": "README.md",
|
|
34
34
|
"bootstrapper": "@nativescript/plugin-seed",
|
|
35
35
|
"dependencies": {
|
|
36
|
+
"@nativescript/canvas": "alpha",
|
|
37
|
+
"@nativescript/canvas-media": "alpha",
|
|
38
|
+
"query-selector": "2.0.0",
|
|
36
39
|
"xmldom": "~0.6.0"
|
|
37
40
|
},
|
|
38
|
-
"
|
|
39
|
-
"@nativescript/canvas": "2.0.0-alpha.3",
|
|
40
|
-
"@nativescript/canvas-media": "2.0.0-alpha.3"
|
|
41
|
-
}
|
|
41
|
+
"types": "./index.d.ts"
|
|
42
42
|
}
|
package/performance.js
CHANGED
|
@@ -26,9 +26,9 @@ if (!global.performance || !global.performance.now) {
|
|
|
26
26
|
},
|
|
27
27
|
now() {
|
|
28
28
|
if (global.isIOS) {
|
|
29
|
-
return
|
|
29
|
+
return performance.now();
|
|
30
30
|
}
|
|
31
|
-
return
|
|
31
|
+
return __time();
|
|
32
32
|
},
|
|
33
33
|
toJSON() {
|
|
34
34
|
return {
|
|
@@ -47,33 +47,33 @@ if (!global.performance || !global.performance.now) {
|
|
|
47
47
|
usedJSHeapSize: -1,
|
|
48
48
|
},
|
|
49
49
|
measure() {
|
|
50
|
-
console.warn(
|
|
50
|
+
console.warn('window.performance.measure is not implemented');
|
|
51
51
|
},
|
|
52
52
|
mark() {
|
|
53
|
-
console.warn(
|
|
53
|
+
console.warn('window.performance.mark is not implemented');
|
|
54
54
|
},
|
|
55
55
|
clearMeasures() {
|
|
56
|
-
console.warn(
|
|
56
|
+
console.warn('window.performance.clearMeasures is not implemented');
|
|
57
57
|
},
|
|
58
58
|
clearMarks() {
|
|
59
|
-
console.warn(
|
|
59
|
+
console.warn('window.performance.clearMarks is not implemented');
|
|
60
60
|
},
|
|
61
61
|
clearResourceTimings() {
|
|
62
|
-
console.warn(
|
|
62
|
+
console.warn('window.performance.clearResourceTimings is not implemented');
|
|
63
63
|
},
|
|
64
64
|
setResourceTimingBufferSize() {
|
|
65
|
-
console.warn(
|
|
65
|
+
console.warn('window.performance.setResourceTimingBufferSize is not implemented');
|
|
66
66
|
},
|
|
67
67
|
getEntriesByType() {
|
|
68
|
-
console.warn(
|
|
68
|
+
console.warn('window.performance.getEntriesByType is not implemented');
|
|
69
69
|
return [];
|
|
70
70
|
},
|
|
71
71
|
getEntriesByName() {
|
|
72
|
-
console.warn(
|
|
72
|
+
console.warn('window.performance.getEntriesByName is not implemented');
|
|
73
73
|
return [];
|
|
74
74
|
},
|
|
75
75
|
getEntries() {
|
|
76
|
-
console.warn(
|
|
76
|
+
console.warn('window.performance.getEntries is not implemented');
|
|
77
77
|
},
|
|
78
78
|
};
|
|
79
79
|
}
|
package/performance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/performance.ts"],"names":[],"mappings":"AAAA,IAAI,CAAE,MAAc,CAAC,WAAW,IAAI,CAAE,MAAc,CAAC,WAAW,CAAC,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/performance.ts"],"names":[],"mappings":"AAAA,IAAI,CAAE,MAAc,CAAC,WAAW,IAAI,CAAE,MAAc,CAAC,WAAW,CAAC,GAAG,EAAE;IACpE,MAAc,CAAC,WAAW,GAAG;QAC7B,UAAU,EAAE,CAAC,CAAC;QACd,MAAM,EAAE;YACP,UAAU,EAAE,CAAC,CAAC;YACd,YAAY,EAAE,CAAC,CAAC;YAChB,WAAW,EAAE,CAAC,CAAC;YACf,wBAAwB,EAAE,CAAC,CAAC;YAC5B,0BAA0B,EAAE,CAAC,CAAC;YAC9B,cAAc,EAAE,CAAC,CAAC;YAClB,UAAU,EAAE,CAAC,CAAC;YACd,eAAe,EAAE,CAAC,CAAC;YACnB,iBAAiB,EAAE,CAAC,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC;YACd,YAAY,EAAE,CAAC,CAAC;YAChB,cAAc,EAAE,CAAC,CAAC;YAClB,eAAe,EAAE,CAAC,CAAC;YACnB,WAAW,EAAE,CAAC,CAAC;YACf,aAAa,EAAE,CAAC,CAAC;YACjB,YAAY,EAAE,CAAC,CAAC;YAChB,WAAW,EAAE,CAAC,CAAC;YACf,aAAa,EAAE,CAAC,CAAC;YACjB,qBAAqB,EAAE,CAAC,CAAC;YACzB,cAAc,EAAE,CAAC,CAAC;YAClB,gBAAgB,EAAE,CAAC,CAAC;SACpB;QACD,GAAG;YACF,IAAI,MAAM,CAAC,KAAK,EAAE;gBACjB,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;aACzB;YAED,OAAO,MAAM,EAAE,CAAC;QACjB,CAAC;QACD,MAAM;YACL,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;aAC3B,CAAC;QACH,CAAC;QACD,UAAU,EAAE;YACX,aAAa,EAAE,CAAC,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC;SACR;QACD,MAAM,EAAE;YACP,eAAe,EAAE,CAAC,CAAC;YACnB,eAAe,EAAE,CAAC,CAAC;YACnB,cAAc,EAAE,CAAC,CAAC;SAClB;QACD,OAAO;YACN,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI;YACH,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;QACD,aAAa;YACZ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QACD,UAAU;YACT,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;QACD,oBAAoB;YACnB,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC5E,CAAC;QACD,2BAA2B;YAC1B,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACnF,CAAC;QACD,gBAAgB;YACf,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACX,CAAC;QACD,gBAAgB;YACf,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACX,CAAC;QACD,UAAU;YACT,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;KACD,CAAC;CACF"}
|
|
Binary file
|
|
Binary file
|
|
@@ -29,25 +29,38 @@ public class Utils {
|
|
|
29
29
|
buffer.position(position);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
public static String createObjectURL(Context context, ByteBuffer buffer, int position, String mime) throws IOException {
|
|
32
|
+
public static String createObjectURL(Context context, ByteBuffer buffer, int position, String mime, String extension) throws IOException {
|
|
34
33
|
String id = UUID.randomUUID().toString();
|
|
34
|
+
createObjectURLWithURL(context, BLOB_PATH + id, buffer, position, mime, extension);
|
|
35
|
+
return BLOB_PATH + id;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public static void createObjectURLWithURL(Context context, String url, ByteBuffer buffer, int position, String mime, String extension) throws IOException {
|
|
39
|
+
String id = url.replace(BLOB_PATH, "");
|
|
35
40
|
File blob_root = new File(context.getFilesDir(), BLOB_DIR);
|
|
36
41
|
if (!blob_root.exists()) {
|
|
37
42
|
blob_root.mkdirs();
|
|
38
43
|
}
|
|
39
44
|
|
|
40
|
-
// todo get type from magic bytes
|
|
41
|
-
String ext = MimeTypeMap.getSingleton().getExtensionFromMimeType(mime);
|
|
42
45
|
String fileName = id;
|
|
43
|
-
if (
|
|
44
|
-
fileName = id + "." +
|
|
46
|
+
if (extension != null) {
|
|
47
|
+
fileName = id + "." + extension;
|
|
48
|
+
} else {
|
|
49
|
+
// todo get type from magic bytes
|
|
50
|
+
String ext = MimeTypeMap.getSingleton().getExtensionFromMimeType(mime);
|
|
51
|
+
if (ext != null) {
|
|
52
|
+
fileName = id + "." + ext;
|
|
53
|
+
}
|
|
45
54
|
}
|
|
46
55
|
|
|
47
56
|
org.nativescript.canvas.polyfill.Utils.writeBytes(buffer, position, new File(blob_root, fileName).getAbsolutePath());
|
|
48
57
|
|
|
49
58
|
putItem(context, id, fileName);
|
|
50
|
-
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public static String getItemOrCreateAndReturn(Context context, String url, ByteBuffer buffer, int position, String mime, String extension) throws IOException {
|
|
62
|
+
createObjectURLWithURL(context, url, buffer, position, mime, extension);
|
|
63
|
+
return getPath(context, url);
|
|
51
64
|
}
|
|
52
65
|
|
|
53
66
|
public static void revokeObjectURL(Context context, String url) {
|
|
@@ -73,6 +86,7 @@ public class Utils {
|
|
|
73
86
|
return "";
|
|
74
87
|
}
|
|
75
88
|
|
|
89
|
+
|
|
76
90
|
public static void putItem(Context context, String key, String value) {
|
|
77
91
|
SharedPreferences sharedPreferences = context.getSharedPreferences(BLOB_KEYS, Context.MODE_PRIVATE);
|
|
78
92
|
sharedPreferences.edit().putString(key, value).commit();
|
|
@@ -92,6 +106,18 @@ public class Utils {
|
|
|
92
106
|
|
|
93
107
|
public static void deleteItem(Context context, String key) {
|
|
94
108
|
if (key != null) {
|
|
109
|
+
File blob_root = new File(context.getFilesDir(), BLOB_DIR);
|
|
110
|
+
SharedPreferences sharedPreferences = context.getSharedPreferences(BLOB_KEYS, Context.MODE_PRIVATE);
|
|
111
|
+
|
|
112
|
+
String fileName = sharedPreferences.getString(key, null);
|
|
113
|
+
|
|
114
|
+
if (fileName != null) {
|
|
115
|
+
File file = new File(blob_root, fileName);
|
|
116
|
+
try {
|
|
117
|
+
file.delete();
|
|
118
|
+
} catch (Exception ignored) {
|
|
119
|
+
}
|
|
120
|
+
}
|
|
95
121
|
putItem(context, key, null);
|
|
96
122
|
}
|
|
97
123
|
}
|
package/resize.js
CHANGED
|
@@ -4,21 +4,26 @@ import { Application } from '@nativescript/core';
|
|
|
4
4
|
Window Resize Stub
|
|
5
5
|
*/
|
|
6
6
|
const scale = Screen.mainScreen.scale;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
global.window.
|
|
12
|
-
global.window.
|
|
13
|
-
global.window.
|
|
7
|
+
// const screenWidth = Screen.mainScreen.widthPixels;
|
|
8
|
+
// const screenHeight = Screen.mainScreen.heightPixels;
|
|
9
|
+
const screenWidth = Screen.mainScreen.widthDIPs;
|
|
10
|
+
const screenHeight = Screen.mainScreen.heightDIPs;
|
|
11
|
+
global.window.devicePixelRatio = global.devicePixelRatio = scale; //1;
|
|
12
|
+
global.window.innerWidth = global.innerWidth = screenWidth;
|
|
13
|
+
global.window.clientWidth = global.clientWidth = screenWidth;
|
|
14
|
+
global.window.innerHeight = global.innerHeight = screenHeight;
|
|
15
|
+
global.window.clientHeight = global.clientHeight = screenHeight;
|
|
14
16
|
global.window.screen = global.screen = global.screen || {};
|
|
15
17
|
global.window.screen.orientation = global.screen.orientation = global.screen.orientation || global.clientWidth < global.clientHeight ? 0 : 90;
|
|
16
18
|
if (!global.__TNS_BROWSER_POLYFILL_RESIZE) {
|
|
17
19
|
global.__TNS_BROWSER_POLYFILL_RESIZE = true;
|
|
18
20
|
Application.on(Application.orientationChangedEvent, (args) => {
|
|
19
|
-
const width = Screen.mainScreen.widthPixels;
|
|
20
|
-
const height = Screen.mainScreen.
|
|
21
|
-
|
|
21
|
+
// const width = Screen.mainScreen.widthPixels;
|
|
22
|
+
// const height = Screen.mainScreen.heightPixels;
|
|
23
|
+
const portrait = args.newValue === 'portrait';
|
|
24
|
+
const width = portrait ? screenWidth : screenHeight;
|
|
25
|
+
const height = portrait ? screenHeight : screenWidth;
|
|
26
|
+
global.window.devicePixelRatio = global.devicePixelRatio = scale; //1;
|
|
22
27
|
global.window.innerWidth = global.innerWidth = width;
|
|
23
28
|
global.window.clientWidth = global.clientWidth = width;
|
|
24
29
|
global.window.innerHeight = global.innerHeight = height;
|
package/resize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/resize.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD;;EAEE;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACtC,qDAAqD;AACrD,uDAAuD;AACvD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;AAChD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;AACjD,MAAc,CAAC,MAAM,CAAC,gBAAgB,GAAI,MAAc,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,IAAI;AACvF,MAAc,CAAC,MAAM,CAAC,UAAU,GAAI,MAAc,CAAC,UAAU,GAAG,WAAW,CAAC;AAC5E,MAAc,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,WAAW,GAAG,WAAW,CAAC;AAC9E,MAAc,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;AAC/E,MAAc,CAAC,MAAM,CAAC,YAAY,GAAI,MAAc,CAAC,YAAY,GAAG,YAAY,CAAC;AACjF,MAAc,CAAC,MAAM,CAAC,MAAM,GAAI,MAAc,CAAC,MAAM,GAAI,MAAc,CAAC,MAAM,IAAI,EAAE,CAAC;AACrF,MAAc,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,MAAM,CAAC,WAAW,IAAK,MAAc,CAAC,WAAW,GAAI,MAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3L,IAAI,CAAE,MAAc,CAAC,6BAA6B,EAAE;IAClD,MAAc,CAAC,6BAA6B,GAAG,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,IAAiC,EAAE,EAAE;QACzF,+CAA+C;QAC/C,iDAAiD;QAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;QAEpD,MAAc,CAAC,MAAM,CAAC,gBAAgB,GAAI,MAAc,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,IAAI;QACvF,MAAc,CAAC,MAAM,CAAC,UAAU,GAAI,MAAc,CAAC,UAAU,GAAG,KAAK,CAAC;QACtE,MAAc,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,WAAW,GAAG,KAAK,CAAC;QACxE,MAAc,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,WAAW,GAAG,MAAM,CAAC;QACzE,MAAc,CAAC,MAAM,CAAC,YAAY,GAAI,MAAc,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3E,MAAc,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,MAAc,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,MAAM,CAAC,WAAW,GAAI,MAAc,CAAC,WAAW,CAAC;QAC7G,IAAK,MAAc,CAAC,OAAO,IAAK,MAAc,CAAC,OAAO,CAAC,IAAI,EAAE;YAC3D,MAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvC;IACF,CAAC,CAAC,CAAC;CACH"}
|