source: imaps-frontend/node_modules/konva/lib/Util.js

main
Last change on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 24.4 KB
RevLine 
[d565449]1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.Util = exports.Transform = void 0;
4const Global_1 = require("./Global");
5class Transform {
6 constructor(m = [1, 0, 0, 1, 0, 0]) {
7 this.dirty = false;
8 this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];
9 }
10 reset() {
11 this.m[0] = 1;
12 this.m[1] = 0;
13 this.m[2] = 0;
14 this.m[3] = 1;
15 this.m[4] = 0;
16 this.m[5] = 0;
17 }
18 copy() {
19 return new Transform(this.m);
20 }
21 copyInto(tr) {
22 tr.m[0] = this.m[0];
23 tr.m[1] = this.m[1];
24 tr.m[2] = this.m[2];
25 tr.m[3] = this.m[3];
26 tr.m[4] = this.m[4];
27 tr.m[5] = this.m[5];
28 }
29 point(point) {
30 var m = this.m;
31 return {
32 x: m[0] * point.x + m[2] * point.y + m[4],
33 y: m[1] * point.x + m[3] * point.y + m[5],
34 };
35 }
36 translate(x, y) {
37 this.m[4] += this.m[0] * x + this.m[2] * y;
38 this.m[5] += this.m[1] * x + this.m[3] * y;
39 return this;
40 }
41 scale(sx, sy) {
42 this.m[0] *= sx;
43 this.m[1] *= sx;
44 this.m[2] *= sy;
45 this.m[3] *= sy;
46 return this;
47 }
48 rotate(rad) {
49 var c = Math.cos(rad);
50 var s = Math.sin(rad);
51 var m11 = this.m[0] * c + this.m[2] * s;
52 var m12 = this.m[1] * c + this.m[3] * s;
53 var m21 = this.m[0] * -s + this.m[2] * c;
54 var m22 = this.m[1] * -s + this.m[3] * c;
55 this.m[0] = m11;
56 this.m[1] = m12;
57 this.m[2] = m21;
58 this.m[3] = m22;
59 return this;
60 }
61 getTranslation() {
62 return {
63 x: this.m[4],
64 y: this.m[5],
65 };
66 }
67 skew(sx, sy) {
68 var m11 = this.m[0] + this.m[2] * sy;
69 var m12 = this.m[1] + this.m[3] * sy;
70 var m21 = this.m[2] + this.m[0] * sx;
71 var m22 = this.m[3] + this.m[1] * sx;
72 this.m[0] = m11;
73 this.m[1] = m12;
74 this.m[2] = m21;
75 this.m[3] = m22;
76 return this;
77 }
78 multiply(matrix) {
79 var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];
80 var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];
81 var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];
82 var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];
83 var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];
84 var dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];
85 this.m[0] = m11;
86 this.m[1] = m12;
87 this.m[2] = m21;
88 this.m[3] = m22;
89 this.m[4] = dx;
90 this.m[5] = dy;
91 return this;
92 }
93 invert() {
94 var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);
95 var m0 = this.m[3] * d;
96 var m1 = -this.m[1] * d;
97 var m2 = -this.m[2] * d;
98 var m3 = this.m[0] * d;
99 var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);
100 var m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);
101 this.m[0] = m0;
102 this.m[1] = m1;
103 this.m[2] = m2;
104 this.m[3] = m3;
105 this.m[4] = m4;
106 this.m[5] = m5;
107 return this;
108 }
109 getMatrix() {
110 return this.m;
111 }
112 decompose() {
113 var a = this.m[0];
114 var b = this.m[1];
115 var c = this.m[2];
116 var d = this.m[3];
117 var e = this.m[4];
118 var f = this.m[5];
119 var delta = a * d - b * c;
120 let result = {
121 x: e,
122 y: f,
123 rotation: 0,
124 scaleX: 0,
125 scaleY: 0,
126 skewX: 0,
127 skewY: 0,
128 };
129 if (a != 0 || b != 0) {
130 var r = Math.sqrt(a * a + b * b);
131 result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);
132 result.scaleX = r;
133 result.scaleY = delta / r;
134 result.skewX = (a * c + b * d) / delta;
135 result.skewY = 0;
136 }
137 else if (c != 0 || d != 0) {
138 var s = Math.sqrt(c * c + d * d);
139 result.rotation =
140 Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));
141 result.scaleX = delta / s;
142 result.scaleY = s;
143 result.skewX = 0;
144 result.skewY = (a * c + b * d) / delta;
145 }
146 else {
147 }
148 result.rotation = exports.Util._getRotation(result.rotation);
149 return result;
150 }
151}
152exports.Transform = Transform;
153var OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', COLORS = {
154 aliceblue: [240, 248, 255],
155 antiquewhite: [250, 235, 215],
156 aqua: [0, 255, 255],
157 aquamarine: [127, 255, 212],
158 azure: [240, 255, 255],
159 beige: [245, 245, 220],
160 bisque: [255, 228, 196],
161 black: [0, 0, 0],
162 blanchedalmond: [255, 235, 205],
163 blue: [0, 0, 255],
164 blueviolet: [138, 43, 226],
165 brown: [165, 42, 42],
166 burlywood: [222, 184, 135],
167 cadetblue: [95, 158, 160],
168 chartreuse: [127, 255, 0],
169 chocolate: [210, 105, 30],
170 coral: [255, 127, 80],
171 cornflowerblue: [100, 149, 237],
172 cornsilk: [255, 248, 220],
173 crimson: [220, 20, 60],
174 cyan: [0, 255, 255],
175 darkblue: [0, 0, 139],
176 darkcyan: [0, 139, 139],
177 darkgoldenrod: [184, 132, 11],
178 darkgray: [169, 169, 169],
179 darkgreen: [0, 100, 0],
180 darkgrey: [169, 169, 169],
181 darkkhaki: [189, 183, 107],
182 darkmagenta: [139, 0, 139],
183 darkolivegreen: [85, 107, 47],
184 darkorange: [255, 140, 0],
185 darkorchid: [153, 50, 204],
186 darkred: [139, 0, 0],
187 darksalmon: [233, 150, 122],
188 darkseagreen: [143, 188, 143],
189 darkslateblue: [72, 61, 139],
190 darkslategray: [47, 79, 79],
191 darkslategrey: [47, 79, 79],
192 darkturquoise: [0, 206, 209],
193 darkviolet: [148, 0, 211],
194 deeppink: [255, 20, 147],
195 deepskyblue: [0, 191, 255],
196 dimgray: [105, 105, 105],
197 dimgrey: [105, 105, 105],
198 dodgerblue: [30, 144, 255],
199 firebrick: [178, 34, 34],
200 floralwhite: [255, 255, 240],
201 forestgreen: [34, 139, 34],
202 fuchsia: [255, 0, 255],
203 gainsboro: [220, 220, 220],
204 ghostwhite: [248, 248, 255],
205 gold: [255, 215, 0],
206 goldenrod: [218, 165, 32],
207 gray: [128, 128, 128],
208 green: [0, 128, 0],
209 greenyellow: [173, 255, 47],
210 grey: [128, 128, 128],
211 honeydew: [240, 255, 240],
212 hotpink: [255, 105, 180],
213 indianred: [205, 92, 92],
214 indigo: [75, 0, 130],
215 ivory: [255, 255, 240],
216 khaki: [240, 230, 140],
217 lavender: [230, 230, 250],
218 lavenderblush: [255, 240, 245],
219 lawngreen: [124, 252, 0],
220 lemonchiffon: [255, 250, 205],
221 lightblue: [173, 216, 230],
222 lightcoral: [240, 128, 128],
223 lightcyan: [224, 255, 255],
224 lightgoldenrodyellow: [250, 250, 210],
225 lightgray: [211, 211, 211],
226 lightgreen: [144, 238, 144],
227 lightgrey: [211, 211, 211],
228 lightpink: [255, 182, 193],
229 lightsalmon: [255, 160, 122],
230 lightseagreen: [32, 178, 170],
231 lightskyblue: [135, 206, 250],
232 lightslategray: [119, 136, 153],
233 lightslategrey: [119, 136, 153],
234 lightsteelblue: [176, 196, 222],
235 lightyellow: [255, 255, 224],
236 lime: [0, 255, 0],
237 limegreen: [50, 205, 50],
238 linen: [250, 240, 230],
239 magenta: [255, 0, 255],
240 maroon: [128, 0, 0],
241 mediumaquamarine: [102, 205, 170],
242 mediumblue: [0, 0, 205],
243 mediumorchid: [186, 85, 211],
244 mediumpurple: [147, 112, 219],
245 mediumseagreen: [60, 179, 113],
246 mediumslateblue: [123, 104, 238],
247 mediumspringgreen: [0, 250, 154],
248 mediumturquoise: [72, 209, 204],
249 mediumvioletred: [199, 21, 133],
250 midnightblue: [25, 25, 112],
251 mintcream: [245, 255, 250],
252 mistyrose: [255, 228, 225],
253 moccasin: [255, 228, 181],
254 navajowhite: [255, 222, 173],
255 navy: [0, 0, 128],
256 oldlace: [253, 245, 230],
257 olive: [128, 128, 0],
258 olivedrab: [107, 142, 35],
259 orange: [255, 165, 0],
260 orangered: [255, 69, 0],
261 orchid: [218, 112, 214],
262 palegoldenrod: [238, 232, 170],
263 palegreen: [152, 251, 152],
264 paleturquoise: [175, 238, 238],
265 palevioletred: [219, 112, 147],
266 papayawhip: [255, 239, 213],
267 peachpuff: [255, 218, 185],
268 peru: [205, 133, 63],
269 pink: [255, 192, 203],
270 plum: [221, 160, 203],
271 powderblue: [176, 224, 230],
272 purple: [128, 0, 128],
273 rebeccapurple: [102, 51, 153],
274 red: [255, 0, 0],
275 rosybrown: [188, 143, 143],
276 royalblue: [65, 105, 225],
277 saddlebrown: [139, 69, 19],
278 salmon: [250, 128, 114],
279 sandybrown: [244, 164, 96],
280 seagreen: [46, 139, 87],
281 seashell: [255, 245, 238],
282 sienna: [160, 82, 45],
283 silver: [192, 192, 192],
284 skyblue: [135, 206, 235],
285 slateblue: [106, 90, 205],
286 slategray: [119, 128, 144],
287 slategrey: [119, 128, 144],
288 snow: [255, 255, 250],
289 springgreen: [0, 255, 127],
290 steelblue: [70, 130, 180],
291 tan: [210, 180, 140],
292 teal: [0, 128, 128],
293 thistle: [216, 191, 216],
294 transparent: [255, 255, 255, 0],
295 tomato: [255, 99, 71],
296 turquoise: [64, 224, 208],
297 violet: [238, 130, 238],
298 wheat: [245, 222, 179],
299 white: [255, 255, 255],
300 whitesmoke: [245, 245, 245],
301 yellow: [255, 255, 0],
302 yellowgreen: [154, 205, 5],
303}, RGB_REGEX = /rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/, animQueue = [];
304const req = (typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame) ||
305 function (f) {
306 setTimeout(f, 60);
307 };
308exports.Util = {
309 _isElement(obj) {
310 return !!(obj && obj.nodeType == 1);
311 },
312 _isFunction(obj) {
313 return !!(obj && obj.constructor && obj.call && obj.apply);
314 },
315 _isPlainObject(obj) {
316 return !!obj && obj.constructor === Object;
317 },
318 _isArray(obj) {
319 return Object.prototype.toString.call(obj) === OBJECT_ARRAY;
320 },
321 _isNumber(obj) {
322 return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&
323 !isNaN(obj) &&
324 isFinite(obj));
325 },
326 _isString(obj) {
327 return Object.prototype.toString.call(obj) === OBJECT_STRING;
328 },
329 _isBoolean(obj) {
330 return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;
331 },
332 isObject(val) {
333 return val instanceof Object;
334 },
335 isValidSelector(selector) {
336 if (typeof selector !== 'string') {
337 return false;
338 }
339 var firstChar = selector[0];
340 return (firstChar === '#' ||
341 firstChar === '.' ||
342 firstChar === firstChar.toUpperCase());
343 },
344 _sign(number) {
345 if (number === 0) {
346 return 1;
347 }
348 if (number > 0) {
349 return 1;
350 }
351 else {
352 return -1;
353 }
354 },
355 requestAnimFrame(callback) {
356 animQueue.push(callback);
357 if (animQueue.length === 1) {
358 req(function () {
359 const queue = animQueue;
360 animQueue = [];
361 queue.forEach(function (cb) {
362 cb();
363 });
364 });
365 }
366 },
367 createCanvasElement() {
368 var canvas = document.createElement('canvas');
369 try {
370 canvas.style = canvas.style || {};
371 }
372 catch (e) { }
373 return canvas;
374 },
375 createImageElement() {
376 return document.createElement('img');
377 },
378 _isInDocument(el) {
379 while ((el = el.parentNode)) {
380 if (el == document) {
381 return true;
382 }
383 }
384 return false;
385 },
386 _urlToImage(url, callback) {
387 var imageObj = exports.Util.createImageElement();
388 imageObj.onload = function () {
389 callback(imageObj);
390 };
391 imageObj.src = url;
392 },
393 _rgbToHex(r, g, b) {
394 return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
395 },
396 _hexToRgb(hex) {
397 hex = hex.replace(HASH, EMPTY_STRING);
398 var bigint = parseInt(hex, 16);
399 return {
400 r: (bigint >> 16) & 255,
401 g: (bigint >> 8) & 255,
402 b: bigint & 255,
403 };
404 },
405 getRandomColor() {
406 var randColor = ((Math.random() * 0xffffff) << 0).toString(16);
407 while (randColor.length < 6) {
408 randColor = ZERO + randColor;
409 }
410 return HASH + randColor;
411 },
412 getRGB(color) {
413 var rgb;
414 if (color in COLORS) {
415 rgb = COLORS[color];
416 return {
417 r: rgb[0],
418 g: rgb[1],
419 b: rgb[2],
420 };
421 }
422 else if (color[0] === HASH) {
423 return this._hexToRgb(color.substring(1));
424 }
425 else if (color.substr(0, 4) === RGB_PAREN) {
426 rgb = RGB_REGEX.exec(color.replace(/ /g, ''));
427 return {
428 r: parseInt(rgb[1], 10),
429 g: parseInt(rgb[2], 10),
430 b: parseInt(rgb[3], 10),
431 };
432 }
433 else {
434 return {
435 r: 0,
436 g: 0,
437 b: 0,
438 };
439 }
440 },
441 colorToRGBA(str) {
442 str = str || 'black';
443 return (exports.Util._namedColorToRBA(str) ||
444 exports.Util._hex3ColorToRGBA(str) ||
445 exports.Util._hex4ColorToRGBA(str) ||
446 exports.Util._hex6ColorToRGBA(str) ||
447 exports.Util._hex8ColorToRGBA(str) ||
448 exports.Util._rgbColorToRGBA(str) ||
449 exports.Util._rgbaColorToRGBA(str) ||
450 exports.Util._hslColorToRGBA(str));
451 },
452 _namedColorToRBA(str) {
453 var c = COLORS[str.toLowerCase()];
454 if (!c) {
455 return null;
456 }
457 return {
458 r: c[0],
459 g: c[1],
460 b: c[2],
461 a: 1,
462 };
463 },
464 _rgbColorToRGBA(str) {
465 if (str.indexOf('rgb(') === 0) {
466 str = str.match(/rgb\(([^)]+)\)/)[1];
467 var parts = str.split(/ *, */).map(Number);
468 return {
469 r: parts[0],
470 g: parts[1],
471 b: parts[2],
472 a: 1,
473 };
474 }
475 },
476 _rgbaColorToRGBA(str) {
477 if (str.indexOf('rgba(') === 0) {
478 str = str.match(/rgba\(([^)]+)\)/)[1];
479 var parts = str.split(/ *, */).map((n, index) => {
480 if (n.slice(-1) === '%') {
481 return index === 3 ? parseInt(n) / 100 : (parseInt(n) / 100) * 255;
482 }
483 return Number(n);
484 });
485 return {
486 r: parts[0],
487 g: parts[1],
488 b: parts[2],
489 a: parts[3],
490 };
491 }
492 },
493 _hex8ColorToRGBA(str) {
494 if (str[0] === '#' && str.length === 9) {
495 return {
496 r: parseInt(str.slice(1, 3), 16),
497 g: parseInt(str.slice(3, 5), 16),
498 b: parseInt(str.slice(5, 7), 16),
499 a: parseInt(str.slice(7, 9), 16) / 0xff,
500 };
501 }
502 },
503 _hex6ColorToRGBA(str) {
504 if (str[0] === '#' && str.length === 7) {
505 return {
506 r: parseInt(str.slice(1, 3), 16),
507 g: parseInt(str.slice(3, 5), 16),
508 b: parseInt(str.slice(5, 7), 16),
509 a: 1,
510 };
511 }
512 },
513 _hex4ColorToRGBA(str) {
514 if (str[0] === '#' && str.length === 5) {
515 return {
516 r: parseInt(str[1] + str[1], 16),
517 g: parseInt(str[2] + str[2], 16),
518 b: parseInt(str[3] + str[3], 16),
519 a: parseInt(str[4] + str[4], 16) / 0xff,
520 };
521 }
522 },
523 _hex3ColorToRGBA(str) {
524 if (str[0] === '#' && str.length === 4) {
525 return {
526 r: parseInt(str[1] + str[1], 16),
527 g: parseInt(str[2] + str[2], 16),
528 b: parseInt(str[3] + str[3], 16),
529 a: 1,
530 };
531 }
532 },
533 _hslColorToRGBA(str) {
534 if (/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.test(str)) {
535 const [_, ...hsl] = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(str);
536 const h = Number(hsl[0]) / 360;
537 const s = Number(hsl[1]) / 100;
538 const l = Number(hsl[2]) / 100;
539 let t2;
540 let t3;
541 let val;
542 if (s === 0) {
543 val = l * 255;
544 return {
545 r: Math.round(val),
546 g: Math.round(val),
547 b: Math.round(val),
548 a: 1,
549 };
550 }
551 if (l < 0.5) {
552 t2 = l * (1 + s);
553 }
554 else {
555 t2 = l + s - l * s;
556 }
557 const t1 = 2 * l - t2;
558 const rgb = [0, 0, 0];
559 for (let i = 0; i < 3; i++) {
560 t3 = h + (1 / 3) * -(i - 1);
561 if (t3 < 0) {
562 t3++;
563 }
564 if (t3 > 1) {
565 t3--;
566 }
567 if (6 * t3 < 1) {
568 val = t1 + (t2 - t1) * 6 * t3;
569 }
570 else if (2 * t3 < 1) {
571 val = t2;
572 }
573 else if (3 * t3 < 2) {
574 val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
575 }
576 else {
577 val = t1;
578 }
579 rgb[i] = val * 255;
580 }
581 return {
582 r: Math.round(rgb[0]),
583 g: Math.round(rgb[1]),
584 b: Math.round(rgb[2]),
585 a: 1,
586 };
587 }
588 },
589 haveIntersection(r1, r2) {
590 return !(r2.x > r1.x + r1.width ||
591 r2.x + r2.width < r1.x ||
592 r2.y > r1.y + r1.height ||
593 r2.y + r2.height < r1.y);
594 },
595 cloneObject(obj) {
596 var retObj = {};
597 for (var key in obj) {
598 if (this._isPlainObject(obj[key])) {
599 retObj[key] = this.cloneObject(obj[key]);
600 }
601 else if (this._isArray(obj[key])) {
602 retObj[key] = this.cloneArray(obj[key]);
603 }
604 else {
605 retObj[key] = obj[key];
606 }
607 }
608 return retObj;
609 },
610 cloneArray(arr) {
611 return arr.slice(0);
612 },
613 degToRad(deg) {
614 return deg * PI_OVER_DEG180;
615 },
616 radToDeg(rad) {
617 return rad * DEG180_OVER_PI;
618 },
619 _degToRad(deg) {
620 exports.Util.warn('Util._degToRad is removed. Please use public Util.degToRad instead.');
621 return exports.Util.degToRad(deg);
622 },
623 _radToDeg(rad) {
624 exports.Util.warn('Util._radToDeg is removed. Please use public Util.radToDeg instead.');
625 return exports.Util.radToDeg(rad);
626 },
627 _getRotation(radians) {
628 return Global_1.Konva.angleDeg ? exports.Util.radToDeg(radians) : radians;
629 },
630 _capitalize(str) {
631 return str.charAt(0).toUpperCase() + str.slice(1);
632 },
633 throw(str) {
634 throw new Error(KONVA_ERROR + str);
635 },
636 error(str) {
637 console.error(KONVA_ERROR + str);
638 },
639 warn(str) {
640 if (!Global_1.Konva.showWarnings) {
641 return;
642 }
643 console.warn(KONVA_WARNING + str);
644 },
645 each(obj, func) {
646 for (var key in obj) {
647 func(key, obj[key]);
648 }
649 },
650 _inRange(val, left, right) {
651 return left <= val && val < right;
652 },
653 _getProjectionToSegment(x1, y1, x2, y2, x3, y3) {
654 var x, y, dist;
655 var pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
656 if (pd2 == 0) {
657 x = x1;
658 y = y1;
659 dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);
660 }
661 else {
662 var u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;
663 if (u < 0) {
664 x = x1;
665 y = y1;
666 dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);
667 }
668 else if (u > 1.0) {
669 x = x2;
670 y = y2;
671 dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);
672 }
673 else {
674 x = x1 + u * (x2 - x1);
675 y = y1 + u * (y2 - y1);
676 dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);
677 }
678 }
679 return [x, y, dist];
680 },
681 _getProjectionToLine(pt, line, isClosed) {
682 var pc = exports.Util.cloneObject(pt);
683 var dist = Number.MAX_VALUE;
684 line.forEach(function (p1, i) {
685 if (!isClosed && i === line.length - 1) {
686 return;
687 }
688 var p2 = line[(i + 1) % line.length];
689 var proj = exports.Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);
690 var px = proj[0], py = proj[1], pdist = proj[2];
691 if (pdist < dist) {
692 pc.x = px;
693 pc.y = py;
694 dist = pdist;
695 }
696 });
697 return pc;
698 },
699 _prepareArrayForTween(startArray, endArray, isClosed) {
700 var n, start = [], end = [];
701 if (startArray.length > endArray.length) {
702 var temp = endArray;
703 endArray = startArray;
704 startArray = temp;
705 }
706 for (n = 0; n < startArray.length; n += 2) {
707 start.push({
708 x: startArray[n],
709 y: startArray[n + 1],
710 });
711 }
712 for (n = 0; n < endArray.length; n += 2) {
713 end.push({
714 x: endArray[n],
715 y: endArray[n + 1],
716 });
717 }
718 var newStart = [];
719 end.forEach(function (point) {
720 var pr = exports.Util._getProjectionToLine(point, start, isClosed);
721 newStart.push(pr.x);
722 newStart.push(pr.y);
723 });
724 return newStart;
725 },
726 _prepareToStringify(obj) {
727 var desc;
728 obj.visitedByCircularReferenceRemoval = true;
729 for (var key in obj) {
730 if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {
731 continue;
732 }
733 desc = Object.getOwnPropertyDescriptor(obj, key);
734 if (obj[key].visitedByCircularReferenceRemoval ||
735 exports.Util._isElement(obj[key])) {
736 if (desc.configurable) {
737 delete obj[key];
738 }
739 else {
740 return null;
741 }
742 }
743 else if (exports.Util._prepareToStringify(obj[key]) === null) {
744 if (desc.configurable) {
745 delete obj[key];
746 }
747 else {
748 return null;
749 }
750 }
751 }
752 delete obj.visitedByCircularReferenceRemoval;
753 return obj;
754 },
755 _assign(target, source) {
756 for (var key in source) {
757 target[key] = source[key];
758 }
759 return target;
760 },
761 _getFirstPointerId(evt) {
762 if (!evt.touches) {
763 return evt.pointerId || 999;
764 }
765 else {
766 return evt.changedTouches[0].identifier;
767 }
768 },
769 releaseCanvas(...canvases) {
770 if (!Global_1.Konva.releaseCanvasOnDestroy)
771 return;
772 canvases.forEach((c) => {
773 c.width = 0;
774 c.height = 0;
775 });
776 },
777 drawRoundedRectPath(context, width, height, cornerRadius) {
778 let topLeft = 0;
779 let topRight = 0;
780 let bottomLeft = 0;
781 let bottomRight = 0;
782 if (typeof cornerRadius === 'number') {
783 topLeft =
784 topRight =
785 bottomLeft =
786 bottomRight =
787 Math.min(cornerRadius, width / 2, height / 2);
788 }
789 else {
790 topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);
791 topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);
792 bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);
793 bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);
794 }
795 context.moveTo(topLeft, 0);
796 context.lineTo(width - topRight, 0);
797 context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);
798 context.lineTo(width, height - bottomRight);
799 context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);
800 context.lineTo(bottomLeft, height);
801 context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);
802 context.lineTo(0, topLeft);
803 context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);
804 },
805};
Note: See TracBrowser for help on using the repository browser.