@datagrok-libraries/utils 4.2.0 → 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 +7 -0
- package/package.json +1 -1
- package/src/render.d.ts +7 -0
- package/src/render.d.ts.map +1 -0
- package/src/render.js +14 -0
- package/src/svg.d.ts +2 -0
- package/src/svg.d.ts.map +1 -0
- package/src/svg.js +23 -0
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
package/src/render.d.ts
ADDED
|
@@ -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
|
package/src/svg.d.ts
ADDED
package/src/svg.d.ts.map
ADDED
|
@@ -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=
|