@fmsim/machine 0.0.62 → 0.0.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agv-line.js +19 -0
- package/dist/agv-line.js.map +1 -1
- package/dist/mcs-machine.js +22 -0
- package/dist/mcs-machine.js.map +1 -1
- package/dist/mcs-unit.js +3 -0
- package/dist/mcs-unit.js.map +1 -1
- package/dist/port.js +36 -0
- package/dist/port.js.map +1 -1
- package/dist/stocker.js +35 -0
- package/dist/stocker.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/agv-line.ts +24 -0
- package/src/mcs-machine.ts +28 -0
- package/src/mcs-unit.ts +4 -0
- package/src/port.ts +40 -0
- package/src/stocker.ts +41 -0
- package/translations/en.json +19 -1
- package/translations/ja.json +19 -1
- package/translations/ko.json +19 -1
- package/translations/ms.json +19 -1
- package/translations/zh.json +19 -1
- package/dist/features/mcs-event-handler-mixin.js +0 -65
- package/dist/features/mcs-event-handler-mixin.js.map +0 -1
- package/dist/features/mcs-transport-mixin.js +0 -39
- package/dist/features/mcs-transport-mixin.js.map +0 -1
- package/dist/mcs-gauge-capacity-bar.js +0 -170
- package/dist/mcs-gauge-capacity-bar.js.map +0 -1
- package/dist/mcs-zone-unit.js +0 -11
- package/dist/mcs-zone-unit.js.map +0 -1
- package/dist/rtv-rail.js +0 -36
- package/dist/rtv-rail.js.map +0 -1
- package/dist/templates/agv-line-corner.js +0 -34
- package/dist/templates/agv-line-corner.js.map +0 -1
- package/dist/templates/agv-line-cross.js +0 -34
- package/dist/templates/agv-line-cross.js.map +0 -1
- package/dist/templates/agv-line-horizontal.js +0 -34
- package/dist/templates/agv-line-horizontal.js.map +0 -1
- package/dist/templates/agv-line-vertical.js +0 -34
- package/dist/templates/agv-line-vertical.js.map +0 -1
- package/dist/templates/conveyor-corner.js +0 -33
- package/dist/templates/conveyor-corner.js.map +0 -1
- package/dist/templates/conveyor-join.js +0 -21
- package/dist/templates/conveyor-join.js.map +0 -1
- package/dist/templates/conveyor-left.js +0 -33
- package/dist/templates/conveyor-left.js.map +0 -1
- package/dist/templates/conveyor-middle.js +0 -33
- package/dist/templates/conveyor-middle.js.map +0 -1
- package/dist/templates/conveyor-right.js +0 -33
- package/dist/templates/conveyor-right.js.map +0 -1
- package/dist/templates/mcs-gauge-capacity-bar.js +0 -18
- package/dist/templates/mcs-gauge-capacity-bar.js.map +0 -1
- package/dist/templates/mcs-gauge-capacity-circle.js +0 -18
- package/dist/templates/mcs-gauge-capacity-circle.js.map +0 -1
- package/dist/templates/oht-line-corner.js +0 -34
- package/dist/templates/oht-line-corner.js.map +0 -1
- package/dist/templates/oht-line-cross.js +0 -34
- package/dist/templates/oht-line-cross.js.map +0 -1
- package/dist/templates/oht-line-horizontal.js +0 -34
- package/dist/templates/oht-line-horizontal.js.map +0 -1
- package/dist/templates/oht-line-vertical.js +0 -34
- package/dist/templates/oht-line-vertical.js.map +0 -1
- package/dist/templates/rtv-corner.js +0 -33
- package/dist/templates/rtv-corner.js.map +0 -1
- package/dist/templates/rtv-left.js +0 -33
- package/dist/templates/rtv-left.js.map +0 -1
- package/dist/templates/rtv-middle.js +0 -33
- package/dist/templates/rtv-middle.js.map +0 -1
- package/dist/templates/rtv-rail.js +0 -15
- package/dist/templates/rtv-rail.js.map +0 -1
- package/dist/templates/rtv-right.js +0 -33
- package/dist/templates/rtv-right.js.map +0 -1
- package/dist/templates/rtv.js +0 -15
- package/dist/templates/rtv.js.map +0 -1
package/translations/en.json
CHANGED
|
@@ -4,5 +4,23 @@
|
|
|
4
4
|
"label.high-watermark": "high watermark",
|
|
5
5
|
"label.legend-name": "legend",
|
|
6
6
|
"label.max-capacity": "max capacity",
|
|
7
|
-
"label.carrier-legend-name": "carrier legend"
|
|
7
|
+
"label.carrier-legend-name": "carrier legend",
|
|
8
|
+
"label.sc-state": "sc state",
|
|
9
|
+
"label.full-rate": "full rate",
|
|
10
|
+
"label.reserved-carrier": "reserved carrier",
|
|
11
|
+
"label.transfer-command": "transfer command",
|
|
12
|
+
"label.process-type": "process type",
|
|
13
|
+
"label.sub-state": "sub state",
|
|
14
|
+
"label.banned": "banned",
|
|
15
|
+
"label.type": "type",
|
|
16
|
+
"label.inout-type": "inout type",
|
|
17
|
+
"label.manual": "manual",
|
|
18
|
+
"label.reserved": "reserver",
|
|
19
|
+
"label.occupied": "occupied",
|
|
20
|
+
"label.access-mode": "access mode",
|
|
21
|
+
"label.carrier": "carrier",
|
|
22
|
+
"label.carrier-state": "carrier state",
|
|
23
|
+
"label.carrier-id": "carrier id",
|
|
24
|
+
"label.lot-id": "lot id",
|
|
25
|
+
"label.vehicle-id": "vehicle id"
|
|
8
26
|
}
|
package/translations/ja.json
CHANGED
|
@@ -5,5 +5,23 @@
|
|
|
5
5
|
"label.low-watermark": "low watermark",
|
|
6
6
|
"label.legend-name": "legend",
|
|
7
7
|
"label.max-capacity": "max capacity",
|
|
8
|
-
"label.carrier-legend-name": "carrier legend"
|
|
8
|
+
"label.carrier-legend-name": "carrier legend",
|
|
9
|
+
"label.sc-state": "sc state",
|
|
10
|
+
"label.full-rate": "full rate",
|
|
11
|
+
"label.reserved-carrier": "reserved carrier",
|
|
12
|
+
"label.transfer-command": "transfer command",
|
|
13
|
+
"label.process-type": "process type",
|
|
14
|
+
"label.sub-state": "sub state",
|
|
15
|
+
"label.banned": "banned",
|
|
16
|
+
"label.type": "type",
|
|
17
|
+
"label.inout-type": "inout type",
|
|
18
|
+
"label.manual": "manual",
|
|
19
|
+
"label.reserved": "reserver",
|
|
20
|
+
"label.occupied": "occupied",
|
|
21
|
+
"label.access-mode": "access mode",
|
|
22
|
+
"label.carrier": "carrier",
|
|
23
|
+
"label.carrier-state": "carrier state",
|
|
24
|
+
"label.carrier-id": "carrier id",
|
|
25
|
+
"label.lot-id": "lot id",
|
|
26
|
+
"label.vehicle-id": "vehicle id"
|
|
9
27
|
}
|
package/translations/ko.json
CHANGED
|
@@ -5,5 +5,23 @@
|
|
|
5
5
|
"label.low-watermark": "저수위워터마크",
|
|
6
6
|
"label.legend-name": "레전드",
|
|
7
7
|
"label.max-capacity": "최대 용량",
|
|
8
|
-
"label.carrier-legend-name": "캐리어레전드"
|
|
8
|
+
"label.carrier-legend-name": "캐리어레전드",
|
|
9
|
+
"label.sc-state": "sc state",
|
|
10
|
+
"label.full-rate": "full rate",
|
|
11
|
+
"label.reserved-carrier": "reserved carrier",
|
|
12
|
+
"label.transfer-command": "transfer command",
|
|
13
|
+
"label.process-type": "process type",
|
|
14
|
+
"label.sub-state": "sub state",
|
|
15
|
+
"label.banned": "banned",
|
|
16
|
+
"label.type": "type",
|
|
17
|
+
"label.inout-type": "inout type",
|
|
18
|
+
"label.manual": "manual",
|
|
19
|
+
"label.reserved": "reserver",
|
|
20
|
+
"label.occupied": "occupied",
|
|
21
|
+
"label.access-mode": "access mode",
|
|
22
|
+
"label.carrier": "carrier",
|
|
23
|
+
"label.carrier-state": "carrier state",
|
|
24
|
+
"label.carrier-id": "carrier id",
|
|
25
|
+
"label.lot-id": "lot id",
|
|
26
|
+
"label.vehicle-id": "vehicle id"
|
|
9
27
|
}
|
package/translations/ms.json
CHANGED
|
@@ -5,5 +5,23 @@
|
|
|
5
5
|
"label.low-watermark": "low watermark",
|
|
6
6
|
"label.legend-name": "legend",
|
|
7
7
|
"label.max-capacity": "max capacity",
|
|
8
|
-
"label.carrier-legend-name": "carrier legend"
|
|
8
|
+
"label.carrier-legend-name": "carrier legend",
|
|
9
|
+
"label.sc-state": "sc state",
|
|
10
|
+
"label.full-rate": "full rate",
|
|
11
|
+
"label.reserved-carrier": "reserved carrier",
|
|
12
|
+
"label.transfer-command": "transfer command",
|
|
13
|
+
"label.process-type": "process type",
|
|
14
|
+
"label.sub-state": "sub state",
|
|
15
|
+
"label.banned": "banned",
|
|
16
|
+
"label.type": "type",
|
|
17
|
+
"label.inout-type": "inout type",
|
|
18
|
+
"label.manual": "manual",
|
|
19
|
+
"label.reserved": "reserver",
|
|
20
|
+
"label.occupied": "occupied",
|
|
21
|
+
"label.access-mode": "access mode",
|
|
22
|
+
"label.carrier": "carrier",
|
|
23
|
+
"label.carrier-state": "carrier state",
|
|
24
|
+
"label.carrier-id": "carrier id",
|
|
25
|
+
"label.lot-id": "lot id",
|
|
26
|
+
"label.vehicle-id": "vehicle id"
|
|
9
27
|
}
|
package/translations/zh.json
CHANGED
|
@@ -5,5 +5,23 @@
|
|
|
5
5
|
"label.low-watermark": "low watermark",
|
|
6
6
|
"label.legend-name": "legend",
|
|
7
7
|
"label.max-capacity": "max capacity",
|
|
8
|
-
"label.carrier-legend-name": "carrier legend"
|
|
8
|
+
"label.carrier-legend-name": "carrier legend",
|
|
9
|
+
"label.sc-state": "sc state",
|
|
10
|
+
"label.full-rate": "full rate",
|
|
11
|
+
"label.reserved-carrier": "reserved carrier",
|
|
12
|
+
"label.transfer-command": "transfer command",
|
|
13
|
+
"label.process-type": "process type",
|
|
14
|
+
"label.sub-state": "sub state",
|
|
15
|
+
"label.banned": "banned",
|
|
16
|
+
"label.type": "type",
|
|
17
|
+
"label.inout-type": "inout type",
|
|
18
|
+
"label.manual": "manual",
|
|
19
|
+
"label.reserved": "reserver",
|
|
20
|
+
"label.occupied": "occupied",
|
|
21
|
+
"label.access-mode": "access mode",
|
|
22
|
+
"label.carrier": "carrier",
|
|
23
|
+
"label.carrier-state": "carrier state",
|
|
24
|
+
"label.carrier-id": "carrier id",
|
|
25
|
+
"label.lot-id": "lot id",
|
|
26
|
+
"label.vehicle-id": "vehicle id"
|
|
9
27
|
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
export function MCSEventHandlerMixin(Base) {
|
|
2
|
-
return class extends Base {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
this.currentEvent = '';
|
|
6
|
-
// onmouseenter(event: MouseEvent) {
|
|
7
|
-
// if (!this.model.id) {
|
|
8
|
-
// return
|
|
9
|
-
// }
|
|
10
|
-
// window.dispatchEvent(
|
|
11
|
-
// new CustomEvent('fetchFmbModelDataByMouseEvent', {
|
|
12
|
-
// detail: {
|
|
13
|
-
// value: {
|
|
14
|
-
// type: 'hover',
|
|
15
|
-
// event,
|
|
16
|
-
// model: this.model
|
|
17
|
-
// }
|
|
18
|
-
// }
|
|
19
|
-
// })
|
|
20
|
-
// )
|
|
21
|
-
// }
|
|
22
|
-
// onclick(event: MouseEvent) {
|
|
23
|
-
// if (!this.model.id) {
|
|
24
|
-
// return
|
|
25
|
-
// }
|
|
26
|
-
// setTimeout(() => {
|
|
27
|
-
// if (this.currentEvent !== 'dblclick') {
|
|
28
|
-
// window.dispatchEvent(
|
|
29
|
-
// new CustomEvent('fetchFmbModelDataByMouseEvent', {
|
|
30
|
-
// detail: {
|
|
31
|
-
// value: {
|
|
32
|
-
// type: 'click',
|
|
33
|
-
// event,
|
|
34
|
-
// model: this.model
|
|
35
|
-
// }
|
|
36
|
-
// }
|
|
37
|
-
// })
|
|
38
|
-
// )
|
|
39
|
-
// }
|
|
40
|
-
// }, 500)
|
|
41
|
-
// }
|
|
42
|
-
// ondblclick(event: MouseEvent) {
|
|
43
|
-
// if (!this.model.id) {
|
|
44
|
-
// return
|
|
45
|
-
// }
|
|
46
|
-
// this.currentEvent = 'dblclick'
|
|
47
|
-
// window.dispatchEvent(
|
|
48
|
-
// new CustomEvent('fetchFmbModelDataByMouseEvent', {
|
|
49
|
-
// detail: {
|
|
50
|
-
// value: {
|
|
51
|
-
// type: 'dblclick',
|
|
52
|
-
// event,
|
|
53
|
-
// model: this.model
|
|
54
|
-
// }
|
|
55
|
-
// }
|
|
56
|
-
// })
|
|
57
|
-
// )
|
|
58
|
-
// setTimeout(() => {
|
|
59
|
-
// this.currentEvent = ''
|
|
60
|
-
// }, 1000)
|
|
61
|
-
// }
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=mcs-event-handler-mixin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcs-event-handler-mixin.js","sourceRoot":"","sources":["../../src/features/mcs-event-handler-mixin.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAAuC,IAAW;IACpF,OAAO,KAAM,SAAQ,IAAI;QAAlB;;YACL,iBAAY,GAAW,EAAE,CAAA;YAEzB,oCAAoC;YACpC,0BAA0B;YAC1B,aAAa;YACb,MAAM;YAEN,0BAA0B;YAC1B,yDAAyD;YACzD,kBAAkB;YAClB,mBAAmB;YACnB,2BAA2B;YAC3B,mBAAmB;YACnB,8BAA8B;YAC9B,YAAY;YACZ,UAAU;YACV,SAAS;YACT,MAAM;YACN,IAAI;YAEJ,+BAA+B;YAC/B,0BAA0B;YAC1B,aAAa;YACb,MAAM;YAEN,uBAAuB;YACvB,8CAA8C;YAC9C,8BAA8B;YAC9B,6DAA6D;YAC7D,sBAAsB;YACtB,uBAAuB;YACvB,+BAA+B;YAC/B,uBAAuB;YACvB,kCAAkC;YAClC,gBAAgB;YAChB,cAAc;YACd,aAAa;YACb,UAAU;YACV,QAAQ;YACR,YAAY;YACZ,IAAI;YAEJ,kCAAkC;YAClC,0BAA0B;YAC1B,aAAa;YACb,MAAM;YAEN,mCAAmC;YACnC,0BAA0B;YAC1B,yDAAyD;YACzD,kBAAkB;YAClB,mBAAmB;YACnB,8BAA8B;YAC9B,mBAAmB;YACnB,8BAA8B;YAC9B,YAAY;YACZ,UAAU;YACV,SAAS;YACT,MAAM;YAEN,uBAAuB;YACvB,6BAA6B;YAC7B,aAAa;YACb,IAAI;QACN,CAAC;KAAA,CAAA;AACH,CAAC","sourcesContent":["import { Component } from '@hatiolab/things-scene'\n\ntype Constructor<T = {}> = new (...args: any[]) => T\n\nexport function MCSEventHandlerMixin<TBase extends Constructor<Component>>(Base: TBase) {\n return class extends Base {\n currentEvent: string = ''\n\n // onmouseenter(event: MouseEvent) {\n // if (!this.model.id) {\n // return\n // }\n\n // window.dispatchEvent(\n // new CustomEvent('fetchFmbModelDataByMouseEvent', {\n // detail: {\n // value: {\n // type: 'hover',\n // event,\n // model: this.model\n // }\n // }\n // })\n // )\n // }\n\n // onclick(event: MouseEvent) {\n // if (!this.model.id) {\n // return\n // }\n\n // setTimeout(() => {\n // if (this.currentEvent !== 'dblclick') {\n // window.dispatchEvent(\n // new CustomEvent('fetchFmbModelDataByMouseEvent', {\n // detail: {\n // value: {\n // type: 'click',\n // event,\n // model: this.model\n // }\n // }\n // })\n // )\n // }\n // }, 500)\n // }\n\n // ondblclick(event: MouseEvent) {\n // if (!this.model.id) {\n // return\n // }\n\n // this.currentEvent = 'dblclick'\n // window.dispatchEvent(\n // new CustomEvent('fetchFmbModelDataByMouseEvent', {\n // detail: {\n // value: {\n // type: 'dblclick',\n // event,\n // model: this.model\n // }\n // }\n // })\n // )\n\n // setTimeout(() => {\n // this.currentEvent = ''\n // }, 1000)\n // }\n }\n}\n"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { LEGEND_NULL } from './mcs-status-default';
|
|
2
|
-
import { themesColorMap } from './client-api';
|
|
3
|
-
export const MCSStatusMixinProperties = [
|
|
4
|
-
{
|
|
5
|
-
type: 'select',
|
|
6
|
-
label: 'legend-name',
|
|
7
|
-
name: 'legendName',
|
|
8
|
-
property: {
|
|
9
|
-
options: themesColorMap
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
];
|
|
13
|
-
export function MCSStatusMixin(Base) {
|
|
14
|
-
return class extends Base {
|
|
15
|
-
get status() {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
get auxStatus() {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
get legend() {
|
|
22
|
-
return LEGEND_NULL;
|
|
23
|
-
}
|
|
24
|
-
get auxLegend() {
|
|
25
|
-
return LEGEND_NULL;
|
|
26
|
-
}
|
|
27
|
-
get statusColor() {
|
|
28
|
-
const status = this.status;
|
|
29
|
-
const legend = this.legend;
|
|
30
|
-
return (status && legend && (legend[status] || legend[status] || legend.default)) || (legend === null || legend === void 0 ? void 0 : legend.default);
|
|
31
|
-
}
|
|
32
|
-
get auxColor() {
|
|
33
|
-
const status = this.auxStatus;
|
|
34
|
-
const legend = this.auxLegend;
|
|
35
|
-
return (status && legend && (legend[status] || legend[status] || legend.default)) || (legend === null || legend === void 0 ? void 0 : legend.default);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=mcs-transport-mixin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcs-transport-mixin.js","sourceRoot":"","sources":["../../src/features/mcs-transport-mixin.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE;YACR,OAAO,EAAE,cAAc;SACxB;KACF;CACF,CAAA;AAED,MAAM,UAAU,cAAc,CAA4B,IAAW;IACnE,OAAO,KAAM,SAAQ,IAAI;QACvB,IAAI,MAAM;YACR,OAAM;QACR,CAAC;QAED,IAAI,SAAS;YACX,OAAM;QACR,CAAC;QAED,IAAI,MAAM;YACR,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,IAAI,SAAS;YACX,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,IAAI,WAAW;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAE1B,OAAO,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,CAAA;QACvG,CAAC;QAED,IAAI,QAAQ;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;YAE7B,OAAO,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,CAAA;QACvG,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["type Constructor<T = {}> = new (...args: any[]) => T\n\ninterface Legend {\n [key: string]: string\n}\n\nimport { LEGEND_NULL } from './mcs-status-default'\nimport { themesColorMap } from './client-api'\n\nexport const MCSStatusMixinProperties = [\n {\n type: 'select',\n label: 'legend-name',\n name: 'legendName',\n property: {\n options: themesColorMap\n }\n }\n]\n\nexport function MCSStatusMixin<TBase extends Constructor>(Base: TBase) {\n return class extends Base {\n get status(): string | undefined {\n return\n }\n\n get auxStatus(): string | undefined {\n return\n }\n\n get legend(): Legend {\n return LEGEND_NULL\n }\n\n get auxLegend(): Legend {\n return LEGEND_NULL\n }\n\n get statusColor(): string | undefined {\n const status = this.status\n const legend = this.legend\n\n return (status && legend && (legend[status] || legend[status!] || legend.default)) || legend?.default\n }\n\n get auxColor(): string | undefined {\n const status = this.auxStatus\n const legend = this.auxLegend\n\n return (status && legend && (legend[status] || legend[status!] || legend.default)) || legend?.default\n }\n }\n}\n"]}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { Component, RectPath, Shape } from '@hatiolab/things-scene';
|
|
2
|
-
import { MCSStatusMixin } from './features/mcs-status-mixin';
|
|
3
|
-
import { LEGEND_CAPACITY } from './features/mcs-status-default';
|
|
4
|
-
import { safeRound } from './utils/safe-round';
|
|
5
|
-
import { getVaueOnRanges } from './utils/get-value-on-ranges';
|
|
6
|
-
const NATURE = {
|
|
7
|
-
mutable: false,
|
|
8
|
-
resizable: true,
|
|
9
|
-
rotatable: true,
|
|
10
|
-
properties: [
|
|
11
|
-
{
|
|
12
|
-
type: 'number',
|
|
13
|
-
name: 'currentUsage',
|
|
14
|
-
label: 'current-usage'
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
type: 'number',
|
|
18
|
-
name: 'highWatermark',
|
|
19
|
-
label: 'high-watermark'
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
type: 'number',
|
|
23
|
-
name: 'maxCapacity',
|
|
24
|
-
label: 'max-capacity'
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
type: 'number',
|
|
28
|
-
label: 'round',
|
|
29
|
-
name: 'round',
|
|
30
|
-
property: {
|
|
31
|
-
min: 0
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
type: 'hidden',
|
|
36
|
-
name: 'usage',
|
|
37
|
-
label: 'usage'
|
|
38
|
-
}
|
|
39
|
-
],
|
|
40
|
-
'value-property': 'usage'
|
|
41
|
-
};
|
|
42
|
-
var controlHandler = {
|
|
43
|
-
ondragmove: function (point, index, component) {
|
|
44
|
-
var { left, top, width, height } = component.model;
|
|
45
|
-
var transcoorded = component.transcoordP2S(point.x, point.y);
|
|
46
|
-
var round = ((transcoorded.x - left) / (width / 2)) * 100;
|
|
47
|
-
round = safeRound(round, width, height);
|
|
48
|
-
component.set({
|
|
49
|
-
round
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
export default class MCSGaugeCapacityBar extends MCSStatusMixin(RectPath(Shape)) {
|
|
54
|
-
static get nature() {
|
|
55
|
-
return NATURE;
|
|
56
|
-
}
|
|
57
|
-
get controls() {
|
|
58
|
-
var { left, top, width, round, height } = this.state;
|
|
59
|
-
round = round == undefined ? 0 : safeRound(round, width, height);
|
|
60
|
-
return [
|
|
61
|
-
{
|
|
62
|
-
x: left + (width / 2) * (round / 100),
|
|
63
|
-
y: top,
|
|
64
|
-
handler: controlHandler
|
|
65
|
-
}
|
|
66
|
-
];
|
|
67
|
-
}
|
|
68
|
-
getTheme() {
|
|
69
|
-
var _a, _b;
|
|
70
|
-
const { legendName } = this.state;
|
|
71
|
-
if (legendName) {
|
|
72
|
-
return (_b = (_a = this.root) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b[legendName];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
get legend() {
|
|
76
|
-
return this.getTheme() || this.getLegendFallback();
|
|
77
|
-
}
|
|
78
|
-
getLegendFallback() {
|
|
79
|
-
return LEGEND_CAPACITY;
|
|
80
|
-
}
|
|
81
|
-
get statusColor() {
|
|
82
|
-
return getVaueOnRanges(this.usage, this.legend);
|
|
83
|
-
}
|
|
84
|
-
get text() {
|
|
85
|
-
return this.usage + '%';
|
|
86
|
-
}
|
|
87
|
-
render(context) {
|
|
88
|
-
const { left, top, width, height } = this.bounds;
|
|
89
|
-
if (width >= height) {
|
|
90
|
-
this.renderLandscape(context);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
this.renderPortrait(context);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
renderLandscape(context) {
|
|
97
|
-
const { left, top, width, height } = this.bounds;
|
|
98
|
-
const { lineWidth, strokeStyle, round, fillStyle = '#aaa' } = this.state;
|
|
99
|
-
context.strokeStyle = strokeStyle;
|
|
100
|
-
context.lineWidth = lineWidth;
|
|
101
|
-
context.save();
|
|
102
|
-
context.translate(left, top);
|
|
103
|
-
// gauge background
|
|
104
|
-
context.beginPath();
|
|
105
|
-
context.fillStyle = fillStyle;
|
|
106
|
-
context.roundRect(0, 0, width, height, round);
|
|
107
|
-
context.fill();
|
|
108
|
-
context.stroke();
|
|
109
|
-
context.clip();
|
|
110
|
-
// gauge foreground
|
|
111
|
-
context.beginPath();
|
|
112
|
-
context.fillStyle = this.statusColor;
|
|
113
|
-
context.rect(0, 0, (width / 100) * this.usage, height);
|
|
114
|
-
context.fill();
|
|
115
|
-
context.beginPath();
|
|
116
|
-
context.strokeStyle = strokeStyle;
|
|
117
|
-
context.roundRect(0, 0, width, height, round);
|
|
118
|
-
context.stroke();
|
|
119
|
-
context.beginPath();
|
|
120
|
-
context.translate(-left, -top);
|
|
121
|
-
context.restore();
|
|
122
|
-
}
|
|
123
|
-
renderPortrait(context) {
|
|
124
|
-
const { left, top, width, height } = this.bounds;
|
|
125
|
-
const { lineWidth, strokeStyle, round, fillStyle } = this.state;
|
|
126
|
-
context.strokeStyle = strokeStyle;
|
|
127
|
-
context.lineWidth = lineWidth;
|
|
128
|
-
context.save();
|
|
129
|
-
context.translate(left, top);
|
|
130
|
-
// gauge background
|
|
131
|
-
context.beginPath();
|
|
132
|
-
context.fillStyle = fillStyle;
|
|
133
|
-
context.roundRect(0, 0, width, height, round);
|
|
134
|
-
context.fill();
|
|
135
|
-
context.stroke();
|
|
136
|
-
context.clip();
|
|
137
|
-
// gauge foreground
|
|
138
|
-
context.beginPath();
|
|
139
|
-
context.fillStyle = this.statusColor;
|
|
140
|
-
context.rect(0, height - (height / 100) * this.usage, width, (height / 100) * this.usage);
|
|
141
|
-
context.fill();
|
|
142
|
-
context.beginPath();
|
|
143
|
-
context.roundRect(0, 0, width, height, round);
|
|
144
|
-
context.stroke();
|
|
145
|
-
context.beginPath();
|
|
146
|
-
context.translate(-left, -top);
|
|
147
|
-
context.restore();
|
|
148
|
-
}
|
|
149
|
-
get usage() {
|
|
150
|
-
const { currentUsage = 0, maxCapacity = 100 } = this.state;
|
|
151
|
-
return Math.round((currentUsage / maxCapacity) * 100);
|
|
152
|
-
}
|
|
153
|
-
set usage(usage) {
|
|
154
|
-
// intentionally have done nothing
|
|
155
|
-
}
|
|
156
|
-
onchangeData(after, before) {
|
|
157
|
-
const { CURRENTCAPACITY = 0, MAXCAPACITY = 100, HIGHWATERMARK = 100 } = typeof this.data == 'object' ? this.data : {};
|
|
158
|
-
const currentUsage = Number(CURRENTCAPACITY) || 0;
|
|
159
|
-
const maxCapacity = Number(MAXCAPACITY) || 100;
|
|
160
|
-
const highWatermark = Number(HIGHWATERMARK) || 100;
|
|
161
|
-
this.setState({
|
|
162
|
-
currentUsage,
|
|
163
|
-
maxCapacity,
|
|
164
|
-
highWatermark,
|
|
165
|
-
usage: Math.round((currentUsage / maxCapacity) * 100)
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
Component.register('MCSGaugeCapacityBar', MCSGaugeCapacityBar);
|
|
170
|
-
//# sourceMappingURL=mcs-gauge-capacity-bar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcs-gauge-capacity-bar.js","sourceRoot":"","sources":["../src/mcs-gauge-capacity-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAU,MAAM,+BAA+B,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,eAAe;SACvB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,gBAAgB;SACxB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,cAAc;SACtB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE;gBACR,GAAG,EAAE,CAAC;aACP;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO;SACf;KACF;IACD,gBAAgB,EAAE,OAAO;CAC1B,CAAA;AAED,IAAI,cAAc,GAAG;IACnB,UAAU,EAAE,UAAU,KAAe,EAAE,KAAa,EAAE,SAAoB;QACxE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAA;QAElD,IAAI,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;QAC5D,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QAEzD,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvC,SAAS,CAAC,GAAG,CAAC;YACZ,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9E,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACpD,KAAK,GAAG,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAEhE,OAAO;YACL;gBACE,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;gBACrC,CAAC,EAAE,GAAG;gBACN,OAAO,EAAE,cAAc;aACxB;SACF,CAAA;IACH,CAAC;IAED,QAAQ;;QACN,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAEjC,IAAI,UAAU,EAAE;YACd,OAAO,MAAA,MAAC,IAAI,CAAC,IAAY,0CAAE,KAAK,0CAAG,UAAU,CAAC,CAAA;SAC/C;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACpD,CAAC;IAED,iBAAiB;QACf,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;IACzB,CAAC;IAED,MAAM,CAAC,OAAiC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEhD,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;SAC9B;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;SAC7B;IACH,CAAC;IAED,eAAe,CAAC,OAAiC;QAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAChD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAExE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;QACjC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QAE7B,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAE5B,mBAAmB;QACnB,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QAC7B,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAE7C,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,OAAO,CAAC,MAAM,EAAE,CAAA;QAEhB,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,mBAAmB;QACnB,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,WAAY,CAAA;QAErC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACtD,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;QACjC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,OAAO,CAAC,MAAM,EAAE,CAAA;QAEhB,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,CAAC,OAAO,EAAE,CAAA;IACnB,CAAC;IAED,cAAc,CAAC,OAAiC;QAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAChD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE/D,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;QACjC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QAE7B,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAE5B,mBAAmB;QACnB,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QAC7B,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAE7C,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,OAAO,CAAC,MAAM,EAAE,CAAA;QAEhB,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,mBAAmB;QACnB,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,WAAY,CAAA;QAErC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACzF,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,OAAO,CAAC,MAAM,EAAE,CAAA;QAEhB,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,CAAC,OAAO,EAAE,CAAA;IACnB,CAAC;IAED,IAAI,KAAK;QACP,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,WAAW,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAA;IACvD,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,kCAAkC;IACpC,CAAC;IAED,YAAY,CAAC,KAAiB,EAAE,MAAkB;QAChD,MAAM,EACJ,eAAe,GAAG,CAAC,EACnB,WAAW,GAAG,GAAG,EACjB,aAAa,GAAG,GAAG,EACpB,GAAG,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QAEjD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,CAAA;QAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,GAAG,CAAA;QAElD,IAAI,CAAC,QAAQ,CAAC;YACZ,YAAY;YACZ,WAAW;YACX,aAAa;YACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;SACtD,CAAC,CAAA;IACJ,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAA","sourcesContent":["import { Component, ComponentNature, POSITION, Properties, RectPath, Shape } from '@hatiolab/things-scene'\nimport { MCSStatusMixin } from './features/mcs-status-mixin'\nimport { LEGEND_CAPACITY, Legend } from './features/mcs-status-default'\nimport { safeRound } from './utils/safe-round'\nimport { getVaueOnRanges } from './utils/get-value-on-ranges'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n name: 'currentUsage',\n label: 'current-usage'\n },\n {\n type: 'number',\n name: 'highWatermark',\n label: 'high-watermark'\n },\n {\n type: 'number',\n name: 'maxCapacity',\n label: 'max-capacity'\n },\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0\n }\n },\n {\n type: 'hidden',\n name: 'usage',\n label: 'usage'\n }\n ],\n 'value-property': 'usage'\n}\n\nvar controlHandler = {\n ondragmove: function (point: POSITION, index: number, component: Component) {\n var { left, top, width, height } = component.model\n\n var transcoorded = component.transcoordP2S(point.x, point.y)\n var round = ((transcoorded.x - left) / (width / 2)) * 100\n\n round = safeRound(round, width, height)\n\n component.set({\n round\n })\n }\n}\n\nexport default class MCSGaugeCapacityBar extends MCSStatusMixin(RectPath(Shape)) {\n static get nature() {\n return NATURE\n }\n\n get controls() {\n var { left, top, width, round, height } = this.state\n round = round == undefined ? 0 : safeRound(round, width, height)\n\n return [\n {\n x: left + (width / 2) * (round / 100),\n y: top,\n handler: controlHandler\n }\n ]\n }\n\n getTheme() {\n const { legendName } = this.state\n\n if (legendName) {\n return (this.root as any)?.style?.[legendName]\n }\n }\n\n get legend(): Legend {\n return this.getTheme() || this.getLegendFallback()\n }\n\n getLegendFallback() {\n return LEGEND_CAPACITY\n }\n\n get statusColor() {\n return getVaueOnRanges(this.usage, this.legend)\n }\n\n get text() {\n return this.usage + '%'\n }\n\n render(context: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n\n if (width >= height) {\n this.renderLandscape(context)\n } else {\n this.renderPortrait(context)\n }\n }\n\n renderLandscape(context: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { lineWidth, strokeStyle, round, fillStyle = '#aaa' } = this.state\n\n context.strokeStyle = strokeStyle\n context.lineWidth = lineWidth\n\n context.save()\n context.translate(left, top)\n\n // gauge background\n context.beginPath()\n\n context.fillStyle = fillStyle\n context.roundRect(0, 0, width, height, round)\n\n context.fill()\n context.stroke()\n\n context.clip()\n\n // gauge foreground\n context.beginPath()\n\n context.fillStyle = this.statusColor!\n\n context.rect(0, 0, (width / 100) * this.usage, height)\n context.fill()\n\n context.beginPath()\n context.strokeStyle = strokeStyle\n context.roundRect(0, 0, width, height, round)\n context.stroke()\n\n context.beginPath()\n\n context.translate(-left, -top)\n context.restore()\n }\n\n renderPortrait(context: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { lineWidth, strokeStyle, round, fillStyle } = this.state\n\n context.strokeStyle = strokeStyle\n context.lineWidth = lineWidth\n\n context.save()\n context.translate(left, top)\n\n // gauge background\n context.beginPath()\n\n context.fillStyle = fillStyle\n context.roundRect(0, 0, width, height, round)\n\n context.fill()\n context.stroke()\n\n context.clip()\n\n // gauge foreground\n context.beginPath()\n\n context.fillStyle = this.statusColor!\n\n context.rect(0, height - (height / 100) * this.usage, width, (height / 100) * this.usage)\n context.fill()\n\n context.beginPath()\n context.roundRect(0, 0, width, height, round)\n context.stroke()\n\n context.beginPath()\n\n context.translate(-left, -top)\n context.restore()\n }\n\n get usage() {\n const { currentUsage = 0, maxCapacity = 100 } = this.state\n return Math.round((currentUsage / maxCapacity) * 100)\n }\n\n set usage(usage: number) {\n // intentionally have done nothing\n }\n\n onchangeData(after: Properties, before: Properties): void {\n const {\n CURRENTCAPACITY = 0,\n MAXCAPACITY = 100,\n HIGHWATERMARK = 100\n } = typeof this.data == 'object' ? this.data : {}\n\n const currentUsage = Number(CURRENTCAPACITY) || 0\n const maxCapacity = Number(MAXCAPACITY) || 100\n const highWatermark = Number(HIGHWATERMARK) || 100\n\n this.setState({\n currentUsage,\n maxCapacity,\n highWatermark,\n usage: Math.round((currentUsage / maxCapacity) * 100)\n })\n }\n}\n\nComponent.register('MCSGaugeCapacityBar', MCSGaugeCapacityBar)\n"]}
|
package/dist/mcs-zone-unit.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { MCSZoneMixin, MCSZoneMixinProperties } from './features/mcs-zone-mixin';
|
|
2
|
-
import MCSCarrierHolder from './mcs-carrier-holder';
|
|
3
|
-
/**
|
|
4
|
-
* MCS용 Unit > Transport들의 공통 속성을 정의한 오브젝트
|
|
5
|
-
*/
|
|
6
|
-
export default class MCSZoneUnit extends MCSZoneMixin(MCSCarrierHolder) {
|
|
7
|
-
static get properties() {
|
|
8
|
-
return [...MCSZoneMixinProperties, ...MCSCarrierHolder.properties];
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=mcs-zone-unit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcs-zone-unit.js","sourceRoot":"","sources":["../src/mcs-zone-unit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAChF,OAAO,gBAAgB,MAAM,sBAAsB,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACrE,MAAM,KAAK,UAAU;QACnB,OAAO,CAAC,GAAG,sBAAsB,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IACpE,CAAC;CACF","sourcesContent":["import { MCSZoneMixin, MCSZoneMixinProperties } from './features/mcs-zone-mixin'\nimport MCSCarrierHolder from './mcs-carrier-holder'\n\n/**\n * MCS용 Unit > Transport들의 공통 속성을 정의한 오브젝트\n */\nexport default class MCSZoneUnit extends MCSZoneMixin(MCSCarrierHolder) {\n static get properties(): any {\n return [...MCSZoneMixinProperties, ...MCSCarrierHolder.properties]\n }\n}\n"]}
|
package/dist/rtv-rail.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Component } from '@hatiolab/things-scene';
|
|
2
|
-
import MCSTransport from './mcs-transport';
|
|
3
|
-
const NATURE = {
|
|
4
|
-
mutable: false,
|
|
5
|
-
resizable: true,
|
|
6
|
-
rotatable: true,
|
|
7
|
-
properties: [...MCSTransport.properties]
|
|
8
|
-
};
|
|
9
|
-
export default class RTVRail extends MCSTransport {
|
|
10
|
-
static get nature() {
|
|
11
|
-
return NATURE;
|
|
12
|
-
}
|
|
13
|
-
containable(component) {
|
|
14
|
-
return ['RTV'].includes(component.state.type);
|
|
15
|
-
}
|
|
16
|
-
get auxColor() {
|
|
17
|
-
return '#333';
|
|
18
|
-
}
|
|
19
|
-
render(context) {
|
|
20
|
-
const { left, top, width, height } = this.bounds;
|
|
21
|
-
context.beginPath();
|
|
22
|
-
context.translate(left, top);
|
|
23
|
-
context.fillStyle = this.statusColor;
|
|
24
|
-
if (width > height) {
|
|
25
|
-
context.fillRect(0, 0, width, (height * 1) / 5);
|
|
26
|
-
context.fillRect(0, (height * 4) / 5, width, (height * 1) / 5);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
context.fillRect(0, 0, (width * 1) / 5, height);
|
|
30
|
-
context.fillRect((width * 4) / 5, 0, (width * 1) / 5, height);
|
|
31
|
-
}
|
|
32
|
-
context.translate(-left, -top);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
Component.register('RTVRail', RTVRail);
|
|
36
|
-
//# sourceMappingURL=rtv-rail.js.map
|
package/dist/rtv-rail.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rtv-rail.js","sourceRoot":"","sources":["../src/rtv-rail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAA;AACnE,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAE1C,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC;CACzC,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAAY;IAC/C,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,WAAW,CAAC,SAAoB;QAC9B,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,OAAiC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEhD,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAE5B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,WAAY,CAAA;QAErC,IAAI,KAAK,GAAG,MAAM,EAAE;YAClB,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC/C,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;SAC/D;aAAM;YACL,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;YAC/C,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;SAC9D;QAED,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import { Component, ComponentNature } from '@hatiolab/things-scene'\nimport MCSTransport from './mcs-transport'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [...MCSTransport.properties]\n}\n\nexport default class RTVRail extends MCSTransport {\n static get nature() {\n return NATURE\n }\n\n containable(component: Component) {\n return ['RTV'].includes(component.state.type)\n }\n\n get auxColor() {\n return '#333'\n }\n\n render(context: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n\n context.beginPath()\n\n context.translate(left, top)\n\n context.fillStyle = this.statusColor!\n\n if (width > height) {\n context.fillRect(0, 0, width, (height * 1) / 5)\n context.fillRect(0, (height * 4) / 5, width, (height * 1) / 5)\n } else {\n context.fillRect(0, 0, (width * 1) / 5, height)\n context.fillRect((width * 4) / 5, 0, (width * 1) / 5, height)\n }\n\n context.translate(-left, -top)\n }\n}\n\nComponent.register('RTVRail', RTVRail)\n"]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
const agvLineCorner = new URL('../../icons/agv-line-corner.svg', import.meta.url).href;
|
|
2
|
-
const agvLineCornerFillImage = new URL('../../icons/agv-line-corner.png', import.meta.url).href;
|
|
3
|
-
export default {
|
|
4
|
-
type: 'AGV Line Corner',
|
|
5
|
-
description: 'AGV Line Corner',
|
|
6
|
-
icon: agvLineCorner,
|
|
7
|
-
group: 'ACS',
|
|
8
|
-
model: {
|
|
9
|
-
type: 'AGVLine',
|
|
10
|
-
agvType: 'corner',
|
|
11
|
-
left: 200,
|
|
12
|
-
top: 100,
|
|
13
|
-
width: 22,
|
|
14
|
-
height: 22,
|
|
15
|
-
fillStyle: {
|
|
16
|
-
fitPattern: false,
|
|
17
|
-
height: null,
|
|
18
|
-
image: agvLineCornerFillImage,
|
|
19
|
-
offsetX: 0,
|
|
20
|
-
offsetY: 0,
|
|
21
|
-
type: 'pattern',
|
|
22
|
-
width: null,
|
|
23
|
-
color: '#d6d6d6'
|
|
24
|
-
},
|
|
25
|
-
text: ' ',
|
|
26
|
-
strokeStyle: '#000',
|
|
27
|
-
alpha: 1,
|
|
28
|
-
hidden: false,
|
|
29
|
-
lineWidth: 0,
|
|
30
|
-
lineDash: 'solid',
|
|
31
|
-
lineCap: 'butt'
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=agv-line-corner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agv-line-corner.js","sourceRoot":"","sources":["../../src/templates/agv-line-corner.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AACtF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAE/F,eAAe;IACb,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,SAAS,EAAE;YACT,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;SACjB;QACD,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;KAChB;CACF,CAAA","sourcesContent":["const agvLineCorner = new URL('../../icons/agv-line-corner.svg', import.meta.url).href\nconst agvLineCornerFillImage = new URL('../../icons/agv-line-corner.png', import.meta.url).href\n\nexport default {\n type: 'AGV Line Corner',\n description: 'AGV Line Corner',\n icon: agvLineCorner,\n group: 'ACS',\n model: {\n type: 'AGVLine',\n agvType: 'corner',\n left: 200,\n top: 100,\n width: 22,\n height: 22,\n fillStyle: {\n fitPattern: false,\n height: null,\n image: agvLineCornerFillImage,\n offsetX: 0,\n offsetY: 0,\n type: 'pattern',\n width: null,\n color: '#d6d6d6'\n },\n text: ' ',\n strokeStyle: '#000',\n alpha: 1,\n hidden: false,\n lineWidth: 0,\n lineDash: 'solid',\n lineCap: 'butt'\n }\n}\n"]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
const agvLineCross = new URL('../../icons/agv-line-cross.svg', import.meta.url).href;
|
|
2
|
-
const agvLineCrossFillImage = new URL('../../icons/agv-line-cross.png', import.meta.url).href;
|
|
3
|
-
export default {
|
|
4
|
-
type: 'AGV Line Cross',
|
|
5
|
-
description: 'AGV Line Cross',
|
|
6
|
-
icon: agvLineCross,
|
|
7
|
-
group: 'ACS',
|
|
8
|
-
model: {
|
|
9
|
-
type: 'AGVLine',
|
|
10
|
-
agvType: 'cross',
|
|
11
|
-
left: 200,
|
|
12
|
-
top: 100,
|
|
13
|
-
width: 22,
|
|
14
|
-
height: 22,
|
|
15
|
-
fillStyle: {
|
|
16
|
-
fitPattern: false,
|
|
17
|
-
height: null,
|
|
18
|
-
image: agvLineCrossFillImage,
|
|
19
|
-
offsetX: 0,
|
|
20
|
-
offsetY: 0,
|
|
21
|
-
type: 'pattern',
|
|
22
|
-
width: null,
|
|
23
|
-
color: '#d6d6d6'
|
|
24
|
-
},
|
|
25
|
-
text: ' ',
|
|
26
|
-
strokeStyle: '#000',
|
|
27
|
-
alpha: 1,
|
|
28
|
-
hidden: false,
|
|
29
|
-
lineWidth: 0,
|
|
30
|
-
lineDash: 'solid',
|
|
31
|
-
lineCap: 'butt'
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=agv-line-cross.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agv-line-cross.js","sourceRoot":"","sources":["../../src/templates/agv-line-cross.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AACpF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAE7F,eAAe;IACb,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,SAAS,EAAE;YACT,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,qBAAqB;YAC5B,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;SACjB;QACD,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;KAChB;CACF,CAAA","sourcesContent":["const agvLineCross = new URL('../../icons/agv-line-cross.svg', import.meta.url).href\nconst agvLineCrossFillImage = new URL('../../icons/agv-line-cross.png', import.meta.url).href\n\nexport default {\n type: 'AGV Line Cross',\n description: 'AGV Line Cross',\n icon: agvLineCross,\n group: 'ACS',\n model: {\n type: 'AGVLine',\n agvType: 'cross',\n left: 200,\n top: 100,\n width: 22,\n height: 22,\n fillStyle: {\n fitPattern: false,\n height: null,\n image: agvLineCrossFillImage,\n offsetX: 0,\n offsetY: 0,\n type: 'pattern',\n width: null,\n color: '#d6d6d6'\n },\n text: ' ',\n strokeStyle: '#000',\n alpha: 1,\n hidden: false,\n lineWidth: 0,\n lineDash: 'solid',\n lineCap: 'butt'\n }\n}\n"]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
const agvLineHorizontal = new URL('../../icons/agv-line-horizontal.svg', import.meta.url).href;
|
|
2
|
-
const agvLineHorizontalFillImage = new URL('../../icons/agv-line-horizontal.png', import.meta.url).href;
|
|
3
|
-
export default {
|
|
4
|
-
type: 'AGV Line Horizontal',
|
|
5
|
-
description: 'AGV Line Horizontal',
|
|
6
|
-
icon: agvLineHorizontal,
|
|
7
|
-
group: 'ACS',
|
|
8
|
-
model: {
|
|
9
|
-
type: 'AGVLine',
|
|
10
|
-
agvType: 'horizon',
|
|
11
|
-
text: ' ',
|
|
12
|
-
left: 100,
|
|
13
|
-
top: 100,
|
|
14
|
-
width: 22,
|
|
15
|
-
height: 27,
|
|
16
|
-
fillStyle: {
|
|
17
|
-
fitPattern: false,
|
|
18
|
-
height: null,
|
|
19
|
-
image: agvLineHorizontalFillImage,
|
|
20
|
-
offsetX: 0,
|
|
21
|
-
offsetY: 0,
|
|
22
|
-
type: 'pattern',
|
|
23
|
-
width: null,
|
|
24
|
-
color: '#d6d6d6'
|
|
25
|
-
},
|
|
26
|
-
strokeStyle: '#000',
|
|
27
|
-
alpha: 1,
|
|
28
|
-
hidden: false,
|
|
29
|
-
lineWidth: 0,
|
|
30
|
-
lineDash: 'solid',
|
|
31
|
-
lineCap: 'butt'
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=agv-line-horizontal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agv-line-horizontal.js","sourceRoot":"","sources":["../../src/templates/agv-line-horizontal.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAC9F,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAEvG,eAAe;IACb,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,SAAS,EAAE;YACT,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,0BAA0B;YACjC,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;SACjB;QACD,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;KAChB;CACF,CAAA","sourcesContent":["const agvLineHorizontal = new URL('../../icons/agv-line-horizontal.svg', import.meta.url).href\nconst agvLineHorizontalFillImage = new URL('../../icons/agv-line-horizontal.png', import.meta.url).href\n\nexport default {\n type: 'AGV Line Horizontal',\n description: 'AGV Line Horizontal',\n icon: agvLineHorizontal,\n group: 'ACS',\n model: {\n type: 'AGVLine',\n agvType: 'horizon',\n text: ' ',\n left: 100,\n top: 100,\n width: 22,\n height: 27,\n fillStyle: {\n fitPattern: false,\n height: null,\n image: agvLineHorizontalFillImage,\n offsetX: 0,\n offsetY: 0,\n type: 'pattern',\n width: null,\n color: '#d6d6d6'\n },\n strokeStyle: '#000',\n alpha: 1,\n hidden: false,\n lineWidth: 0,\n lineDash: 'solid',\n lineCap: 'butt'\n }\n}\n"]}
|