@fmsim/machine 0.0.62 → 0.0.63

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.
Files changed (74) hide show
  1. package/dist/agv-line.js +19 -0
  2. package/dist/agv-line.js.map +1 -1
  3. package/dist/mcs-machine.js +22 -0
  4. package/dist/mcs-machine.js.map +1 -1
  5. package/dist/mcs-unit.js +3 -0
  6. package/dist/mcs-unit.js.map +1 -1
  7. package/dist/port.js +36 -0
  8. package/dist/port.js.map +1 -1
  9. package/dist/stocker.js +35 -0
  10. package/dist/stocker.js.map +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/package.json +2 -2
  13. package/src/agv-line.ts +24 -0
  14. package/src/mcs-machine.ts +28 -0
  15. package/src/mcs-unit.ts +4 -0
  16. package/src/port.ts +40 -0
  17. package/src/stocker.ts +41 -0
  18. package/translations/en.json +19 -1
  19. package/translations/ja.json +19 -1
  20. package/translations/ko.json +19 -1
  21. package/translations/ms.json +19 -1
  22. package/translations/zh.json +19 -1
  23. package/dist/features/mcs-event-handler-mixin.js +0 -65
  24. package/dist/features/mcs-event-handler-mixin.js.map +0 -1
  25. package/dist/features/mcs-transport-mixin.js +0 -39
  26. package/dist/features/mcs-transport-mixin.js.map +0 -1
  27. package/dist/mcs-gauge-capacity-bar.js +0 -170
  28. package/dist/mcs-gauge-capacity-bar.js.map +0 -1
  29. package/dist/mcs-zone-unit.js +0 -11
  30. package/dist/mcs-zone-unit.js.map +0 -1
  31. package/dist/rtv-rail.js +0 -36
  32. package/dist/rtv-rail.js.map +0 -1
  33. package/dist/templates/agv-line-corner.js +0 -34
  34. package/dist/templates/agv-line-corner.js.map +0 -1
  35. package/dist/templates/agv-line-cross.js +0 -34
  36. package/dist/templates/agv-line-cross.js.map +0 -1
  37. package/dist/templates/agv-line-horizontal.js +0 -34
  38. package/dist/templates/agv-line-horizontal.js.map +0 -1
  39. package/dist/templates/agv-line-vertical.js +0 -34
  40. package/dist/templates/agv-line-vertical.js.map +0 -1
  41. package/dist/templates/conveyor-corner.js +0 -33
  42. package/dist/templates/conveyor-corner.js.map +0 -1
  43. package/dist/templates/conveyor-join.js +0 -21
  44. package/dist/templates/conveyor-join.js.map +0 -1
  45. package/dist/templates/conveyor-left.js +0 -33
  46. package/dist/templates/conveyor-left.js.map +0 -1
  47. package/dist/templates/conveyor-middle.js +0 -33
  48. package/dist/templates/conveyor-middle.js.map +0 -1
  49. package/dist/templates/conveyor-right.js +0 -33
  50. package/dist/templates/conveyor-right.js.map +0 -1
  51. package/dist/templates/mcs-gauge-capacity-bar.js +0 -18
  52. package/dist/templates/mcs-gauge-capacity-bar.js.map +0 -1
  53. package/dist/templates/mcs-gauge-capacity-circle.js +0 -18
  54. package/dist/templates/mcs-gauge-capacity-circle.js.map +0 -1
  55. package/dist/templates/oht-line-corner.js +0 -34
  56. package/dist/templates/oht-line-corner.js.map +0 -1
  57. package/dist/templates/oht-line-cross.js +0 -34
  58. package/dist/templates/oht-line-cross.js.map +0 -1
  59. package/dist/templates/oht-line-horizontal.js +0 -34
  60. package/dist/templates/oht-line-horizontal.js.map +0 -1
  61. package/dist/templates/oht-line-vertical.js +0 -34
  62. package/dist/templates/oht-line-vertical.js.map +0 -1
  63. package/dist/templates/rtv-corner.js +0 -33
  64. package/dist/templates/rtv-corner.js.map +0 -1
  65. package/dist/templates/rtv-left.js +0 -33
  66. package/dist/templates/rtv-left.js.map +0 -1
  67. package/dist/templates/rtv-middle.js +0 -33
  68. package/dist/templates/rtv-middle.js.map +0 -1
  69. package/dist/templates/rtv-rail.js +0 -15
  70. package/dist/templates/rtv-rail.js.map +0 -1
  71. package/dist/templates/rtv-right.js +0 -33
  72. package/dist/templates/rtv-right.js.map +0 -1
  73. package/dist/templates/rtv.js +0 -15
  74. package/dist/templates/rtv.js.map +0 -1
@@ -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
  }
@@ -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
  }
@@ -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
  }
@@ -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
  }
@@ -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":"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","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"]}
@@ -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
@@ -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"]}