@datagrok-libraries/utils 4.1.45 → 4.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # utils changelog
2
2
 
3
+ ## 4.2.1 (2024-04-19)
4
+
5
+ ### Features
6
+
7
+ * Added svgToImage
8
+
9
+ ## 4.2.0 (2024-04-01)
10
+
11
+ ### Features
12
+
13
+ * Added active files handler
14
+
3
15
  ## 4.1.45 (2024-02-20)
4
16
 
5
17
  ### Bug fixes
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "email": "amuzychyna@datagrok.ai"
9
9
  },
10
10
  "fullName": "Utils",
11
- "version": "4.1.45",
11
+ "version": "4.2.1",
12
12
  "description": "Common utilities",
13
13
  "dependencies": {
14
14
  "cash-dom": "^8.1.1",
@@ -0,0 +1,7 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ declare global {
3
+ interface CanvasRenderingContext2D {
4
+ drawCross(r: DG.Rect, strokeStyle?: string, lineWidth?: number): void;
5
+ }
6
+ }
7
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,wBAAwB;QAChC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvE;CACF"}
package/src/render.js ADDED
@@ -0,0 +1,14 @@
1
+ CanvasRenderingContext2D.prototype.drawCross = function drawCross(r, strokeStyle = '#FF0000', lineWidth = 2) {
2
+ const q = r.fitSquare();
3
+ this.clearRect(r.left, r.top, r.width, r.height);
4
+ this.strokeStyle = strokeStyle;
5
+ this.lineWidth = lineWidth;
6
+ this.beginPath();
7
+ this.moveTo(q.left, q.top);
8
+ this.lineTo(q.right, q.bottom);
9
+ this.moveTo(q.right, q.top);
10
+ this.lineTo(q.left, q.bottom);
11
+ this.stroke();
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTLENBQy9ELENBQVUsRUFBRSxjQUFzQixTQUFTLEVBQUUsWUFBb0IsQ0FBQztJQUVsRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDM0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7XG4gICAgZHJhd0Nyb3NzKHI6IERHLlJlY3QsIHN0cm9rZVN0eWxlPzogc3RyaW5nLCBsaW5lV2lkdGg/OiBudW1iZXIpOiB2b2lkO1xuICB9XG59XG5cbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGUuZHJhd0Nyb3NzID0gZnVuY3Rpb24gZHJhd0Nyb3NzKFxuICByOiBERy5SZWN0LCBzdHJva2VTdHlsZTogc3RyaW5nID0gJyNGRjAwMDAnLCBsaW5lV2lkdGg6IG51bWJlciA9IDJcbik6IHZvaWQge1xuICBjb25zdCBxID0gci5maXRTcXVhcmUoKTtcbiAgdGhpcy5jbGVhclJlY3Qoci5sZWZ0LCByLnRvcCwgci53aWR0aCwgci5oZWlnaHQpO1xuXG4gIHRoaXMuc3Ryb2tlU3R5bGUgPSBzdHJva2VTdHlsZTtcbiAgdGhpcy5saW5lV2lkdGggPSBsaW5lV2lkdGg7XG4gIHRoaXMuYmVnaW5QYXRoKCk7XG4gIHRoaXMubW92ZVRvKHEubGVmdCwgcS50b3ApO1xuICB0aGlzLmxpbmVUbyhxLnJpZ2h0LCBxLmJvdHRvbSk7XG4gIHRoaXMubW92ZVRvKHEucmlnaHQsIHEudG9wKTtcbiAgdGhpcy5saW5lVG8ocS5sZWZ0LCBxLmJvdHRvbSk7XG4gIHRoaXMuc3Ryb2tlKCk7XG59O1xuIl19
@@ -0,0 +1,24 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ export type FilesSettings = {
3
+ excluded: string[];
4
+ explicit: string[];
5
+ };
6
+ export declare class ActiveFiles {
7
+ readonly path: string;
8
+ readonly userStorageName: string;
9
+ /**file extension to filter files in file open dialog*/ readonly ext: string;
10
+ private settings?;
11
+ protected constructor(path: string, userStorageName: string,
12
+ /**file extension to filter files in file open dialog*/ ext?: string);
13
+ getUserSettings(): Promise<FilesSettings>;
14
+ setUserSettings(value: FilesSettings): Promise<void>;
15
+ protected getAllAvailable(): Promise<string[]>;
16
+ getActive(): Promise<string[]>;
17
+ protected createInput(available: string, isChecked: boolean): DG.InputBase<boolean>;
18
+ protected getInputs(): Promise<DG.InputBase<boolean>[]>;
19
+ getForm(): Promise<HTMLDivElement>;
20
+ private updateSelectionStatus;
21
+ private availableRemove;
22
+ private getNewAvailable;
23
+ }
24
+ //# sourceMappingURL=active-files-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-files-base.d.ts","sourceRoot":"","sources":["active-files-base.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,qBAAa,WAAW;aAIJ,IAAI,EAAE,MAAM;aACZ,eAAe,EAAE,MAAM;IACvC,uDAAuD,UAAgB,GAAG,EAAE,MAAM;IALpF,OAAO,CAAC,QAAQ,CAAC,CAAgB;IAEjC,SAAS,aACS,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM;IACvC,uDAAuD,CAAgB,GAAG,GAAE,MAAe;IAMvF,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAazC,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;cAK1C,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IASvC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ3C,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;cAkBnE,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAahD,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;YAgBjC,qBAAqB;YAgBrB,eAAe;YAaf,eAAe;CAa9B"}
@@ -0,0 +1,142 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import * as grok from 'datagrok-api/grok';
11
+ import * as ui from 'datagrok-api/ui';
12
+ import * as DG from 'datagrok-api/dg';
13
+ export class ActiveFiles {
14
+ constructor(path, userStorageName,
15
+ /**file extension to filter files in file open dialog*/ ext = '.csv') {
16
+ this.path = path;
17
+ this.userStorageName = userStorageName;
18
+ this.ext = ext;
19
+ if ('/' !== this.path[this.path.length - 1])
20
+ this.path += '/';
21
+ if ('.' !== this.ext[0])
22
+ this.ext = '.' + this.ext;
23
+ }
24
+ getUserSettings() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ if (this.settings)
27
+ return this.settings;
28
+ const resStr = yield grok.dapi.userDataStorage.getValue(this.userStorageName, 'Settings', true);
29
+ const res = resStr ? JSON.parse(resStr) : { excluded: [], explicit: [] };
30
+ res.explicit = res.explicit instanceof Array ? res.explicit : [];
31
+ res.excluded = res.excluded instanceof Array ? res.excluded : [];
32
+ return this.settings = res;
33
+ });
34
+ }
35
+ setUserSettings(value) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ this.settings = value;
38
+ yield grok.dapi.userDataStorage.postValue(this.userStorageName, 'Settings', JSON.stringify(value), true);
39
+ });
40
+ }
41
+ getAllAvailable() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const list = yield grok.dapi.files.list(this.path);
44
+ const paths = list.map((fileInfo) => {
45
+ return fileInfo.fullPath.replace(`${this.path}`, '');
46
+ });
47
+ return paths;
48
+ });
49
+ }
50
+ getActive() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const settings = yield this.getUserSettings();
53
+ if (settings.explicit.length > 0)
54
+ return settings.explicit;
55
+ return (yield this.getAllAvailable()).filter((available) => !settings.excluded.includes(available));
56
+ });
57
+ }
58
+ createInput(available, isChecked) {
59
+ const cb = ui.boolInput(available, isChecked, (isChecked) => this.updateSelectionStatus(available, isChecked));
60
+ cb.addOptions(ui.button(ui.iconFA('trash'), () => {
61
+ const remDialog = ui.dialog({ title: 'Warning' }).add(ui.divText(`Delete file '${available}'?`)).onOK(() => {
62
+ cb.root.remove();
63
+ this.availableRemove(available); //async
64
+ });
65
+ remDialog.show();
66
+ }, `Delete ${available}`));
67
+ return cb;
68
+ }
69
+ getInputs() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const all = yield this.getAllAvailable();
72
+ const active = yield this.getActive();
73
+ const inputs = new Array(all.length);
74
+ for (let i = 0; i < all.length; i++) {
75
+ const isChecked = active.includes(all[i]);
76
+ inputs[i] = this.createInput(all[i], isChecked);
77
+ }
78
+ return inputs;
79
+ });
80
+ }
81
+ getForm() {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const inputs = yield this.getInputs();
84
+ const inputsDiv = ui.divV(inputs);
85
+ const formDiv = ui.divV([
86
+ inputsDiv,
87
+ ui.button('ADD', () => __awaiter(this, void 0, void 0, function* () {
88
+ let newAvailable = '';
89
+ newAvailable = yield this.getNewAvailable();
90
+ if (newAvailable !== '')
91
+ inputsDiv.append(this.createInput(newAvailable, true).root);
92
+ }))
93
+ ]);
94
+ return formDiv;
95
+ });
96
+ }
97
+ updateSelectionStatus(available, newisChecked) {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const settings = yield this.getUserSettings();
100
+ const oldisChecked = !settings.excluded.includes(available);
101
+ if (oldisChecked === newisChecked)
102
+ return;
103
+ if (newisChecked) {
104
+ const index = settings.excluded.indexOf(available);
105
+ if (index > -1)
106
+ settings.excluded.splice(index, 1);
107
+ }
108
+ else
109
+ settings.excluded.push(available);
110
+ this.setUserSettings(settings);
111
+ });
112
+ }
113
+ availableRemove(available) {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ const settings = yield this.getUserSettings();
116
+ const index = settings.excluded.indexOf(available);
117
+ if (index > -1)
118
+ settings.excluded.splice(index, 1);
119
+ yield Promise.all([
120
+ this.setUserSettings(settings),
121
+ grok.dapi.files.delete(this.path + available)
122
+ ]);
123
+ grok.shell.info(`File ${available} successfully deleted`);
124
+ });
125
+ }
126
+ getNewAvailable() {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ return new Promise((resolve, reject) => {
129
+ DG.Utils.openFile({
130
+ accept: this.ext,
131
+ open: (selectedFile) => __awaiter(this, void 0, void 0, function* () {
132
+ const path = selectedFile.name;
133
+ const buffer = yield selectedFile.arrayBuffer();
134
+ yield grok.dapi.files.write(this.path + `${selectedFile.name}`, (new Uint8Array(buffer)));
135
+ resolve(path);
136
+ })
137
+ });
138
+ });
139
+ });
140
+ }
141
+ }
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWZpbGVzLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhY3RpdmUtZmlsZXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU90QyxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNrQixJQUFZLEVBQ1osZUFBdUI7SUFDdkMsdURBQXVELENBQWdCLE1BQWMsTUFBTTtRQUYzRSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDZ0MsUUFBRyxHQUFILEdBQUcsQ0FBaUI7UUFFM0YsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQztRQUM5RCxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDckQsQ0FBQztJQUVLLGVBQWU7O1lBQ25CLElBQUksSUFBSSxDQUFDLFFBQVE7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRXZCLE1BQU0sTUFBTSxHQUFXLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hHLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxR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QUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsU0FBUyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzVELENBQUM7S0FBQTtJQUVhLGVBQWU7O1lBQzNCLE9BQU8sSUFBSSxPQUFPLENBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQzdDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUc7b0JBQ2hCLElBQUksRUFBRSxDQUFPLFlBQVksRUFBRSxFQUFFO3dCQUMzQixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO3dCQUMvQixNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDaEQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFRLENBQUMsQ0FBQzt3QkFDakcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDLENBQUE7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5cbmV4cG9ydCB0eXBlIEZpbGVzU2V0dGluZ3MgPSB7XG4gIGV4Y2x1ZGVkOiBzdHJpbmdbXSxcbiAgZXhwbGljaXQ6IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBjbGFzcyBBY3RpdmVGaWxlcyB7XG4gIHByaXZhdGUgc2V0dGluZ3M/OiBGaWxlc1NldHRpbmdzO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSB1c2VyU3RvcmFnZU5hbWU6IHN0cmluZyxcbiAgICAvKipmaWxlIGV4dGVuc2lvbiB0byBmaWx0ZXIgZmlsZXMgaW4gZmlsZSBvcGVuIGRpYWxvZyovcHVibGljIHJlYWRvbmx5IGV4dDogc3RyaW5nID0gJy5jc3YnXG4gICkge1xuICAgIGlmICgnLycgIT09IHRoaXMucGF0aFt0aGlzLnBhdGgubGVuZ3RoIC0gMV0pIHRoaXMucGF0aCArPSAnLyc7XG4gICAgaWYgKCcuJyAhPT0gdGhpcy5leHRbMF0pIHRoaXMuZXh0ID0gJy4nICsgdGhpcy5leHQ7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyU2V0dGluZ3MoKTogUHJvbWlzZTxGaWxlc1NldHRpbmdzPiB7XG4gICAgaWYgKHRoaXMuc2V0dGluZ3MpXG4gICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncztcblxuICAgIGNvbnN0IHJlc1N0cjogc3RyaW5nID0gYXdhaXQgZ3Jvay5kYXBpLnVzZXJEYXRhU3RvcmFnZS5nZXRWYWx1ZSh0aGlzLnVzZXJTdG9yYWdlTmFtZSwgJ1NldHRpbmdzJywgdHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gcmVzU3RyID8gSlNPTi5wYXJzZShyZXNTdHIpIDoge2V4Y2x1ZGVkOiBbXSwgZXhwbGljaXQ6IFtdfTtcblxuICAgIHJlcy5leHBsaWNpdCA9IHJlcy5leHBsaWNpdCBpbnN0YW5jZW9mIEFycmF5ID8gcmVzLmV4cGxpY2l0IDogW107XG4gICAgcmVzLmV4Y2x1ZGVkID0gcmVzLmV4Y2x1ZGVkIGluc3RhbmNlb2YgQXJyYXkgPyByZXMuZXhjbHVkZWQgOiBbXTtcblxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzID0gcmVzO1xuICB9XG5cbiAgYXN5bmMgc2V0VXNlclNldHRpbmdzKHZhbHVlOiBGaWxlc1NldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHZhbHVlO1xuICAgIGF3YWl0IGdyb2suZGFwaS51c2VyRGF0YVN0b3JhZ2UucG9zdFZhbHVlKHRoaXMudXNlclN0b3JhZ2VOYW1lLCAnU2V0dGluZ3MnLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSksIHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldEFsbEF2YWlsYWJsZSgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgbGlzdCA9IGF3YWl0IGdyb2suZGFwaS5maWxlcy5saXN0KHRoaXMucGF0aCk7XG4gICAgY29uc3QgcGF0aHMgPSBsaXN0Lm1hcCgoZmlsZUluZm8pID0+IHtcbiAgICAgIHJldHVybiBmaWxlSW5mby5mdWxsUGF0aC5yZXBsYWNlKGAke3RoaXMucGF0aH1gLCAnJyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGF0aHM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0QWN0aXZlKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IGF3YWl0IHRoaXMuZ2V0VXNlclNldHRpbmdzKCk7XG4gICAgaWYgKHNldHRpbmdzLmV4cGxpY2l0Lmxlbmd0aCA+IDApXG4gICAgICByZXR1cm4gc2V0dGluZ3MuZXhwbGljaXQ7XG5cbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0QWxsQXZhaWxhYmxlKCkpLmZpbHRlcigoYXZhaWxhYmxlKSA9PiAhc2V0dGluZ3MuZXhjbHVkZWQuaW5jbHVkZXMoYXZhaWxhYmxlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlSW5wdXQoYXZhaWxhYmxlOiBzdHJpbmcsIGlzQ2hlY2tlZDogYm9vbGVhbik6IERHLklucHV0QmFzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2IgPSB1aS5ib29sSW5wdXQoXG4gICAgICBhdmFpbGFibGUsXG4gICAgICBpc0NoZWNrZWQsXG4gICAgICAoaXNDaGVja2VkOiBib29sZWFuKSA9PiB0aGlzLnVwZGF0ZVNlbGVjdGlvblN0YXR1cyhhdmFpbGFibGUsIGlzQ2hlY2tlZClcbiAgICApIGFzIERHLklucHV0QmFzZTxib29sZWFuPjtcbiAgICBjYi5hZGRPcHRpb25zKHVpLmJ1dHRvbih1aS5pY29uRkEoJ3RyYXNoJyksICgpID0+IHtcbiAgICAgIGNvbnN0IHJlbURpYWxvZyA9IHVpLmRpYWxvZyh7dGl0bGU6ICdXYXJuaW5nJ30pLmFkZCh1aS5kaXZUZXh0KGBEZWxldGUgZmlsZSAnJHthdmFpbGFibGV9Jz9gKSkub25PSygoKSA9PiB7XG4gICAgICAgIGNiLnJvb3QucmVtb3ZlKCk7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlUmVtb3ZlKGF2YWlsYWJsZSk7IC8vYXN5bmNcbiAgICAgIH0pO1xuXG4gICAgICByZW1EaWFsb2cuc2hvdygpO1xuICAgIH0sIGBEZWxldGUgJHthdmFpbGFibGV9YCkpO1xuXG4gICAgcmV0dXJuIGNiO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldElucHV0cygpOiBQcm9taXNlPERHLklucHV0QmFzZTxib29sZWFuPltdPiB7XG4gICAgY29uc3QgYWxsID0gYXdhaXQgdGhpcy5nZXRBbGxBdmFpbGFibGUoKTtcbiAgICBjb25zdCBhY3RpdmUgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZSgpO1xuICAgIGNvbnN0IGlucHV0czogREcuSW5wdXRCYXNlPGJvb2xlYW4+W10gPSBuZXcgQXJyYXk8REcuSW5wdXRCYXNlPGJvb2xlYW4+PihhbGwubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpc0NoZWNrZWQgPSBhY3RpdmUuaW5jbHVkZXMoYWxsW2ldKTtcbiAgICAgIGlucHV0c1tpXSA9IHRoaXMuY3JlYXRlSW5wdXQoYWxsW2ldLCBpc0NoZWNrZWQpO1xuICAgIH1cblxuICAgIHJldHVybiBpbnB1dHM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybSgpOiBQcm9taXNlPEhUTUxEaXZFbGVtZW50PiB7XG4gICAgY29uc3QgaW5wdXRzID0gYXdhaXQgdGhpcy5nZXRJbnB1dHMoKTtcbiAgICBjb25zdCBpbnB1dHNEaXYgPSB1aS5kaXZWKGlucHV0cyk7XG4gICAgY29uc3QgZm9ybURpdiA9IHVpLmRpdlYoIFtcbiAgICAgIGlucHV0c0RpdixcbiAgICAgIHVpLmJ1dHRvbignQUREJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgbmV3QXZhaWxhYmxlOiBzdHJpbmcgPSAnJztcbiAgICAgICAgbmV3QXZhaWxhYmxlID0gYXdhaXQgdGhpcy5nZXROZXdBdmFpbGFibGUoKTtcbiAgICAgICAgaWYgKG5ld0F2YWlsYWJsZSAhPT0gJycpXG4gICAgICAgICAgaW5wdXRzRGl2LmFwcGVuZCh0aGlzLmNyZWF0ZUlucHV0KG5ld0F2YWlsYWJsZSwgdHJ1ZSkucm9vdCk7XG4gICAgICB9KVxuICAgIF0pO1xuXG4gICAgcmV0dXJuIGZvcm1EaXY7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVNlbGVjdGlvblN0YXR1cyhhdmFpbGFibGU6IHN0cmluZywgbmV3aXNDaGVja2VkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLmdldFVzZXJTZXR0aW5ncygpO1xuICAgIGNvbnN0IG9sZGlzQ2hlY2tlZCA9ICFzZXR0aW5ncy5leGNsdWRlZC5pbmNsdWRlcyhhdmFpbGFibGUpO1xuICAgIGlmIChvbGRpc0NoZWNrZWQgPT09IG5ld2lzQ2hlY2tlZClcbiAgICAgIHJldHVybjtcblxuICAgIGlmIChuZXdpc0NoZWNrZWQpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gc2V0dGluZ3MuZXhjbHVkZWQuaW5kZXhPZihhdmFpbGFibGUpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpXG4gICAgICAgIHNldHRpbmdzLmV4Y2x1ZGVkLnNwbGljZShpbmRleCwgMSk7XG4gICAgfSBlbHNlXG4gICAgICBzZXR0aW5ncy5leGNsdWRlZC5wdXNoKGF2YWlsYWJsZSk7XG5cbiAgICB0aGlzLnNldFVzZXJTZXR0aW5ncyhzZXR0aW5ncyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGF2YWlsYWJsZVJlbW92ZShhdmFpbGFibGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNldHRpbmdzID0gYXdhaXQgdGhpcy5nZXRVc2VyU2V0dGluZ3MoKTtcbiAgICBjb25zdCBpbmRleCA9IHNldHRpbmdzLmV4Y2x1ZGVkLmluZGV4T2YoYXZhaWxhYmxlKTtcbiAgICBpZiAoaW5kZXggPiAtMSlcbiAgICAgIHNldHRpbmdzLmV4Y2x1ZGVkLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICB0aGlzLnNldFVzZXJTZXR0aW5ncyhzZXR0aW5ncyksXG4gICAgICBncm9rLmRhcGkuZmlsZXMuZGVsZXRlKHRoaXMucGF0aCArIGF2YWlsYWJsZSlcbiAgICBdKTtcbiAgICBncm9rLnNoZWxsLmluZm8oYEZpbGUgJHthdmFpbGFibGV9IHN1Y2Nlc3NmdWxseSBkZWxldGVkYCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldE5ld0F2YWlsYWJsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIERHLlV0aWxzLm9wZW5GaWxlKHtcbiAgICAgICAgYWNjZXB0OiB0aGlzLmV4dCxcbiAgICAgICAgb3BlbjogYXN5bmMgKHNlbGVjdGVkRmlsZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhdGggPSBzZWxlY3RlZEZpbGUubmFtZTtcbiAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBzZWxlY3RlZEZpbGUuYXJyYXlCdWZmZXIoKTtcbiAgICAgICAgICBhd2FpdCBncm9rLmRhcGkuZmlsZXMud3JpdGUodGhpcy5wYXRoICsgYCR7c2VsZWN0ZWRGaWxlLm5hbWV9YCwgKG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpIGFzIGFueSk7XG4gICAgICAgICAgcmVzb2x2ZShwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/src/svg.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function svgToImage(svgEl: SVGSVGElement, dpr: number, timeout?: number): Promise<HTMLImageElement>;
2
+ //# sourceMappingURL=svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["svg.ts"],"names":[],"mappings":"AAOA,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyB/G"}
package/src/svg.js ADDED
@@ -0,0 +1,23 @@
1
+ import { testEvent } from './test';
2
+ import { Subject } from 'rxjs';
3
+ export function svgToImage(svgEl, dpr, timeout = 1000) {
4
+ const w = svgEl.width.baseVal.value;
5
+ const h = svgEl.height.baseVal.value;
6
+ const svgImg = new Image(dpr * w, dpr * h);
7
+ const svgXml = new XMLSerializer().serializeToString(svgEl);
8
+ const svg64Prefix = 'data:image/svg+xml;base64,';
9
+ const svg64 = window.btoa(svgXml);
10
+ const svgImgOnLoad = new Subject();
11
+ const svgImgOnLoadListener = () => {
12
+ svgImgOnLoad.next();
13
+ };
14
+ svgImg.addEventListener('load', svgImgOnLoadListener);
15
+ return new Promise((resolve, reject) => {
16
+ testEvent(svgImgOnLoad, () => { resolve(svgImg); }, () => { svgImg.src = svg64Prefix + svg64; }, timeout)
17
+ .catch((err) => { reject(err); })
18
+ .finally(() => {
19
+ svgImg.removeEventListener('load', svgImgOnLoadListener);
20
+ });
21
+ });
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQW9CLEVBQUUsR0FBVyxFQUFFLFVBQWtCLElBQUk7SUFDbEYsTUFBTSxDQUFDLEdBQVcsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxHQUFXLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVELE1BQU0sV0FBVyxHQUFXLDRCQUE0QixDQUFDO0lBQ3pELE1BQU0sS0FBSyxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUN6QyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRXRELE9BQU8sSUFBSSxPQUFPLENBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3ZELFNBQVMsQ0FBQyxZQUFZLEVBQ3BCLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDMUIsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUMzQyxPQUFPLENBQUM7YUFDUCxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcblxuaW1wb3J0IHt0ZXN0RXZlbnR9IGZyb20gJy4vdGVzdCc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3ZnVG9JbWFnZShzdmdFbDogU1ZHU1ZHRWxlbWVudCwgZHByOiBudW1iZXIsIHRpbWVvdXQ6IG51bWJlciA9IDEwMDApOiBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+IHtcbiAgY29uc3QgdzogbnVtYmVyID0gc3ZnRWwud2lkdGguYmFzZVZhbC52YWx1ZTtcbiAgY29uc3QgaDogbnVtYmVyID0gc3ZnRWwuaGVpZ2h0LmJhc2VWYWwudmFsdWU7XG4gIGNvbnN0IHN2Z0ltZyA9IG5ldyBJbWFnZShkcHIgKiB3LCBkcHIgKiBoKTtcbiAgY29uc3Qgc3ZnWG1sID0gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhzdmdFbCk7XG5cbiAgY29uc3Qgc3ZnNjRQcmVmaXg6IHN0cmluZyA9ICdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCc7XG4gIGNvbnN0IHN2ZzY0OiBzdHJpbmcgPSB3aW5kb3cuYnRvYShzdmdYbWwpO1xuXG4gIGNvbnN0IHN2Z0ltZ09uTG9hZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGNvbnN0IHN2Z0ltZ09uTG9hZExpc3RlbmVyID0gKCkgPT4ge1xuICAgIHN2Z0ltZ09uTG9hZC5uZXh0KCk7XG4gIH07XG4gIHN2Z0ltZy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3ZnSW1nT25Mb2FkTGlzdGVuZXIpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdGVzdEV2ZW50KHN2Z0ltZ09uTG9hZCxcbiAgICAgICgpID0+IHsgcmVzb2x2ZShzdmdJbWcpOyB9LFxuICAgICAgKCkgPT4geyBzdmdJbWcuc3JjID0gc3ZnNjRQcmVmaXggKyBzdmc2NDsgfSxcbiAgICAgIHRpbWVvdXQpXG4gICAgICAuY2F0Y2goKGVycikgPT4geyByZWplY3QoZXJyKTsgfSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgc3ZnSW1nLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdmdJbWdPbkxvYWRMaXN0ZW5lcik7XG4gICAgICB9KTtcbiAgfSk7XG59XG4iXX0=