@operato/scene-indoor-map 0.0.16 → 0.0.20
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +37 -0
- package/dist/editors/index.d.ts +1 -0
- package/dist/editors/index.js +2 -2
- package/dist/editors/index.js.map +1 -1
- package/dist/editors/things-editor-action.d.ts +1 -2
- package/dist/editors/things-editor-action.js +31 -25
- package/dist/editors/things-editor-action.js.map +1 -1
- package/dist/floor.js +1 -2
- package/dist/floor.js.map +1 -1
- package/dist/indoor-map.d.ts +9 -5
- package/dist/indoor-map.js +34 -36
- package/dist/indoor-map.js.map +1 -1
- package/package.json +6 -6
- package/src/editors/index.ts +3 -2
- package/src/editors/things-editor-action.ts +26 -25
- package/src/floor.ts +4 -5
- package/src/indoor-map.ts +37 -55
- package/translations/en.json +3 -0
- package/translations/ko.json +3 -0
- package/translations/ms.json +3 -0
- package/translations/zh.json +3 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,43 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
### [0.0.20](https://github.com/things-scene/operato-scene/compare/v0.0.19...v0.0.20) (2021-12-13)
|
7
|
+
|
8
|
+
|
9
|
+
### :bug: Bug Fix
|
10
|
+
|
11
|
+
* upgrade [@operato](https://github.com/operato) version ([fbc79cf](https://github.com/things-scene/operato-scene/commit/fbc79cfcc60f92a5c6c510dc07a42bc92b810777))
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
### [0.0.19](https://github.com/things-scene/operato-scene/compare/v0.0.18...v0.0.19) (2021-12-12)
|
16
|
+
|
17
|
+
|
18
|
+
### :bug: Bug Fix
|
19
|
+
|
20
|
+
* upgrade @hatiolab/things-scene, @operato/board,property-editor,data-grist ([e6743bd](https://github.com/things-scene/operato-scene/commit/e6743bda29852fdae779b893a1e825a1cb73f0f9))
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
### [0.0.18](https://github.com/things-scene/operato-scene/compare/v0.0.17...v0.0.18) (2021-12-11)
|
25
|
+
|
26
|
+
|
27
|
+
### :bug: Bug Fix
|
28
|
+
|
29
|
+
* indoor-map and table editor interaction pattern ([5447b9b](https://github.com/things-scene/operato-scene/commit/5447b9b36bab108db6845ccd6c82a5c6ece7ffbf))
|
30
|
+
* upgrade things-factory version ([e7fc142](https://github.com/things-scene/operato-scene/commit/e7fc142a70d3d54b61fdd076522dede8a5908dcd))
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
### [0.0.17](https://github.com/things-scene/operato-scene/compare/v0.0.16...v0.0.17) (2021-12-11)
|
35
|
+
|
36
|
+
|
37
|
+
### :bug: Bug Fix
|
38
|
+
|
39
|
+
* upgrade operato to 0.2.45 ([0032bad](https://github.com/things-scene/operato-scene/commit/0032bad0914e7fd7eae5e8cc1574df20ce7cb851))
|
40
|
+
|
41
|
+
|
42
|
+
|
6
43
|
### [0.0.16](https://github.com/things-scene/operato-scene/compare/v0.0.15...v0.0.16) (2021-12-09)
|
7
44
|
|
8
45
|
|
package/dist/editors/index.d.ts
CHANGED
package/dist/editors/index.js
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
3
3
|
*/
|
4
|
-
import
|
4
|
+
import './things-editor-action';
|
5
5
|
export default [
|
6
6
|
{
|
7
7
|
type: 'action',
|
8
|
-
element:
|
8
|
+
element: 'things-editor-action'
|
9
9
|
}
|
10
10
|
];
|
11
11
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,wBAAwB,CAAA;AAE/B,eAAe;IACb;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,sBAAsB;KAChC;CACF,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport './things-editor-action'\n\nexport default [\n {\n type: 'action',\n element: 'things-editor-action'\n }\n]\n"]}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { Properties } from '@hatiolab/things-scene';
|
2
2
|
import { OxPropertyEditor } from '@operato/property-editor';
|
3
3
|
export default class ThingsEditorAction extends OxPropertyEditor {
|
4
|
-
static
|
5
|
-
static get styles(): import("lit").CSSResult[];
|
4
|
+
static styles: import("lit").CSSResult[];
|
6
5
|
editorTemplate(props: Properties): import("lit-html").TemplateResult<1>;
|
7
6
|
}
|
@@ -1,40 +1,46 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
3
3
|
*/
|
4
|
+
import { __decorate } from "tslib";
|
4
5
|
import { css, html } from 'lit';
|
5
6
|
import { OxPropertyEditor } from '@operato/property-editor';
|
6
|
-
|
7
|
-
|
8
|
-
return 'things-editor-action';
|
9
|
-
}
|
10
|
-
static get styles() {
|
11
|
-
return [
|
12
|
-
...OxPropertyEditor.styles,
|
13
|
-
css `
|
14
|
-
:host > label {
|
15
|
-
display: flex;
|
16
|
-
grid-column: span 3;
|
17
|
-
order: 1;
|
18
|
-
align-items: center;
|
19
|
-
justify-self: right;
|
20
|
-
}
|
21
|
-
`
|
22
|
-
];
|
23
|
-
}
|
7
|
+
import { customElement } from 'lit/decorators.js';
|
8
|
+
let ThingsEditorAction = class ThingsEditorAction extends OxPropertyEditor {
|
24
9
|
editorTemplate(props) {
|
25
10
|
var property = props.property || {};
|
26
11
|
var { icon, action } = property;
|
27
12
|
return html `
|
28
13
|
<paper-icon-button
|
29
14
|
.icon=${icon}
|
30
|
-
@click=${(e) =>
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
15
|
+
@click=${(e) => {
|
16
|
+
this.dispatchEvent(new CustomEvent('i-need-selected', {
|
17
|
+
bubbles: true,
|
18
|
+
composed: true,
|
19
|
+
detail: {
|
20
|
+
callback: (selected) => {
|
21
|
+
typeof action === 'function' && action(selected[0]);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}));
|
25
|
+
}}
|
35
26
|
></paper-icon-button>
|
36
27
|
`;
|
37
28
|
}
|
38
|
-
}
|
39
|
-
|
29
|
+
};
|
30
|
+
ThingsEditorAction.styles = [
|
31
|
+
...OxPropertyEditor.styles,
|
32
|
+
css `
|
33
|
+
:host > label {
|
34
|
+
display: flex;
|
35
|
+
grid-column: span 3;
|
36
|
+
order: 1;
|
37
|
+
align-items: center;
|
38
|
+
justify-self: right;
|
39
|
+
}
|
40
|
+
`
|
41
|
+
];
|
42
|
+
ThingsEditorAction = __decorate([
|
43
|
+
customElement('things-editor-action')
|
44
|
+
], ThingsEditorAction);
|
45
|
+
export default ThingsEditorAction;
|
40
46
|
//# sourceMappingURL=things-editor-action.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"things-editor-action.js","sourceRoot":"","sources":["../../src/editors/things-editor-action.ts"],"names":[],"mappings":"AAAA;;GAEG
|
1
|
+
{"version":3,"file":"things-editor-action.js","sourceRoot":"","sources":["../../src/editors/things-editor-action.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAGH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD,IAAqB,kBAAkB,GAAvC,MAAqB,kBAAmB,SAAQ,gBAAgB;IAc9D,cAAc,CAAC,KAAiB;QAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;QACnC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;QAE/B,OAAO,IAAI,CAAA;;gBAEC,IAAI;iBACH,CAAC,CAAa,EAAE,EAAE;YACzB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,iBAAiB,EAAE;gBACjC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,QAAqB,EAAE,EAAE;wBAClC,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;oBACrD,CAAC;iBACF;aACF,CAAC,CACH,CAAA;QACH,CAAC;;KAEJ,CAAA;IACH,CAAC;CACF,CAAA;AApCQ,yBAAM,GAAG;IACd,GAAG,gBAAgB,CAAC,MAAM;IAC1B,GAAG,CAAA;;;;;;;;KAQF;CACF,CAAA;AAZkB,kBAAkB;IADtC,aAAa,CAAC,sBAAsB,CAAC;GACjB,kBAAkB,CAqCtC;eArCoB,kBAAkB","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, Properties } from '@hatiolab/things-scene'\nimport { css, html } from 'lit'\n\nimport { OxPropertyEditor } from '@operato/property-editor'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('things-editor-action')\nexport default class ThingsEditorAction extends OxPropertyEditor {\n static styles = [\n ...OxPropertyEditor.styles,\n css`\n :host > label {\n display: flex;\n grid-column: span 3;\n order: 1;\n align-items: center;\n justify-self: right;\n }\n `\n ]\n\n editorTemplate(props: Properties) {\n var property = props.property || {}\n var { icon, action } = property\n\n return html`\n <paper-icon-button\n .icon=${icon}\n @click=${(e: MouseEvent) => {\n this.dispatchEvent(\n new CustomEvent('i-need-selected', {\n bubbles: true,\n composed: true,\n detail: {\n callback: (selected: Component[]) => {\n typeof action === 'function' && action(selected[0])\n }\n }\n })\n )\n }}\n ></paper-icon-button>\n `\n }\n}\n"]}
|
package/dist/floor.js
CHANGED
package/dist/floor.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"floor.js","sourceRoot":"","sources":["../src/floor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAI9D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,UAAS,KAAY;oBAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAmB,CAAA;oBACtC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;oBAC7B,MAAM,CAAC,WAAW,GAAG,CAAC,CAAA;oBACtB,MAAM,CAAC,UAAU,EAAE,CAAA;gBACrB,CAAC;aACF;SACF;KACF;CACF,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS;IAG1C,IAAI,eAAe;QACjB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,OAAO;QACT,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,IAAI,SAAS;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CAsTF;AAED,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Container } from '@hatiolab/things-scene';\n\nimport IndoorMap from './indoor-map';\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'action',\n label: 'remove',\n name: 'remove',\n property: {\n icon: 'remove-circle',\n action: function(floor: Floor) {\n let indoor = floor.parent as IndoorMap\n indoor.removeComponent(floor)\n indoor.activeIndex = 0\n indoor.invalidate()\n }\n }\n }\n ]\n}\n\nexport default class Floor extends Container {\n private _clickPoint?: Component\n\n get hasTextProperty() {\n return false\n }\n\n get showMoveHandle() {\n return false\n }\n\n /*\n * PATH 리스트를 직접 수정할 수 있는 지를 결정한다.\n *\n * 일반적으로 PATH는 바운드 생성을 위해서 논리적으로 생성되므로, 직접 수정하지 않는다.(return false)\n * 그러나, 각 꼭지점들이 개별로 움직이는 다각형류는 path 라는 모델데이타를 가지므로, 직접수정이 가능할 수 있다.(return true)\n *\n * Immutable 컴포넌트의 형상을 바꾸는 방법은 바운드를 이용한 리사이즈나, 특별한 컨트롤을 통해서 가능하다.\n */\n get mutable() {\n return false\n }\n\n /*\n * BOUND를 통해서 리사이즈를 할 수 있는 지를 결정한다.\n *\n * 일반적으로 면적을 갖는 컴포넌트는 대체로 가능하다.(return true)\n * 그러나, LINE 등 면적을 가지지않는 컴포넌트는 가능하지 않도록 정의한다.(return false)\n */\n get resizable() {\n return false\n }\n\n /*\n * 회전을 할 수 있는 지를 결정한다.\n *\n * 일반적으로 모든 컴포넌트는 가능하다.(return true)\n */\n get rotatable() {\n return false\n }\n\n get nature() {\n return NATURE\n }\n\n // drawLocationMarkers(locations) {\n // for (let uuid in locations) {\n // let locInfo = locations[uuid]\n // let props = locInfo.props || {}\n\n // props.width = props.width || 10\n // props.height = props.height || 10\n\n // let currentTime = new Date().getTime()\n // // let diffTime = 500\n // let diffTime = currentTime - locInfo.lastUpdateTime\n\n // if (diffTime < locInfo.updateInterval) {\n // let movingObject = this.findById(uuid)\n // if (movingObject) {\n // // props.yaw = 0;\n // // props.roll = 0;\n\n // movingObject.set(props)\n // for (let key in props) {\n // movingObject[key] = props[key]\n // }\n // } else {\n // // TODO: marker의 초기값 관련 로직 정리 필요.\n\n // let config = Object.assign(\n // {\n // type: locInfo.type || 'rect',\n // // type: locInfo.type || \"camera\",\n // id: uuid,\n // fillStyle: 'red',\n // left: props.center.x - props.width * 0.5,\n // top: props.center.y - props.height * 0.5,\n // cx: props.center.x,\n // cy: props.center.y\n // },\n // props\n // )\n\n // let marker = Model.compile(config)\n\n // this.addComponent(marker)\n\n // // movingObject = this.findById(uuid)\n // // if(movingObject) {\n // // movingObject.set(props);\n // // }\n // }\n // } else {\n // let movingObject = this.findById(uuid)\n // this.removeComponent(movingObject)\n // }\n\n // this.invalidate()\n // }\n // }\n\n // simulate(point) {\n // // for(let i in this.components) {\n // // if(this.components[i].model.type != 'beacon')\n // // continue;\n // //\n // // let beacon = this.components[i]\n // // let distance = Math.sqrt(Math.pow(beacon.center.x - point.x, 2) + Math.pow(beacon.center.y - point.y, 2)) * 0.01\n // // let rssi = -10 * Math.log10(distance) + (beacon.txPower || -71)\n // //\n // // let randRssi = gaussian(rssi, Math.pow(4.894686948810031, 2))\n // //\n // // rssi = randRssi.ppf(Math.random())\n // //\n // // console.log(rssi);\n // // }\n\n // let beacons: {\n // distance: number;\n // gaussian: number;\n // txPower: number;\n // }[] = []\n\n // for (let i in this.components) {\n // if (this.components[i].model.type != 'beacon') continue\n\n // let beacon = this.components[i]\n\n // beacon.distance = Math.sqrt(\n // Math.pow(beacon.center.x - point.x, 2) +\n // Math.pow(beacon.center.y - point.y, 2)\n // )\n // beacon.gaussian = gaussian(\n // beacon.model.txPower || -71,\n // Math.pow(3.209, 2)\n // )\n // beacon.txPower = beacon.gaussian.ppf(Math.random())\n\n // beacons.push(beacon)\n // }\n\n // beacons = beacons.slice(0)\n\n // this.calculatePosition(beacons, point)\n // }\n\n // calculatePosition(nodeArr, position) {\n // let beacons = nodeArr\n\n // beacons.sort(function(a, b) {\n // let rssiA = -10 * Math.log10(a.distance) + a.txPower\n // let rssiB = -10 * Math.log10(b.distance) + b.txPower\n\n // return Math.abs(rssiA) - Math.abs(rssiB)\n // })\n\n // let beaconCombs = this.k_combinations(beacons.slice(0, 4), 3)\n // let positions = []\n\n // for (let i in beaconCombs) {\n // let beaconComb = beaconCombs[i]\n // let beaconA = beaconComb[0]\n // let beaconB = beaconComb[1]\n // let beaconC = beaconComb[2]\n\n // let xa = beaconA.center.x\n // let ya = beaconA.center.y\n // let xb = beaconB.center.x\n // let yb = beaconB.center.y\n // let xc = beaconC.center.x\n // let yc = beaconC.center.y\n // let ra = beaconA.distance\n // let rb = beaconB.distance\n // let rc = beaconC.distance\n\n // // let ra = Math.sqrt(Math.pow(beaconA.center.x - position.x, 2) + Math.pow(beaconA.center.y - position.y, 2)) * 0.01\n // // let rb = Math.sqrt(Math.pow(beaconB.center.x - position.x, 2) + Math.pow(beaconB.center.y - position.y, 2)) * 0.01\n // // let rc = Math.sqrt(Math.pow(beaconC.center.x - position.x, 2) + Math.pow(beaconC.center.y - position.y, 2)) * 0.01\n\n // let rssiA = -10 * Math.log10(beaconA.distance * 0.01) + beaconA.txPower\n // let rssiB = -10 * Math.log10(beaconB.distance * 0.01) + beaconB.txPower\n // let rssiC = -10 * Math.log10(beaconC.distance * 0.01) + beaconC.txPower\n\n // ra = this.calculateDistance(beaconA.txPower, rssiA) * 100\n // rb = this.calculateDistance(beaconB.txPower, rssiB) * 100\n // rc = this.calculateDistance(beaconC.txPower, rssiC) * 100\n\n // let xaSq = xa * xa,\n // xbSq = xb * xb,\n // xcSq = xc * xc,\n // yaSq = ya * ya,\n // ybSq = yb * yb,\n // ycSq = yc * yc,\n // raSq = ra * ra,\n // rbSq = rb * rb,\n // rcSq = rc * rc\n // let numerator1 =\n // (xb - xa) * (xcSq + ycSq - rcSq) +\n // (xa - xc) * (xbSq + ybSq - rbSq) +\n // (xc - xb) * (xaSq + yaSq - raSq)\n // let denominator1 = 2 * (yc * (xb - xa) + yb * (xa - xc) + ya * (xc - xb))\n // let y = numerator1 / denominator1\n // let numerator2 =\n // rbSq - raSq + xaSq - xbSq + yaSq - ybSq - 2 * (ya - yb) * y\n // let denominator2 = 2 * (xa - xb)\n // let x = numerator2 / denominator2\n\n // if (Number.isFinite(x) && Number.isFinite(y)) {\n // positions.push({\n // x: x,\n // y: y\n // })\n // }\n // }\n\n // let avgPosition = this.averageOfPositions(positions)\n\n // if (this._simPosition) this.removeComponent(this._simPosition)\n\n // this._simPosition = Model.compile({\n // type: 'ellipse',\n // cx: avgPosition.x,\n // cy: avgPosition.y,\n // rx: 10,\n // ry: 10,\n // fillStyle: 'navy'\n // })\n\n // this.addComponent(this._simPosition)\n // }\n\n // calculateDistance(txPower, rssi) {\n // if (rssi == 0) {\n // return -1.0 // if we cannot determine distance, return -1.\n // }\n\n // let ratio = (rssi * 1.0) / txPower\n // if (ratio < 1.0) {\n // return Math.pow(ratio, 10)\n // } else {\n // let accuracy = 0.89976 * Math.pow(ratio, 7.7095) + 0.111\n // return accuracy\n // }\n // }\n\n // calculateAngle(p1, p2, p3) {\n // let l1 = Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2),\n // l2 = Math.pow(p2.x - p3.x, 2) + Math.pow(p2.y - p3.y, 2),\n // l3 = Math.pow(p3.x - p1.x, 2) + Math.pow(p3.y - p1.y, 2)\n\n // return Math.acos((l1 + l2 - l3) / Math.sqrt(4 * l1 * l2))\n // }\n\n // averageOfPositions(p) {\n // let sumOfX = 0\n // let sumOfY = 0\n\n // for (let i in p) {\n // let point = p[i]\n // sumOfX += point.x\n // sumOfY += point.y\n // }\n\n // return {\n // x: sumOfX / p.length,\n // y: sumOfY / p.length\n // }\n // }\n\n // k_combinations(set, k) {\n // var i, j, combs, head, tailcombs\n\n // // There is no way to take e.g. sets of 5 elements from\n // // a set of 4.\n // if (k > set.length || k <= 0) {\n // return []\n // }\n\n // // K-sized set has only one K-sized subset.\n // if (k == set.length) {\n // return [set]\n // }\n\n // // There is N 1-sized subsets in a N-sized set.\n // if (k == 1) {\n // combs = []\n // for (i = 0; i < set.length; i++) {\n // combs.push([set[i]])\n // }\n // return combs\n // }\n\n // // Assert {1 < k < set.length}\n\n // // Algorithm description:\n // // To get k-combinations of a set, we want to join each element\n // // with all (k-1)-combinations of the other elements. The set of\n // // these k-sized sets would be the desired result. However, as we\n // // represent sets with lists, we need to take duplicates into\n // // account. To avoid producing duplicates and also unnecessary\n // // computing, we use the following approach: each element i\n // // divides the list into three: the preceding elements, the\n // // current element i, and the subsequent elements. For the first\n // // element, the list of preceding elements is empty. For element i,\n // // we compute the (k-1)-computations of the subsequent elements,\n // // join each with the element i, and store the joined to the set of\n // // computed k-combinations. We do not need to take the preceding\n // // elements into account, because they have already been the i:th\n // // element so they are already computed and stored. When the length\n // // of the subsequent list drops below (k-1), we cannot find any\n // // (k-1)-combs, hence the upper limit for the iteration:\n // combs = []\n // for (i = 0; i < set.length - k + 1; i++) {\n // // head is a list that includes only our current element.\n // head = set.slice(i, i + 1)\n // // We take smaller combinations from the subsequent elements\n // tailcombs = this.k_combinations(set.slice(i + 1), k - 1)\n // // For each (k-1)-combination we join it with the current\n // // and store it to the set of k-combinations.\n // for (j = 0; j < tailcombs.length; j++) {\n // combs.push(head.concat(tailcombs[j]))\n // }\n // }\n // return combs\n // }\n\n // onclick(e) {\n // return\n\n // let point = this.transcoordC2S(e.offsetX, e.offsetY)\n\n // if (this._clickPoint) {\n // this.removeComponent(this._clickPoint)\n // }\n\n // this._clickPoint = Model.compile({\n // type: 'ellipse',\n // cx: point.x,\n // cy: point.y,\n // rx: 10,\n // ry: 10,\n // fillStyle: 'red'\n // })\n\n // this.addComponent(this._clickPoint)\n // this.simulate(point)\n // // let self = this\n // // setTimeout(function() {\n // // self.simulate(point)\n // // }, 500)\n // this.invalidate()\n // }\n}\n\nComponent.register('floor', Floor)\n"]}
|
1
|
+
{"version":3,"file":"floor.js","sourceRoot":"","sources":["../src/floor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAI7D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,UAAU,KAAY;oBAC5B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAmB,CAAA;oBACtC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;oBAC7B,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;gBAC9B,CAAC;aACF;SACF;KACF;CACF,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS;IAG1C,IAAI,eAAe;QACjB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,OAAO;QACT,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,IAAI,SAAS;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CAsTF;AAED,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Container } from '@hatiolab/things-scene'\n\nimport IndoorMap from './indoor-map'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'action',\n label: 'remove',\n name: 'remove',\n property: {\n icon: 'remove-circle',\n action: function (floor: Floor) {\n let indoor = floor.parent as IndoorMap\n indoor.removeComponent(floor)\n indoor.set('activeIndex', 0)\n }\n }\n }\n ]\n}\n\nexport default class Floor extends Container {\n private _clickPoint?: Component\n\n get hasTextProperty() {\n return false\n }\n\n get showMoveHandle() {\n return false\n }\n\n /*\n * PATH 리스트를 직접 수정할 수 있는 지를 결정한다.\n *\n * 일반적으로 PATH는 바운드 생성을 위해서 논리적으로 생성되므로, 직접 수정하지 않는다.(return false)\n * 그러나, 각 꼭지점들이 개별로 움직이는 다각형류는 path 라는 모델데이타를 가지므로, 직접수정이 가능할 수 있다.(return true)\n *\n * Immutable 컴포넌트의 형상을 바꾸는 방법은 바운드를 이용한 리사이즈나, 특별한 컨트롤을 통해서 가능하다.\n */\n get mutable() {\n return false\n }\n\n /*\n * BOUND를 통해서 리사이즈를 할 수 있는 지를 결정한다.\n *\n * 일반적으로 면적을 갖는 컴포넌트는 대체로 가능하다.(return true)\n * 그러나, LINE 등 면적을 가지지않는 컴포넌트는 가능하지 않도록 정의한다.(return false)\n */\n get resizable() {\n return false\n }\n\n /*\n * 회전을 할 수 있는 지를 결정한다.\n *\n * 일반적으로 모든 컴포넌트는 가능하다.(return true)\n */\n get rotatable() {\n return false\n }\n\n get nature() {\n return NATURE\n }\n\n // drawLocationMarkers(locations) {\n // for (let uuid in locations) {\n // let locInfo = locations[uuid]\n // let props = locInfo.props || {}\n\n // props.width = props.width || 10\n // props.height = props.height || 10\n\n // let currentTime = new Date().getTime()\n // // let diffTime = 500\n // let diffTime = currentTime - locInfo.lastUpdateTime\n\n // if (diffTime < locInfo.updateInterval) {\n // let movingObject = this.findById(uuid)\n // if (movingObject) {\n // // props.yaw = 0;\n // // props.roll = 0;\n\n // movingObject.set(props)\n // for (let key in props) {\n // movingObject[key] = props[key]\n // }\n // } else {\n // // TODO: marker의 초기값 관련 로직 정리 필요.\n\n // let config = Object.assign(\n // {\n // type: locInfo.type || 'rect',\n // // type: locInfo.type || \"camera\",\n // id: uuid,\n // fillStyle: 'red',\n // left: props.center.x - props.width * 0.5,\n // top: props.center.y - props.height * 0.5,\n // cx: props.center.x,\n // cy: props.center.y\n // },\n // props\n // )\n\n // let marker = Model.compile(config)\n\n // this.addComponent(marker)\n\n // // movingObject = this.findById(uuid)\n // // if(movingObject) {\n // // movingObject.set(props);\n // // }\n // }\n // } else {\n // let movingObject = this.findById(uuid)\n // this.removeComponent(movingObject)\n // }\n\n // this.invalidate()\n // }\n // }\n\n // simulate(point) {\n // // for(let i in this.components) {\n // // if(this.components[i].model.type != 'beacon')\n // // continue;\n // //\n // // let beacon = this.components[i]\n // // let distance = Math.sqrt(Math.pow(beacon.center.x - point.x, 2) + Math.pow(beacon.center.y - point.y, 2)) * 0.01\n // // let rssi = -10 * Math.log10(distance) + (beacon.txPower || -71)\n // //\n // // let randRssi = gaussian(rssi, Math.pow(4.894686948810031, 2))\n // //\n // // rssi = randRssi.ppf(Math.random())\n // //\n // // console.log(rssi);\n // // }\n\n // let beacons: {\n // distance: number;\n // gaussian: number;\n // txPower: number;\n // }[] = []\n\n // for (let i in this.components) {\n // if (this.components[i].model.type != 'beacon') continue\n\n // let beacon = this.components[i]\n\n // beacon.distance = Math.sqrt(\n // Math.pow(beacon.center.x - point.x, 2) +\n // Math.pow(beacon.center.y - point.y, 2)\n // )\n // beacon.gaussian = gaussian(\n // beacon.model.txPower || -71,\n // Math.pow(3.209, 2)\n // )\n // beacon.txPower = beacon.gaussian.ppf(Math.random())\n\n // beacons.push(beacon)\n // }\n\n // beacons = beacons.slice(0)\n\n // this.calculatePosition(beacons, point)\n // }\n\n // calculatePosition(nodeArr, position) {\n // let beacons = nodeArr\n\n // beacons.sort(function(a, b) {\n // let rssiA = -10 * Math.log10(a.distance) + a.txPower\n // let rssiB = -10 * Math.log10(b.distance) + b.txPower\n\n // return Math.abs(rssiA) - Math.abs(rssiB)\n // })\n\n // let beaconCombs = this.k_combinations(beacons.slice(0, 4), 3)\n // let positions = []\n\n // for (let i in beaconCombs) {\n // let beaconComb = beaconCombs[i]\n // let beaconA = beaconComb[0]\n // let beaconB = beaconComb[1]\n // let beaconC = beaconComb[2]\n\n // let xa = beaconA.center.x\n // let ya = beaconA.center.y\n // let xb = beaconB.center.x\n // let yb = beaconB.center.y\n // let xc = beaconC.center.x\n // let yc = beaconC.center.y\n // let ra = beaconA.distance\n // let rb = beaconB.distance\n // let rc = beaconC.distance\n\n // // let ra = Math.sqrt(Math.pow(beaconA.center.x - position.x, 2) + Math.pow(beaconA.center.y - position.y, 2)) * 0.01\n // // let rb = Math.sqrt(Math.pow(beaconB.center.x - position.x, 2) + Math.pow(beaconB.center.y - position.y, 2)) * 0.01\n // // let rc = Math.sqrt(Math.pow(beaconC.center.x - position.x, 2) + Math.pow(beaconC.center.y - position.y, 2)) * 0.01\n\n // let rssiA = -10 * Math.log10(beaconA.distance * 0.01) + beaconA.txPower\n // let rssiB = -10 * Math.log10(beaconB.distance * 0.01) + beaconB.txPower\n // let rssiC = -10 * Math.log10(beaconC.distance * 0.01) + beaconC.txPower\n\n // ra = this.calculateDistance(beaconA.txPower, rssiA) * 100\n // rb = this.calculateDistance(beaconB.txPower, rssiB) * 100\n // rc = this.calculateDistance(beaconC.txPower, rssiC) * 100\n\n // let xaSq = xa * xa,\n // xbSq = xb * xb,\n // xcSq = xc * xc,\n // yaSq = ya * ya,\n // ybSq = yb * yb,\n // ycSq = yc * yc,\n // raSq = ra * ra,\n // rbSq = rb * rb,\n // rcSq = rc * rc\n // let numerator1 =\n // (xb - xa) * (xcSq + ycSq - rcSq) +\n // (xa - xc) * (xbSq + ybSq - rbSq) +\n // (xc - xb) * (xaSq + yaSq - raSq)\n // let denominator1 = 2 * (yc * (xb - xa) + yb * (xa - xc) + ya * (xc - xb))\n // let y = numerator1 / denominator1\n // let numerator2 =\n // rbSq - raSq + xaSq - xbSq + yaSq - ybSq - 2 * (ya - yb) * y\n // let denominator2 = 2 * (xa - xb)\n // let x = numerator2 / denominator2\n\n // if (Number.isFinite(x) && Number.isFinite(y)) {\n // positions.push({\n // x: x,\n // y: y\n // })\n // }\n // }\n\n // let avgPosition = this.averageOfPositions(positions)\n\n // if (this._simPosition) this.removeComponent(this._simPosition)\n\n // this._simPosition = Model.compile({\n // type: 'ellipse',\n // cx: avgPosition.x,\n // cy: avgPosition.y,\n // rx: 10,\n // ry: 10,\n // fillStyle: 'navy'\n // })\n\n // this.addComponent(this._simPosition)\n // }\n\n // calculateDistance(txPower, rssi) {\n // if (rssi == 0) {\n // return -1.0 // if we cannot determine distance, return -1.\n // }\n\n // let ratio = (rssi * 1.0) / txPower\n // if (ratio < 1.0) {\n // return Math.pow(ratio, 10)\n // } else {\n // let accuracy = 0.89976 * Math.pow(ratio, 7.7095) + 0.111\n // return accuracy\n // }\n // }\n\n // calculateAngle(p1, p2, p3) {\n // let l1 = Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2),\n // l2 = Math.pow(p2.x - p3.x, 2) + Math.pow(p2.y - p3.y, 2),\n // l3 = Math.pow(p3.x - p1.x, 2) + Math.pow(p3.y - p1.y, 2)\n\n // return Math.acos((l1 + l2 - l3) / Math.sqrt(4 * l1 * l2))\n // }\n\n // averageOfPositions(p) {\n // let sumOfX = 0\n // let sumOfY = 0\n\n // for (let i in p) {\n // let point = p[i]\n // sumOfX += point.x\n // sumOfY += point.y\n // }\n\n // return {\n // x: sumOfX / p.length,\n // y: sumOfY / p.length\n // }\n // }\n\n // k_combinations(set, k) {\n // var i, j, combs, head, tailcombs\n\n // // There is no way to take e.g. sets of 5 elements from\n // // a set of 4.\n // if (k > set.length || k <= 0) {\n // return []\n // }\n\n // // K-sized set has only one K-sized subset.\n // if (k == set.length) {\n // return [set]\n // }\n\n // // There is N 1-sized subsets in a N-sized set.\n // if (k == 1) {\n // combs = []\n // for (i = 0; i < set.length; i++) {\n // combs.push([set[i]])\n // }\n // return combs\n // }\n\n // // Assert {1 < k < set.length}\n\n // // Algorithm description:\n // // To get k-combinations of a set, we want to join each element\n // // with all (k-1)-combinations of the other elements. The set of\n // // these k-sized sets would be the desired result. However, as we\n // // represent sets with lists, we need to take duplicates into\n // // account. To avoid producing duplicates and also unnecessary\n // // computing, we use the following approach: each element i\n // // divides the list into three: the preceding elements, the\n // // current element i, and the subsequent elements. For the first\n // // element, the list of preceding elements is empty. For element i,\n // // we compute the (k-1)-computations of the subsequent elements,\n // // join each with the element i, and store the joined to the set of\n // // computed k-combinations. We do not need to take the preceding\n // // elements into account, because they have already been the i:th\n // // element so they are already computed and stored. When the length\n // // of the subsequent list drops below (k-1), we cannot find any\n // // (k-1)-combs, hence the upper limit for the iteration:\n // combs = []\n // for (i = 0; i < set.length - k + 1; i++) {\n // // head is a list that includes only our current element.\n // head = set.slice(i, i + 1)\n // // We take smaller combinations from the subsequent elements\n // tailcombs = this.k_combinations(set.slice(i + 1), k - 1)\n // // For each (k-1)-combination we join it with the current\n // // and store it to the set of k-combinations.\n // for (j = 0; j < tailcombs.length; j++) {\n // combs.push(head.concat(tailcombs[j]))\n // }\n // }\n // return combs\n // }\n\n // onclick(e) {\n // return\n\n // let point = this.transcoordC2S(e.offsetX, e.offsetY)\n\n // if (this._clickPoint) {\n // this.removeComponent(this._clickPoint)\n // }\n\n // this._clickPoint = Model.compile({\n // type: 'ellipse',\n // cx: point.x,\n // cy: point.y,\n // rx: 10,\n // ry: 10,\n // fillStyle: 'red'\n // })\n\n // this.addComponent(this._clickPoint)\n // this.simulate(point)\n // // let self = this\n // // setTimeout(function() {\n // // self.simulate(point)\n // // }, 500)\n // this.invalidate()\n // }\n}\n\nComponent.register('floor', Floor)\n"]}
|
package/dist/indoor-map.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Container } from '@hatiolab/things-scene';
|
1
|
+
import { Container, State } from '@hatiolab/things-scene';
|
2
2
|
import Floor from './floor';
|
3
3
|
export default class IndoorMap extends Container {
|
4
4
|
private _focused;
|
@@ -7,7 +7,7 @@ export default class IndoorMap extends Container {
|
|
7
7
|
mutable: boolean;
|
8
8
|
resizable: boolean;
|
9
9
|
rotatable: boolean;
|
10
|
-
properties: {
|
10
|
+
properties: ({
|
11
11
|
type: string;
|
12
12
|
label: string;
|
13
13
|
name: string;
|
@@ -15,19 +15,23 @@ export default class IndoorMap extends Container {
|
|
15
15
|
icon: string;
|
16
16
|
action: (indoorMap: IndoorMap) => void;
|
17
17
|
};
|
18
|
-
}
|
18
|
+
} | {
|
19
|
+
type: string;
|
20
|
+
label: string;
|
21
|
+
name: string;
|
22
|
+
property?: undefined;
|
23
|
+
})[];
|
19
24
|
'value-property': string;
|
20
25
|
help: string;
|
21
26
|
};
|
22
27
|
get layout(): import("@hatiolab/things-scene").LAYOUT;
|
23
|
-
get activeIndex(): any;
|
24
|
-
set activeIndex(index: any);
|
25
28
|
get layoutConfig(): any;
|
26
29
|
set layoutConfig(config: any);
|
27
30
|
get activeFloor(): Floor;
|
28
31
|
ready(): void;
|
29
32
|
postrender(context: CanvasRenderingContext2D): void;
|
30
33
|
contains(x: number, y: number): boolean;
|
34
|
+
onchange(after: State): void;
|
31
35
|
onmouseup(e: MouseEvent): void;
|
32
36
|
onmousedown(e: MouseEvent): void;
|
33
37
|
addFloor(): void;
|
package/dist/indoor-map.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
3
3
|
*/
|
4
|
-
import { CardLayout, Component, Container, Model
|
4
|
+
import { CardLayout, Component, Container, Model } from '@hatiolab/things-scene';
|
5
5
|
const LABEL_WIDTH = 25;
|
6
6
|
const LABEL_HEIGHT = 25;
|
7
7
|
function rgba(r, g, b, a) {
|
@@ -22,6 +22,11 @@ const NATURE = {
|
|
22
22
|
indoorMap.addFloor();
|
23
23
|
}
|
24
24
|
}
|
25
|
+
},
|
26
|
+
{
|
27
|
+
type: 'number',
|
28
|
+
label: 'active index',
|
29
|
+
name: 'activeIndex'
|
25
30
|
}
|
26
31
|
],
|
27
32
|
'value-property': 'activeIndex',
|
@@ -31,10 +36,6 @@ export default class IndoorMap extends Container {
|
|
31
36
|
constructor() {
|
32
37
|
super(...arguments);
|
33
38
|
this._focused = false;
|
34
|
-
// drawLocationMarkers(locations) {
|
35
|
-
// let floor = this.activeFloor
|
36
|
-
// floor.drawLocationMarkers(locations)
|
37
|
-
// }
|
38
39
|
}
|
39
40
|
get nature() {
|
40
41
|
return NATURE;
|
@@ -42,15 +43,6 @@ export default class IndoorMap extends Container {
|
|
42
43
|
get layout() {
|
43
44
|
return CardLayout;
|
44
45
|
}
|
45
|
-
get activeIndex() {
|
46
|
-
var config = Object.assign({}, this.layoutConfig);
|
47
|
-
return config.activeIndex;
|
48
|
-
}
|
49
|
-
set activeIndex(index) {
|
50
|
-
var config = Object.assign({}, this.layoutConfig);
|
51
|
-
config.activeIndex = index;
|
52
|
-
this.layoutConfig = config;
|
53
|
-
}
|
54
46
|
get layoutConfig() {
|
55
47
|
return this.get('layoutConfig');
|
56
48
|
}
|
@@ -66,29 +58,27 @@ export default class IndoorMap extends Container {
|
|
66
58
|
this.addFloor();
|
67
59
|
}
|
68
60
|
postrender(context) {
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
61
|
+
if (!this.app.isViewMode && this._focused) {
|
62
|
+
var { left, top, width, fillStyle } = this.model;
|
63
|
+
// floor 선택 탭 그리기
|
64
|
+
for (let i = 0; i < this.components.length; i++) {
|
65
|
+
context.beginPath();
|
66
|
+
context.rect(left - LABEL_WIDTH, top + i * LABEL_HEIGHT, LABEL_WIDTH, LABEL_HEIGHT);
|
67
|
+
let color = 255 - ((20 * (i + 1)) % 255);
|
68
|
+
context.fillStyle = rgba(color, color, color, 1);
|
69
|
+
context.fill();
|
70
|
+
context.closePath();
|
71
|
+
}
|
77
72
|
context.beginPath();
|
78
|
-
context.
|
79
|
-
|
80
|
-
context.
|
81
|
-
context.
|
73
|
+
context.moveTo(left, top);
|
74
|
+
context.lineTo(left - LABEL_WIDTH, top);
|
75
|
+
context.lineTo(left - LABEL_WIDTH, top + this.components.length * LABEL_HEIGHT);
|
76
|
+
context.lineTo(left, top + this.components.length * LABEL_HEIGHT);
|
77
|
+
context.strokeStyle = '#ccc';
|
78
|
+
context.stroke();
|
82
79
|
context.closePath();
|
83
80
|
}
|
84
|
-
|
85
|
-
context.moveTo(left, top);
|
86
|
-
context.lineTo(left - LABEL_WIDTH, top);
|
87
|
-
context.lineTo(left - LABEL_WIDTH, top + this.components.length * LABEL_HEIGHT);
|
88
|
-
context.lineTo(left, top + this.components.length * LABEL_HEIGHT);
|
89
|
-
context.strokeStyle = '#ccc';
|
90
|
-
context.stroke();
|
91
|
-
context.closePath();
|
81
|
+
super.postrender(context);
|
92
82
|
}
|
93
83
|
contains(x, y) {
|
94
84
|
var contains = super.contains(x, y);
|
@@ -110,6 +100,14 @@ export default class IndoorMap extends Container {
|
|
110
100
|
this.invalidate();
|
111
101
|
return contains;
|
112
102
|
}
|
103
|
+
onchange(after) {
|
104
|
+
if ('activeIndex' in after) {
|
105
|
+
this.layoutConfig = {
|
106
|
+
...this.layoutConfig,
|
107
|
+
activeIndex: after.activeIndex
|
108
|
+
};
|
109
|
+
}
|
110
|
+
}
|
113
111
|
onmouseup(e) {
|
114
112
|
var down_point = this.__down_point;
|
115
113
|
delete this.__down_point;
|
@@ -136,7 +134,7 @@ export default class IndoorMap extends Container {
|
|
136
134
|
// height: 100
|
137
135
|
// }))
|
138
136
|
// }
|
139
|
-
this.activeIndex
|
137
|
+
this.set('activeIndex', y);
|
140
138
|
}
|
141
139
|
onmousedown(e) {
|
142
140
|
this.__down_point = {
|
@@ -154,7 +152,7 @@ export default class IndoorMap extends Container {
|
|
154
152
|
height: 100
|
155
153
|
});
|
156
154
|
this.addComponent(floor);
|
157
|
-
this.activeIndex
|
155
|
+
this.set('activeIndex', this.components.length - 1);
|
158
156
|
}
|
159
157
|
}
|
160
158
|
Component.register('indoor-map', IndoorMap);
|
package/dist/indoor-map.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"indoor-map.js","sourceRoot":"","sources":["../src/indoor-map.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,
|
1
|
+
{"version":3,"file":"indoor-map.js","sourceRoot":"","sources":["../src/indoor-map.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { CardLayout, Component, Container, Model, POINT, State } from '@hatiolab/things-scene'\n\nimport Floor from './floor'\n\nconst LABEL_WIDTH = 25\nconst LABEL_HEIGHT = 25\n\nfunction rgba(r: number, g: number, b: number, a: number) {\n return `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'action',\n label: 'floor',\n name: 'floor',\n property: {\n icon: 'add-circle',\n action: (indoorMap: IndoorMap) => {\n indoorMap.addFloor()\n }\n }\n },\n {\n type: 'number',\n label: 'active index',\n name: 'activeIndex'\n }\n ],\n 'value-property': 'activeIndex',\n help: 'scene/component/indoor-map'\n}\n\nexport default class IndoorMap extends Container {\n private _focused: boolean = false\n private __down_point?: POINT\n\n get nature() {\n return NATURE\n }\n\n get layout() {\n return CardLayout\n }\n\n get layoutConfig() {\n return this.get('layoutConfig')\n }\n\n set layoutConfig(config) {\n this.set('layoutConfig', config)\n }\n\n get activeFloor(): Floor {\n return this.components[this.get('layoutConfig').activeIndex] as Floor\n }\n\n ready() {\n super.ready()\n\n if (this.components.length == 0) this.addFloor()\n }\n\n postrender(context: CanvasRenderingContext2D) {\n if (!this.app.isViewMode && this._focused) {\n var { left, top, width, fillStyle } = this.model\n\n // floor 선택 탭 그리기\n for (let i = 0; i < this.components.length; i++) {\n context.beginPath()\n\n context.rect(left - LABEL_WIDTH, top + i * LABEL_HEIGHT, LABEL_WIDTH, LABEL_HEIGHT)\n\n let color = 255 - ((20 * (i + 1)) % 255)\n context.fillStyle = rgba(color, color, color, 1)\n context.fill()\n\n context.closePath()\n }\n\n context.beginPath()\n\n context.moveTo(left, top)\n context.lineTo(left - LABEL_WIDTH, top)\n context.lineTo(left - LABEL_WIDTH, top + this.components.length * LABEL_HEIGHT)\n context.lineTo(left, top + this.components.length * LABEL_HEIGHT)\n\n context.strokeStyle = '#ccc'\n context.stroke()\n\n context.closePath()\n }\n\n super.postrender(context)\n }\n\n contains(x: number, y: number) {\n var contains = super.contains(x, y)\n\n if (this.app.isViewMode) return contains\n\n var { left, top, width } = this.bounds\n var h = LABEL_HEIGHT\n\n contains =\n contains ||\n // card selector 영역에 포함되는지\n (x < Math.max(left - LABEL_WIDTH, left) &&\n x > Math.min(left - LABEL_WIDTH, left) &&\n y < Math.max(top + h * this.size(), top) &&\n y > Math.min(top + h * this.size(), top))\n\n if (contains) this._focused = true\n else this._focused = false\n\n this.invalidate()\n return contains\n }\n\n onchange(after: State) {\n if ('activeIndex' in after) {\n this.layoutConfig = {\n ...this.layoutConfig,\n activeIndex: after.activeIndex\n }\n }\n }\n\n onmouseup(e: MouseEvent) {\n var down_point = this.__down_point\n delete this.__down_point\n\n if (!down_point || down_point.x != e.offsetX || down_point.y != e.offsetY) {\n return\n }\n\n var point = this.transcoordC2S(e.offsetX, e.offsetY)\n\n var { left, top } = this.model\n\n var x = point.x - left\n var y = point.y - top\n\n if (x > 0) return\n\n y /= LABEL_HEIGHT\n y = Math.floor(y)\n\n if (!this.layoutConfig) this.layoutConfig = {}\n\n if (y >= this.components.length) return\n\n // /* 생성 버튼이 클릭되면, 새로운 floor를 추가한다. */\n // if(y == this.components.length) {\n // this.add(Model.compile({\n // type: 'floor',\n // width: 100,\n // height: 100\n // }))\n // }\n this.set('activeIndex', y)\n }\n\n onmousedown(e: MouseEvent) {\n this.__down_point = {\n x: e.offsetX,\n y: e.offsetY\n }\n }\n\n addFloor() {\n let floor = Model.compile({\n type: 'floor',\n fillStyle: 'gray',\n top: 0,\n left: 0,\n width: 100,\n height: 100\n })\n\n this.addComponent(floor)\n this.set('activeIndex', this.components.length - 1)\n }\n}\n\nComponent.register('indoor-map', IndoorMap)\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@operato/scene-indoor-map",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.20",
|
4
4
|
"description": "Indoor Map component for things-scene.",
|
5
5
|
"license": "MIT",
|
6
6
|
"author": "heartyoh",
|
@@ -26,13 +26,13 @@
|
|
26
26
|
"migration": "things-factory-migration"
|
27
27
|
},
|
28
28
|
"dependencies": {
|
29
|
-
"@hatiolab/things-scene": "^2.7.
|
29
|
+
"@hatiolab/things-scene": "^2.7.27"
|
30
30
|
},
|
31
31
|
"devDependencies": {
|
32
32
|
"@hatiolab/prettier-config": "^1.0.0",
|
33
|
-
"@operato/board": "^0.2.
|
34
|
-
"@things-factory/builder": "^4.0.
|
35
|
-
"@things-factory/operato-board": "^4.0.
|
33
|
+
"@operato/board": "^0.2.47",
|
34
|
+
"@things-factory/builder": "^4.0.13",
|
35
|
+
"@things-factory/operato-board": "^4.0.13",
|
36
36
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
37
37
|
"@typescript-eslint/parser": "^4.33.0",
|
38
38
|
"@web/dev-server": "^0.1.28",
|
@@ -57,5 +57,5 @@
|
|
57
57
|
"prettier --write"
|
58
58
|
]
|
59
59
|
},
|
60
|
-
"gitHead": "
|
60
|
+
"gitHead": "8493afb78b812443a6e16c1ffed52cba3fbea8c9"
|
61
61
|
}
|
package/src/editors/index.ts
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
3
3
|
*/
|
4
|
-
|
4
|
+
|
5
|
+
import './things-editor-action'
|
5
6
|
|
6
7
|
export default [
|
7
8
|
{
|
8
9
|
type: 'action',
|
9
|
-
element:
|
10
|
+
element: 'things-editor-action'
|
10
11
|
}
|
11
12
|
]
|
@@ -1,48 +1,49 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
3
3
|
*/
|
4
|
+
|
5
|
+
import { Component, Properties } from '@hatiolab/things-scene'
|
4
6
|
import { css, html } from 'lit'
|
5
7
|
|
6
|
-
import { Properties } from '@hatiolab/things-scene'
|
7
8
|
import { OxPropertyEditor } from '@operato/property-editor'
|
9
|
+
import { customElement } from 'lit/decorators.js'
|
8
10
|
|
11
|
+
@customElement('things-editor-action')
|
9
12
|
export default class ThingsEditorAction extends OxPropertyEditor {
|
10
|
-
static
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
:
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
align-items: center;
|
23
|
-
justify-self: right;
|
24
|
-
}
|
25
|
-
`
|
26
|
-
]
|
27
|
-
}
|
13
|
+
static styles = [
|
14
|
+
...OxPropertyEditor.styles,
|
15
|
+
css`
|
16
|
+
:host > label {
|
17
|
+
display: flex;
|
18
|
+
grid-column: span 3;
|
19
|
+
order: 1;
|
20
|
+
align-items: center;
|
21
|
+
justify-self: right;
|
22
|
+
}
|
23
|
+
`
|
24
|
+
]
|
28
25
|
|
29
26
|
editorTemplate(props: Properties) {
|
30
27
|
var property = props.property || {}
|
31
28
|
var { icon, action } = property
|
29
|
+
|
32
30
|
return html`
|
33
31
|
<paper-icon-button
|
34
32
|
.icon=${icon}
|
35
|
-
@click=${(e: MouseEvent) =>
|
33
|
+
@click=${(e: MouseEvent) => {
|
36
34
|
this.dispatchEvent(
|
37
|
-
new CustomEvent('
|
35
|
+
new CustomEvent('i-need-selected', {
|
38
36
|
bubbles: true,
|
39
37
|
composed: true,
|
40
|
-
detail:
|
38
|
+
detail: {
|
39
|
+
callback: (selected: Component[]) => {
|
40
|
+
typeof action === 'function' && action(selected[0])
|
41
|
+
}
|
42
|
+
}
|
41
43
|
})
|
42
|
-
)
|
44
|
+
)
|
45
|
+
}}
|
43
46
|
></paper-icon-button>
|
44
47
|
`
|
45
48
|
}
|
46
49
|
}
|
47
|
-
|
48
|
-
customElements.define(ThingsEditorAction.is, ThingsEditorAction)
|
package/src/floor.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
3
3
|
*/
|
4
|
-
import { Component, Container } from '@hatiolab/things-scene'
|
4
|
+
import { Component, Container } from '@hatiolab/things-scene'
|
5
5
|
|
6
|
-
import IndoorMap from './indoor-map'
|
6
|
+
import IndoorMap from './indoor-map'
|
7
7
|
|
8
8
|
const NATURE = {
|
9
9
|
mutable: false,
|
@@ -16,11 +16,10 @@ const NATURE = {
|
|
16
16
|
name: 'remove',
|
17
17
|
property: {
|
18
18
|
icon: 'remove-circle',
|
19
|
-
action: function(floor: Floor) {
|
19
|
+
action: function (floor: Floor) {
|
20
20
|
let indoor = floor.parent as IndoorMap
|
21
21
|
indoor.removeComponent(floor)
|
22
|
-
indoor.activeIndex
|
23
|
-
indoor.invalidate()
|
22
|
+
indoor.set('activeIndex', 0)
|
24
23
|
}
|
25
24
|
}
|
26
25
|
}
|
package/src/indoor-map.ts
CHANGED
@@ -1,15 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
3
3
|
*/
|
4
|
-
import {
|
5
|
-
CardLayout,
|
6
|
-
Component,
|
7
|
-
Container,
|
8
|
-
Model,
|
9
|
-
POINT,
|
10
|
-
} from '@hatiolab/things-scene';
|
4
|
+
import { CardLayout, Component, Container, Model, POINT, State } from '@hatiolab/things-scene'
|
11
5
|
|
12
|
-
import Floor from './floor'
|
6
|
+
import Floor from './floor'
|
13
7
|
|
14
8
|
const LABEL_WIDTH = 25
|
15
9
|
const LABEL_HEIGHT = 25
|
@@ -33,6 +27,11 @@ const NATURE = {
|
|
33
27
|
indoorMap.addFloor()
|
34
28
|
}
|
35
29
|
}
|
30
|
+
},
|
31
|
+
{
|
32
|
+
type: 'number',
|
33
|
+
label: 'active index',
|
34
|
+
name: 'activeIndex'
|
36
35
|
}
|
37
36
|
],
|
38
37
|
'value-property': 'activeIndex',
|
@@ -51,17 +50,6 @@ export default class IndoorMap extends Container {
|
|
51
50
|
return CardLayout
|
52
51
|
}
|
53
52
|
|
54
|
-
get activeIndex() {
|
55
|
-
var config = Object.assign({}, this.layoutConfig)
|
56
|
-
return config.activeIndex
|
57
|
-
}
|
58
|
-
|
59
|
-
set activeIndex(index) {
|
60
|
-
var config = Object.assign({}, this.layoutConfig)
|
61
|
-
config.activeIndex = index
|
62
|
-
this.layoutConfig = config
|
63
|
-
}
|
64
|
-
|
65
53
|
get layoutConfig() {
|
66
54
|
return this.get('layoutConfig')
|
67
55
|
}
|
@@ -81,46 +69,36 @@ export default class IndoorMap extends Container {
|
|
81
69
|
}
|
82
70
|
|
83
71
|
postrender(context: CanvasRenderingContext2D) {
|
84
|
-
|
72
|
+
if (!this.app.isViewMode && this._focused) {
|
73
|
+
var { left, top, width, fillStyle } = this.model
|
74
|
+
|
75
|
+
// floor 선택 탭 그리기
|
76
|
+
for (let i = 0; i < this.components.length; i++) {
|
77
|
+
context.beginPath()
|
85
78
|
|
86
|
-
|
79
|
+
context.rect(left - LABEL_WIDTH, top + i * LABEL_HEIGHT, LABEL_WIDTH, LABEL_HEIGHT)
|
87
80
|
|
88
|
-
|
81
|
+
let color = 255 - ((20 * (i + 1)) % 255)
|
82
|
+
context.fillStyle = rgba(color, color, color, 1)
|
83
|
+
context.fill()
|
89
84
|
|
90
|
-
|
85
|
+
context.closePath()
|
86
|
+
}
|
91
87
|
|
92
|
-
// floor 선택 탭 그리기
|
93
|
-
for (let i = 0; i < this.components.length; i++) {
|
94
88
|
context.beginPath()
|
95
89
|
|
96
|
-
context.
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
LABEL_HEIGHT
|
101
|
-
)
|
90
|
+
context.moveTo(left, top)
|
91
|
+
context.lineTo(left - LABEL_WIDTH, top)
|
92
|
+
context.lineTo(left - LABEL_WIDTH, top + this.components.length * LABEL_HEIGHT)
|
93
|
+
context.lineTo(left, top + this.components.length * LABEL_HEIGHT)
|
102
94
|
|
103
|
-
|
104
|
-
context.
|
105
|
-
context.fill()
|
95
|
+
context.strokeStyle = '#ccc'
|
96
|
+
context.stroke()
|
106
97
|
|
107
98
|
context.closePath()
|
108
99
|
}
|
109
100
|
|
110
|
-
|
111
|
-
|
112
|
-
context.moveTo(left, top)
|
113
|
-
context.lineTo(left - LABEL_WIDTH, top)
|
114
|
-
context.lineTo(
|
115
|
-
left - LABEL_WIDTH,
|
116
|
-
top + this.components.length * LABEL_HEIGHT
|
117
|
-
)
|
118
|
-
context.lineTo(left, top + this.components.length * LABEL_HEIGHT)
|
119
|
-
|
120
|
-
context.strokeStyle = '#ccc'
|
121
|
-
context.stroke()
|
122
|
-
|
123
|
-
context.closePath()
|
101
|
+
super.postrender(context)
|
124
102
|
}
|
125
103
|
|
126
104
|
contains(x: number, y: number) {
|
@@ -146,6 +124,15 @@ export default class IndoorMap extends Container {
|
|
146
124
|
return contains
|
147
125
|
}
|
148
126
|
|
127
|
+
onchange(after: State) {
|
128
|
+
if ('activeIndex' in after) {
|
129
|
+
this.layoutConfig = {
|
130
|
+
...this.layoutConfig,
|
131
|
+
activeIndex: after.activeIndex
|
132
|
+
}
|
133
|
+
}
|
134
|
+
}
|
135
|
+
|
149
136
|
onmouseup(e: MouseEvent) {
|
150
137
|
var down_point = this.__down_point
|
151
138
|
delete this.__down_point
|
@@ -178,7 +165,7 @@ export default class IndoorMap extends Container {
|
|
178
165
|
// height: 100
|
179
166
|
// }))
|
180
167
|
// }
|
181
|
-
this.activeIndex
|
168
|
+
this.set('activeIndex', y)
|
182
169
|
}
|
183
170
|
|
184
171
|
onmousedown(e: MouseEvent) {
|
@@ -199,13 +186,8 @@ export default class IndoorMap extends Container {
|
|
199
186
|
})
|
200
187
|
|
201
188
|
this.addComponent(floor)
|
202
|
-
this.activeIndex
|
189
|
+
this.set('activeIndex', this.components.length - 1)
|
203
190
|
}
|
204
|
-
|
205
|
-
// drawLocationMarkers(locations) {
|
206
|
-
// let floor = this.activeFloor
|
207
|
-
// floor.drawLocationMarkers(locations)
|
208
|
-
// }
|
209
191
|
}
|
210
192
|
|
211
193
|
Component.register('indoor-map', IndoorMap)
|
package/tsconfig.tsbuildinfo
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./@types/global/index.d.ts","../../node_modules/tslib/tslib.d.ts","./node_modules/@hatiolab/things-scene/things-scene.d.ts","./src/beacon.ts","./src/quaternion.ts","./src/camera.ts","./src/indoor-map.ts","./src/floor.ts","./src/rack.ts","./src/index.ts","../../node_modules/@lit/reactive-element/css-tag.d.ts","../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../node_modules/@types/trusted-types/lib/index.d.ts","../../node_modules/@types/trusted-types/index.d.ts","../../node_modules/lit-html/directive.d.ts","../../node_modules/lit-html/lit-html.d.ts","../../node_modules/lit-element/lit-element.d.ts","../../node_modules/lit/index.d.ts","../../node_modules/@operato/property-editor/dist/src/ox-property-editor.d.ts","../../node_modules/@operato/property-editor/dist/src/index.d.ts","./src/editors/things-editor-action.ts","./src/editors/index.ts","./src/templates/beacon.ts","./src/templates/camera.ts","./src/templates/indoor-map.ts","./src/templates/rack.ts","./src/templates/index.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"6adbf5efd0e374ff5f427a4f26a5a413e9734eee5067a0e86da69aea41910b52","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"c4f5f288a2b8dcfb6183e29612ec26b7a049314a6a10b7e6e700a8307077455a","12f4cfe2fe60b810c3174537bc2ddb20c1067b7768643d12cb1266fd183afb75","80310f2f11d74eede68eddec9977900f2c1965e728b63b1a4e47a20e15ac84e5","76395d012a9988aec73b86e6bcabb9ddf7e0b3edc7621615aac620aeebcfb558","8846e9ec615004e255a9aac0056071d9f2e8dedf4e391c4dd308d793db2f5744","005f56f0650768db0a1326a3bf7f3e5be1346152d12825162804cc6b1c0e673c","199065a9ea9449bf8177a7b4a19337eb5a8da409e214ad8efa9e7cd7d3ced190","b6ed5ce407d26b7d0d364b2eea58a68837557da3af4e14212145a3e8496b7a57","6da970129f66ae6cec3bc4910447772f96de476b50d8d31fcc9b4461d1d06934","73801edd15e5b7d77e0c3159a9a5f5ae506a0631893faaa0e4deb89f83630386","0c8a56610b08f55e29ffb466cd27626ad6dbe822312a398026e82270c63088e3","1e5743b25a63fd34ffbae89adcbf248ee17db6ed08d90079ffa93803c3e80d2a","7b33ee85f2e96a51c0e3bcee47b247a24515aff37a7d8b5dfe4e18b735d37440","2fcd2d22b1f30555e785105597cd8f57ed50300e213c4f1bbca6ae149f782c38",{"version":"bb4248c7f953233ac52332088fac897d62b82be07244e551d87c5049600b6cf7","affectsGlobalScope":true},"70f04c91d3186b1b10157157887fab664968fc9b88377785a5ee42750c202c6d","06e20da1bc94df355f22ac7a9533c2488816ec4cb9134d9b160a263629a07072","c311ef8d8b159d0c268b415f78c1949498dc2d14455a9891c5b8ef84625b1e41","f07a77a7fb1d49aa2b61cb68bf712a083487acd7130d20223a83de03af0c257d","48997560f6ca5fd8b4233b69d1f9cbac88d26719e925fff493fdebb5198b675f","a1045a03e654de1219e85600f7589af7a91e4ac37e2aff114f2ceba34111d34d","48d697d00cbdd0df5728773969a65c1f486daafcf2077871f8cc5fed66ea4014","fbe3e5003a3945114b1175a5547d4bfa7c09bf73be03c283107f31a25d53df26","2d36e6d5a7c99088290a15d860da0337d38833f90065c1def71921f0a64c48fb","fc9a059f93763e55a69b998866523b9070ee4f7f94448158402c9923e8417ef2","22328737737440b1243c57219bad62697ab9e0d71d043cbddb582fc07d5ccfa3","9cc266f7c0e6f95ffccef901a73a3317648b03beda79db2de55f3648880a479d","2459a79823f59c1d0b6a77660f636e6aae91e4270e25296aa534bc524c7b96d0","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"9acfe4d1ff027015151ce81d60797b04b52bffe97ad8310bb0ec2e8fd61e1303","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","b9b963043551b034abd9e7c6d859f7a81d99479fde938d983114d167d0644a78","b287b810b5035d5685f1df6e1e418f1ca452a3ed4f59fd5cc081dbf2045f0d9b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"902cd98bf46e95caf4118a0733fb801e9e90eec3edaed6abdad77124afec9ca2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","cd4854d38f4eb5592afd98ab95ca17389a7dfe38013d9079e802d739bdbcc939","94eed4cc2f5f658d5e229ff1ccd38860bddf4233e347bf78edd2154dee1f2b99",{"version":"bd1a08e30569b0fb2f0b21035eb9b039871f68faa9b98accf847e9c878c5e0a9","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a7971f9fb2a32ec7788ec6cda9d7a33c02023dfe9a62db2030ad1359649d8050","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4","d88ecca73348e7c337541c4b8b60a50aca5e87384f6b8a422fc6603c637e4c21","badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1cdb8f094b969dcc183745dc88404e2d8fcf2a858c6e7cc2441011476573238e"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./dist","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[111],[50,51,111],[59,111],[56,58,111],[68,111],[71,111],[72,77,111],[73,83,84,91,100,110,111],[73,74,83,91,111],[75,111],[76,77,84,92,111],[77,100,107,111],[78,80,83,91,111],[79,111],[80,81,111],[82,83,111],[83,111],[83,84,85,100,110,111],[83,84,85,100,111],[86,91,100,110,111],[83,84,86,87,91,100,107,110,111],[86,88,100,107,110,111],[68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[83,89,111],[90,110,111],[80,83,91,100,111],[92,111],[93,111],[71,94,111],[95,109,111,115],[96,111],[97,111],[83,98,111],[98,99,111,113],[83,100,101,102,111],[100,102,111],[100,101,111],[103,111],[104,111],[83,105,106,111],[105,106,111],[77,91,107,111],[108,111],[91,109,111],[72,86,97,110,111],[77,111],[100,111,112],[111,113],[111,114],[72,77,83,85,94,100,110,111,113,115],[100,111,116],[53,111],[52,56,111],[56,111],[54,55,111],[52,56,57,111],[41,42,111],[41,42,44,111],[41,61,111],[41,42,58,60,111],[41,42,46,111],[41,46,47,48,111],[41,42,47,111],[41,111],[40,41,111],[41,65,66,111]],"referencedMap":[[50,1],[51,1],[52,2],[60,3],[59,4],[68,5],[69,5],[71,6],[72,7],[73,8],[74,9],[75,10],[76,11],[77,12],[78,13],[79,14],[80,15],[81,15],[82,16],[83,17],[84,18],[85,19],[70,1],[117,1],[86,20],[87,21],[88,22],[118,23],[89,24],[90,25],[91,26],[92,27],[93,28],[94,29],[95,30],[96,31],[97,32],[98,33],[99,34],[100,35],[102,36],[101,37],[103,38],[104,39],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[54,52],[53,1],[57,53],[55,54],[56,55],[58,56],[41,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[40,1],[42,1],[43,57],[45,58],[62,59],[61,60],[47,61],[49,62],[46,63],[44,64],[48,57],[63,65],[64,65],[67,66],[65,65],[66,65]],"exportedModulesMap":[[50,1],[51,1],[52,2],[60,3],[59,4],[68,5],[69,5],[71,6],[72,7],[73,8],[74,9],[75,10],[76,11],[77,12],[78,13],[79,14],[80,15],[81,15],[82,16],[83,17],[84,18],[85,19],[70,1],[117,1],[86,20],[87,21],[88,22],[118,23],[89,24],[90,25],[91,26],[92,27],[93,28],[94,29],[95,30],[96,31],[97,32],[98,33],[99,34],[100,35],[102,36],[101,37],[103,38],[104,39],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[54,52],[53,1],[57,53],[55,54],[56,55],[58,56],[41,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[40,1],[42,1],[43,57],[45,58],[62,59],[61,60],[47,61],[49,62],[46,63],[44,64],[48,57],[63,65],[64,65],[67,66],[65,65],[66,65]],"semanticDiagnosticsPerFile":[50,51,52,60,59,68,69,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,70,117,86,87,88,118,89,90,91,92,93,94,95,96,97,98,99,100,102,101,103,104,105,106,107,108,109,110,111,112,113,114,115,116,54,53,57,55,56,58,41,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,40,42,43,45,62,61,47,49,46,44,48,63,64,67,65,66]},"version":"4.5.2"}
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./@types/global/index.d.ts","../../node_modules/tslib/tslib.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@hatiolab/things-scene/things-scene.d.ts","./src/beacon.ts","./src/quaternion.ts","./src/camera.ts","./src/indoor-map.ts","./src/floor.ts","./src/rack.ts","./src/index.ts","../../node_modules/@lit/reactive-element/css-tag.d.ts","../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../node_modules/@types/trusted-types/lib/index.d.ts","../../node_modules/@types/trusted-types/index.d.ts","../../node_modules/lit-html/directive.d.ts","../../node_modules/lit-html/lit-html.d.ts","../../node_modules/lit-element/lit-element.d.ts","../../node_modules/lit/index.d.ts","../../node_modules/@operato/property-editor/dist/src/ox-property-editor.d.ts","../../node_modules/@operato/property-editor/dist/src/index.d.ts","../../node_modules/@lit/reactive-element/decorators/base.d.ts","../../node_modules/@lit/reactive-element/decorators/custom-element.d.ts","../../node_modules/@lit/reactive-element/decorators/property.d.ts","../../node_modules/@lit/reactive-element/decorators/state.d.ts","../../node_modules/@lit/reactive-element/decorators/event-options.d.ts","../../node_modules/@lit/reactive-element/decorators/query.d.ts","../../node_modules/@lit/reactive-element/decorators/query-all.d.ts","../../node_modules/@lit/reactive-element/decorators/query-async.d.ts","../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.d.ts","../../node_modules/lit/decorators.d.ts","./src/editors/things-editor-action.ts","./src/editors/index.ts","./src/templates/beacon.ts","./src/templates/camera.ts","./src/templates/indoor-map.ts","./src/templates/rack.ts","./src/templates/index.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"6adbf5efd0e374ff5f427a4f26a5a413e9734eee5067a0e86da69aea41910b52","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"c4f5f288a2b8dcfb6183e29612ec26b7a049314a6a10b7e6e700a8307077455a","12f4cfe2fe60b810c3174537bc2ddb20c1067b7768643d12cb1266fd183afb75","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","6ac6f24aff52e62c3950461aa17eab26e3a156927858e6b654baef0058b4cd1e",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"7fb2f69d0486f29e5307a86acca20378bf1feb9dabbe4a77aea24661955d1fbe",{"version":"76395d012a9988aec73b86e6bcabb9ddf7e0b3edc7621615aac620aeebcfb558","signature":"856b81499bac27b41e9c41e414cb72e0c0ce1617f3b0b38c4c6d45e2c77d9d38"},"8846e9ec615004e255a9aac0056071d9f2e8dedf4e391c4dd308d793db2f5744",{"version":"005f56f0650768db0a1326a3bf7f3e5be1346152d12825162804cc6b1c0e673c","signature":"e50c9b07d1da55e73bf362d23392736106d1504bbf3455c3d238bb0539cff074"},{"version":"8bc438cdb3cd3d9490cf27bcee0d8ffb9a8437cd8f3df7565daad1c278d1945a","signature":"bc552d2664c47f66e15b8cfbcb06c2dbea87d5bba2ce27084d9a02ebc5c80145"},{"version":"fd67ab54bc5a437effb1c5c2a1094cd8eb1507e9475f2ce47303ae5cde1487da","signature":"c7efd4aac62f3d6372dca124a0b6f1c6f8a5b6320d37aa65fe1268cf8cd9ff4d"},{"version":"6da970129f66ae6cec3bc4910447772f96de476b50d8d31fcc9b4461d1d06934","signature":"cf28d7c5d7d2dfbbf9fb142d7bf7f0f946079bec1e513fc1069c161c8a7b2f68"},{"version":"73801edd15e5b7d77e0c3159a9a5f5ae506a0631893faaa0e4deb89f83630386","signature":"4567a005d4dd065e4ca14e60b5453c7f41818bea7731344e7cafe9bb7c7370fd"},"0c8a56610b08f55e29ffb466cd27626ad6dbe822312a398026e82270c63088e3","1e5743b25a63fd34ffbae89adcbf248ee17db6ed08d90079ffa93803c3e80d2a","7b33ee85f2e96a51c0e3bcee47b247a24515aff37a7d8b5dfe4e18b735d37440","2fcd2d22b1f30555e785105597cd8f57ed50300e213c4f1bbca6ae149f782c38",{"version":"bb4248c7f953233ac52332088fac897d62b82be07244e551d87c5049600b6cf7","affectsGlobalScope":true},"70f04c91d3186b1b10157157887fab664968fc9b88377785a5ee42750c202c6d","06e20da1bc94df355f22ac7a9533c2488816ec4cb9134d9b160a263629a07072","c311ef8d8b159d0c268b415f78c1949498dc2d14455a9891c5b8ef84625b1e41","f07a77a7fb1d49aa2b61cb68bf712a083487acd7130d20223a83de03af0c257d","48997560f6ca5fd8b4233b69d1f9cbac88d26719e925fff493fdebb5198b675f","a1045a03e654de1219e85600f7589af7a91e4ac37e2aff114f2ceba34111d34d","97c58f6db61d45712d91d2260994817ae2b568bbb37cc280013079b6b5d2232d","ac388c7c7a262213a3700451bc921e382a93fb27c0252c34ccf03540b4ce044b","9bdb35d0b28dcd5d8f0879bd29f0cf07b7eb48aa63be4dd44057e32fcfeb1c83","fb0107c83e2e0e75b77dacd0c3c6c3ab6844e98dce2a8f858c6f0a57c12136a6","84610cf09dee3cefc910555318f1ad7b45f1cba36905a86849324ca4fead2385","a25d1e52291791819032826af5c52987e16ffdb96e8bb69f7f1790f5ab080be6","d660961abada6b5030461f3322ef3a2e1d9fec74167574f8b590a7796cf90a72","707b4eae3d469b2f347d2083037151922f94c370a9456ebd5ac0a4fb7441c7e7","ef509d57201aa4e2e3e2b3d1fafd066a8ce68cd2caea737d539c3544f5a99a67","84c66a77a1302611ea5001dc88d10de1b5d87c6b2f30a48585495217421ce1ac",{"version":"5916e95868407beccbd336fe96abfc3a184a84436ff534a1759a2bbf206690dd","signature":"c6f6dd9198a61a12cf02bad5d3c6c043318884bfd3bf4f11fd82c8fbe681e882"},{"version":"2574a544ce1f6c988dbeb0f6ae9435f89345ec95c03a60b2991caeae1b45c31d","signature":"1043bbc5a3ee64f9551f061d4f920c2680affad6c82f108788a8353209ea69c6"},"2d36e6d5a7c99088290a15d860da0337d38833f90065c1def71921f0a64c48fb","fc9a059f93763e55a69b998866523b9070ee4f7f94448158402c9923e8417ef2","22328737737440b1243c57219bad62697ab9e0d71d043cbddb582fc07d5ccfa3","9cc266f7c0e6f95ffccef901a73a3317648b03beda79db2de55f3648880a479d","2459a79823f59c1d0b6a77660f636e6aae91e4270e25296aa534bc524c7b96d0","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"9acfe4d1ff027015151ce81d60797b04b52bffe97ad8310bb0ec2e8fd61e1303","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","b9b963043551b034abd9e7c6d859f7a81d99479fde938d983114d167d0644a78","b287b810b5035d5685f1df6e1e418f1ca452a3ed4f59fd5cc081dbf2045f0d9b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"902cd98bf46e95caf4118a0733fb801e9e90eec3edaed6abdad77124afec9ca2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","cd4854d38f4eb5592afd98ab95ca17389a7dfe38013d9079e802d739bdbcc939","94eed4cc2f5f658d5e229ff1ccd38860bddf4233e347bf78edd2154dee1f2b99",{"version":"bd1a08e30569b0fb2f0b21035eb9b039871f68faa9b98accf847e9c878c5e0a9","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a7971f9fb2a32ec7788ec6cda9d7a33c02023dfe9a62db2030ad1359649d8050","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4","d88ecca73348e7c337541c4b8b60a50aca5e87384f6b8a422fc6603c637e4c21","badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1cdb8f094b969dcc183745dc88404e2d8fcf2a858c6e7cc2441011476573238e"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./dist","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[54,134],[134],[65,134],[74,134],[65,74,134],[63,64,134],[72,134],[69,71,134],[42,44,45,46,47,48,49,50,51,52,53,54,134],[42,43,45,46,47,48,49,50,51,52,53,54,134],[43,44,45,46,47,48,49,50,51,52,53,54,134],[42,43,44,46,47,48,49,50,51,52,53,54,134],[42,43,44,45,47,48,49,50,51,52,53,54,134],[42,43,44,45,46,48,49,50,51,52,53,54,134],[42,43,44,45,46,47,49,50,51,52,53,54,134],[42,43,44,45,46,47,48,50,51,52,53,54,134],[42,43,44,45,46,47,48,49,51,52,53,54,134],[42,43,44,45,46,47,48,49,50,52,53,54,134],[42,43,44,45,46,47,48,49,50,51,53,54,134],[42,43,44,45,46,47,48,49,50,51,52,54,134],[42,43,44,45,46,47,48,49,50,51,52,53,134],[91,134],[94,134],[95,100,134],[96,106,107,114,123,133,134],[96,97,106,114,134],[98,134],[99,100,107,115,134],[100,123,130,134],[101,103,106,114,134],[102,134],[103,104,134],[105,106,134],[106,134],[106,107,108,123,133,134],[106,107,108,123,134],[109,114,123,133,134],[106,107,109,110,114,123,130,133,134],[109,111,123,130,133,134],[91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140],[106,112,134],[113,133,134],[103,106,114,123,134],[115,134],[116,134],[94,117,134],[118,132,134,138],[119,134],[120,134],[106,121,134],[121,122,134,136],[106,123,124,125,134],[123,125,134],[123,124,134],[126,134],[127,134],[106,128,129,134],[128,129,134],[100,114,130,134],[131,134],[114,132,134],[95,109,120,133,134],[100,134],[123,134,135],[134,136],[134,137],[95,100,106,108,117,123,133,134,136,138],[123,134,139],[66,134],[65,69,134],[69,134],[67,68,134],[75,76,77,78,79,80,81,82,134],[65,69,70,134],[41,55,134],[41,55,57,134],[41,84,134],[41,55,71,73,83,134],[41,55,59,134],[41,59,60,61,134],[41,55,60,134],[41,134],[40,41,134],[41,88,89,134],[55],[84],[55,69,71,73],[59,60,61],[55,60]],"referencedMap":[[55,1],[63,2],[74,3],[75,4],[78,5],[76,5],[80,5],[82,5],[81,5],[79,5],[77,4],[64,2],[65,6],[73,7],[72,8],[43,9],[44,10],[42,11],[45,12],[46,13],[47,14],[48,15],[49,16],[50,17],[51,18],[52,19],[53,20],[54,21],[91,22],[92,22],[94,23],[95,24],[96,25],[97,26],[98,27],[99,28],[100,29],[101,30],[102,31],[103,32],[104,32],[105,33],[106,34],[107,35],[108,36],[93,2],[140,2],[109,37],[110,38],[111,39],[141,40],[112,41],[113,42],[114,43],[115,44],[116,45],[117,46],[118,47],[119,48],[120,49],[121,50],[122,51],[123,52],[125,53],[124,54],[126,55],[127,56],[128,57],[129,58],[130,59],[131,60],[132,61],[133,62],[134,63],[135,64],[136,65],[137,66],[138,67],[139,68],[67,69],[66,2],[70,70],[68,71],[69,72],[83,73],[71,74],[41,2],[8,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[38,2],[34,2],[35,2],[36,2],[37,2],[1,2],[39,2],[40,2],[56,75],[58,76],[85,77],[84,78],[60,79],[62,80],[59,81],[57,82],[61,75],[86,83],[87,83],[90,84],[88,83],[89,83]],"exportedModulesMap":[[55,1],[63,2],[74,3],[75,4],[78,5],[76,5],[80,5],[82,5],[81,5],[79,5],[77,4],[64,2],[65,6],[73,7],[72,8],[43,9],[44,10],[42,11],[45,12],[46,13],[47,14],[48,15],[49,16],[50,17],[51,18],[52,19],[53,20],[54,21],[91,22],[92,22],[94,23],[95,24],[96,25],[97,26],[98,27],[99,28],[100,29],[101,30],[102,31],[103,32],[104,32],[105,33],[106,34],[107,35],[108,36],[93,2],[140,2],[109,37],[110,38],[111,39],[141,40],[112,41],[113,42],[114,43],[115,44],[116,45],[117,46],[118,47],[119,48],[120,49],[121,50],[122,51],[123,52],[125,53],[124,54],[126,55],[127,56],[128,57],[129,58],[130,59],[131,60],[132,61],[133,62],[134,63],[135,64],[136,65],[137,66],[138,67],[139,68],[67,69],[66,2],[70,70],[68,71],[69,72],[83,73],[71,74],[41,2],[8,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[38,2],[34,2],[35,2],[36,2],[37,2],[1,2],[39,2],[40,2],[56,85],[58,85],[85,86],[84,87],[60,85],[62,88],[59,89],[57,82],[61,85],[86,83],[87,83],[90,84],[88,83],[89,83]],"semanticDiagnosticsPerFile":[55,63,74,75,78,76,80,82,81,79,77,64,65,73,72,43,44,42,45,46,47,48,49,50,51,52,53,54,91,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,93,140,109,110,111,141,112,113,114,115,116,117,118,119,120,121,122,123,125,124,126,127,128,129,130,131,132,133,134,135,136,137,138,139,67,66,70,68,69,83,71,41,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,40,56,58,85,84,60,62,59,57,61,86,87,90,88,89]},"version":"4.5.2"}
|