pacem 0.40.0-cosa → 0.40.0-delphi
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/dist/css/pacem-dark-content.min.css +1 -1
- package/dist/css/pacem-dark-shell.min.css +1 -1
- package/dist/css/pacem-dark.min.css +1 -1
- package/dist/css/pacem-light-content.min.css +1 -1
- package/dist/css/pacem-light-shell.min.css +1 -1
- package/dist/css/pacem-light.min.css +1 -1
- package/dist/css/pacem-phousys-content.min.css +1 -1
- package/dist/css/pacem-phousys-shell.min.css +1 -1
- package/dist/css/pacem-phousys.min.css +1 -1
- package/dist/js/azure-maps.d.ts +1 -1
- package/dist/js/pacem-2d.d.ts +1 -1
- package/dist/js/pacem-2d.js +39 -26
- package/dist/js/pacem-2d.min.js +2 -2
- package/dist/js/pacem-3d.d.ts +18 -1
- package/dist/js/pacem-3d.js +211 -88
- package/dist/js/pacem-3d.min.js +2 -2
- package/dist/js/pacem-charts.d.ts +1 -1
- package/dist/js/pacem-charts.js +3 -3
- package/dist/js/pacem-charts.min.js +2 -2
- package/dist/js/pacem-cms.d.ts +1 -1
- package/dist/js/pacem-cms.js +96 -80
- package/dist/js/pacem-cms.min.js +2 -2
- package/dist/js/pacem-core.d.ts +1 -1
- package/dist/js/pacem-core.js +100 -68
- package/dist/js/pacem-core.min.js +2 -2
- package/dist/js/pacem-foundation.d.ts +1 -1
- package/dist/js/pacem-foundation.js +1 -1
- package/dist/js/pacem-foundation.min.js +1 -1
- package/dist/js/pacem-fx.d.ts +1 -1
- package/dist/js/pacem-fx.js +1 -1
- package/dist/js/pacem-fx.min.js +1 -1
- package/dist/js/pacem-logging.d.ts +1 -1
- package/dist/js/pacem-logging.js +1 -1
- package/dist/js/pacem-logging.min.js +1 -1
- package/dist/js/pacem-maps.d.ts +1 -1
- package/dist/js/pacem-maps.js +253 -234
- package/dist/js/pacem-maps.min.js +2 -2
- package/dist/js/pacem-media.d.ts +1 -1
- package/dist/js/pacem-media.js +9 -6
- package/dist/js/pacem-media.min.js +2 -2
- package/dist/js/pacem-networking.js +43 -30
- package/dist/js/pacem-networking.min.js +2 -2
- package/dist/js/pacem-numerical.d.ts +1 -1
- package/dist/js/pacem-numerical.js +1 -1
- package/dist/js/pacem-numerical.min.js +1 -1
- package/dist/js/pacem-plus.d.ts +1 -1
- package/dist/js/pacem-plus.js +82 -58
- package/dist/js/pacem-plus.min.js +2 -2
- package/dist/js/pacem-scaffolding.d.ts +8 -1
- package/dist/js/pacem-scaffolding.js +185 -147
- package/dist/js/pacem-scaffolding.min.js +2 -2
- package/dist/js/pacem-ui.d.ts +1 -1
- package/dist/js/pacem-ui.js +37 -24
- package/dist/js/pacem-ui.min.js +2 -2
- package/dist/js/swagger-types.d.ts +1 -1
- package/package.json +8 -6
package/dist/js/azure-maps.d.ts
CHANGED
package/dist/js/pacem-2d.d.ts
CHANGED
package/dist/js/pacem-2d.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.40.0-
|
|
2
|
+
* pacem v0.40.0-delphi (https://js.pacem.it)
|
|
3
3
|
* Copyright 2023 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
@@ -36,15 +36,16 @@ var Pacem;
|
|
|
36
36
|
Drawing.isUiObject = isUiObject;
|
|
37
37
|
class PresentationState {
|
|
38
38
|
static combine(lhs, rhs, precomputedMatrix = null) {
|
|
39
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
39
40
|
return {
|
|
40
|
-
opacity: (lhs.opacity
|
|
41
|
-
transformMatrix: precomputedMatrix
|
|
42
|
-
dashArray: lhs.dashArray
|
|
43
|
-
fill: lhs.fill
|
|
44
|
-
lineCap: lhs.lineCap
|
|
45
|
-
lineJoin: lhs.lineJoin
|
|
46
|
-
lineWidth: lhs.lineWidth
|
|
47
|
-
stroke: lhs.stroke
|
|
41
|
+
opacity: ((_a = lhs.opacity) !== null && _a !== void 0 ? _a : 1) * ((_b = rhs.opacity) !== null && _b !== void 0 ? _b : 1),
|
|
42
|
+
transformMatrix: precomputedMatrix !== null && precomputedMatrix !== void 0 ? precomputedMatrix : Pacem.Matrix2D.multiply(rhs.transformMatrix, lhs.transformMatrix),
|
|
43
|
+
dashArray: (_c = lhs.dashArray) !== null && _c !== void 0 ? _c : rhs.dashArray,
|
|
44
|
+
fill: (_d = lhs.fill) !== null && _d !== void 0 ? _d : rhs.fill,
|
|
45
|
+
lineCap: (_e = lhs.lineCap) !== null && _e !== void 0 ? _e : rhs.lineCap,
|
|
46
|
+
lineJoin: (_f = lhs.lineJoin) !== null && _f !== void 0 ? _f : rhs.lineJoin,
|
|
47
|
+
lineWidth: (_g = lhs.lineWidth) !== null && _g !== void 0 ? _g : rhs.lineWidth,
|
|
48
|
+
stroke: (_h = lhs.stroke) !== null && _h !== void 0 ? _h : rhs.stroke
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -204,7 +205,8 @@ var Pacem;
|
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
207
|
_updateTransformMatrix() {
|
|
207
|
-
|
|
208
|
+
var _a, _b, _c, _d, _e;
|
|
209
|
+
let rotation = DEG2RAD * ((_a = this.rotate) !== null && _a !== void 0 ? _a : 0), cos = Math.cos(rotation), sin = Math.sin(rotation), a = ((_b = this.scaleX) !== null && _b !== void 0 ? _b : 1) * cos, b = -sin, c = sin, d = ((_c = this.scaleY) !== null && _c !== void 0 ? _c : 1) * cos, e = (_d = this.translateX) !== null && _d !== void 0 ? _d : 0, f = (_e = this.translateY) !== null && _e !== void 0 ? _e : 0;
|
|
208
210
|
__classPrivateFieldSet(this, _UiElement_transformMatrix, { a, b, c, d, e, f }, "f");
|
|
209
211
|
}
|
|
210
212
|
/** @internal */
|
|
@@ -261,8 +263,8 @@ var Pacem;
|
|
|
261
263
|
__decorate([
|
|
262
264
|
Pacem.Watch({
|
|
263
265
|
emit: false, converter: {
|
|
264
|
-
convert: (attr) => attr
|
|
265
|
-
convertBack: (prop) => prop
|
|
266
|
+
convert: (attr) => attr === null || attr === void 0 ? void 0 : attr.split(',').map(i => parseInt(i)).filter(i => !Number.isNaN(i)),
|
|
267
|
+
convertBack: (prop) => prop === null || prop === void 0 ? void 0 : prop.join(',')
|
|
266
268
|
}
|
|
267
269
|
})
|
|
268
270
|
], PresentationElement.prototype, "dashArray", void 0);
|
|
@@ -351,8 +353,9 @@ var Pacem;
|
|
|
351
353
|
return null;
|
|
352
354
|
}
|
|
353
355
|
getShapeGeometry() {
|
|
354
|
-
|
|
355
|
-
const
|
|
356
|
+
var _a, _b;
|
|
357
|
+
const center = (_a = this.center) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
|
|
358
|
+
const r = (_b = this.radius) !== null && _b !== void 0 ? _b : 0, d = 2 * r, cx = center.x, cy = center.y;
|
|
356
359
|
return {
|
|
357
360
|
pathData: this.getPathData(), boundingRect: { x: cx - r, y: cy - r, width: d, height: d }, vertices: []
|
|
358
361
|
};
|
|
@@ -407,8 +410,9 @@ var Pacem;
|
|
|
407
410
|
return null;
|
|
408
411
|
}
|
|
409
412
|
getShapeGeometry() {
|
|
410
|
-
|
|
411
|
-
const
|
|
413
|
+
var _a, _b, _c;
|
|
414
|
+
const center = (_a = this.center) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
|
|
415
|
+
const a = (_b = this.rx) !== null && _b !== void 0 ? _b : 0, b = (_c = this.ry) !== null && _c !== void 0 ? _c : 0, cx = center.x, cy = center.y;
|
|
412
416
|
return {
|
|
413
417
|
pathData: this.getPathData(), boundingRect: { x: cx - a, y: cy - b, width: 2 * a, height: 2 * b }, vertices: []
|
|
414
418
|
};
|
|
@@ -652,7 +656,8 @@ var Pacem;
|
|
|
652
656
|
return null;
|
|
653
657
|
}
|
|
654
658
|
getShapeGeometry() {
|
|
655
|
-
|
|
659
|
+
var _a, _b, _c;
|
|
660
|
+
const c = (_a = this.center) !== null && _a !== void 0 ? _a : { x: 0, y: 0 }, r = (_b = this.radius) !== null && _b !== void 0 ? _b : 0, sides = (_c = this.sides) !== null && _c !== void 0 ? _c : 3, si = this.starIndent;
|
|
656
661
|
if (sides < 3) {
|
|
657
662
|
return Pacem.Drawing.Shape.empty();
|
|
658
663
|
}
|
|
@@ -731,7 +736,8 @@ var Pacem;
|
|
|
731
736
|
|
|
732
737
|
*/
|
|
733
738
|
function parseCornerRadius(radius) {
|
|
734
|
-
|
|
739
|
+
var _a;
|
|
740
|
+
const rx = radius[2], ry = (_a = radius[4]) !== null && _a !== void 0 ? _a : rx, type = radius[6] === 'cut' ? CornerType.Cut : CornerType.Rounded;
|
|
735
741
|
return { rx: parseCornerRadiusComponent(rx), ry: parseCornerRadiusComponent(ry), type };
|
|
736
742
|
}
|
|
737
743
|
function parseCornerRadiusComponent(radius) {
|
|
@@ -1135,6 +1141,7 @@ var Pacem;
|
|
|
1135
1141
|
window.addEventListener('touchend', this._panEndHandler, options);
|
|
1136
1142
|
}
|
|
1137
1143
|
propertyChangedCallback(name, old, val, first) {
|
|
1144
|
+
var _a;
|
|
1138
1145
|
super.propertyChangedCallback(name, old, val, first);
|
|
1139
1146
|
switch (name) {
|
|
1140
1147
|
case 'adapter':
|
|
@@ -1156,7 +1163,7 @@ var Pacem;
|
|
|
1156
1163
|
if (!Pacem.Utils.isNull(this.adapter)) {
|
|
1157
1164
|
this._invalidateSize();
|
|
1158
1165
|
}
|
|
1159
|
-
__classPrivateFieldSet(this, _Pacem2DElement_originalViewBox, __classPrivateFieldGet(this, _Pacem2DElement_originalViewBox, "f")
|
|
1166
|
+
__classPrivateFieldSet(this, _Pacem2DElement_originalViewBox, (_a = __classPrivateFieldGet(this, _Pacem2DElement_originalViewBox, "f")) !== null && _a !== void 0 ? _a : (this.viewbox || null), "f");
|
|
1160
1167
|
break;
|
|
1161
1168
|
case 'items':
|
|
1162
1169
|
this._buildUpDatasourceFromDOM();
|
|
@@ -1359,12 +1366,13 @@ var Pacem;
|
|
|
1359
1366
|
page: { x: 0, y: 0 }, screen: { x: 0, y: 0 }, client: { x: 0, y: 0 }
|
|
1360
1367
|
};
|
|
1361
1368
|
this._dragInitHandler = (evt) => {
|
|
1369
|
+
var _a;
|
|
1362
1370
|
const hitTarget = this._hitTarget;
|
|
1363
1371
|
if (Pacem.Utils.isNull(hitTarget) || !Pacem.Drawing.isUiObject(hitTarget) || !hitTarget.draggable) {
|
|
1364
1372
|
evt.preventDefault();
|
|
1365
1373
|
return;
|
|
1366
1374
|
}
|
|
1367
|
-
const args = evt.detail, drawable = hitTarget, initialMatrix = hitTarget.transformMatrix
|
|
1375
|
+
const args = evt.detail, drawable = hitTarget, initialMatrix = (_a = hitTarget.transformMatrix) !== null && _a !== void 0 ? _a : Pacem.Matrix2D.identity, parentMatrix = GETVAR(hitTarget, PARENT_MATRIX_VAR, Pacem.Matrix2D.identity);
|
|
1368
1376
|
args.data = {
|
|
1369
1377
|
item: drawable,
|
|
1370
1378
|
initialTransformMatrix: initialMatrix,
|
|
@@ -1677,7 +1685,8 @@ var Pacem;
|
|
|
1677
1685
|
}
|
|
1678
1686
|
}
|
|
1679
1687
|
_draw(scene, ctx, item, state, point) {
|
|
1680
|
-
|
|
1688
|
+
var _a;
|
|
1689
|
+
(_a = item.stage) !== null && _a !== void 0 ? _a : (item.stage = scene);
|
|
1681
1690
|
if (Pacem.Drawing.isDrawable(item)) {
|
|
1682
1691
|
if (item.hide) {
|
|
1683
1692
|
return;
|
|
@@ -1809,10 +1818,11 @@ var Pacem;
|
|
|
1809
1818
|
}
|
|
1810
1819
|
}
|
|
1811
1820
|
_drawText(ctx, item, point) {
|
|
1821
|
+
var _a;
|
|
1812
1822
|
const defaults = this.DefaultShapeValues;
|
|
1813
1823
|
const color = ctx.fillStyle = fallback(item.color, defaults.stroke);
|
|
1814
1824
|
const m = ctx.getTransform(), fontSize = item.fontSize > 0 ? `${item.fontSize}px` : __classPrivateFieldGet(this, _PacemCanvasAdapterElement_canvasCssStyle, "f").fontSize;
|
|
1815
|
-
ctx.font = `${fontSize} ${(item.fontFamily
|
|
1825
|
+
ctx.font = `${fontSize} ${((_a = item.fontFamily) !== null && _a !== void 0 ? _a : __classPrivateFieldGet(this, _PacemCanvasAdapterElement_canvasCssStyle, "f").fontFamily)}`;
|
|
1816
1826
|
ctx.textAlign = item.textAnchor === 'middle' ? 'center' : item.textAnchor;
|
|
1817
1827
|
ctx.fillText(item.text, item.anchor.x, item.anchor.y);
|
|
1818
1828
|
ctx.globalAlpha = fallback(item.opacity, 1);
|
|
@@ -1830,7 +1840,7 @@ var Pacem;
|
|
|
1830
1840
|
}
|
|
1831
1841
|
}
|
|
1832
1842
|
_drawShape(ctx, item, point) {
|
|
1833
|
-
if (Pacem.Utils.isNullOrEmpty(item
|
|
1843
|
+
if (Pacem.Utils.isNullOrEmpty(item === null || item === void 0 ? void 0 : item.pathData)) {
|
|
1834
1844
|
return;
|
|
1835
1845
|
}
|
|
1836
1846
|
ctx.beginPath();
|
|
@@ -1886,8 +1896,9 @@ var Pacem;
|
|
|
1886
1896
|
}
|
|
1887
1897
|
}
|
|
1888
1898
|
_drawMarker(ctx, marker, point, orientation) {
|
|
1899
|
+
var _a, _b;
|
|
1889
1900
|
const defaults = this.DefaultShapeValues;
|
|
1890
|
-
const refX = marker.ref
|
|
1901
|
+
const refX = ((_a = marker.ref) === null || _a === void 0 ? void 0 : _a.x) || 0, refY = ((_b = marker.ref) === null || _b === void 0 ? void 0 : _b.y) || 0;
|
|
1891
1902
|
const width = (marker.width || 1) * ctx.lineWidth, height = (marker.width || 1) * ctx.lineWidth;
|
|
1892
1903
|
let viewbox = marker.viewbox, stage = { x: 0, y: 0, width: width, height: height };
|
|
1893
1904
|
if (Pacem.Utils.isNull(viewbox)) {
|
|
@@ -1947,7 +1958,8 @@ var Pacem;
|
|
|
1947
1958
|
super(...arguments);
|
|
1948
1959
|
this._hitTarget = null;
|
|
1949
1960
|
this._dragInitHandler = (evt) => {
|
|
1950
|
-
|
|
1961
|
+
var _a;
|
|
1962
|
+
const args = evt.detail, el = args.element, drawable = GETVAR(el, DRAWABLE_VAR), stageTransformMatrix = drawable.stage.transformMatrix, initialMatrix = (_a = drawable.transformMatrix) !== null && _a !== void 0 ? _a : Pacem.Matrix2D.identity;
|
|
1951
1963
|
args.data = {
|
|
1952
1964
|
stageTransformMatrix, item: drawable,
|
|
1953
1965
|
initialTransformMatrix: initialMatrix
|
|
@@ -2200,6 +2212,7 @@ var Pacem;
|
|
|
2200
2212
|
}
|
|
2201
2213
|
}
|
|
2202
2214
|
_draw(scene, parent, items, flow, deepRedraw) {
|
|
2215
|
+
var _a;
|
|
2203
2216
|
const dict = this._items;
|
|
2204
2217
|
// children counter
|
|
2205
2218
|
let j = 0;
|
|
@@ -2208,7 +2221,7 @@ var Pacem;
|
|
|
2208
2221
|
}
|
|
2209
2222
|
if (!Pacem.Utils.isNullOrEmpty(items)) {
|
|
2210
2223
|
for (let item of items) {
|
|
2211
|
-
item.stage
|
|
2224
|
+
(_a = item.stage) !== null && _a !== void 0 ? _a : (item.stage = scene);
|
|
2212
2225
|
let el;
|
|
2213
2226
|
if (!dict.has(item)) {
|
|
2214
2227
|
el = this._buildSVGElement(item);
|
package/dist/js/pacem-2d.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.40.0-
|
|
2
|
+
* pacem v0.40.0-delphi (https://js.pacem.it)
|
|
3
3
|
* Copyright 2023 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
6
|
-
var Pacem,__decorate=this&&this.__decorate||function(t,e,i,r){var a,s=arguments.length,n=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,r);else for(var o=t.length-1;o>=0;o--)(a=t[o])&&(n=(s<3?a(n):s>3?a(e,i,n):a(e,i))||n);return s>3&&n&&Object.defineProperty(e,i,n),n},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(t,e,i,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(t,i):a?a.value=i:e.set(t,i),i},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)};!function(t){!function(e){var i;function r(e){return!t.Utils.isNull(e)&&"stage"in e}function a(t){return r(t)}e.isDrawable=r,e.isUiObject=a;e.PresentationState=class PresentationState{static combine(e,i,r=null){return{opacity:(e.opacity??1)*(i.opacity??1),transformMatrix:r??t.Matrix2D.multiply(i.transformMatrix,e.transformMatrix),dashArray:e.dashArray??i.dashArray,fill:e.fill??i.fill,lineCap:e.lineCap??i.lineCap,lineJoin:e.lineJoin??i.lineJoin,lineWidth:e.lineWidth??i.lineWidth,stroke:e.stroke??i.stroke}}},e.isPresentationObject=function(t){return a(t)&&("fill"in t||"transformMatrix"in t||"stroke"in t||"lineJoin"in t||"dashArray"in t||"lineWidth"in t||"opacity"in t||"lineCap"in t)},e.isShape=function(t){return a(t)&&"pathData"in t},e.isGroup=function(e){return a(e)&&"childDrawables"in e&&!t.Utils.isNullOrEmpty(e.childDrawables)},e.isText=function(t){return a(t)&&"text"in t&&"string"==typeof t.text},e.isImage=function(t){return a(t)&&"src"in t&&"string"==typeof t.src};class UI2DEvent extends t.CustomUIEvent{constructor(t,e,r,a){super(t,e,r),i.set(this,void 0),__classPrivateFieldSet(this,i,a,"f")}get transformMatrix(){return __classPrivateFieldGet(this,i,"f")}project(e={x:this.screenX,y:this.screenY}){return t.Matrix2D.multiply(e,__classPrivateFieldGet(this,i,"f"))}}i=new WeakMap,e.UI2DEvent=UI2DEvent;e.Shape=class Shape{static empty(){return{pathData:"",vertices:[],boundingRect:{x:0,y:0,width:0,height:0}}}};e.DragEvent=class DragEvent extends UI2DEvent{};e.DrawableEvent=class DrawableEvent extends UI2DEvent{constructor(t,e,i,r){super(t,{detail:e,bubbles:!0,cancelable:!0},i,r)}};e.StageEvent=class StageEvent extends UI2DEvent{constructor(t,e,i,r=e.transformMatrix){super(t,{detail:e,bubbles:!0,cancelable:!0},i,r)}}}(t.Drawing||(t.Drawing={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(i){var r,a,s;i.TAG_MIDDLE_NAME="2d",i.TWO_PI=2*Math.PI;const n=Math.PI/180;class Pacem2DAdapterElement extends e.PacemEventTarget{constructor(){super(...arguments),this.DefaultShapeValues={stroke:"#000",lineWidth:1,fill:"#fff"}}}i.Pacem2DAdapterElement=Pacem2DAdapterElement;class DrawableElement extends e.PacemCrossItemsContainerElement{validate(t){return!1}findContainer(){return this.parent||this.stage}get stage(){return this._scene=this._scene||t.CustomElementUtils.findAncestorOfType(this,i.Pacem2DElement)}get parent(){return this._drawableParent=this._drawableParent||t.CustomElementUtils.findAncestor(this,(t=>t instanceof DrawableElement))}disconnectedCallback(){delete this._scene,delete this._drawableParent,super.disconnectedCallback()}propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),"hide"===e){const e=this.stage;t.Utils.isNull(e)||e.draw(this)}}}__decorate([t.Watch({emit:!1,reflectBack:!0,converter:t.PropertyConverters.String})],DrawableElement.prototype,"tag",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],DrawableElement.prototype,"inert",void 0),i.DrawableElement=DrawableElement;class UiElement extends DrawableElement{constructor(){super(...arguments),r.set(this,t.Matrix2D.identity)}viewActivatedCallback(){super.viewActivatedCallback(),this._updateTransformMatrix()}propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),!a)switch(e){case"rotate":case"scaleX":case"scaleY":case"translateX":case"translateY":this._updateTransformMatrix();case"opacity":t.Utils.isNull(this.stage)||this.stage.draw(this)}}_updateTransformMatrix(){let t=n*(this.rotate??0),e=Math.cos(t),i=Math.sin(t),a=(this.scaleX??1)*e,s=-i,o=i,l=(this.scaleY??1)*e,c=this.translateX??0,h=this.translateY??0;__classPrivateFieldSet(this,r,{a:a,b:s,c:o,d:l,e:c,f:h},"f")}get transformMatrix(){const t=__classPrivateFieldGet(this,r,"f");return{a:t.a,b:t.b,c:t.c,d:t.d,e:t.e,f:t.f}}}r=new WeakMap,__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"rotate",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"scaleX",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"scaleY",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"translateX",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"translateY",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"opacity",void 0),i.UiElement=UiElement;class PresentationElement extends UiElement{propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),!a)switch(e){case"stroke":case"lineWidth":case"lineJoin":case"lineCap":case"dashArray":case"fill":t.Utils.isNull(this.stage)||this.stage.draw(this)}}}__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"stroke",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"fill",void 0),__decorate([t.Watch({emit:!1,converter:{convert:t=>t?.split(",").map((t=>parseInt(t))).filter((t=>!Number.isNaN(t))),convertBack:t=>t?.join(",")}})],PresentationElement.prototype,"dashArray",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],PresentationElement.prototype,"lineWidth",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"lineJoin",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"lineCap",void 0),i.PresentationElement=PresentationElement;class ShapeElement extends PresentationElement{constructor(){super(...arguments),a.set(this,void 0),s.set(this,void 0)}propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),!a&&"data"===e)t.Utils.isNull(this.stage)||this.stage.draw(this)}viewActivatedCallback(){super.viewActivatedCallback(),this.recomputeShape()}recomputeShape(){const{pathData:t,vertices:e,boundingRect:i}=this.getShapeGeometry();__classPrivateFieldSet(this,s,e,"f"),__classPrivateFieldSet(this,a,i,"f"),this.data=t}get pathData(){return this.data}get boundingRect(){return __classPrivateFieldGet(this,a,"f")}get vertices(){return __classPrivateFieldGet(this,s,"f")}}a=new WeakMap,s=new WeakMap,__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],ShapeElement.prototype,"data",void 0),i.ShapeElement=ShapeElement}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=i=class PacemCircleElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"center":case"radius":this.recomputeShape()}}getPathData(){const e=this.radius,r=this.center;return t.Utils.isNull(r)||t.Utils.isNull(e)?null:i.getPathData(r,e)}getShapeGeometry(){const t=this.center??{x:0,y:0},e=this.radius??0,i=2*e,r=t.x,a=t.y;return{pathData:this.getPathData(),boundingRect:{x:r-e,y:a-e,width:i,height:i},vertices:[]}}static getPathData(t={x:NaN,y:NaN},i=NaN){return e.PacemEllipseElement.getPathData(t,i,i)}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"center",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],r.prototype,"radius",void 0),r=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-circle"})],r),e.PacemCircleElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=i=class PacemEllipseElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"center":case"rx":case"ry":this.recomputeShape()}}getPathData(){const e=this.rx,r=this.ry,a=this.center;return t.Utils.isNull(a)||t.Utils.isNull(e)||t.Utils.isNull(r)?null:i.getPathData(a,e,r)}getShapeGeometry(){const t=this.center??{x:0,y:0},e=this.rx??0,i=this.ry??0,r=t.x,a=t.y;return{pathData:this.getPathData(),boundingRect:{x:r-e,y:a-i,width:2*e,height:2*i},vertices:[]}}static getPathData(t={x:NaN,y:NaN},e=NaN,i=NaN){const r=2*e;return`M ${t.x} ${t.y} m ${-e},0 a ${e},${i} 0 1,1 ${r},0 a ${e},${i} 0 1,1 ${-r},0`}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"center",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],r.prototype,"rx",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],r.prototype,"ry",void 0),r=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-ellipse"})],r),e.PacemEllipseElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=class PacemGroupElement extends e.PresentationElement{constructor(){super(...arguments),i.set(this,[])}validate(t){return t instanceof e.DrawableElement&&t.parent===this}get childDrawables(){return __classPrivateFieldGet(this,i,"f")}propertyChangedCallback(e,r,a,s){switch(super.propertyChangedCallback(e,r,a,s),e){case"items":case"datasource":__classPrivateFieldSet(this,i,a||[],"f");const e=this.stage;t.Utils.isNull(e)||e.draw(this,!0)}}};i=new WeakMap,__decorate([t.Watch({emit:!1})],r.prototype,"datasource",void 0),r=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-group"})],r),e.PacemGroupElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){let i=class PacemImageElement extends e.UiElement{propertyChangedCallback(e,i,r,a){if(!a)switch(e){case"src":case"x":case"y":case"width":case"height":t.Utils.isNull(this.stage)||this.stage.draw(this)}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"src",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"x",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"y",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"width",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"height",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-image"})],i),e.PacemImageElement=i}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=i=class PacemLineElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"from":case"to":this.recomputeShape()}}getShapeGeometry(){const e=this.from,i=this.to;if(t.Utils.isNull(e)||t.Utils.isNull(i))return t.Drawing.Shape.empty();const r=e.x,a=e.y,s=i.x,n=i.y,o={x:Math.min(r,s),y:Math.min(a,n),width:Math.abs(r-s),height:Math.abs(a-n)};return{pathData:this.getPathData(),vertices:[e,i],boundingRect:o}}getPathData(){const e=this.from,r=this.to;return t.Utils.isNull(e)||t.Utils.isNull(r)?null:i.getPathData(e,r)}static getPathData(t={x:NaN,y:NaN},e={x:NaN,y:NaN}){return`M ${t.x} ${t.y} L ${e.x} ${e.y}`}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"from",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"to",void 0),r=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-line"})],r),e.PacemLineElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){let i=class PacemPathElement extends e.ShapeElement{constructor(){super(...arguments),this.getPathData=()=>this.d}propertyChangedCallback(t,e,i,r){super.propertyChangedCallback(t,e,i,r),"d"===t&&this.recomputeShape()}getShapeGeometry(){return{pathData:this.getPathData(),boundingRect:null,vertices:[]}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"d",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-path"})],i),e.PacemPathElement=i}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i,r;let a=r=class PacemPolygonElement extends e.ShapeElement{constructor(){super(...arguments),i.set(this,[])}propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"radius":case"starIndent":case"sides":this.data=this.getPathData()}}get vertices(){return __classPrivateFieldGet(this,i,"f")}getPathData(){const e=this.sides,i=this.radius,a=this.center;return t.Utils.isNull(e)||t.Utils.isNull(i)?null:r.getPathData(a,i,e,this.starIndent)}getShapeGeometry(){const e=this.center??{x:0,y:0},i=this.radius??0,a=this.sides??3,s=this.starIndent;return a<3?t.Drawing.Shape.empty():r.getShapeGeometry(e,i,a,s)}static getShapeGeometry(t,e,i,r=0){const a={x:t.x,y:t.y-e};let s=`M ${a.x} ${a.y}`;const n=[a],o=2*Math.PI/i,l=.5*o,c=r>0,h=e*Math.cos(l);for(let a=1;a<i;a++){const i=a*o,d=t.x+Math.sin(i)*e,m=t.y-Math.cos(i)*e;if(c){const e=h*(1-r),a=i-l,o=t.x+Math.sin(a)*e,c=t.y-Math.cos(a)*e;s+=` L ${o} ${c} L ${d} ${m}`,n.push({x:o,y:c})}else s+=` L ${d} ${m}`;n.push({x:d,y:m})}if(c){const e=h*(1-r),i=2*Math.PI-l,a=t.x+Math.sin(i)*e,o=t.y-Math.cos(i)*e;s+=` L ${a} ${o}`,n.push({x:a,y:o})}n.push(a);const d=2*e;return{pathData:s+" Z",vertices:n,boundingRect:{x:a.x-e,y:a.y,width:d,height:d}}}static getPathData(t,e,i,a=0){const{pathData:s}=r.getShapeGeometry(t,e,i,a);return s}};i=new WeakMap,__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],a.prototype,"sides",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],a.prototype,"radius",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],a.prototype,"center",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],a.prototype,"starIndent",void 0),a=r=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-polygon"})],a),e.PacemPolygonElement=a}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;function r(t){const e=t[2],i=t[4]??e,r="cut"===t[6]?o.Cut:o.Rounded;return{rx:a(e),ry:a(i),type:r}}function a(t){return{value:parseFloat(t),unit:t.endsWith("%")?"pct":"u"}}function s(t){return`${t.value}${"pct"===t.unit?"%":""}`}const n=/(([\d\.]+%?)(\s*,?\s*([\d\.]+%?))?(\s+(cut|round))?)/g;let o;!function(t){t.Rounded="rounded",t.Cut="cut"}(o=e.CornerType||(e.CornerType={}));let l=i=class PacemRectElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){super.propertyChangedCallback(t,e,i,r),r||"x"!==t&&"y"!==t&&"w"!==t&&"h"!==t&&"r"!==t&&"cornerType"!==t||this.recomputeShape()}getPathData(){const e=this.x,r=this.y,a=this.w,s=this.h,n=this.r;return t.Utils.isNull(e)||t.Utils.isNull(r)||t.Utils.isNull(a)||t.Utils.isNull(s)?null:i.getPathData(e,r,a,s,n)}getShapeGeometry(){const t=this.x,e=this.y,i=t+this.w,r=e+this.h;return{pathData:this.getPathData(),vertices:[{x:t,y:e},{x:i,y:e},{x:i,y:r},{x:t,y:r}],boundingRect:{x:t,y:e,width:this.w,height:this.h}}}static getPathData(e=NaN,i=NaN,r=NaN,a=NaN,s=null){if(t.Utils.isNullOrEmpty(s))return`M ${e} ${i} h ${r} v ${a} h ${-r} z`;t.Utils.isArray(s)||(s=[s,s,s,s]);const n=s[0],o=s[1],l=s[2],c=s[3],h=t=>"pct"===t.unit?.01*t.value*r:t.value,d=t=>"pct"===t.unit?.01*t.value*a:t.value,m=h(n.rx),p=d(n.ry),u=h(o.rx),v=d(o.ry),g=h(l.rx),_=d(l.ry),f=h(c.rx),y=d(c.ry);let w=`M ${e+m},${i+p}`;if("cut"===n.type)w+=` l ${m},${-p}`;else w+=` a ${m} ${p} 0 0 1 ${m} ${-p}`;if(w+=" h "+(r-m-u),"cut"===o.type)w+=` l ${u},${v}`;else w+=` a ${u} ${v} 0 0 1 ${u} ${v}`;if(w+=" v "+(a-v-_),"cut"===l.type)w+=` l ${-g},${_}`;else w+=` a ${g} ${_} 0 0 1 ${-g} ${_}`;if(w+=" h "+-(r-g-f),"cut"===c.type)w+=` l ${-f},${-y}`;else w+=` a ${f} ${y} 0 0 1 ${-f} ${-y}`;return w+" z"}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"x",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"y",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"w",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"h",void 0),__decorate([t.Watch({emit:!1,converter:{convert:t=>function(t){let e;const i=[];for(;e=n.exec(t);)i.push(e);switch(i.length){case 1:const t=r(i[0]);return[t,t,t,t];case 4:return[r(i[0]),r(i[1]),r(i[2]),r(i[3])];default:return null}}(t),convertBack:t=>function(t){const e=t[0],i=t[1],r=t[2],a=t[3];return`${s(e.rx)},${s(e.ry)} ${s(i.rx)},${s(i.ry)} ${s(r.rx)},${s(r.ry)} ${s(a.rx)},${s(a.ry)}`}(t)}})],l.prototype,"r",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],l.prototype,"cornerType",void 0),l=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-rect"})],l),e.PacemRectElement=l}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(i){var r,a;const s=/^\s*[xX]\s*([Mm](in|ax|id))\s*[yY]\s*([Mm](in|ax|id))(\s+(none|slice|meet))?\s*$/,n={convert:t=>{const e=s.exec(t);return e&&e.length>=4?{x:e[1].toLowerCase(),y:e[3].toLowerCase(),slice:"slice"===e[6]}:"none"},convertBack:e=>t.Utils.isNull(e)||"string"==typeof e?"none":`xM${e.x.substr(1)}YM${e.y.substr(1)} ${e.slice?"slice":"meet"}`},o={panControl:!0,zoomControl:!0,panModifiers:[t.EventKeyModifier.AltKey],zoomModifiers:[t.EventKeyModifier.AltKey]};let l=class Pacem2DElement extends e.PacemItemsContainerElement{constructor(){super(...arguments),r.set(this,void 0),a.set(this,t.Matrix2D.identity),this._options=o,this._resizeHandler=e=>{this._size={width:e.detail.width,height:e.detail.height};const i=this.adapter;t.Utils.isNull(i)||this._invalidateSize()},this._zoomHandler=e=>{const i=this._options;if(i.zoomControl&&t.CustomEventUtils.matchModifiers(e,i.zoomModifiers)){t.avoidHandler(e);const i=1+.1*(e.deltaY<0?-1:1),r=t.Utils.offsetRect(e.currentTarget),a={x:e.clientX,y:e.clientY};this._zoom(i,r,a)}},this._panHandler=e=>{const i=this._panningStart,r=this._getPanPoint(e);if(!t.Utils.isNullOrEmpty(i&&i.point)&&!t.Utils.isNull(r)){t.avoidHandler(e);const a=i.factor,s=i.box,n=i.point;this.viewbox={x:s.x-a*(r.x-n.x),y:s.y-a*(r.y-n.y),width:s.width,height:s.height}}},this._panStartHandler=e=>{if(!this._options.panControl)return;const i=this._size,r=this.viewbox||{x:0,y:0,width:i.width,height:i.height},a=this._getPanPoint(e);if(a){t.avoidHandler(e),this._stage.style.pointerEvents="none";const s=this._getActualAspectRatio(),n=r.width/i.width,o=r.height/i.height,l=s.slice?Math.min(n,o):Math.max(n,o);this._panningStart={point:a,box:r,factor:l}}},this._panEndHandler=t=>{this._stage.style.pointerEvents="",this._panningStart=null}}get stage(){return this._stage}snapshot(e){const i=this.adapter;return t.Utils.isNull(i)?Promise.resolve(null):i.snapshot(this,e)}get transformMatrix(){return __classPrivateFieldGet(this,a,"f")}_transformMatrixScale(){const e=t.Utils.extend(this._size||t.Utils.offsetRect(this._stage),{x:0,y:0});var i=__classPrivateFieldGet(this,r,"f")||{x:0,y:0,width:e.width,height:e.height};const a=this.viewbox||i,s=this.aspectRatio||"none",n="none"===s?"stretch":s.slice?"cover":"contain";return t.Rect.findTransform(a,i,n).a}validate(e){return e instanceof i.DrawableElement&&t.Utils.isNull(e.parent)}draw(e,i=!1){const r=this.adapter;if(!this.disabled&&!t.Utils.isNull(r)){let t=new CustomEvent("predraw",{cancelable:!0});this.dispatchEvent(t),t.defaultPrevented||(r.draw(this,e,i),this.dispatchEvent(new CustomEvent("draw")))}}_drawDebounced(e,i=!1){!t.Utils.isNull(e)&&t.Drawing.isGroup(e)?this.draw(e,i):this.draw(e)}requestDraw(t,e=!1){this._drawDebounced(t,e)}_buildUpDatasourceFromDOM(){this.datasource=(this.items||[]).slice()}_getActualAspectRatio(){const t=this.aspectRatio||"none";return{x:"none"===t?"mid":t.x,y:"none"===t?"mid":t.y,slice:"none"!==t&&t.slice}}_zoomFromValue(e){const i=this._size;if(t.Utils.isNull(i))return;const a=t.Utils.extend(i,{x:0,y:0}),s=__classPrivateFieldGet(this,r,"f")||{x:0,y:0,width:i.width,height:i.height},n=this.viewbox||s,o=this.aspectRatio||"none",l="none"===o?"stretch":o.slice?"cover":"contain",c=t.Rect.findTransform(n,a,l),h=t.Rect.findTransform(s,a,l),d=c.a/(h.a*e);this._zoom(d)}_zoom(e,i,r){t.Utils.isNull(i)&&(i=t.Utils.offsetRect(this._stage)),t.Utils.isNull(r)&&(r={x:i.x+.5*i.width,y:i.y+.5*i.height});const a=this._size,s=this.viewbox||{x:0,y:0,width:a.width,height:a.height},n=Math.min(s.width,s.height),o=n*e,l=n*e;if(o>0&&l>0){const t=this._getActualAspectRatio(),e=t.x,a=t.y,n=t.slice,c=s.width/s.height,h=n?Math.max(i.width,i.height):Math.min(i.width,i.height);let d,m;switch(e){case"mid":d=(o-s.width)*(r.x-i.x-.5*(i.width-h))/(h*c);break;case"max":d=(o-s.width)*(r.x-i.x-(i.width-h))/(h*c);break;default:d=(o-s.width)*(r.x-i.x)/(h*c)}switch(a){case"mid":m=(l-s.height)*(r.y-i.y-.5*(i.height-h))/(h*c);break;case"max":m=(l-s.height)*(r.y-i.y-(i.height-h))/(h*c);break;default:m=(l-s.height)*(r.y-i.y)/(h*c)}const p=s.x-d,u=s.y-m;this.viewbox={x:p,y:u,width:o,height:l}}}_getPanPoint(e){const i=this._options;return e instanceof MouseEvent&&t.CustomEventUtils.matchModifiers(e,i.panModifiers)?t.CustomEventUtils.getEventCoordinates(e).page:null}_invalidateSize(){this.adapter.invalidateSize(this,this._size);const i=__classPrivateFieldGet(this,a,"f");__classPrivateFieldSet(this,a,this.adapter.getTransformMatrix(this),"f"),this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"transformMatrix",currentValue:__classPrivateFieldGet(this,a,"f"),oldValue:i})),this.zoom=this._transformMatrixScale(),this.dispatchEvent(new e.ResizeEvent(this._size))}viewActivatedCallback(){super.viewActivatedCallback();const e=this.adapter;t.Utils.isNull(e)||(e.initialize(this),this._invalidateSize(),this._drawDebounced());const i=this._resize;i.addEventListener(t.Components.ResizeEventName,this._resizeHandler,!1);const r=this._stage;i.target=r;const a={capture:!1,passive:!0};r.addEventListener("wheel",this._zoomHandler,!1),r.addEventListener("mousedown",this._panStartHandler,!1),r.addEventListener("touchstart",this._panStartHandler,a),window.addEventListener("mousemove",this._panHandler,!1),window.addEventListener("mouseup",this._panEndHandler,!1),window.addEventListener("touchmove",this._panHandler,a),window.addEventListener("touchend",this._panEndHandler,a)}propertyChangedCallback(e,i,a,s){switch(super.propertyChangedCallback(e,i,a,s),e){case"adapter":t.Utils.isNull(i)||i.dispose(this),t.Utils.isNull(a)||(a.initialize(this),this._invalidateSize(),this._drawDebounced());break;case"aspectRatio":t.Utils.isNull(this.adapter)||this._invalidateSize();break;case"viewbox":t.Utils.isNull(this.adapter)||this._invalidateSize(),__classPrivateFieldSet(this,r,__classPrivateFieldGet(this,r,"f")??(this.viewbox||null),"f");break;case"items":this._buildUpDatasourceFromDOM();break;case"zoom":a!==this._transformMatrixScale()&&this._zoomFromValue(a);break;case"options":this._options=t.Utils.extend({},o,a||{});break;case"disabled":case"datasource":this._drawDebounced()}}disconnectedCallback(){const e=this._resize,i=this._stage;t.Utils.isNull(e)||e.removeEventListener(t.Components.ResizeEventName,this._resizeHandler,!1),t.Utils.isNull(i)||(i.removeEventListener("wheel",this._zoomHandler,!1),i.removeEventListener("mousedown",this._panStartHandler,!1),i.removeEventListener("touchstart",this._panStartHandler),window.removeEventListener("mousemove",this._panHandler,!1),window.removeEventListener("mouseup",this._panEndHandler,!1),window.removeEventListener("touchmove",this._panHandler),window.removeEventListener("touchend",this._panEndHandler)),t.Utils.isNull(this.adapter)||this.adapter.dispose(this),super.disconnectedCallback()}};r=new WeakMap,a=new WeakMap,__decorate([t.Watch({converter:t.PropertyConverters.Element})],l.prototype,"adapter",void 0),__decorate([t.Watch({reflectBack:!0,converter:t.PropertyConverters.Rect})],l.prototype,"viewbox",void 0),__decorate([t.Watch({emit:!1,reflectBack:!0,converter:n})],l.prototype,"aspectRatio",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],l.prototype,"datasource",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],l.prototype,"options",void 0),__decorate([t.Watch({converter:t.PropertyConverters.Number})],l.prototype,"zoom",void 0),__decorate([t.ViewChild("."+t.PCSS+"-2d")],l.prototype,"_stage",void 0),__decorate([t.ViewChild(t.P+"-resize")],l.prototype,"_resize",void 0),__decorate([t.Debounce(!0)],l.prototype,"_drawDebounced",null),l=__decorate([t.CustomElement({tagName:t.P+"-"+i.TAG_MIDDLE_NAME,shadow:t.Defaults.USE_SHADOW_ROOT,template:`<${t.P}-resize></${t.P}-resize><div class="${t.PCSS}-2d"></div><${t.P}-content></${t.P}-content>`})],l),i.Pacem2DElement=l}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){let i=class PacemTextElement extends e.UiElement{propertyChangedCallback(e,i,r,a){if(!a)switch(e){case"text":case"color":case"fontFamily":case"fontSize":case"anchor":t.Utils.isNull(this.stage)||this.stage.draw(this)}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"text",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"color",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"fontFamily",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"fontSize",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],i.prototype,"anchor",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"textAnchor",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-text"})],i),e.PacemTextElement=i}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){e.AdapterUtils=class AdapterUtils{static stageDispatch(e,i,r){e instanceof EventTarget&&e.dispatchEvent(new t.Drawing.StageEvent("stage"+i,e,r,e.transformMatrix))}static itemDispatch(e,i,r){if(!t.Utils.isNull(e)){var a,s,n;r instanceof Event?s=r:a={item:e,offset:r},"string"==typeof i?n=i:(n=i.type,s=i.originalEvent);const l=e.stage.transformMatrix,c=()=>r instanceof Event?new t.Drawing.DrawableEvent(n,e,s,l):new t.Drawing.DragEvent(n,{detail:a,cancelable:n===t.UI.DragDropEventType.Init||n===t.UI.DragDropEventType.Drag},s,l),h=r instanceof Event?new t.Drawing.DrawableEvent("item"+n,e,s,l):new t.Drawing.DragEvent("item"+n,{detail:a,cancelable:n===t.UI.DragDropEventType.Init||n===t.UI.DragDropEventType.Drag},s,l);var o=!1;if(e instanceof EventTarget){const t=c();e.dispatchEvent(t),o=t.defaultPrevented}return e.stage.dispatchEvent(h),o||h.defaultPrevented}return!1}}}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;const r="pacem:2d-canvas-scene",a="pacem:2d-parent-matrix",s=t.CustomElementUtils.setAttachedPropertyValue,n=t.CustomElementUtils.getAttachedPropertyValue;function o(e){return"none"===e||t.Utils.isNullOrEmpty(e)}function l(e,i){return t.Utils.isNull(e)?i:e}let c=class PacemCanvasAdapterElement extends e.Pacem2DAdapterElement{constructor(){super(...arguments),i.set(this,void 0),this._pointer={page:{x:0,y:0},screen:{x:0,y:0},client:{x:0,y:0}},this._dragInitHandler=i=>{const r=this._hitTarget;if(t.Utils.isNull(r)||!t.Drawing.isUiObject(r)||!r.draggable)return void i.preventDefault();const s=i.detail,o=r,l=r.transformMatrix??t.Matrix2D.identity,c=n(r,a,t.Matrix2D.identity);s.data={item:o,initialTransformMatrix:l,parentMatrix:c};e.AdapterUtils.itemDispatch(o,i,{x:0,y:0})&&i.preventDefault()},this._draggingHandler=i=>{t.avoidHandler(i),this._dragging=!0;const r=i.detail,a=r.data,s=r.currentPosition.x-r.origin.x,n=r.currentPosition.y-r.origin.y,o={x:s*a.parentMatrix.a+a.initialTransformMatrix.e,y:n*a.parentMatrix.d+a.initialTransformMatrix.f},l=a.item.stage.transformMatrix;if(!e.AdapterUtils.itemDispatch(a.item,i,{x:s*l.a+l.e,y:n*l.d+l.f}))if(a.item instanceof t.Components.Drawing.UiElement)a.item.translateX=o.x,a.item.translateY=o.y;else{const e=a.initialTransformMatrix,i={a:e.a,b:e.b,c:e.c,d:e.d,e:o.x,f:o.y};t.Utils.extend(a.item,{transformMatrix:i})}},this._dragEndHandler=t=>{this._dragging=!1;const i=t.detail.data,r=i.item.transformMatrix;e.AdapterUtils.itemDispatch(i.item,t,{x:r.e,y:r.f})},this._mousemoveHandler=i=>{this._scopeEvent=i,this._pointer=t.CustomEventUtils.getEventCoordinates(i);const a=i.srcElement,s=n(a,r);this._requestDraw(s),this._dragging||t.Utils.isNull(this._hitTarget)||e.AdapterUtils.stageDispatch(s,"move",i)},this._mouseDownUpHandler=i=>{this._scopeEvent=i,this._pointer=t.CustomEventUtils.getEventCoordinates(i);const a=i.target;if(a instanceof HTMLCanvasElement){const s=n(a,r),o=this._hitTarget,l=i.type.replace(/^(mouse|touch)/,""),c="end"===l?"click":l;t.Utils.isNull(o)||o.stage!==s?e.AdapterUtils.stageDispatch(s,c,i):e.AdapterUtils.itemDispatch(this._hitTarget,c,i)}},this._scenes=new WeakMap,this._handles=new WeakMap}snapshot(e,i){const r=this._scenes;if(r.has(e)){const a=r.get(e).context.canvas;return t.Utils.snapshotElement(a,i)}return Promise.resolve(null)}getCanvas(t){const e=this._scenes;if(e.has(t)){return e.get(t).context.canvas}return null}_getScreenInverseMatrix(e,i){return t.Matrix2D.invert({a:e.a,b:e.b,c:e.c,d:e.d,e:e.e+i.x,f:e.f+i.y})}getTransformMatrix(e){const i=this._scenes;return i.has(e)?i.get(e).screenInverseMatrix:t.Matrix2D.identity}viewActivatedCallback(){super.viewActivatedCallback();const e=this._dragger=document.createElement(t.P+"-drag-drop");e.mode=t.UI.DragDataMode.Copy,e.dropBehavior=t.UI.DropBehavior.None,e.spillBehavior=t.UI.DropTargetMissedBehavior.None;const i=document.createElement("div");i.hidden=!0,e.floater=i;t.CustomElementUtils.findAncestorShell(this).appendChild(e),e.addEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.addEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.addEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1)}disconnectedCallback(){const e=this._dragger;t.Utils.isNull(e)||(e.removeEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.removeEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.removeEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1),e.remove()),super.disconnectedCallback()}invalidateSize(e,i){const r=this._scenes;if(!t.Utils.isNull(e)&&!t.Utils.isNullOrEmpty(i)&&r.has(e)){const a=r.get(e),s=a.context;s.canvas.width=i.width,s.canvas.height=i.height;const n=a.offset=t.Utils.offsetRect(s.canvas),o={x:0,y:0,width:i.width,height:i.height},l=e.aspectRatio,c=e.viewbox;if(t.Utils.isNullOrEmpty(c))a.transformMatrix=t.Matrix2D.identity;else{let e="contain",i="center",r="middle";if("object"==typeof l){switch(e=l.slice?"cover":"contain",l.x){case"min":i="left";break;case"max":i="right"}switch(l.y){case"min":r="top";break;case"max":r="bottom"}}const s=t.Rect.findTransform({x:0,y:0,width:c.width,height:c.height},o,e,i,r),h=t.Matrix2D.translate(s,{x:-s.a*c.x,y:-s.a*c.y});a.transformMatrix=h,a.screenInverseMatrix=this._getScreenInverseMatrix(h,n)}}this._requestDraw(e)}getHitTarget(e){const i=this._hitTarget;return t.Utils.isNull(i)||i.stage!==e?null:i}initialize(e){if(t.Utils.isNull(e))throw"Provided scene is null or undefined.";const i=this._scenes,a=this._dragger;if(i.has(e)){const r=i.get(e).context.canvas;return t.Utils.isNull(a)||a.register(r),r}const n=e.stage;n.innerHTML="";const o=document.createElement("canvas");s(o,r,e);const l=o.getContext("2d");return o.addEventListener("mousemove",this._mousemoveHandler,!1),o.addEventListener("touchstart",this._mouseDownUpHandler,{passive:!0}),o.addEventListener("touchmove",this._mouseDownUpHandler,{passive:!0}),o.addEventListener("touchend",this._mouseDownUpHandler,{passive:!0}),o.addEventListener("click",this._mouseDownUpHandler,!1),o.addEventListener("mousedown",this._mouseDownUpHandler,!1),o.addEventListener("mouseup",this._mouseDownUpHandler,!1),n.appendChild(o),i.set(e,{context:l,transformMatrix:t.Matrix2D.identity,offset:t.Utils.offsetRect(o),screenInverseMatrix:t.Matrix2D.identity}),t.Utils.isNull(a)||a.register(o),o}dispose(e){const i=this._scenes;if(i.has(e)){var r=i.get(e).context.canvas;const a=this._dragger;t.Utils.isNull(a)||a.unregister(r),r.removeEventListener("click",this._mouseDownUpHandler,!1),r.removeEventListener("touchend",this._mouseDownUpHandler,!1),r.removeEventListener("mousedown",this._mouseDownUpHandler,!1),r.removeEventListener("mouseup",this._mouseDownUpHandler,!1),r.removeEventListener("touchstart",this._mouseDownUpHandler),r.removeEventListener("mousemove",this._mousemoveHandler,!1),r.remove(),i.delete(e)}}_requestDraw(t){const e=this._handles;e.has(t)&&cancelAnimationFrame(e.get(t));e.set(t,(()=>(this.draw(t),requestAnimationFrame((()=>{}))))())}draw(e){const r=this._scenes,a=this._handles;if(!t.Utils.isNull(e)){if(e.adapter!==this)return void(r.has(e)&&(r.delete(e),a.get(e)));if(!r.has(e))return void this.initialize(e);a.has(e)&&cancelAnimationFrame(a.get(e));const s=this._hitTarget,n=e.datasource||[];this._hitTarget=null;const o=r.get(e),l=o.context,c=l.canvas;__classPrivateFieldSet(this,i,getComputedStyle(c),"f"),l.resetTransform(),l.clearRect(0,0,c.width,c.height);const h=o.transformMatrix;l.setTransform(h);const d=this._pointer,m=o.offset,p={x:d.page.x-m.x,y:d.page.y-m.y};for(let t of n)this._draw(e,l,t,{transformMatrix:h},p);const u=this._hitTarget;u!=s&&(t.Utils.isNull(s)||(s instanceof Element&&s.dispatchEvent(new t.Drawing.DrawableEvent("out",s,this._scopeEvent,h)),e.dispatchEvent(new t.Drawing.DrawableEvent("itemout",s,this._scopeEvent,h))),t.Utils.isNull(u)||(u instanceof Element&&u.dispatchEvent(new t.Drawing.DrawableEvent("over",u,this._scopeEvent,h)),e.dispatchEvent(new t.Drawing.DrawableEvent("itemover",u,this._scopeEvent,h))))}}_draw(e,i,r,n,o){if(r.stage??=e,t.Drawing.isDrawable(r)&&r.hide)return;let l;t.Drawing.isUiObject(r)&&r.draggable&&!r.hide&&!r.inert&&s(r,a,i.getTransform().inverse()),t.Drawing.isUiObject(r)&&(l=r.transformMatrix,t.Utils.isNull(l)||t.Matrix2D.isIdentity(l)||i.transform(l.a,l.b,l.c,l.d,l.e,l.f));let c=n;if(t.Drawing.isPresentationObject(r)&&(c=t.Drawing.PresentationState.combine(r,n,i.getTransform()),this._setPresentationState(i,c)),t.Drawing.isShape(r))this._drawShape(i,r,o);else if(t.Drawing.isText(r))this._drawText(i,r,o);else if(t.Drawing.isImage(r))this._drawImage(i,r,o);else if(t.Drawing.isGroup(r))for(let t of r.childDrawables||[])this._draw(e,i,t,c,o);t.Drawing.isUiObject(r)&&r.draggable&&!r.hide&&!r.inert&&s(r,"pacem:2d-world-matrix",i.getTransform().inverse()),this._setPresentationState(i,n)}_setPresentationState(e,i){e.setTransform(i.transformMatrix),t.Utils.isNullOrEmpty(i.stroke)||o(i.stroke)?e.strokeStyle="transparent":e.strokeStyle=i.stroke,t.Utils.isNullOrEmpty(i.lineWidth)?e.lineWidth=0:e.lineWidth=i.lineWidth,t.Utils.isNullOrEmpty(i.dashArray)?e.setLineDash([]):e.setLineDash(i.dashArray),t.Utils.isNullOrEmpty(i.lineCap)?e.lineCap="butt":e.lineCap=i.lineCap,t.Utils.isNullOrEmpty(i.lineJoin)?e.lineJoin="miter":e.lineJoin=i.lineJoin,t.Utils.isNullOrEmpty(i.fill)||o(i.fill)?e.fillStyle="transparent":e.fillStyle=i.fill,t.Utils.isNullOrEmpty(i.opacity)?e.globalAlpha=1:e.globalAlpha=i.opacity}_drawImage(e,i,r){const a="pacem:2d-canvas-imagesrc";let o=n(i,a);const c=()=>{let a=o.naturalWidth,s=o.naturalHeight,n=i.width,c=i.height;if(n>0&&c>0||(n>0?c=s*n/a:c>0?n=a*c/s:(n=a,c=s)),!this._dragging&&!i.inert&&!t.Utils.isNull(r)){const t=new Path2D(`M ${i.x} ${i.y} h ${n} v ${c} H ${i.x} Z`);e.isPointInPath(t,r.x,r.y)&&(this._hitTarget=i)}e.globalAlpha=l(i.opacity,1),e.drawImage(o,i.x,i.y,n,c)};t.Utils.isNull(o)?(o=new Image,o.src=i.src,o.onload=()=>{s(i,a,o),c()}):c()}_drawText(e,r,a){const s=this.DefaultShapeValues,n=e.fillStyle=l(r.color,s.stroke),c=(e.getTransform(),r.fontSize>0?`${r.fontSize}px`:__classPrivateFieldGet(this,i,"f").fontSize);e.font=`${c} ${r.fontFamily??__classPrivateFieldGet(this,i,"f").fontFamily}`,e.textAlign="middle"===r.textAnchor?"center":r.textAnchor,e.fillText(r.text,r.anchor.x,r.anchor.y),e.globalAlpha=l(r.opacity,1);const h=!o(n);if(!this._dragging&&!r.inert&&!t.Utils.isNull(a)){const t=e.measureText(r.text),i=t.width,s=t.actualBoundingBoxAscent+t.actualBoundingBoxDescent,n=r.anchor.x-t.actualBoundingBoxLeft,o=r.anchor.y-t.actualBoundingBoxAscent,l=new Path2D(`M ${n} ${o} h ${i} v ${s} H ${n} z`);h&&e.isPointInPath(l,a.x,a.y)&&(this._hitTarget=r)}}_drawShape(e,i,r){if(t.Utils.isNullOrEmpty(i?.pathData))return;e.beginPath();const a="string"!=typeof e.fillStyle||!o(e.fillStyle),s="string"!=typeof e.strokeStyle||!o(e.strokeStyle);var n=new Path2D(i.pathData);this._dragging||i.inert||t.Utils.isNull(r)||(a&&e.isPointInPath(n,r.x,r.y)||s&&e.isPointInStroke(n,r.x,r.y))&&(this._hitTarget=i),s&&e.stroke(n),a&&e.fill(n);const l=!t.Utils.isNullOrEmpty(i.vertices)&&i.vertices.length>1,c=!t.Utils.isNull(i.markerEnd),h=!t.Utils.isNull(i.markerStart),d=!t.Utils.isNull(i.markerMid);if((c||d||h)&&(l||this.log(t.Logging.LogLevel.Warn,"Not enough vertices were explicited in order to make markers renderable.")),l){const t=e.getTransform();if(h){const t=i.markerEnd,r=i.vertices[1],a=i.vertices[0],s=Math.atan2(a.y-r.y,a.x-r.x);this._drawMarker(e,t,a,s)}if(d){const r=i.markerEnd;for(let a=1;a<i.vertices.length-1;a++){e.setTransform(t);const s=i.vertices[a],n=i.vertices[a+1],o=Math.atan2(n.y-s.y,n.x-s.x);this._drawMarker(e,r,n,o)}}if(c){e.setTransform(t);const r=i.markerEnd,a=i.vertices[i.vertices.length-2],s=i.vertices[i.vertices.length-1],n=Math.atan2(s.y-a.y,s.x-a.x);this._drawMarker(e,r,s,n)}}}_drawMarker(e,i,r,a){const s=this.DefaultShapeValues,n=i.ref?.x||0,c=i.ref?.y||0,h=(i.width||1)*e.lineWidth,d=(i.width||1)*e.lineWidth;let m=i.viewbox,p={x:0,y:0,width:h,height:d};t.Utils.isNull(m)&&(m=p);const u={a:p.width/m.width,d:p.height/m.height};e.translate(r.x,r.y),e.rotate(a),e.scale(u.a,u.d),e.translate(-n,-c),e.fillStyle=l(i.fill,s.fill),e.strokeStyle=l(i.stroke,s.stroke);const v=!o(i.fill),g=!o(i.stroke);var _=new Path2D(i.pathData);v&&e.fill(_),g&&e.stroke(_)}};i=new WeakMap,c=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-canvas-adapter"})],c),e.PacemCanvasAdapterElement=c}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){const i="http://www.w3.org/2000/svg",r="pacem:2-svg-drawable",a="pacem:2d-svg-stage",s=t.CustomElementUtils.getAttachedPropertyValue,n=t.CustomElementUtils.setAttachedPropertyValue,o=t.CustomElementUtils.deleteAttachedPropertyValue;function l(e,i){return t.Utils.isNull(e)?i:e}function c(t,e,i){return i>=t.children.length?(t.appendChild(e),null):t.replaceChild(e,t.children.item(i))}let h=class PacemSvgAdapterElement extends e.Pacem2DAdapterElement{constructor(){super(...arguments),this._hitTarget=null,this._dragInitHandler=i=>{const a=i.detail,n=a.element,o=s(n,r),l=o.stage.transformMatrix,c=o.transformMatrix??t.Matrix2D.identity;a.data={stageTransformMatrix:l,item:o,initialTransformMatrix:c};e.AdapterUtils.itemDispatch(o,i,{x:0,y:0})&&i.preventDefault()},this._draggingHandler=i=>{t.avoidHandler(i),this._dragging=!0;const r=i.detail.element,a=i.detail.data,s=i.detail,n=(s.currentPosition.x-s.origin.x)*a.stageTransformMatrix.a,o=(s.currentPosition.y-s.origin.y)*a.stageTransformMatrix.d,l=n+a.initialTransformMatrix.e,c=o+a.initialTransformMatrix.f,h={x:n+a.stageTransformMatrix.e,y:o+a.stageTransformMatrix.f};e.AdapterUtils.itemDispatch(a.item,i,h)||(r.style.transform=`matrix(1,0,0,1,${l},${c})`)},this._dragEndHandler=i=>{this._dragging=!1;const r=i.detail,a=r.element,s=r.data,n=t.Utils.deserializeTransform(a.style),o={x:n.e,y:n.f};if(s.item instanceof t.Components.Drawing.UiElement)s.item.translateX=n.e,s.item.translateY=n.f;else{const e=s.initialTransformMatrix,i={a:e.a,b:e.b,c:e.c,d:e.d,e:o.x,f:o.y};t.Utils.extend(s.item,{transformMatrix:i})}a.style.transform="",e.AdapterUtils.itemDispatch(s.item,i,{x:n.e,y:n.f})},this._mousemoveHandler=i=>{var n=t.CustomEventUtils.getEventCoordinates(i).client;if(!this._dragging){var o=null;document.elementsFromPoint(n.x,n.y).find((t=>(o=s(t,r))&&!o.inert));var l=this._hitTarget,c=o;(t.Utils.isNull(o&&o.stage)||!this._scenes.has(o.stage)||o.inert)&&(c=null);const h=this._hitTarget=c;if(c!==l&&(t.Utils.isNull(l)||(this._dragger.unregister(this._items.get(l)),e.AdapterUtils.itemDispatch(l,"out",i)),t.Utils.isNull(c)||(c.draggable&&this._dragger.register(this._items.get(c)),e.AdapterUtils.itemDispatch(c,"over",i))),t.Utils.isNull(h)){const r=i.currentTarget,n=s(r,a);t.Utils.isNull(n)||e.AdapterUtils.stageDispatch(n,"move",i)}}},this._mouseDownUpHandler=i=>{const r=i.currentTarget;if(r instanceof SVGSVGElement){const n=s(r,a),o=this._hitTarget,l=i.type.replace(/^mouse/,"");t.Utils.isNull(o)||o.stage!==n?e.AdapterUtils.stageDispatch(n,l,i):e.AdapterUtils.itemDispatch(this._hitTarget,l,i)}},this._scenes=new WeakMap,this._markers=new WeakMap,this._items=new WeakMap}snapshot(e,i){if(this._scenes.has(e)){const r=this._scenes.get(e);return t.Utils.snapshotElement(r,i)}return Promise.resolve(null)}getTransformMatrix(e){const i=this._scenes;return i.has(e)?i.get(e).getScreenCTM().inverse():t.Matrix2D.identity}viewActivatedCallback(){super.viewActivatedCallback();const e=this._dragger=document.createElement(t.P+"-drag-drop");e.mode=t.UI.DragDataMode.Self;t.CustomElementUtils.findAncestorShell(this).appendChild(e),e.addEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.addEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.addEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1)}disconnectedCallback(){const e=this._dragger;t.Utils.isNull(e)||(e.removeEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.removeEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.removeEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1),e.remove()),super.disconnectedCallback()}invalidateSize(e,i){const r=this._scenes;if(!t.Utils.isNull(e)&&!t.Utils.isNullOrEmpty(i)&&r.has(e)){var a=r.get(e);a.setAttribute("width",i.width+""),a.setAttribute("height",i.height+"");const s=e.viewbox,n=e.aspectRatio;t.Utils.isNullOrEmpty(s)?a.removeAttribute("viewBox"):a.setAttribute("viewBox",`${s.x} ${s.y} ${s.width} ${s.height}`),t.Utils.isNullOrEmpty(n)||"string"==typeof n?a.removeAttribute("preserveAspectRatio"):a.setAttribute("preserveAspectRatio",`xM${n.x.substr(1)}YM${n.y.substr(1)} ${n.slice?"slice":"meet"}`)}}initialize(e){if(t.Utils.isNull(e))throw"Provided scene is null or undefined.";const r=this._scenes;if(r.has(e))return r.get(e);const s=e.stage;s.innerHTML="",this._items=new WeakMap;var o=document.createElementNS(i,"svg");n(o,a,e),s.appendChild(o),r.set(e,o);return o.addEventListener("mousemove",this._mousemoveHandler,!1),o.addEventListener("click",this._mouseDownUpHandler,!1),o.addEventListener("mousedown",this._mouseDownUpHandler,!1),o.addEventListener("mouseup",this._mouseDownUpHandler,!1),o}dispose(t){const e=this._scenes;if(e.has(t)){var i=e.get(t);i.removeEventListener("mousemove",this._mousemoveHandler),i.removeEventListener("click",this._mouseDownUpHandler),i.removeEventListener("mousedown",this._mouseDownUpHandler),i.removeEventListener("mouseup",this._mouseDownUpHandler),o(i,a),i.remove(),e.delete(t)}}getHitTarget(t){return this._hitTarget}draw(e,i,r=!1){const a=this._scenes,s=this._items;if(!t.Utils.isNull(e))if(e.adapter===this){a.has(e)||this.initialize(e);var n=e.datasource,o=!0,l=a.get(e);t.Utils.isNull(i)||s.has(i)&&(n=[i],l=s.get(i).parentNode,o=!1),o&&(l.innerHTML="<defs></defs>",this._markers=new WeakMap),this._draw(e,l,n||[],o,r)}else a.has(e)&&a.delete(e)}_hasItems(e){return t.Drawing.isGroup(e)}_disposeSvg(e){if(!t.Utils.isNull(e)){var i=s(e,r);o(e,r),this._items.delete(i)}}_draw(e,i,a,s,o){const h=this._items;let d=0;if(i.firstElementChild instanceof SVGDefsElement&&d++,!t.Utils.isNullOrEmpty(a))for(let m of a){let a;if(m.stage??=e,h.has(m)?(a=h.get(m),a.parentNode!==i&&this._disposeSvg(c(i,a,d))):(a=this._buildSVGElement(m),n(a,r,m),this._disposeSvg(c(i,a,d)),h.set(m,a)),t.Drawing.isDrawable(m)&&(m.hide?a.setAttribute("display","none"):a.removeAttribute("display"),a.style.transform=""),t.Drawing.isShape(m)){const t=a;t.setAttribute("d",l(m.pathData,"M0,0"));for(let{marker:e,suffix:r}of[{marker:m.markerStart,suffix:"start"},{marker:m.markerEnd,suffix:"end"},{marker:m.markerMid,suffix:"mid"}])if(e){const a=this._ensureMarker(i,e);t.setAttribute("marker-"+r,`url(#${a.id})`)}else t.removeAttribute("marker-"+r)}else if(t.Drawing.isText(m)){const e=a;e.textContent=m.text,e.style.fill=t.Utils.isNullOrEmpty(m.color)?"":m.color,e.style.fontFamily=t.Utils.isNullOrEmpty(m.fontFamily)?"":m.fontFamily,e.style.fontSize=t.Utils.isNull(m.fontSize)?"":m.fontSize+"px",e.setAttribute("text-anchor",l(m.textAnchor,"start")),t.Utils.isNull(m.anchor)?(e.removeAttribute("x"),e.removeAttribute("y")):(e.setAttribute("x",m.anchor.x.toString()),e.setAttribute("y",m.anchor.y.toString()))}else if(t.Drawing.isImage(m)){const e=a;e.setAttribute("href",m.src),m.width>0?e.setAttribute("width",""+m.width):e.removeAttribute("width"),m.height>0?e.setAttribute("height",""+m.height):e.removeAttribute("height"),t.Utils.isNull(m.x)?e.removeAttribute("x"):e.setAttribute("x",""+m.x),t.Utils.isNull(m.y)?e.removeAttribute("y"):e.setAttribute("y",""+m.y)}if(t.Drawing.isUiObject(m)){const e=m.transformMatrix;t.Utils.isNull(e)||t.Matrix2D.isIdentity(e)?a.removeAttribute("transform"):a.setAttribute("transform",`matrix(${e.a} ${e.b} ${e.c} ${e.d} ${e.e} ${e.f})`);const i=l(m.opacity,1);1===i?a.removeAttribute("opacity"):a.setAttribute("opacity",""+i)}t.Drawing.isPresentationObject(m)&&(t.Utils.isNullOrEmpty(m.fill)?a.removeAttribute("fill"):a.setAttribute("fill",m.fill),t.Utils.isNullOrEmpty(m.stroke)?a.removeAttribute("stroke"):a.setAttribute("stroke",m.stroke),t.Utils.isNullOrEmpty(m.dashArray)?a.removeAttribute("stroke-dasharray"):a.setAttribute("stroke-dasharray",m.dashArray.join(" ")),t.Utils.isNullOrEmpty(m.lineCap)?a.removeAttribute("stroke-linecap"):a.setAttribute("stroke-linecap",m.lineCap),t.Utils.isNullOrEmpty(m.lineJoin)?a.removeAttribute("stroke-linejoin"):a.setAttribute("stroke-linejoin",m.lineJoin),t.Utils.isNullOrEmpty(m.lineWidth)?a.removeAttribute("stroke-width"):a.setAttribute("stroke-width",""+m.lineWidth)),m.inert?a.style.pointerEvents="none":a.style.pointerEvents="",(s||o)&&this._hasItems(m)&&this._draw(e,a,m.childDrawables,!0,o),d++}if(s)for(let t=i.children.length-1;t>=d;t--){const e=i.children.item(t);this._disposeSvg(e),e.remove()}}_buildSVGElement(e){return t.Drawing.isShape(e)?document.createElementNS(i,"path"):t.Drawing.isText(e)?document.createElementNS(i,"text"):t.Drawing.isImage(e)?document.createElementNS(i,"image"):document.createElementNS(i,"g")}_ensureMarker(e,r){const a=this._markers;a.has(e)||a.set(e,new WeakMap);const s=a.get(e);if(!s.has(r)){const a=document.createElementNS(i,"marker");s.set(r,a);const n=document.createElementNS(i,"path");a.appendChild(n),a.setAttribute("id","mark"+t.Utils.uniqueCode());let o,l=e;for(;t.Utils.isNull(o=l.querySelector(":scope > defs"));){const t=l.parentElement;if(!(t instanceof SVGElement))break;l=t}if(t.Utils.isNull(o))throw new Error("Must provide a <defs> element.");o.appendChild(a)}const n=s.get(r),o=n.firstElementChild;return n.setAttribute("orient","auto-start-reverse"),t.Utils.isNullOrEmpty(r.viewbox)?n.removeAttribute("viewBox"):n.setAttribute("viewBox",`${r.viewbox.x} ${r.viewbox.y} ${r.viewbox.width} ${r.viewbox.height}`),t.Utils.isNullOrEmpty(r.ref)?(n.removeAttribute("refX"),n.removeAttribute("refY")):(n.setAttribute("refX",r.ref.x.toString()),n.setAttribute("refY",r.ref.y.toString())),r.height>0?n.setAttribute("markerHeight",r.height.toString()):n.removeAttribute("markerHeight"),r.width>0?n.setAttribute("markerWidth",r.width.toString()):n.removeAttribute("markerWidth"),o.setAttribute("d",r.pathData),t.Utils.isNullOrEmpty(r.fill)?o.removeAttribute("fill"):o.setAttribute("fill",r.fill),t.Utils.isNullOrEmpty(r.stroke)?o.removeAttribute("stroke"):o.setAttribute("stroke",r.stroke),n}};h=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-svg-adapter"})],h),e.PacemSvgAdapterElement=h}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={}));
|
|
6
|
+
var Pacem,__decorate=this&&this.__decorate||function(t,e,i,r){var a,s=arguments.length,n=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,r);else for(var o=t.length-1;o>=0;o--)(a=t[o])&&(n=(s<3?a(n):s>3?a(e,i,n):a(e,i))||n);return s>3&&n&&Object.defineProperty(e,i,n),n},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(t,e,i,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(t,i):a?a.value=i:e.set(t,i),i},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)};!function(t){!function(e){var i;function r(e){return!t.Utils.isNull(e)&&"stage"in e}function a(t){return r(t)}e.isDrawable=r,e.isUiObject=a;e.PresentationState=class PresentationState{static combine(e,i,r=null){var a,s,n,o,l,c,h,d;return{opacity:(null!==(a=e.opacity)&&void 0!==a?a:1)*(null!==(s=i.opacity)&&void 0!==s?s:1),transformMatrix:null!=r?r:t.Matrix2D.multiply(i.transformMatrix,e.transformMatrix),dashArray:null!==(n=e.dashArray)&&void 0!==n?n:i.dashArray,fill:null!==(o=e.fill)&&void 0!==o?o:i.fill,lineCap:null!==(l=e.lineCap)&&void 0!==l?l:i.lineCap,lineJoin:null!==(c=e.lineJoin)&&void 0!==c?c:i.lineJoin,lineWidth:null!==(h=e.lineWidth)&&void 0!==h?h:i.lineWidth,stroke:null!==(d=e.stroke)&&void 0!==d?d:i.stroke}}},e.isPresentationObject=function(t){return a(t)&&("fill"in t||"transformMatrix"in t||"stroke"in t||"lineJoin"in t||"dashArray"in t||"lineWidth"in t||"opacity"in t||"lineCap"in t)},e.isShape=function(t){return a(t)&&"pathData"in t},e.isGroup=function(e){return a(e)&&"childDrawables"in e&&!t.Utils.isNullOrEmpty(e.childDrawables)},e.isText=function(t){return a(t)&&"text"in t&&"string"==typeof t.text},e.isImage=function(t){return a(t)&&"src"in t&&"string"==typeof t.src};class UI2DEvent extends t.CustomUIEvent{constructor(t,e,r,a){super(t,e,r),i.set(this,void 0),__classPrivateFieldSet(this,i,a,"f")}get transformMatrix(){return __classPrivateFieldGet(this,i,"f")}project(e={x:this.screenX,y:this.screenY}){return t.Matrix2D.multiply(e,__classPrivateFieldGet(this,i,"f"))}}i=new WeakMap,e.UI2DEvent=UI2DEvent;e.Shape=class Shape{static empty(){return{pathData:"",vertices:[],boundingRect:{x:0,y:0,width:0,height:0}}}};e.DragEvent=class DragEvent extends UI2DEvent{};e.DrawableEvent=class DrawableEvent extends UI2DEvent{constructor(t,e,i,r){super(t,{detail:e,bubbles:!0,cancelable:!0},i,r)}};e.StageEvent=class StageEvent extends UI2DEvent{constructor(t,e,i,r=e.transformMatrix){super(t,{detail:e,bubbles:!0,cancelable:!0},i,r)}}}(t.Drawing||(t.Drawing={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(i){var r,a,s;i.TAG_MIDDLE_NAME="2d",i.TWO_PI=2*Math.PI;const n=Math.PI/180;class Pacem2DAdapterElement extends e.PacemEventTarget{constructor(){super(...arguments),this.DefaultShapeValues={stroke:"#000",lineWidth:1,fill:"#fff"}}}i.Pacem2DAdapterElement=Pacem2DAdapterElement;class DrawableElement extends e.PacemCrossItemsContainerElement{validate(t){return!1}findContainer(){return this.parent||this.stage}get stage(){return this._scene=this._scene||t.CustomElementUtils.findAncestorOfType(this,i.Pacem2DElement)}get parent(){return this._drawableParent=this._drawableParent||t.CustomElementUtils.findAncestor(this,(t=>t instanceof DrawableElement))}disconnectedCallback(){delete this._scene,delete this._drawableParent,super.disconnectedCallback()}propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),"hide"===e){const e=this.stage;t.Utils.isNull(e)||e.draw(this)}}}__decorate([t.Watch({emit:!1,reflectBack:!0,converter:t.PropertyConverters.String})],DrawableElement.prototype,"tag",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],DrawableElement.prototype,"inert",void 0),i.DrawableElement=DrawableElement;class UiElement extends DrawableElement{constructor(){super(...arguments),r.set(this,t.Matrix2D.identity)}viewActivatedCallback(){super.viewActivatedCallback(),this._updateTransformMatrix()}propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),!a)switch(e){case"rotate":case"scaleX":case"scaleY":case"translateX":case"translateY":this._updateTransformMatrix();case"opacity":t.Utils.isNull(this.stage)||this.stage.draw(this)}}_updateTransformMatrix(){var t,e,i,a,s;let o=n*(null!==(t=this.rotate)&&void 0!==t?t:0),l=Math.cos(o),c=Math.sin(o),h=(null!==(e=this.scaleX)&&void 0!==e?e:1)*l,d=-c,m=c,p=(null!==(i=this.scaleY)&&void 0!==i?i:1)*l,u=null!==(a=this.translateX)&&void 0!==a?a:0,v=null!==(s=this.translateY)&&void 0!==s?s:0;__classPrivateFieldSet(this,r,{a:h,b:d,c:m,d:p,e:u,f:v},"f")}get transformMatrix(){const t=__classPrivateFieldGet(this,r,"f");return{a:t.a,b:t.b,c:t.c,d:t.d,e:t.e,f:t.f}}}r=new WeakMap,__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"rotate",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"scaleX",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"scaleY",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"translateX",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"translateY",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],UiElement.prototype,"opacity",void 0),i.UiElement=UiElement;class PresentationElement extends UiElement{propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),!a)switch(e){case"stroke":case"lineWidth":case"lineJoin":case"lineCap":case"dashArray":case"fill":t.Utils.isNull(this.stage)||this.stage.draw(this)}}}__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"stroke",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"fill",void 0),__decorate([t.Watch({emit:!1,converter:{convert:t=>null==t?void 0:t.split(",").map((t=>parseInt(t))).filter((t=>!Number.isNaN(t))),convertBack:t=>null==t?void 0:t.join(",")}})],PresentationElement.prototype,"dashArray",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],PresentationElement.prototype,"lineWidth",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"lineJoin",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],PresentationElement.prototype,"lineCap",void 0),i.PresentationElement=PresentationElement;class ShapeElement extends PresentationElement{constructor(){super(...arguments),a.set(this,void 0),s.set(this,void 0)}propertyChangedCallback(e,i,r,a){if(super.propertyChangedCallback(e,i,r,a),!a&&"data"===e)t.Utils.isNull(this.stage)||this.stage.draw(this)}viewActivatedCallback(){super.viewActivatedCallback(),this.recomputeShape()}recomputeShape(){const{pathData:t,vertices:e,boundingRect:i}=this.getShapeGeometry();__classPrivateFieldSet(this,s,e,"f"),__classPrivateFieldSet(this,a,i,"f"),this.data=t}get pathData(){return this.data}get boundingRect(){return __classPrivateFieldGet(this,a,"f")}get vertices(){return __classPrivateFieldGet(this,s,"f")}}a=new WeakMap,s=new WeakMap,__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],ShapeElement.prototype,"data",void 0),i.ShapeElement=ShapeElement}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=i=class PacemCircleElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"center":case"radius":this.recomputeShape()}}getPathData(){const e=this.radius,r=this.center;return t.Utils.isNull(r)||t.Utils.isNull(e)?null:i.getPathData(r,e)}getShapeGeometry(){var t,e;const i=null!==(t=this.center)&&void 0!==t?t:{x:0,y:0},r=null!==(e=this.radius)&&void 0!==e?e:0,a=2*r,s=i.x,n=i.y;return{pathData:this.getPathData(),boundingRect:{x:s-r,y:n-r,width:a,height:a},vertices:[]}}static getPathData(t={x:NaN,y:NaN},i=NaN){return e.PacemEllipseElement.getPathData(t,i,i)}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"center",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],r.prototype,"radius",void 0),r=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-circle"})],r),e.PacemCircleElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=i=class PacemEllipseElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"center":case"rx":case"ry":this.recomputeShape()}}getPathData(){const e=this.rx,r=this.ry,a=this.center;return t.Utils.isNull(a)||t.Utils.isNull(e)||t.Utils.isNull(r)?null:i.getPathData(a,e,r)}getShapeGeometry(){var t,e,i;const r=null!==(t=this.center)&&void 0!==t?t:{x:0,y:0},a=null!==(e=this.rx)&&void 0!==e?e:0,s=null!==(i=this.ry)&&void 0!==i?i:0,n=r.x,o=r.y;return{pathData:this.getPathData(),boundingRect:{x:n-a,y:o-s,width:2*a,height:2*s},vertices:[]}}static getPathData(t={x:NaN,y:NaN},e=NaN,i=NaN){const r=2*e;return`M ${t.x} ${t.y} m ${-e},0 a ${e},${i} 0 1,1 ${r},0 a ${e},${i} 0 1,1 ${-r},0`}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"center",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],r.prototype,"rx",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],r.prototype,"ry",void 0),r=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-ellipse"})],r),e.PacemEllipseElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=class PacemGroupElement extends e.PresentationElement{constructor(){super(...arguments),i.set(this,[])}validate(t){return t instanceof e.DrawableElement&&t.parent===this}get childDrawables(){return __classPrivateFieldGet(this,i,"f")}propertyChangedCallback(e,r,a,s){switch(super.propertyChangedCallback(e,r,a,s),e){case"items":case"datasource":__classPrivateFieldSet(this,i,a||[],"f");const e=this.stage;t.Utils.isNull(e)||e.draw(this,!0)}}};i=new WeakMap,__decorate([t.Watch({emit:!1})],r.prototype,"datasource",void 0),r=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-group"})],r),e.PacemGroupElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){let i=class PacemImageElement extends e.UiElement{propertyChangedCallback(e,i,r,a){if(!a)switch(e){case"src":case"x":case"y":case"width":case"height":t.Utils.isNull(this.stage)||this.stage.draw(this)}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"src",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"x",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"y",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"width",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"height",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-image"})],i),e.PacemImageElement=i}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;let r=i=class PacemLineElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"from":case"to":this.recomputeShape()}}getShapeGeometry(){const e=this.from,i=this.to;if(t.Utils.isNull(e)||t.Utils.isNull(i))return t.Drawing.Shape.empty();const r=e.x,a=e.y,s=i.x,n=i.y,o={x:Math.min(r,s),y:Math.min(a,n),width:Math.abs(r-s),height:Math.abs(a-n)};return{pathData:this.getPathData(),vertices:[e,i],boundingRect:o}}getPathData(){const e=this.from,r=this.to;return t.Utils.isNull(e)||t.Utils.isNull(r)?null:i.getPathData(e,r)}static getPathData(t={x:NaN,y:NaN},e={x:NaN,y:NaN}){return`M ${t.x} ${t.y} L ${e.x} ${e.y}`}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"from",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],r.prototype,"to",void 0),r=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-line"})],r),e.PacemLineElement=r}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){let i=class PacemPathElement extends e.ShapeElement{constructor(){super(...arguments),this.getPathData=()=>this.d}propertyChangedCallback(t,e,i,r){super.propertyChangedCallback(t,e,i,r),"d"===t&&this.recomputeShape()}getShapeGeometry(){return{pathData:this.getPathData(),boundingRect:null,vertices:[]}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"d",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-path"})],i),e.PacemPathElement=i}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i,r;let a=r=class PacemPolygonElement extends e.ShapeElement{constructor(){super(...arguments),i.set(this,[])}propertyChangedCallback(t,e,i,r){if(super.propertyChangedCallback(t,e,i,r),!r)switch(t){case"radius":case"starIndent":case"sides":this.data=this.getPathData()}}get vertices(){return __classPrivateFieldGet(this,i,"f")}getPathData(){const e=this.sides,i=this.radius,a=this.center;return t.Utils.isNull(e)||t.Utils.isNull(i)?null:r.getPathData(a,i,e,this.starIndent)}getShapeGeometry(){var e,i,a;const s=null!==(e=this.center)&&void 0!==e?e:{x:0,y:0},n=null!==(i=this.radius)&&void 0!==i?i:0,o=null!==(a=this.sides)&&void 0!==a?a:3,l=this.starIndent;return o<3?t.Drawing.Shape.empty():r.getShapeGeometry(s,n,o,l)}static getShapeGeometry(t,e,i,r=0){const a={x:t.x,y:t.y-e};let s=`M ${a.x} ${a.y}`;const n=[a],o=2*Math.PI/i,l=.5*o,c=r>0,h=e*Math.cos(l);for(let a=1;a<i;a++){const i=a*o,d=t.x+Math.sin(i)*e,m=t.y-Math.cos(i)*e;if(c){const e=h*(1-r),a=i-l,o=t.x+Math.sin(a)*e,c=t.y-Math.cos(a)*e;s+=` L ${o} ${c} L ${d} ${m}`,n.push({x:o,y:c})}else s+=` L ${d} ${m}`;n.push({x:d,y:m})}if(c){const e=h*(1-r),i=2*Math.PI-l,a=t.x+Math.sin(i)*e,o=t.y-Math.cos(i)*e;s+=` L ${a} ${o}`,n.push({x:a,y:o})}n.push(a);const d=2*e;return{pathData:s+" Z",vertices:n,boundingRect:{x:a.x-e,y:a.y,width:d,height:d}}}static getPathData(t,e,i,a=0){const{pathData:s}=r.getShapeGeometry(t,e,i,a);return s}};i=new WeakMap,__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],a.prototype,"sides",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],a.prototype,"radius",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],a.prototype,"center",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],a.prototype,"starIndent",void 0),a=r=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-polygon"})],a),e.PacemPolygonElement=a}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;function r(t){var e;const i=t[2],r=null!==(e=t[4])&&void 0!==e?e:i,s="cut"===t[6]?o.Cut:o.Rounded;return{rx:a(i),ry:a(r),type:s}}function a(t){return{value:parseFloat(t),unit:t.endsWith("%")?"pct":"u"}}function s(t){return`${t.value}${"pct"===t.unit?"%":""}`}const n=/(([\d\.]+%?)(\s*,?\s*([\d\.]+%?))?(\s+(cut|round))?)/g;let o;!function(t){t.Rounded="rounded",t.Cut="cut"}(o=e.CornerType||(e.CornerType={}));let l=i=class PacemRectElement extends e.ShapeElement{propertyChangedCallback(t,e,i,r){super.propertyChangedCallback(t,e,i,r),r||"x"!==t&&"y"!==t&&"w"!==t&&"h"!==t&&"r"!==t&&"cornerType"!==t||this.recomputeShape()}getPathData(){const e=this.x,r=this.y,a=this.w,s=this.h,n=this.r;return t.Utils.isNull(e)||t.Utils.isNull(r)||t.Utils.isNull(a)||t.Utils.isNull(s)?null:i.getPathData(e,r,a,s,n)}getShapeGeometry(){const t=this.x,e=this.y,i=t+this.w,r=e+this.h;return{pathData:this.getPathData(),vertices:[{x:t,y:e},{x:i,y:e},{x:i,y:r},{x:t,y:r}],boundingRect:{x:t,y:e,width:this.w,height:this.h}}}static getPathData(e=NaN,i=NaN,r=NaN,a=NaN,s=null){if(t.Utils.isNullOrEmpty(s))return`M ${e} ${i} h ${r} v ${a} h ${-r} z`;t.Utils.isArray(s)||(s=[s,s,s,s]);const n=s[0],o=s[1],l=s[2],c=s[3],h=t=>"pct"===t.unit?.01*t.value*r:t.value,d=t=>"pct"===t.unit?.01*t.value*a:t.value,m=h(n.rx),p=d(n.ry),u=h(o.rx),v=d(o.ry),g=h(l.rx),_=d(l.ry),f=h(c.rx),y=d(c.ry);let w=`M ${e+m},${i+p}`;if("cut"===n.type)w+=` l ${m},${-p}`;else w+=` a ${m} ${p} 0 0 1 ${m} ${-p}`;if(w+=" h "+(r-m-u),"cut"===o.type)w+=` l ${u},${v}`;else w+=` a ${u} ${v} 0 0 1 ${u} ${v}`;if(w+=" v "+(a-v-_),"cut"===l.type)w+=` l ${-g},${_}`;else w+=` a ${g} ${_} 0 0 1 ${-g} ${_}`;if(w+=" h "+-(r-g-f),"cut"===c.type)w+=` l ${-f},${-y}`;else w+=` a ${f} ${y} 0 0 1 ${-f} ${-y}`;return w+" z"}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"x",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"y",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"w",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],l.prototype,"h",void 0),__decorate([t.Watch({emit:!1,converter:{convert:t=>function(t){let e;const i=[];for(;e=n.exec(t);)i.push(e);switch(i.length){case 1:const t=r(i[0]);return[t,t,t,t];case 4:return[r(i[0]),r(i[1]),r(i[2]),r(i[3])];default:return null}}(t),convertBack:t=>function(t){const e=t[0],i=t[1],r=t[2],a=t[3];return`${s(e.rx)},${s(e.ry)} ${s(i.rx)},${s(i.ry)} ${s(r.rx)},${s(r.ry)} ${s(a.rx)},${s(a.ry)}`}(t)}})],l.prototype,"r",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],l.prototype,"cornerType",void 0),l=i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-rect"})],l),e.PacemRectElement=l}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(i){var r,a;const s=/^\s*[xX]\s*([Mm](in|ax|id))\s*[yY]\s*([Mm](in|ax|id))(\s+(none|slice|meet))?\s*$/,n={convert:t=>{const e=s.exec(t);return e&&e.length>=4?{x:e[1].toLowerCase(),y:e[3].toLowerCase(),slice:"slice"===e[6]}:"none"},convertBack:e=>t.Utils.isNull(e)||"string"==typeof e?"none":`xM${e.x.substr(1)}YM${e.y.substr(1)} ${e.slice?"slice":"meet"}`},o={panControl:!0,zoomControl:!0,panModifiers:[t.EventKeyModifier.AltKey],zoomModifiers:[t.EventKeyModifier.AltKey]};let l=class Pacem2DElement extends e.PacemItemsContainerElement{constructor(){super(...arguments),r.set(this,void 0),a.set(this,t.Matrix2D.identity),this._options=o,this._resizeHandler=e=>{this._size={width:e.detail.width,height:e.detail.height};const i=this.adapter;t.Utils.isNull(i)||this._invalidateSize()},this._zoomHandler=e=>{const i=this._options;if(i.zoomControl&&t.CustomEventUtils.matchModifiers(e,i.zoomModifiers)){t.avoidHandler(e);const i=1+.1*(e.deltaY<0?-1:1),r=t.Utils.offsetRect(e.currentTarget),a={x:e.clientX,y:e.clientY};this._zoom(i,r,a)}},this._panHandler=e=>{const i=this._panningStart,r=this._getPanPoint(e);if(!t.Utils.isNullOrEmpty(i&&i.point)&&!t.Utils.isNull(r)){t.avoidHandler(e);const a=i.factor,s=i.box,n=i.point;this.viewbox={x:s.x-a*(r.x-n.x),y:s.y-a*(r.y-n.y),width:s.width,height:s.height}}},this._panStartHandler=e=>{if(!this._options.panControl)return;const i=this._size,r=this.viewbox||{x:0,y:0,width:i.width,height:i.height},a=this._getPanPoint(e);if(a){t.avoidHandler(e),this._stage.style.pointerEvents="none";const s=this._getActualAspectRatio(),n=r.width/i.width,o=r.height/i.height,l=s.slice?Math.min(n,o):Math.max(n,o);this._panningStart={point:a,box:r,factor:l}}},this._panEndHandler=t=>{this._stage.style.pointerEvents="",this._panningStart=null}}get stage(){return this._stage}snapshot(e){const i=this.adapter;return t.Utils.isNull(i)?Promise.resolve(null):i.snapshot(this,e)}get transformMatrix(){return __classPrivateFieldGet(this,a,"f")}_transformMatrixScale(){const e=t.Utils.extend(this._size||t.Utils.offsetRect(this._stage),{x:0,y:0});var i=__classPrivateFieldGet(this,r,"f")||{x:0,y:0,width:e.width,height:e.height};const a=this.viewbox||i,s=this.aspectRatio||"none",n="none"===s?"stretch":s.slice?"cover":"contain";return t.Rect.findTransform(a,i,n).a}validate(e){return e instanceof i.DrawableElement&&t.Utils.isNull(e.parent)}draw(e,i=!1){const r=this.adapter;if(!this.disabled&&!t.Utils.isNull(r)){let t=new CustomEvent("predraw",{cancelable:!0});this.dispatchEvent(t),t.defaultPrevented||(r.draw(this,e,i),this.dispatchEvent(new CustomEvent("draw")))}}_drawDebounced(e,i=!1){!t.Utils.isNull(e)&&t.Drawing.isGroup(e)?this.draw(e,i):this.draw(e)}requestDraw(t,e=!1){this._drawDebounced(t,e)}_buildUpDatasourceFromDOM(){this.datasource=(this.items||[]).slice()}_getActualAspectRatio(){const t=this.aspectRatio||"none";return{x:"none"===t?"mid":t.x,y:"none"===t?"mid":t.y,slice:"none"!==t&&t.slice}}_zoomFromValue(e){const i=this._size;if(t.Utils.isNull(i))return;const a=t.Utils.extend(i,{x:0,y:0}),s=__classPrivateFieldGet(this,r,"f")||{x:0,y:0,width:i.width,height:i.height},n=this.viewbox||s,o=this.aspectRatio||"none",l="none"===o?"stretch":o.slice?"cover":"contain",c=t.Rect.findTransform(n,a,l),h=t.Rect.findTransform(s,a,l),d=c.a/(h.a*e);this._zoom(d)}_zoom(e,i,r){t.Utils.isNull(i)&&(i=t.Utils.offsetRect(this._stage)),t.Utils.isNull(r)&&(r={x:i.x+.5*i.width,y:i.y+.5*i.height});const a=this._size,s=this.viewbox||{x:0,y:0,width:a.width,height:a.height},n=Math.min(s.width,s.height),o=n*e,l=n*e;if(o>0&&l>0){const t=this._getActualAspectRatio(),e=t.x,a=t.y,n=t.slice,c=s.width/s.height,h=n?Math.max(i.width,i.height):Math.min(i.width,i.height);let d,m;switch(e){case"mid":d=(o-s.width)*(r.x-i.x-.5*(i.width-h))/(h*c);break;case"max":d=(o-s.width)*(r.x-i.x-(i.width-h))/(h*c);break;default:d=(o-s.width)*(r.x-i.x)/(h*c)}switch(a){case"mid":m=(l-s.height)*(r.y-i.y-.5*(i.height-h))/(h*c);break;case"max":m=(l-s.height)*(r.y-i.y-(i.height-h))/(h*c);break;default:m=(l-s.height)*(r.y-i.y)/(h*c)}const p=s.x-d,u=s.y-m;this.viewbox={x:p,y:u,width:o,height:l}}}_getPanPoint(e){const i=this._options;return e instanceof MouseEvent&&t.CustomEventUtils.matchModifiers(e,i.panModifiers)?t.CustomEventUtils.getEventCoordinates(e).page:null}_invalidateSize(){this.adapter.invalidateSize(this,this._size);const i=__classPrivateFieldGet(this,a,"f");__classPrivateFieldSet(this,a,this.adapter.getTransformMatrix(this),"f"),this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"transformMatrix",currentValue:__classPrivateFieldGet(this,a,"f"),oldValue:i})),this.zoom=this._transformMatrixScale(),this.dispatchEvent(new e.ResizeEvent(this._size))}viewActivatedCallback(){super.viewActivatedCallback();const e=this.adapter;t.Utils.isNull(e)||(e.initialize(this),this._invalidateSize(),this._drawDebounced());const i=this._resize;i.addEventListener(t.Components.ResizeEventName,this._resizeHandler,!1);const r=this._stage;i.target=r;const a={capture:!1,passive:!0};r.addEventListener("wheel",this._zoomHandler,!1),r.addEventListener("mousedown",this._panStartHandler,!1),r.addEventListener("touchstart",this._panStartHandler,a),window.addEventListener("mousemove",this._panHandler,!1),window.addEventListener("mouseup",this._panEndHandler,!1),window.addEventListener("touchmove",this._panHandler,a),window.addEventListener("touchend",this._panEndHandler,a)}propertyChangedCallback(e,i,a,s){var n;switch(super.propertyChangedCallback(e,i,a,s),e){case"adapter":t.Utils.isNull(i)||i.dispose(this),t.Utils.isNull(a)||(a.initialize(this),this._invalidateSize(),this._drawDebounced());break;case"aspectRatio":t.Utils.isNull(this.adapter)||this._invalidateSize();break;case"viewbox":t.Utils.isNull(this.adapter)||this._invalidateSize(),__classPrivateFieldSet(this,r,null!==(n=__classPrivateFieldGet(this,r,"f"))&&void 0!==n?n:this.viewbox||null,"f");break;case"items":this._buildUpDatasourceFromDOM();break;case"zoom":a!==this._transformMatrixScale()&&this._zoomFromValue(a);break;case"options":this._options=t.Utils.extend({},o,a||{});break;case"disabled":case"datasource":this._drawDebounced()}}disconnectedCallback(){const e=this._resize,i=this._stage;t.Utils.isNull(e)||e.removeEventListener(t.Components.ResizeEventName,this._resizeHandler,!1),t.Utils.isNull(i)||(i.removeEventListener("wheel",this._zoomHandler,!1),i.removeEventListener("mousedown",this._panStartHandler,!1),i.removeEventListener("touchstart",this._panStartHandler),window.removeEventListener("mousemove",this._panHandler,!1),window.removeEventListener("mouseup",this._panEndHandler,!1),window.removeEventListener("touchmove",this._panHandler),window.removeEventListener("touchend",this._panEndHandler)),t.Utils.isNull(this.adapter)||this.adapter.dispose(this),super.disconnectedCallback()}};r=new WeakMap,a=new WeakMap,__decorate([t.Watch({converter:t.PropertyConverters.Element})],l.prototype,"adapter",void 0),__decorate([t.Watch({reflectBack:!0,converter:t.PropertyConverters.Rect})],l.prototype,"viewbox",void 0),__decorate([t.Watch({emit:!1,reflectBack:!0,converter:n})],l.prototype,"aspectRatio",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],l.prototype,"datasource",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],l.prototype,"options",void 0),__decorate([t.Watch({converter:t.PropertyConverters.Number})],l.prototype,"zoom",void 0),__decorate([t.ViewChild("."+t.PCSS+"-2d")],l.prototype,"_stage",void 0),__decorate([t.ViewChild(t.P+"-resize")],l.prototype,"_resize",void 0),__decorate([t.Debounce(!0)],l.prototype,"_drawDebounced",null),l=__decorate([t.CustomElement({tagName:t.P+"-"+i.TAG_MIDDLE_NAME,shadow:t.Defaults.USE_SHADOW_ROOT,template:`<${t.P}-resize></${t.P}-resize><div class="${t.PCSS}-2d"></div><${t.P}-content></${t.P}-content>`})],l),i.Pacem2DElement=l}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){let i=class PacemTextElement extends e.UiElement{propertyChangedCallback(e,i,r,a){if(!a)switch(e){case"text":case"color":case"fontFamily":case"fontSize":case"anchor":t.Utils.isNull(this.stage)||this.stage.draw(this)}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"text",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"color",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"fontFamily",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],i.prototype,"fontSize",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],i.prototype,"anchor",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"textAnchor",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-text"})],i),e.PacemTextElement=i}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){e.AdapterUtils=class AdapterUtils{static stageDispatch(e,i,r){e instanceof EventTarget&&e.dispatchEvent(new t.Drawing.StageEvent("stage"+i,e,r,e.transformMatrix))}static itemDispatch(e,i,r){if(!t.Utils.isNull(e)){var a,s,n;r instanceof Event?s=r:a={item:e,offset:r},"string"==typeof i?n=i:(n=i.type,s=i.originalEvent);const l=e.stage.transformMatrix,c=()=>r instanceof Event?new t.Drawing.DrawableEvent(n,e,s,l):new t.Drawing.DragEvent(n,{detail:a,cancelable:n===t.UI.DragDropEventType.Init||n===t.UI.DragDropEventType.Drag},s,l),h=r instanceof Event?new t.Drawing.DrawableEvent("item"+n,e,s,l):new t.Drawing.DragEvent("item"+n,{detail:a,cancelable:n===t.UI.DragDropEventType.Init||n===t.UI.DragDropEventType.Drag},s,l);var o=!1;if(e instanceof EventTarget){const t=c();e.dispatchEvent(t),o=t.defaultPrevented}return e.stage.dispatchEvent(h),o||h.defaultPrevented}return!1}}}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){var i;const r="pacem:2d-canvas-scene",a="pacem:2d-parent-matrix",s=t.CustomElementUtils.setAttachedPropertyValue,n=t.CustomElementUtils.getAttachedPropertyValue;function o(e){return"none"===e||t.Utils.isNullOrEmpty(e)}function l(e,i){return t.Utils.isNull(e)?i:e}let c=class PacemCanvasAdapterElement extends e.Pacem2DAdapterElement{constructor(){super(...arguments),i.set(this,void 0),this._pointer={page:{x:0,y:0},screen:{x:0,y:0},client:{x:0,y:0}},this._dragInitHandler=i=>{var r;const s=this._hitTarget;if(t.Utils.isNull(s)||!t.Drawing.isUiObject(s)||!s.draggable)return void i.preventDefault();const o=i.detail,l=s,c=null!==(r=s.transformMatrix)&&void 0!==r?r:t.Matrix2D.identity,h=n(s,a,t.Matrix2D.identity);o.data={item:l,initialTransformMatrix:c,parentMatrix:h};e.AdapterUtils.itemDispatch(l,i,{x:0,y:0})&&i.preventDefault()},this._draggingHandler=i=>{t.avoidHandler(i),this._dragging=!0;const r=i.detail,a=r.data,s=r.currentPosition.x-r.origin.x,n=r.currentPosition.y-r.origin.y,o={x:s*a.parentMatrix.a+a.initialTransformMatrix.e,y:n*a.parentMatrix.d+a.initialTransformMatrix.f},l=a.item.stage.transformMatrix;if(!e.AdapterUtils.itemDispatch(a.item,i,{x:s*l.a+l.e,y:n*l.d+l.f}))if(a.item instanceof t.Components.Drawing.UiElement)a.item.translateX=o.x,a.item.translateY=o.y;else{const e=a.initialTransformMatrix,i={a:e.a,b:e.b,c:e.c,d:e.d,e:o.x,f:o.y};t.Utils.extend(a.item,{transformMatrix:i})}},this._dragEndHandler=t=>{this._dragging=!1;const i=t.detail.data,r=i.item.transformMatrix;e.AdapterUtils.itemDispatch(i.item,t,{x:r.e,y:r.f})},this._mousemoveHandler=i=>{this._scopeEvent=i,this._pointer=t.CustomEventUtils.getEventCoordinates(i);const a=i.srcElement,s=n(a,r);this._requestDraw(s),this._dragging||t.Utils.isNull(this._hitTarget)||e.AdapterUtils.stageDispatch(s,"move",i)},this._mouseDownUpHandler=i=>{this._scopeEvent=i,this._pointer=t.CustomEventUtils.getEventCoordinates(i);const a=i.target;if(a instanceof HTMLCanvasElement){const s=n(a,r),o=this._hitTarget,l=i.type.replace(/^(mouse|touch)/,""),c="end"===l?"click":l;t.Utils.isNull(o)||o.stage!==s?e.AdapterUtils.stageDispatch(s,c,i):e.AdapterUtils.itemDispatch(this._hitTarget,c,i)}},this._scenes=new WeakMap,this._handles=new WeakMap}snapshot(e,i){const r=this._scenes;if(r.has(e)){const a=r.get(e).context.canvas;return t.Utils.snapshotElement(a,i)}return Promise.resolve(null)}getCanvas(t){const e=this._scenes;if(e.has(t)){return e.get(t).context.canvas}return null}_getScreenInverseMatrix(e,i){return t.Matrix2D.invert({a:e.a,b:e.b,c:e.c,d:e.d,e:e.e+i.x,f:e.f+i.y})}getTransformMatrix(e){const i=this._scenes;return i.has(e)?i.get(e).screenInverseMatrix:t.Matrix2D.identity}viewActivatedCallback(){super.viewActivatedCallback();const e=this._dragger=document.createElement(t.P+"-drag-drop");e.mode=t.UI.DragDataMode.Copy,e.dropBehavior=t.UI.DropBehavior.None,e.spillBehavior=t.UI.DropTargetMissedBehavior.None;const i=document.createElement("div");i.hidden=!0,e.floater=i;t.CustomElementUtils.findAncestorShell(this).appendChild(e),e.addEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.addEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.addEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1)}disconnectedCallback(){const e=this._dragger;t.Utils.isNull(e)||(e.removeEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.removeEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.removeEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1),e.remove()),super.disconnectedCallback()}invalidateSize(e,i){const r=this._scenes;if(!t.Utils.isNull(e)&&!t.Utils.isNullOrEmpty(i)&&r.has(e)){const a=r.get(e),s=a.context;s.canvas.width=i.width,s.canvas.height=i.height;const n=a.offset=t.Utils.offsetRect(s.canvas),o={x:0,y:0,width:i.width,height:i.height},l=e.aspectRatio,c=e.viewbox;if(t.Utils.isNullOrEmpty(c))a.transformMatrix=t.Matrix2D.identity;else{let e="contain",i="center",r="middle";if("object"==typeof l){switch(e=l.slice?"cover":"contain",l.x){case"min":i="left";break;case"max":i="right"}switch(l.y){case"min":r="top";break;case"max":r="bottom"}}const s=t.Rect.findTransform({x:0,y:0,width:c.width,height:c.height},o,e,i,r),h=t.Matrix2D.translate(s,{x:-s.a*c.x,y:-s.a*c.y});a.transformMatrix=h,a.screenInverseMatrix=this._getScreenInverseMatrix(h,n)}}this._requestDraw(e)}getHitTarget(e){const i=this._hitTarget;return t.Utils.isNull(i)||i.stage!==e?null:i}initialize(e){if(t.Utils.isNull(e))throw"Provided scene is null or undefined.";const i=this._scenes,a=this._dragger;if(i.has(e)){const r=i.get(e).context.canvas;return t.Utils.isNull(a)||a.register(r),r}const n=e.stage;n.innerHTML="";const o=document.createElement("canvas");s(o,r,e);const l=o.getContext("2d");return o.addEventListener("mousemove",this._mousemoveHandler,!1),o.addEventListener("touchstart",this._mouseDownUpHandler,{passive:!0}),o.addEventListener("touchmove",this._mouseDownUpHandler,{passive:!0}),o.addEventListener("touchend",this._mouseDownUpHandler,{passive:!0}),o.addEventListener("click",this._mouseDownUpHandler,!1),o.addEventListener("mousedown",this._mouseDownUpHandler,!1),o.addEventListener("mouseup",this._mouseDownUpHandler,!1),n.appendChild(o),i.set(e,{context:l,transformMatrix:t.Matrix2D.identity,offset:t.Utils.offsetRect(o),screenInverseMatrix:t.Matrix2D.identity}),t.Utils.isNull(a)||a.register(o),o}dispose(e){const i=this._scenes;if(i.has(e)){var r=i.get(e).context.canvas;const a=this._dragger;t.Utils.isNull(a)||a.unregister(r),r.removeEventListener("click",this._mouseDownUpHandler,!1),r.removeEventListener("touchend",this._mouseDownUpHandler,!1),r.removeEventListener("mousedown",this._mouseDownUpHandler,!1),r.removeEventListener("mouseup",this._mouseDownUpHandler,!1),r.removeEventListener("touchstart",this._mouseDownUpHandler),r.removeEventListener("mousemove",this._mousemoveHandler,!1),r.remove(),i.delete(e)}}_requestDraw(t){const e=this._handles;e.has(t)&&cancelAnimationFrame(e.get(t));e.set(t,(()=>(this.draw(t),requestAnimationFrame((()=>{}))))())}draw(e){const r=this._scenes,a=this._handles;if(!t.Utils.isNull(e)){if(e.adapter!==this)return void(r.has(e)&&(r.delete(e),a.get(e)));if(!r.has(e))return void this.initialize(e);a.has(e)&&cancelAnimationFrame(a.get(e));const s=this._hitTarget,n=e.datasource||[];this._hitTarget=null;const o=r.get(e),l=o.context,c=l.canvas;__classPrivateFieldSet(this,i,getComputedStyle(c),"f"),l.resetTransform(),l.clearRect(0,0,c.width,c.height);const h=o.transformMatrix;l.setTransform(h);const d=this._pointer,m=o.offset,p={x:d.page.x-m.x,y:d.page.y-m.y};for(let t of n)this._draw(e,l,t,{transformMatrix:h},p);const u=this._hitTarget;u!=s&&(t.Utils.isNull(s)||(s instanceof Element&&s.dispatchEvent(new t.Drawing.DrawableEvent("out",s,this._scopeEvent,h)),e.dispatchEvent(new t.Drawing.DrawableEvent("itemout",s,this._scopeEvent,h))),t.Utils.isNull(u)||(u instanceof Element&&u.dispatchEvent(new t.Drawing.DrawableEvent("over",u,this._scopeEvent,h)),e.dispatchEvent(new t.Drawing.DrawableEvent("itemover",u,this._scopeEvent,h))))}}_draw(e,i,r,n,o){var l;if(null!==(l=r.stage)&&void 0!==l||(r.stage=e),t.Drawing.isDrawable(r)&&r.hide)return;let c;t.Drawing.isUiObject(r)&&r.draggable&&!r.hide&&!r.inert&&s(r,a,i.getTransform().inverse()),t.Drawing.isUiObject(r)&&(c=r.transformMatrix,t.Utils.isNull(c)||t.Matrix2D.isIdentity(c)||i.transform(c.a,c.b,c.c,c.d,c.e,c.f));let h=n;if(t.Drawing.isPresentationObject(r)&&(h=t.Drawing.PresentationState.combine(r,n,i.getTransform()),this._setPresentationState(i,h)),t.Drawing.isShape(r))this._drawShape(i,r,o);else if(t.Drawing.isText(r))this._drawText(i,r,o);else if(t.Drawing.isImage(r))this._drawImage(i,r,o);else if(t.Drawing.isGroup(r))for(let t of r.childDrawables||[])this._draw(e,i,t,h,o);t.Drawing.isUiObject(r)&&r.draggable&&!r.hide&&!r.inert&&s(r,"pacem:2d-world-matrix",i.getTransform().inverse()),this._setPresentationState(i,n)}_setPresentationState(e,i){e.setTransform(i.transformMatrix),t.Utils.isNullOrEmpty(i.stroke)||o(i.stroke)?e.strokeStyle="transparent":e.strokeStyle=i.stroke,t.Utils.isNullOrEmpty(i.lineWidth)?e.lineWidth=0:e.lineWidth=i.lineWidth,t.Utils.isNullOrEmpty(i.dashArray)?e.setLineDash([]):e.setLineDash(i.dashArray),t.Utils.isNullOrEmpty(i.lineCap)?e.lineCap="butt":e.lineCap=i.lineCap,t.Utils.isNullOrEmpty(i.lineJoin)?e.lineJoin="miter":e.lineJoin=i.lineJoin,t.Utils.isNullOrEmpty(i.fill)||o(i.fill)?e.fillStyle="transparent":e.fillStyle=i.fill,t.Utils.isNullOrEmpty(i.opacity)?e.globalAlpha=1:e.globalAlpha=i.opacity}_drawImage(e,i,r){const a="pacem:2d-canvas-imagesrc";let o=n(i,a);const c=()=>{let a=o.naturalWidth,s=o.naturalHeight,n=i.width,c=i.height;if(n>0&&c>0||(n>0?c=s*n/a:c>0?n=a*c/s:(n=a,c=s)),!this._dragging&&!i.inert&&!t.Utils.isNull(r)){const t=new Path2D(`M ${i.x} ${i.y} h ${n} v ${c} H ${i.x} Z`);e.isPointInPath(t,r.x,r.y)&&(this._hitTarget=i)}e.globalAlpha=l(i.opacity,1),e.drawImage(o,i.x,i.y,n,c)};t.Utils.isNull(o)?(o=new Image,o.src=i.src,o.onload=()=>{s(i,a,o),c()}):c()}_drawText(e,r,a){var s;const n=this.DefaultShapeValues,c=e.fillStyle=l(r.color,n.stroke),h=(e.getTransform(),r.fontSize>0?`${r.fontSize}px`:__classPrivateFieldGet(this,i,"f").fontSize);e.font=`${h} ${null!==(s=r.fontFamily)&&void 0!==s?s:__classPrivateFieldGet(this,i,"f").fontFamily}`,e.textAlign="middle"===r.textAnchor?"center":r.textAnchor,e.fillText(r.text,r.anchor.x,r.anchor.y),e.globalAlpha=l(r.opacity,1);const d=!o(c);if(!this._dragging&&!r.inert&&!t.Utils.isNull(a)){const t=e.measureText(r.text),i=t.width,s=t.actualBoundingBoxAscent+t.actualBoundingBoxDescent,n=r.anchor.x-t.actualBoundingBoxLeft,o=r.anchor.y-t.actualBoundingBoxAscent,l=new Path2D(`M ${n} ${o} h ${i} v ${s} H ${n} z`);d&&e.isPointInPath(l,a.x,a.y)&&(this._hitTarget=r)}}_drawShape(e,i,r){if(t.Utils.isNullOrEmpty(null==i?void 0:i.pathData))return;e.beginPath();const a="string"!=typeof e.fillStyle||!o(e.fillStyle),s="string"!=typeof e.strokeStyle||!o(e.strokeStyle);var n=new Path2D(i.pathData);this._dragging||i.inert||t.Utils.isNull(r)||(a&&e.isPointInPath(n,r.x,r.y)||s&&e.isPointInStroke(n,r.x,r.y))&&(this._hitTarget=i),s&&e.stroke(n),a&&e.fill(n);const l=!t.Utils.isNullOrEmpty(i.vertices)&&i.vertices.length>1,c=!t.Utils.isNull(i.markerEnd),h=!t.Utils.isNull(i.markerStart),d=!t.Utils.isNull(i.markerMid);if((c||d||h)&&(l||this.log(t.Logging.LogLevel.Warn,"Not enough vertices were explicited in order to make markers renderable.")),l){const t=e.getTransform();if(h){const t=i.markerEnd,r=i.vertices[1],a=i.vertices[0],s=Math.atan2(a.y-r.y,a.x-r.x);this._drawMarker(e,t,a,s)}if(d){const r=i.markerEnd;for(let a=1;a<i.vertices.length-1;a++){e.setTransform(t);const s=i.vertices[a],n=i.vertices[a+1],o=Math.atan2(n.y-s.y,n.x-s.x);this._drawMarker(e,r,n,o)}}if(c){e.setTransform(t);const r=i.markerEnd,a=i.vertices[i.vertices.length-2],s=i.vertices[i.vertices.length-1],n=Math.atan2(s.y-a.y,s.x-a.x);this._drawMarker(e,r,s,n)}}}_drawMarker(e,i,r,a){var s,n;const c=this.DefaultShapeValues,h=(null===(s=i.ref)||void 0===s?void 0:s.x)||0,d=(null===(n=i.ref)||void 0===n?void 0:n.y)||0,m=(i.width||1)*e.lineWidth,p=(i.width||1)*e.lineWidth;let u=i.viewbox,v={x:0,y:0,width:m,height:p};t.Utils.isNull(u)&&(u=v);const g={a:v.width/u.width,d:v.height/u.height};e.translate(r.x,r.y),e.rotate(a),e.scale(g.a,g.d),e.translate(-h,-d),e.fillStyle=l(i.fill,c.fill),e.strokeStyle=l(i.stroke,c.stroke);const _=!o(i.fill),f=!o(i.stroke);var y=new Path2D(i.pathData);_&&e.fill(y),f&&e.stroke(y)}};i=new WeakMap,c=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-canvas-adapter"})],c),e.PacemCanvasAdapterElement=c}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(e){const i="http://www.w3.org/2000/svg",r="pacem:2-svg-drawable",a="pacem:2d-svg-stage",s=t.CustomElementUtils.getAttachedPropertyValue,n=t.CustomElementUtils.setAttachedPropertyValue,o=t.CustomElementUtils.deleteAttachedPropertyValue;function l(e,i){return t.Utils.isNull(e)?i:e}function c(t,e,i){return i>=t.children.length?(t.appendChild(e),null):t.replaceChild(e,t.children.item(i))}let h=class PacemSvgAdapterElement extends e.Pacem2DAdapterElement{constructor(){super(...arguments),this._hitTarget=null,this._dragInitHandler=i=>{var a;const n=i.detail,o=n.element,l=s(o,r),c=l.stage.transformMatrix,h=null!==(a=l.transformMatrix)&&void 0!==a?a:t.Matrix2D.identity;n.data={stageTransformMatrix:c,item:l,initialTransformMatrix:h};e.AdapterUtils.itemDispatch(l,i,{x:0,y:0})&&i.preventDefault()},this._draggingHandler=i=>{t.avoidHandler(i),this._dragging=!0;const r=i.detail.element,a=i.detail.data,s=i.detail,n=(s.currentPosition.x-s.origin.x)*a.stageTransformMatrix.a,o=(s.currentPosition.y-s.origin.y)*a.stageTransformMatrix.d,l=n+a.initialTransformMatrix.e,c=o+a.initialTransformMatrix.f,h={x:n+a.stageTransformMatrix.e,y:o+a.stageTransformMatrix.f};e.AdapterUtils.itemDispatch(a.item,i,h)||(r.style.transform=`matrix(1,0,0,1,${l},${c})`)},this._dragEndHandler=i=>{this._dragging=!1;const r=i.detail,a=r.element,s=r.data,n=t.Utils.deserializeTransform(a.style),o={x:n.e,y:n.f};if(s.item instanceof t.Components.Drawing.UiElement)s.item.translateX=n.e,s.item.translateY=n.f;else{const e=s.initialTransformMatrix,i={a:e.a,b:e.b,c:e.c,d:e.d,e:o.x,f:o.y};t.Utils.extend(s.item,{transformMatrix:i})}a.style.transform="",e.AdapterUtils.itemDispatch(s.item,i,{x:n.e,y:n.f})},this._mousemoveHandler=i=>{var n=t.CustomEventUtils.getEventCoordinates(i).client;if(!this._dragging){var o=null;document.elementsFromPoint(n.x,n.y).find((t=>(o=s(t,r))&&!o.inert));var l=this._hitTarget,c=o;(t.Utils.isNull(o&&o.stage)||!this._scenes.has(o.stage)||o.inert)&&(c=null);const h=this._hitTarget=c;if(c!==l&&(t.Utils.isNull(l)||(this._dragger.unregister(this._items.get(l)),e.AdapterUtils.itemDispatch(l,"out",i)),t.Utils.isNull(c)||(c.draggable&&this._dragger.register(this._items.get(c)),e.AdapterUtils.itemDispatch(c,"over",i))),t.Utils.isNull(h)){const r=i.currentTarget,n=s(r,a);t.Utils.isNull(n)||e.AdapterUtils.stageDispatch(n,"move",i)}}},this._mouseDownUpHandler=i=>{const r=i.currentTarget;if(r instanceof SVGSVGElement){const n=s(r,a),o=this._hitTarget,l=i.type.replace(/^mouse/,"");t.Utils.isNull(o)||o.stage!==n?e.AdapterUtils.stageDispatch(n,l,i):e.AdapterUtils.itemDispatch(this._hitTarget,l,i)}},this._scenes=new WeakMap,this._markers=new WeakMap,this._items=new WeakMap}snapshot(e,i){if(this._scenes.has(e)){const r=this._scenes.get(e);return t.Utils.snapshotElement(r,i)}return Promise.resolve(null)}getTransformMatrix(e){const i=this._scenes;return i.has(e)?i.get(e).getScreenCTM().inverse():t.Matrix2D.identity}viewActivatedCallback(){super.viewActivatedCallback();const e=this._dragger=document.createElement(t.P+"-drag-drop");e.mode=t.UI.DragDataMode.Self;t.CustomElementUtils.findAncestorShell(this).appendChild(e),e.addEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.addEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.addEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1)}disconnectedCallback(){const e=this._dragger;t.Utils.isNull(e)||(e.removeEventListener(t.UI.DragDropEventType.Init,this._dragInitHandler,!1),e.removeEventListener(t.UI.DragDropEventType.Drag,this._draggingHandler,!1),e.removeEventListener(t.UI.DragDropEventType.End,this._dragEndHandler,!1),e.remove()),super.disconnectedCallback()}invalidateSize(e,i){const r=this._scenes;if(!t.Utils.isNull(e)&&!t.Utils.isNullOrEmpty(i)&&r.has(e)){var a=r.get(e);a.setAttribute("width",i.width+""),a.setAttribute("height",i.height+"");const s=e.viewbox,n=e.aspectRatio;t.Utils.isNullOrEmpty(s)?a.removeAttribute("viewBox"):a.setAttribute("viewBox",`${s.x} ${s.y} ${s.width} ${s.height}`),t.Utils.isNullOrEmpty(n)||"string"==typeof n?a.removeAttribute("preserveAspectRatio"):a.setAttribute("preserveAspectRatio",`xM${n.x.substr(1)}YM${n.y.substr(1)} ${n.slice?"slice":"meet"}`)}}initialize(e){if(t.Utils.isNull(e))throw"Provided scene is null or undefined.";const r=this._scenes;if(r.has(e))return r.get(e);const s=e.stage;s.innerHTML="",this._items=new WeakMap;var o=document.createElementNS(i,"svg");n(o,a,e),s.appendChild(o),r.set(e,o);return o.addEventListener("mousemove",this._mousemoveHandler,!1),o.addEventListener("click",this._mouseDownUpHandler,!1),o.addEventListener("mousedown",this._mouseDownUpHandler,!1),o.addEventListener("mouseup",this._mouseDownUpHandler,!1),o}dispose(t){const e=this._scenes;if(e.has(t)){var i=e.get(t);i.removeEventListener("mousemove",this._mousemoveHandler),i.removeEventListener("click",this._mouseDownUpHandler),i.removeEventListener("mousedown",this._mouseDownUpHandler),i.removeEventListener("mouseup",this._mouseDownUpHandler),o(i,a),i.remove(),e.delete(t)}}getHitTarget(t){return this._hitTarget}draw(e,i,r=!1){const a=this._scenes,s=this._items;if(!t.Utils.isNull(e))if(e.adapter===this){a.has(e)||this.initialize(e);var n=e.datasource,o=!0,l=a.get(e);t.Utils.isNull(i)||s.has(i)&&(n=[i],l=s.get(i).parentNode,o=!1),o&&(l.innerHTML="<defs></defs>",this._markers=new WeakMap),this._draw(e,l,n||[],o,r)}else a.has(e)&&a.delete(e)}_hasItems(e){return t.Drawing.isGroup(e)}_disposeSvg(e){if(!t.Utils.isNull(e)){var i=s(e,r);o(e,r),this._items.delete(i)}}_draw(e,i,a,s,o){var h;const d=this._items;let m=0;if(i.firstElementChild instanceof SVGDefsElement&&m++,!t.Utils.isNullOrEmpty(a))for(let p of a){let a;if(null!==(h=p.stage)&&void 0!==h||(p.stage=e),d.has(p)?(a=d.get(p),a.parentNode!==i&&this._disposeSvg(c(i,a,m))):(a=this._buildSVGElement(p),n(a,r,p),this._disposeSvg(c(i,a,m)),d.set(p,a)),t.Drawing.isDrawable(p)&&(p.hide?a.setAttribute("display","none"):a.removeAttribute("display"),a.style.transform=""),t.Drawing.isShape(p)){const t=a;t.setAttribute("d",l(p.pathData,"M0,0"));for(let{marker:e,suffix:r}of[{marker:p.markerStart,suffix:"start"},{marker:p.markerEnd,suffix:"end"},{marker:p.markerMid,suffix:"mid"}])if(e){const a=this._ensureMarker(i,e);t.setAttribute("marker-"+r,`url(#${a.id})`)}else t.removeAttribute("marker-"+r)}else if(t.Drawing.isText(p)){const e=a;e.textContent=p.text,e.style.fill=t.Utils.isNullOrEmpty(p.color)?"":p.color,e.style.fontFamily=t.Utils.isNullOrEmpty(p.fontFamily)?"":p.fontFamily,e.style.fontSize=t.Utils.isNull(p.fontSize)?"":p.fontSize+"px",e.setAttribute("text-anchor",l(p.textAnchor,"start")),t.Utils.isNull(p.anchor)?(e.removeAttribute("x"),e.removeAttribute("y")):(e.setAttribute("x",p.anchor.x.toString()),e.setAttribute("y",p.anchor.y.toString()))}else if(t.Drawing.isImage(p)){const e=a;e.setAttribute("href",p.src),p.width>0?e.setAttribute("width",""+p.width):e.removeAttribute("width"),p.height>0?e.setAttribute("height",""+p.height):e.removeAttribute("height"),t.Utils.isNull(p.x)?e.removeAttribute("x"):e.setAttribute("x",""+p.x),t.Utils.isNull(p.y)?e.removeAttribute("y"):e.setAttribute("y",""+p.y)}if(t.Drawing.isUiObject(p)){const e=p.transformMatrix;t.Utils.isNull(e)||t.Matrix2D.isIdentity(e)?a.removeAttribute("transform"):a.setAttribute("transform",`matrix(${e.a} ${e.b} ${e.c} ${e.d} ${e.e} ${e.f})`);const i=l(p.opacity,1);1===i?a.removeAttribute("opacity"):a.setAttribute("opacity",""+i)}t.Drawing.isPresentationObject(p)&&(t.Utils.isNullOrEmpty(p.fill)?a.removeAttribute("fill"):a.setAttribute("fill",p.fill),t.Utils.isNullOrEmpty(p.stroke)?a.removeAttribute("stroke"):a.setAttribute("stroke",p.stroke),t.Utils.isNullOrEmpty(p.dashArray)?a.removeAttribute("stroke-dasharray"):a.setAttribute("stroke-dasharray",p.dashArray.join(" ")),t.Utils.isNullOrEmpty(p.lineCap)?a.removeAttribute("stroke-linecap"):a.setAttribute("stroke-linecap",p.lineCap),t.Utils.isNullOrEmpty(p.lineJoin)?a.removeAttribute("stroke-linejoin"):a.setAttribute("stroke-linejoin",p.lineJoin),t.Utils.isNullOrEmpty(p.lineWidth)?a.removeAttribute("stroke-width"):a.setAttribute("stroke-width",""+p.lineWidth)),p.inert?a.style.pointerEvents="none":a.style.pointerEvents="",(s||o)&&this._hasItems(p)&&this._draw(e,a,p.childDrawables,!0,o),m++}if(s)for(let t=i.children.length-1;t>=m;t--){const e=i.children.item(t);this._disposeSvg(e),e.remove()}}_buildSVGElement(e){return t.Drawing.isShape(e)?document.createElementNS(i,"path"):t.Drawing.isText(e)?document.createElementNS(i,"text"):t.Drawing.isImage(e)?document.createElementNS(i,"image"):document.createElementNS(i,"g")}_ensureMarker(e,r){const a=this._markers;a.has(e)||a.set(e,new WeakMap);const s=a.get(e);if(!s.has(r)){const a=document.createElementNS(i,"marker");s.set(r,a);const n=document.createElementNS(i,"path");a.appendChild(n),a.setAttribute("id","mark"+t.Utils.uniqueCode());let o,l=e;for(;t.Utils.isNull(o=l.querySelector(":scope > defs"));){const t=l.parentElement;if(!(t instanceof SVGElement))break;l=t}if(t.Utils.isNull(o))throw new Error("Must provide a <defs> element.");o.appendChild(a)}const n=s.get(r),o=n.firstElementChild;return n.setAttribute("orient","auto-start-reverse"),t.Utils.isNullOrEmpty(r.viewbox)?n.removeAttribute("viewBox"):n.setAttribute("viewBox",`${r.viewbox.x} ${r.viewbox.y} ${r.viewbox.width} ${r.viewbox.height}`),t.Utils.isNullOrEmpty(r.ref)?(n.removeAttribute("refX"),n.removeAttribute("refY")):(n.setAttribute("refX",r.ref.x.toString()),n.setAttribute("refY",r.ref.y.toString())),r.height>0?n.setAttribute("markerHeight",r.height.toString()):n.removeAttribute("markerHeight"),r.width>0?n.setAttribute("markerWidth",r.width.toString()):n.removeAttribute("markerWidth"),o.setAttribute("d",r.pathData),t.Utils.isNullOrEmpty(r.fill)?o.removeAttribute("fill"):o.setAttribute("fill",r.fill),t.Utils.isNullOrEmpty(r.stroke)?o.removeAttribute("stroke"):o.setAttribute("stroke",r.stroke),n}};h=__decorate([t.CustomElement({tagName:t.P+"-"+e.TAG_MIDDLE_NAME+"-svg-adapter"})],h),e.PacemSvgAdapterElement=h}(e.Drawing||(e.Drawing={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={}));
|
package/dist/js/pacem-3d.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.40.0-
|
|
2
|
+
* pacem v0.40.0-delphi (https://js.pacem.it)
|
|
3
3
|
* Copyright 2023 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
@@ -372,6 +372,23 @@ declare namespace Pacem.Components.Drawing3D {
|
|
|
372
372
|
render(): void;
|
|
373
373
|
}
|
|
374
374
|
}
|
|
375
|
+
declare namespace Pacem.Components.Drawing3D {
|
|
376
|
+
class Pacem3DWebGPUAdapterElement extends Pacem3DAdapterElement {
|
|
377
|
+
#private;
|
|
378
|
+
get available(): boolean;
|
|
379
|
+
invalidateSize(size: Size): void;
|
|
380
|
+
initialize(scene: Pacem3DElement): Promise<HTMLCanvasElement>;
|
|
381
|
+
render(): void;
|
|
382
|
+
raycast(point: Point, size: Size): Pacem.Drawing3D.RaycastResult;
|
|
383
|
+
addItem(item: Pacem.Drawing3D.Renderable): void;
|
|
384
|
+
removeItem(item: Pacem.Drawing3D.Renderable): void;
|
|
385
|
+
updateItem(item: Pacem.Drawing3D.Renderable): void;
|
|
386
|
+
zoomFit(...items: Pacem.Drawing3D.Ui3DObject[]): Promise<void>;
|
|
387
|
+
project(point3D: Geometry.LinearAlgebra.Vector3D): Point;
|
|
388
|
+
get scene(): any;
|
|
389
|
+
dispose(scene: Pacem3DElement): void;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
375
392
|
declare namespace Pacem.Components.Drawing3D {
|
|
376
393
|
class BasicMaterialElement extends MaterialElement {
|
|
377
394
|
constructor();
|