@fmsim/machine 1.0.20 → 1.0.22

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/carrier.js CHANGED
@@ -27,8 +27,9 @@ export default class Carrier extends MCSStatusMixin(Shape) {
27
27
  var _a;
28
28
  const { CARRIERNAME, CARRIERTYPE = '', EMPTYTYPE, CARRIERSTATUS } = this.data || {};
29
29
  this.setState('id', CARRIERNAME);
30
- this.emptyType = EMPTYTYPE;
31
- this.carrierStatus = CARRIERSTATUS;
30
+ this.setState('EMPTYTYPE', EMPTYTYPE);
31
+ this.setState('CARRIERTYPE', CARRIERTYPE);
32
+ this.setState('CARRIERSTATUS', CARRIERSTATUS);
32
33
  // TODO carrierstatus에 따라서 매핑되는 애니메이션 테마 수행
33
34
  if (after.data.CARRIERSTATUS !== ((_a = before.data) === null || _a === void 0 ? void 0 : _a.CARRIERSTATUS)) {
34
35
  const { CARRIERSTATUS: lastCarrierStatus } = before.data || {};
@@ -36,52 +37,42 @@ export default class Carrier extends MCSStatusMixin(Shape) {
36
37
  if (lastAnimationConfig) {
37
38
  let { animation, decorator, border, arrow } = lastAnimationConfig;
38
39
  if (animation) {
39
- ;
40
- this.started = false;
41
- this._animation = null;
40
+ this.resetAnimation();
42
41
  this.setState('animation', {
43
42
  oncreate: null
44
43
  });
45
44
  }
46
- if (decorator) {
47
- this.trigger('iconoff');
48
- }
49
- if (border) {
50
- this.trigger('borderoff');
51
- }
52
- if (arrow) {
53
- this.trigger('bouncingoff');
45
+ if (decorator || border || arrow) {
46
+ this.trigger('animatoroff');
54
47
  }
55
48
  }
56
- const animationConfig = this.getAnimationConfig(this.carrierStatus);
49
+ const animationConfig = this.getAnimationConfig(this.getState('CARRIERSTATUS'));
57
50
  if (animationConfig) {
58
51
  let { animation, decorator, border, arrow } = animationConfig;
59
52
  if (animation) {
60
- ;
61
- this.started = false;
62
- this._animation = null;
53
+ this.resetAnimation();
63
54
  this.setState('animation', {
64
55
  oncreate: animation
65
56
  });
66
57
  this.started = true;
67
58
  }
68
59
  if (decorator) {
69
- this.trigger('iconoff');
60
+ this.trigger('animatoroff');
70
61
  this.trigger('icon', decorator);
71
62
  }
72
63
  if (border) {
73
- this.trigger('borderoff');
64
+ this.trigger('animatoroff');
74
65
  this.trigger('border', border);
75
66
  }
76
67
  if (arrow) {
77
- this.trigger('bouncingoff');
68
+ this.trigger('animatoroff');
78
69
  this.trigger('bouncing', arrow);
79
70
  }
80
71
  }
81
72
  }
82
73
  }
83
74
  get status() {
84
- return this.emptyType;
75
+ return this.getState('EMPTYTYPE');
85
76
  }
86
77
  get legend() {
87
78
  var _a, _b;
@@ -114,6 +105,9 @@ export default class Carrier extends MCSStatusMixin(Shape) {
114
105
  }
115
106
  return ANIMATION_DEFAULT;
116
107
  }
108
+ get hasTextProperty() {
109
+ return this.getState('showText') || false;
110
+ }
117
111
  calculateShrunkRectangle(originalRect) {
118
112
  const shrunkRect = Object.assign({}, originalRect);
119
113
  shrunkRect.left = originalRect.width * 0.1;
@@ -123,7 +117,8 @@ export default class Carrier extends MCSStatusMixin(Shape) {
123
117
  return shrunkRect;
124
118
  }
125
119
  contains(x, y) {
126
- if (!this.emptyType) {
120
+ const EMPTYTYPE = this.getState('EMPTYTYPE');
121
+ if (!EMPTYTYPE) {
127
122
  return false;
128
123
  }
129
124
  const rect = this.bounds;
@@ -146,22 +141,36 @@ export default class Carrier extends MCSStatusMixin(Shape) {
146
141
  return y > m * x + b;
147
142
  }
148
143
  render(ctx) {
149
- if (!this.emptyType) {
144
+ const { EMPTYTYPE, showText } = this.state;
145
+ if (!EMPTYTYPE) {
150
146
  return;
151
147
  }
152
148
  const { width, height } = this.bounds;
153
149
  const path = this.path;
150
+ const round = Math.round(Math.min(width, height) * 0.1);
151
+ const lineWidth = round > 5 ? 1 : 0.5;
154
152
  ctx.beginPath();
155
153
  ctx.moveTo(path[0].x, path[0].y);
156
154
  path.slice(1).forEach(({ x, y }) => {
157
155
  ctx.lineTo(x, y);
158
156
  });
159
157
  ctx.closePath();
160
- ctx.lineWidth = Math.round(Math.min(width, height) * 0.1) > 5 ? 1 : 0.5;
158
+ ctx.lineWidth = lineWidth;
161
159
  ctx.fillStyle = this.statusColor || 'transparent';
162
160
  ctx.strokeStyle = this.auxColor || 'transparent';
163
161
  ctx.fill();
164
162
  ctx.stroke();
163
+ if (showText) {
164
+ const text = EMPTYTYPE == 'FULL' ? 'F' : EMPTYTYPE == 'EMPTY' ? 'E' : EMPTYTYPE == 'EMPTYEMPTY' ? 'X' : '';
165
+ if (text) {
166
+ const { x: cx, y: cy } = this.center;
167
+ ctx.fillStyle = 'black';
168
+ ctx.font = `normal ${Math.round(round * 8)}px Arial`;
169
+ ctx.textAlign = 'center';
170
+ ctx.textBaseline = 'middle';
171
+ ctx.fillText(text, cx - width / 8, cy + height / 8);
172
+ }
173
+ }
165
174
  }
166
175
  }
167
176
  Component.register('Carrier', Carrier);
@@ -1 +1 @@
1
- {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"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","sourcesContent":["import JSON5 from 'json5'\n\nimport { BOUNDS, Component, ComponentNature, RectPath, Shape } from '@hatiolab/things-scene'\nimport { ANIMATION_DEFAULT, AnimationPreset, AnimationConfig } from './features/animation-default.js'\nimport { LEGEND_CARRIER, Legend } from './features/mcs-status-default.js'\nimport { MCSStatusMixin } from './features/mcs-status-mixin.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: false,\n rotatable: false\n}\n\nexport default class Carrier extends MCSStatusMixin(Shape) {\n static get nature() {\n return NATURE\n }\n\n id?: string\n emptyType?: 'FULL' | 'EMPTY' | 'EMPTYEMPTY'\n carrierStatus?: string\n\n get path() {\n const { left, top, width, height } = this.calculateShrunkRectangle(this.parent.bounds)\n\n return [\n { x: left, y: top },\n { x: left + width / 2, y: top },\n { x: left + width, y: top + height / 2 },\n { x: left + width, y: top + height },\n { x: left, y: top + height }\n ]\n }\n\n set path(path) {}\n\n onchangeData(after, before) {\n const { CARRIERNAME, CARRIERTYPE = '', EMPTYTYPE, CARRIERSTATUS } = this.data || {}\n\n this.setState('id', CARRIERNAME)\n\n this.emptyType = EMPTYTYPE\n this.carrierStatus = CARRIERSTATUS\n\n // TODO carrierstatus에 따라서 매핑되는 애니메이션 테마 수행\n if (after.data.CARRIERSTATUS !== before.data?.CARRIERSTATUS) {\n const { CARRIERSTATUS: lastCarrierStatus } = before.data || {}\n const lastAnimationConfig = lastCarrierStatus && this.getAnimationConfig(lastCarrierStatus)\n\n if (lastAnimationConfig) {\n let { animation, decorator, border, arrow } = lastAnimationConfig\n if (animation) {\n ;(this as any).started = false\n ;(this as any)._animation = null\n this.setState('animation', {\n oncreate: null\n })\n }\n\n if (decorator) {\n this.trigger('iconoff')\n }\n\n if (border) {\n this.trigger('borderoff')\n }\n\n if (arrow) {\n this.trigger('bouncingoff')\n }\n }\n\n const animationConfig = this.getAnimationConfig(this.carrierStatus)\n\n if (animationConfig) {\n let { animation, decorator, border, arrow } = animationConfig\n if (animation) {\n ;(this as any).started = false\n ;(this as any)._animation = null\n this.setState('animation', {\n oncreate: animation\n })\n ;(this as any).started = true\n }\n\n if (decorator) {\n this.trigger('iconoff')\n this.trigger('icon', decorator)\n }\n\n if (border) {\n this.trigger('borderoff')\n this.trigger('border', border)\n }\n\n if (arrow) {\n this.trigger('bouncingoff')\n this.trigger('bouncing', arrow)\n }\n }\n }\n }\n\n get status() {\n return this.emptyType\n }\n\n get legend(): Legend {\n const { carrierLegendName } = this.parent?.state || {}\n\n if (carrierLegendName) {\n return (this.root as any)?.style[carrierLegendName]\n }\n\n return LEGEND_CARRIER\n }\n\n getAnimationConfig(carrierStatus): AnimationConfig | null {\n const config = this.animationPreset[carrierStatus || 'default']\n\n if (config && typeof config == 'string') {\n try {\n return JSON5.parse(config)\n } catch (e) {\n console.error(e)\n }\n } else {\n return (config as AnimationConfig) || null\n }\n\n return null\n }\n\n get animationPreset(): AnimationPreset {\n const { carrierAnimationName } = this.parent?.state || {}\n\n if (carrierAnimationName) {\n return (this.parent.root as any)?.style[carrierAnimationName] || ANIMATION_DEFAULT\n }\n\n return ANIMATION_DEFAULT\n }\n\n calculateShrunkRectangle(originalRect: BOUNDS): BOUNDS {\n const shrunkRect: BOUNDS = { ...originalRect }\n\n shrunkRect.left = originalRect.width * 0.1\n shrunkRect.width *= 0.8\n\n shrunkRect.top = originalRect.height * 0.1\n shrunkRect.height *= 0.8\n\n return shrunkRect\n }\n\n contains(x, y) {\n if (!this.emptyType) {\n return false\n }\n\n const rect = this.bounds\n x -= rect.left\n y -= rect.top\n\n if (x < 0 || y < 0 || x > rect.width || y > rect.height) {\n return false\n }\n\n // 윗변 중앙 좌표\n const topCenterX = rect.width / 2\n const topCenterY = 0\n\n // 오른쪽 변 중앙 좌표\n const rightCenterX = rect.width\n const rightCenterY = rect.height / 2\n\n // 기울기 m = (y2 - y1) / (x2 - x1)\n const m = (rightCenterY - topCenterY) / (rightCenterX - topCenterX)\n\n // y 절편 b = y - mx\n const b = topCenterY - m * topCenterX\n\n // 점(px, py)이 선 아래(좌하부)에 있는지 확인\n return y > m * x + b\n }\n\n render(ctx: CanvasRenderingContext2D) {\n if (!this.emptyType) {\n return\n }\n\n const { width, height } = this.bounds\n const path = this.path\n\n ctx.beginPath()\n ctx.moveTo(path[0].x, path[0].y)\n\n path.slice(1).forEach(({ x, y }) => {\n ctx.lineTo(x, y)\n })\n\n ctx.closePath()\n\n ctx.lineWidth = Math.round(Math.min(width, height) * 0.1) > 5 ? 1 : 0.5\n ctx.fillStyle = this.statusColor || 'transparent'\n ctx.strokeStyle = this.auxColor || 'transparent'\n\n ctx.fill()\n ctx.stroke()\n }\n}\n\nComponent.register('Carrier', Carrier)\n"]}
1
+ {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAU,SAAS,EAA+B,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,iBAAiB,EAAoC,MAAM,iCAAiC,CAAA;AACrG,OAAO,EAAE,cAAc,EAAU,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE/D,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;CACjB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,cAAc,CAAC,KAAK,CAAC;IACxD,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,IAAI;QACN,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAEtF,OAAO;YACL,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;YACnB,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE;YACxC,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE;YACpC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE;SAC7B,CAAA;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,IAAG,CAAC;IAEjB,YAAY,CAAC,KAAiB,EAAE,MAAkB;;QAChD,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAEnF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAChC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QACzC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;QAE7C,2CAA2C;QAC3C,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,MAAK,MAAA,MAAM,CAAC,IAAI,0CAAE,aAAa,CAAA,EAAE,CAAC;YAC5D,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;YAC9D,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;YAE3F,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAA;gBACjE,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,cAAc,EAAE,CAAA;oBACrB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;wBACzB,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAA;gBACJ,CAAC;gBAED,IAAI,SAAS,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;YAE/E,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAA;gBAC7D,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,cAAc,EAAE,CAAA;oBACrB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;wBACzB,QAAQ,EAAE,SAAS;qBACpB,CAAC,CAAA;oBACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACrB,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;oBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;gBACjC,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;oBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAChC,CAAC;gBAED,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;oBAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,MAAM;;QACR,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAA;QAEtD,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,MAAC,IAAI,CAAC,IAAY,0CAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACrD,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,kBAAkB,CAAC,aAAa;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,IAAI,SAAS,CAAC,CAAA;QAE/D,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAQ,MAA0B,IAAI,IAAI,CAAA;QAC5C,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,eAAe;;QACjB,MAAM,EAAE,oBAAoB,EAAE,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAA;QAEzD,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,CAAA,MAAC,IAAI,CAAC,MAAM,CAAC,IAAY,0CAAE,KAAK,CAAC,oBAAoB,CAAC,KAAI,iBAAiB,CAAA;QACpF,CAAC;QAED,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAA;IAC3C,CAAC;IAED,wBAAwB,CAAC,YAAoB;QAC3C,MAAM,UAAU,qBAAgB,YAAY,CAAE,CAAA;QAE9C,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,GAAG,GAAG,CAAA;QAC1C,UAAU,CAAC,KAAK,IAAI,GAAG,CAAA;QAEvB,UAAU,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,GAAG,GAAG,CAAA;QAC1C,UAAU,CAAC,MAAM,IAAI,GAAG,CAAA;QAExB,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,QAAQ,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;QACxB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAA;QACd,CAAC,IAAI,IAAI,CAAC,GAAG,CAAA;QAEb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,WAAW;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACjC,MAAM,UAAU,GAAG,CAAC,CAAA;QAEpB,cAAc;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QAEpC,gCAAgC;QAChC,MAAM,CAAC,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,CAAA;QAEnE,kBAAkB;QAClB,MAAM,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,CAAA;QAErC,+BAA+B;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,GAA6B;QAClC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE1C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;QACvD,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QAErC,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;YACjC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;QACzB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,aAAa,CAAA;QACjD,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAA;QAEhD,GAAG,CAAC,IAAI,EAAE,CAAA;QACV,GAAG,CAAC,MAAM,EAAE,CAAA;QAEZ,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAE1G,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;gBAEpC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAA;gBACvB,GAAG,CAAC,IAAI,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAA;gBACpD,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAA;gBACxB,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAA;gBAE3B,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import JSON5 from 'json5'\n\nimport { BOUNDS, Component, ComponentNature, Properties, Shape } from '@hatiolab/things-scene'\nimport { ANIMATION_DEFAULT, AnimationPreset, AnimationConfig } from './features/animation-default.js'\nimport { LEGEND_CARRIER, Legend } from './features/mcs-status-default.js'\nimport { MCSStatusMixin } from './features/mcs-status-mixin.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: false,\n rotatable: false\n}\n\nexport default class Carrier extends MCSStatusMixin(Shape) {\n static get nature() {\n return NATURE\n }\n\n get path() {\n const { left, top, width, height } = this.calculateShrunkRectangle(this.parent.bounds)\n\n return [\n { x: left, y: top },\n { x: left + width / 2, y: top },\n { x: left + width, y: top + height / 2 },\n { x: left + width, y: top + height },\n { x: left, y: top + height }\n ]\n }\n\n set path(path) {}\n\n onchangeData(after: Properties, before: Properties): void {\n const { CARRIERNAME, CARRIERTYPE = '', EMPTYTYPE, CARRIERSTATUS } = this.data || {}\n\n this.setState('id', CARRIERNAME)\n this.setState('EMPTYTYPE', EMPTYTYPE)\n this.setState('CARRIERTYPE', CARRIERTYPE)\n this.setState('CARRIERSTATUS', CARRIERSTATUS)\n\n // TODO carrierstatus에 따라서 매핑되는 애니메이션 테마 수행\n if (after.data.CARRIERSTATUS !== before.data?.CARRIERSTATUS) {\n const { CARRIERSTATUS: lastCarrierStatus } = before.data || {}\n const lastAnimationConfig = lastCarrierStatus && this.getAnimationConfig(lastCarrierStatus)\n\n if (lastAnimationConfig) {\n let { animation, decorator, border, arrow } = lastAnimationConfig\n if (animation) {\n this.resetAnimation()\n this.setState('animation', {\n oncreate: null\n })\n }\n\n if (decorator || border || arrow) {\n this.trigger('animatoroff')\n }\n }\n\n const animationConfig = this.getAnimationConfig(this.getState('CARRIERSTATUS'))\n\n if (animationConfig) {\n let { animation, decorator, border, arrow } = animationConfig\n if (animation) {\n this.resetAnimation()\n this.setState('animation', {\n oncreate: animation\n })\n this.started = true\n }\n\n if (decorator) {\n this.trigger('animatoroff')\n this.trigger('icon', decorator)\n }\n\n if (border) {\n this.trigger('animatoroff')\n this.trigger('border', border)\n }\n\n if (arrow) {\n this.trigger('animatoroff')\n this.trigger('bouncing', arrow)\n }\n }\n }\n }\n\n get status() {\n return this.getState('EMPTYTYPE')\n }\n\n get legend(): Legend {\n const { carrierLegendName } = this.parent?.state || {}\n\n if (carrierLegendName) {\n return (this.root as any)?.style[carrierLegendName]\n }\n\n return LEGEND_CARRIER\n }\n\n getAnimationConfig(carrierStatus): AnimationConfig | null {\n const config = this.animationPreset[carrierStatus || 'default']\n\n if (config && typeof config == 'string') {\n try {\n return JSON5.parse(config)\n } catch (e) {\n console.error(e)\n }\n } else {\n return (config as AnimationConfig) || null\n }\n\n return null\n }\n\n get animationPreset(): AnimationPreset {\n const { carrierAnimationName } = this.parent?.state || {}\n\n if (carrierAnimationName) {\n return (this.parent.root as any)?.style[carrierAnimationName] || ANIMATION_DEFAULT\n }\n\n return ANIMATION_DEFAULT\n }\n\n get hasTextProperty() {\n return this.getState('showText') || false\n }\n\n calculateShrunkRectangle(originalRect: BOUNDS): BOUNDS {\n const shrunkRect: BOUNDS = { ...originalRect }\n\n shrunkRect.left = originalRect.width * 0.1\n shrunkRect.width *= 0.8\n\n shrunkRect.top = originalRect.height * 0.1\n shrunkRect.height *= 0.8\n\n return shrunkRect\n }\n\n contains(x, y) {\n const EMPTYTYPE = this.getState('EMPTYTYPE')\n\n if (!EMPTYTYPE) {\n return false\n }\n\n const rect = this.bounds\n x -= rect.left\n y -= rect.top\n\n if (x < 0 || y < 0 || x > rect.width || y > rect.height) {\n return false\n }\n\n // 윗변 중앙 좌표\n const topCenterX = rect.width / 2\n const topCenterY = 0\n\n // 오른쪽 변 중앙 좌표\n const rightCenterX = rect.width\n const rightCenterY = rect.height / 2\n\n // 기울기 m = (y2 - y1) / (x2 - x1)\n const m = (rightCenterY - topCenterY) / (rightCenterX - topCenterX)\n\n // y 절편 b = y - mx\n const b = topCenterY - m * topCenterX\n\n // 점(px, py)이 선 아래(좌하부)에 있는지 확인\n return y > m * x + b\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { EMPTYTYPE, showText } = this.state\n\n if (!EMPTYTYPE) {\n return\n }\n\n const { width, height } = this.bounds\n const path = this.path\n const round = Math.round(Math.min(width, height) * 0.1)\n const lineWidth = round > 5 ? 1 : 0.5\n\n ctx.beginPath()\n ctx.moveTo(path[0].x, path[0].y)\n\n path.slice(1).forEach(({ x, y }) => {\n ctx.lineTo(x, y)\n })\n\n ctx.closePath()\n\n ctx.lineWidth = lineWidth\n ctx.fillStyle = this.statusColor || 'transparent'\n ctx.strokeStyle = this.auxColor || 'transparent'\n\n ctx.fill()\n ctx.stroke()\n\n if (showText) {\n const text = EMPTYTYPE == 'FULL' ? 'F' : EMPTYTYPE == 'EMPTY' ? 'E' : EMPTYTYPE == 'EMPTYEMPTY' ? 'X' : ''\n\n if (text) {\n const { x: cx, y: cy } = this.center\n\n ctx.fillStyle = 'black'\n ctx.font = `normal ${Math.round(round * 8)}px Arial`\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n\n ctx.fillText(text, cx - width / 8, cy + height / 8)\n }\n }\n }\n}\n\nComponent.register('Carrier', Carrier)\n"]}
@@ -1,20 +1,6 @@
1
1
  export const ANIMATION_DEFAULT = {
2
- WARN: {
3
- animation: {
4
- type: 'vibration',
5
- duration: 1000,
6
- theta: 0.3,
7
- repeat: true
8
- }
9
- },
10
- CRITICAL: {
11
- animation: {
12
- type: 'vibration',
13
- duration: 500,
14
- theta: 0.5,
15
- repeat: true
16
- }
17
- },
2
+ WARN: null,
3
+ CRITICAL: null,
18
4
  default: null
19
5
  };
20
6
  //# sourceMappingURL=animation-default.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation-default.js","sourceRoot":"","sources":["../../src/features/animation-default.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,IAAI,EAAE;QACJ,SAAS,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb;KACF;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,GAAG;YACb,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb;KACF;IACD,OAAO,EAAE,IAAI;CACd,CAAA","sourcesContent":["export type AnimationConfig = {\n [key: string]: any\n}\n\nexport interface AnimationPreset {\n [state: string]: AnimationConfig | string | null\n}\n\nexport const ANIMATION_DEFAULT: AnimationPreset = {\n WARN: {\n animation: {\n type: 'vibration',\n duration: 1000,\n theta: 0.3,\n repeat: true\n }\n },\n CRITICAL: {\n animation: {\n type: 'vibration',\n duration: 500,\n theta: 0.5,\n repeat: true\n }\n },\n default: null\n}\n"]}
1
+ {"version":3,"file":"animation-default.js","sourceRoot":"","sources":["../../src/features/animation-default.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAA","sourcesContent":["export type AnimationConfig = {\n [key: string]: any\n}\n\nexport interface AnimationPreset {\n [state: string]: AnimationConfig | string | null\n}\n\nexport const ANIMATION_DEFAULT: AnimationPreset = {\n WARN: null,\n CRITICAL: null,\n default: null\n}\n"]}
@@ -20,14 +20,22 @@ export default class MCSCarrierHolder extends MCSUnit {
20
20
  property: {
21
21
  options: themesAnimationMap
22
22
  }
23
+ },
24
+ {
25
+ type: 'boolean',
26
+ label: 'show-carrier-text',
27
+ name: 'showCarrierText'
23
28
  }
24
29
  ];
25
30
  }
26
31
  ready() {
27
32
  super.ready();
28
- this.carrier = Model.compile({ type: 'Carrier' }, this.root.app);
29
- this.carrier.data = this.data;
33
+ this.carrier = Model.compile({
34
+ type: 'Carrier',
35
+ showText: this.getState('showCarrierText') || false
36
+ }, this.root.app);
30
37
  this.addComponent(this.carrier);
38
+ this.carrier.data = this.data;
31
39
  }
32
40
  dispose() {
33
41
  this.carrier = null;
@@ -1 +1 @@
1
- {"version":3,"file":"mcs-carrier-holder.js","sourceRoot":"","sources":["../src/mcs-carrier-holder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,OAAO,MAAM,eAAe,CAAA;AAGnC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,OAAO,CAAC,UAAU;YACrB;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE;oBACR,OAAO,EAAE,cAAc;iBACxB;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE;oBACR,OAAO,EAAE,kBAAkB;iBAC5B;aACF;SACF,CAAA;IACH,CAAC;IAID,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,CAAA;QAEvE,IAAI,CAAC,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAE9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAA;IAClC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,KAAK,CAAC,OAAO,EAAE,CAAA;IACjB,CAAC;IAED,YAAY,CAAC,KAAU,EAAE,MAAW;QAClC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC/B,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;CACF","sourcesContent":["import { Model } from '@hatiolab/things-scene'\nimport { themesColorMap, themesAnimationMap } from '@fmsim/api'\nimport MCSUnit from './mcs-unit.js'\nimport Carrier from './carrier.js'\n\nexport default class MCSCarrierHolder extends MCSUnit {\n static get properties(): any {\n return [\n ...MCSUnit.properties,\n {\n type: 'select',\n label: 'carrier-legend-name',\n name: 'carrierLegendName',\n property: {\n options: themesColorMap\n }\n },\n {\n type: 'select',\n label: 'carrier-animation-name',\n name: 'carrierAnimationName',\n property: {\n options: themesAnimationMap\n }\n }\n ]\n }\n\n carrier?: Carrier | null\n\n ready() {\n super.ready()\n\n this.carrier = Model.compile({ type: 'Carrier' }, this.root.app) as any\n\n this.carrier!.data = this.data\n\n this.addComponent(this.carrier!)\n }\n\n dispose(): void {\n this.carrier = null\n\n super.dispose()\n }\n\n onchangeData(after: any, before: any) {\n if (this.carrier) {\n this.carrier.data = this.data\n }\n\n super.onchangeData(after, before)\n }\n}\n"]}
1
+ {"version":3,"file":"mcs-carrier-holder.js","sourceRoot":"","sources":["../src/mcs-carrier-holder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,OAAO,MAAM,eAAe,CAAA;AAGnC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,OAAO,CAAC,UAAU;YACrB;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE;oBACR,OAAO,EAAE,cAAc;iBACxB;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE;oBACR,OAAO,EAAE,kBAAkB;iBAC5B;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,iBAAiB;aACxB;SACF,CAAA;IACH,CAAC;IAID,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAC1B;YACE,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK;SACpD,EACD,IAAI,CAAC,IAAI,CAAC,GAAG,CACP,CAAA;QAER,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAA;QAEhC,IAAI,CAAC,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAChC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,KAAK,CAAC,OAAO,EAAE,CAAA;IACjB,CAAC;IAED,YAAY,CAAC,KAAiB,EAAE,MAAkB;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC/B,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;CACF","sourcesContent":["import { Model, Properties } from '@hatiolab/things-scene'\nimport { themesColorMap, themesAnimationMap } from '@fmsim/api'\nimport MCSUnit from './mcs-unit.js'\nimport Carrier from './carrier.js'\n\nexport default class MCSCarrierHolder extends MCSUnit {\n static get properties(): any {\n return [\n ...MCSUnit.properties,\n {\n type: 'select',\n label: 'carrier-legend-name',\n name: 'carrierLegendName',\n property: {\n options: themesColorMap\n }\n },\n {\n type: 'select',\n label: 'carrier-animation-name',\n name: 'carrierAnimationName',\n property: {\n options: themesAnimationMap\n }\n },\n {\n type: 'boolean',\n label: 'show-carrier-text',\n name: 'showCarrierText'\n }\n ]\n }\n\n carrier?: Carrier | null\n\n ready() {\n super.ready()\n\n this.carrier = Model.compile(\n {\n type: 'Carrier',\n showText: this.getState('showCarrierText') || false\n },\n this.root.app\n ) as any\n\n this.addComponent(this.carrier!)\n\n this.carrier!.data = this.data\n }\n\n dispose(): void {\n this.carrier = null\n\n super.dispose()\n }\n\n onchangeData(after: Properties, before: Properties): void {\n if (this.carrier) {\n this.carrier.data = this.data\n }\n\n super.onchangeData(after, before)\n }\n}\n"]}
package/dist/port-flow.js CHANGED
@@ -29,6 +29,11 @@ const NATURE = {
29
29
  property: {
30
30
  options: ['IN', 'OUT', 'BOTH']
31
31
  }
32
+ },
33
+ {
34
+ type: 'checkbox',
35
+ name: 'showText',
36
+ label: 'show-text'
32
37
  }
33
38
  ]
34
39
  };
@@ -36,6 +41,9 @@ export default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {
36
41
  static get nature() {
37
42
  return NATURE;
38
43
  }
44
+ get hasTextProperty() {
45
+ return this.getState('showText') || false;
46
+ }
39
47
  get textBounds() {
40
48
  var { paddingTop, paddingLeft, paddingRight, paddingBottom, fontSize = 24 } = this.state;
41
49
  paddingBottom || (paddingBottom = 0);
@@ -98,7 +106,7 @@ export default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {
98
106
  direction = INOUTTYPE; /* IN | OUT | BOTH */
99
107
  }
100
108
  ctx.beginPath();
101
- const arrowSize = Math.min(width, height) * 0.3;
109
+ const arrowSize = Math.min(width, height) * 0.5;
102
110
  const bodyWidth = orientation === 'left to right' || orientation === 'right to left' ? height * 0.2 : width * 0.2;
103
111
  const centerX = left + width / 2;
104
112
  const centerY = top + height / 2;
@@ -198,6 +206,10 @@ export default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {
198
206
  ctx.closePath();
199
207
  this.drawStroke(ctx);
200
208
  }
209
+ onchangeData(after, before) {
210
+ const { INOUTTYPE } = after.data;
211
+ this.setState('direction', INOUTTYPE);
212
+ }
201
213
  }
202
214
  Component.register('PortFlow', PortFlow);
203
215
  //# sourceMappingURL=port-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"port-flow.js","sourceRoot":"","sources":["../src/port-flow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, RectPath, Shape } from '@hatiolab/things-scene'\nimport { ParentObjectMixin, ParentObjectMixinProperties } from './features/parent-object-mixin'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...ParentObjectMixinProperties,\n {\n type: 'select',\n name: 'orientation',\n label: 'orientation',\n property: {\n options: ['left to right', 'right to left', 'top to bottom', 'bottom to top']\n }\n },\n {\n type: 'select',\n name: 'labelPosition',\n label: 'label-position',\n property: {\n options: ['left', 'right', 'top', 'bottom']\n }\n },\n {\n type: 'select',\n name: 'direction',\n label: 'direction',\n property: {\n options: ['IN', 'OUT', 'BOTH']\n }\n }\n ]\n}\n\nexport default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {\n static get nature() {\n return NATURE\n }\n\n get textBounds() {\n var { paddingTop, paddingLeft, paddingRight, paddingBottom, fontSize = 24 } = this.state\n\n paddingBottom ||= 0\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n var { left, top, width, height } = this.bounds\n var { labelPosition = 'top' } = this.state\n\n left += paddingLeft\n top += paddingTop\n width = Math.max(width - paddingLeft - paddingRight, 0)\n height = Math.max(height - paddingTop - paddingBottom, 0)\n\n switch (labelPosition) {\n case 'top':\n return {\n left,\n top: top - fontSize,\n width,\n height: fontSize\n }\n case 'bottom':\n return {\n left,\n top: top + height,\n width,\n height: fontSize\n }\n case 'left':\n return {\n left: left - fontSize * 4,\n top,\n width: fontSize * 4,\n height\n }\n case 'right':\n return {\n left: left + width,\n top,\n width: fontSize * 4,\n height\n }\n default:\n return {\n left,\n top: top - fontSize,\n width,\n height: fontSize\n }\n }\n }\n\n get text() {\n const { direction = 'IN' } = this.state\n\n return direction.toUpperCase()\n }\n\n render(ctx) {\n const { left, top, width, height } = this.bounds\n var { orientation = 'left to right', direction = 'BOTH' }: { orientation?: string; direction?: string } = this.state\n const { INOUTTYPE } = this.data || {}\n\n if (INOUTTYPE) {\n direction = INOUTTYPE /* IN | OUT | BOTH */\n }\n\n ctx.beginPath()\n\n const arrowSize = Math.min(width, height) * 0.3\n const bodyWidth = orientation === 'left to right' || orientation === 'right to left' ? height * 0.2 : width * 0.2\n const centerX = left + width / 2\n const centerY = top + height / 2\n\n let startX, startY, endX, endY\n let reverse = 1\n\n switch (orientation) {\n case 'left to right':\n startX = left\n endX = left + width\n startY = centerY\n endY = centerY\n break\n case 'right to left':\n startX = left + width\n endX = left\n startY = centerY\n endY = centerY\n reverse = -1\n break\n case 'top to bottom':\n startX = centerX\n endX = centerX\n startY = top\n endY = top + height\n break\n case 'bottom to top':\n startX = centerX\n endX = centerX\n startY = top + height\n endY = top\n reverse = -1\n break\n }\n\n ctx.lineTo(startX, startY)\n\n if (orientation.includes('left')) {\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX + arrowSize * reverse, startY - bodyWidth * reverse * 2)\n } else {\n ctx.lineTo(startX, startY - bodyWidth * reverse)\n }\n\n ctx.lineTo(startX + arrowSize * reverse, startY - bodyWidth * reverse)\n ctx.lineTo(endX - arrowSize * reverse, endY - bodyWidth * reverse)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX - arrowSize * reverse, endY - bodyWidth * 2 * reverse)\n } else {\n ctx.lineTo(endX, endY - bodyWidth * reverse)\n }\n\n ctx.lineTo(endX, endY)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX - arrowSize * reverse, endY + bodyWidth * 2 * reverse)\n } else {\n ctx.lineTo(endX, endY + bodyWidth * reverse)\n }\n\n ctx.lineTo(endX - arrowSize * reverse, endY + bodyWidth * reverse)\n ctx.lineTo(startX + arrowSize * reverse, startY + bodyWidth * reverse)\n\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX + arrowSize * reverse, startY + bodyWidth * 2 * reverse)\n } else {\n ctx.lineTo(startX, startY + bodyWidth * reverse)\n }\n } else {\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX - bodyWidth * reverse * 2, startY + arrowSize * reverse)\n } else {\n ctx.lineTo(startX - bodyWidth * reverse, startY)\n }\n\n ctx.lineTo(startX - bodyWidth * reverse, startY + arrowSize * reverse)\n ctx.lineTo(endX - bodyWidth * reverse, endY - arrowSize * reverse)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX - bodyWidth * 2 * reverse, endY - arrowSize * reverse)\n } else {\n ctx.lineTo(endX - bodyWidth * reverse, endY)\n }\n\n ctx.lineTo(endX, endY)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX + bodyWidth * 2 * reverse, endY - arrowSize * reverse)\n } else {\n ctx.lineTo(endX + bodyWidth * reverse, endY)\n }\n\n ctx.lineTo(endX + bodyWidth * reverse, endY - arrowSize * reverse)\n ctx.lineTo(startX + bodyWidth * reverse, startY + arrowSize * reverse)\n\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX + bodyWidth * 2 * reverse, startY + arrowSize * reverse)\n } else {\n ctx.lineTo(startX + bodyWidth * reverse, startY)\n }\n }\n\n ctx.closePath()\n\n this.drawStroke(ctx)\n }\n}\n\nComponent.register('PortFlow', PortFlow)\n"]}
1
+ {"version":3,"file":"port-flow.js","sourceRoot":"","sources":["../src/port-flow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, RectPath, Shape, Properties } from '@hatiolab/things-scene'\nimport { ParentObjectMixin, ParentObjectMixinProperties } from './features/parent-object-mixin'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...ParentObjectMixinProperties,\n {\n type: 'select',\n name: 'orientation',\n label: 'orientation',\n property: {\n options: ['left to right', 'right to left', 'top to bottom', 'bottom to top']\n }\n },\n {\n type: 'select',\n name: 'labelPosition',\n label: 'label-position',\n property: {\n options: ['left', 'right', 'top', 'bottom']\n }\n },\n {\n type: 'select',\n name: 'direction',\n label: 'direction',\n property: {\n options: ['IN', 'OUT', 'BOTH']\n }\n },\n {\n type: 'checkbox',\n name: 'showText',\n label: 'show-text'\n }\n ]\n}\n\nexport default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {\n static get nature() {\n return NATURE\n }\n\n get hasTextProperty() {\n return this.getState('showText') || false\n }\n\n get textBounds() {\n var { paddingTop, paddingLeft, paddingRight, paddingBottom, fontSize = 24 } = this.state\n\n paddingBottom ||= 0\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n var { left, top, width, height } = this.bounds\n var { labelPosition = 'top' } = this.state\n\n left += paddingLeft\n top += paddingTop\n width = Math.max(width - paddingLeft - paddingRight, 0)\n height = Math.max(height - paddingTop - paddingBottom, 0)\n\n switch (labelPosition) {\n case 'top':\n return {\n left,\n top: top - fontSize,\n width,\n height: fontSize\n }\n case 'bottom':\n return {\n left,\n top: top + height,\n width,\n height: fontSize\n }\n case 'left':\n return {\n left: left - fontSize * 4,\n top,\n width: fontSize * 4,\n height\n }\n case 'right':\n return {\n left: left + width,\n top,\n width: fontSize * 4,\n height\n }\n default:\n return {\n left,\n top: top - fontSize,\n width,\n height: fontSize\n }\n }\n }\n\n get text() {\n const { direction = 'IN' } = this.state\n\n return direction.toUpperCase()\n }\n\n render(ctx) {\n const { left, top, width, height } = this.bounds\n var { orientation = 'left to right', direction = 'BOTH' }: { orientation?: string; direction?: string } = this.state\n const { INOUTTYPE } = this.data || {}\n\n if (INOUTTYPE) {\n direction = INOUTTYPE /* IN | OUT | BOTH */\n }\n\n ctx.beginPath()\n\n const arrowSize = Math.min(width, height) * 0.5\n const bodyWidth = orientation === 'left to right' || orientation === 'right to left' ? height * 0.2 : width * 0.2\n const centerX = left + width / 2\n const centerY = top + height / 2\n\n let startX, startY, endX, endY\n let reverse = 1\n\n switch (orientation) {\n case 'left to right':\n startX = left\n endX = left + width\n startY = centerY\n endY = centerY\n break\n case 'right to left':\n startX = left + width\n endX = left\n startY = centerY\n endY = centerY\n reverse = -1\n break\n case 'top to bottom':\n startX = centerX\n endX = centerX\n startY = top\n endY = top + height\n break\n case 'bottom to top':\n startX = centerX\n endX = centerX\n startY = top + height\n endY = top\n reverse = -1\n break\n }\n\n ctx.lineTo(startX, startY)\n\n if (orientation.includes('left')) {\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX + arrowSize * reverse, startY - bodyWidth * reverse * 2)\n } else {\n ctx.lineTo(startX, startY - bodyWidth * reverse)\n }\n\n ctx.lineTo(startX + arrowSize * reverse, startY - bodyWidth * reverse)\n ctx.lineTo(endX - arrowSize * reverse, endY - bodyWidth * reverse)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX - arrowSize * reverse, endY - bodyWidth * 2 * reverse)\n } else {\n ctx.lineTo(endX, endY - bodyWidth * reverse)\n }\n\n ctx.lineTo(endX, endY)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX - arrowSize * reverse, endY + bodyWidth * 2 * reverse)\n } else {\n ctx.lineTo(endX, endY + bodyWidth * reverse)\n }\n\n ctx.lineTo(endX - arrowSize * reverse, endY + bodyWidth * reverse)\n ctx.lineTo(startX + arrowSize * reverse, startY + bodyWidth * reverse)\n\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX + arrowSize * reverse, startY + bodyWidth * 2 * reverse)\n } else {\n ctx.lineTo(startX, startY + bodyWidth * reverse)\n }\n } else {\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX - bodyWidth * reverse * 2, startY + arrowSize * reverse)\n } else {\n ctx.lineTo(startX - bodyWidth * reverse, startY)\n }\n\n ctx.lineTo(startX - bodyWidth * reverse, startY + arrowSize * reverse)\n ctx.lineTo(endX - bodyWidth * reverse, endY - arrowSize * reverse)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX - bodyWidth * 2 * reverse, endY - arrowSize * reverse)\n } else {\n ctx.lineTo(endX - bodyWidth * reverse, endY)\n }\n\n ctx.lineTo(endX, endY)\n\n if (direction === 'IN' || direction === 'BOTH') {\n ctx.lineTo(endX + bodyWidth * 2 * reverse, endY - arrowSize * reverse)\n } else {\n ctx.lineTo(endX + bodyWidth * reverse, endY)\n }\n\n ctx.lineTo(endX + bodyWidth * reverse, endY - arrowSize * reverse)\n ctx.lineTo(startX + bodyWidth * reverse, startY + arrowSize * reverse)\n\n if (direction === 'OUT' || direction === 'BOTH') {\n ctx.lineTo(startX + bodyWidth * 2 * reverse, startY + arrowSize * reverse)\n } else {\n ctx.lineTo(startX + bodyWidth * reverse, startY)\n }\n }\n\n ctx.closePath()\n\n this.drawStroke(ctx)\n }\n\n onchangeData(after: Properties, before: Properties): void {\n const { INOUTTYPE } = after.data\n\n this.setState('direction', INOUTTYPE)\n }\n}\n\nComponent.register('PortFlow', PortFlow)\n"]}
@@ -9,7 +9,9 @@ export default {
9
9
  left: 100,
10
10
  top: 100,
11
11
  width: 80,
12
- height: 20
12
+ height: 20,
13
+ fillStyle: 'black',
14
+ strokeStyle: 'black'
13
15
  }
14
16
  };
15
17
  //# sourceMappingURL=port-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"port-flow.js","sourceRoot":"","sources":["../../src/templates/port-flow.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAEvE,eAAe;IACb,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,KAAK,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX;CACF,CAAA","sourcesContent":["const port = new URL('../../icons/port-flow.png', import.meta.url).href\n\nexport default {\n type: 'PortFlow',\n description: 'port flow',\n icon: port,\n group: ['etc'],\n model: {\n type: 'PortFlow',\n left: 100,\n top: 100,\n width: 80,\n height: 20\n }\n}\n"]}
1
+ {"version":3,"file":"port-flow.js","sourceRoot":"","sources":["../../src/templates/port-flow.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAEvE,eAAe;IACb,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,KAAK,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,OAAO;KACrB;CACF,CAAA","sourcesContent":["const port = new URL('../../icons/port-flow.png', import.meta.url).href\n\nexport default {\n type: 'PortFlow',\n description: 'port flow',\n icon: port,\n group: ['etc'],\n model: {\n type: 'PortFlow',\n left: 100,\n top: 100,\n width: 80,\n height: 20,\n fillStyle: 'black',\n strokeStyle: 'black'\n }\n}\n"]}
@@ -1 +1 @@
1
- {"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.dom.iterable.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.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.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.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.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.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@hatiolab/things-scene/things-scene.d.ts","../src/features/mcs-status-default.ts","../../api/dist/src/types.d.ts","../../api/dist/src/graphql/board.d.ts","../../../node_modules/zen-observable-ts/module.d.ts","../../api/dist/src/graphql/data-subscription.d.ts","../../api/dist/src/graphql/favorite-board.d.ts","../../api/dist/src/graphql/group.d.ts","../../api/dist/src/graphql/scenario.d.ts","../../api/dist/src/graphql/theme.d.ts","../../api/dist/src/graphql/index.d.ts","../../api/dist/src/index.d.ts","../src/features/mcs-status-mixin.ts","../src/mcs-machine.ts","../src/mcs-transport.ts","../src/agv-line.ts","../src/features/parent-object-mixin.ts","../src/mcs-unit.ts","../../../node_modules/json5/lib/parse.d.ts","../../../node_modules/json5/lib/stringify.d.ts","../../../node_modules/json5/lib/index.d.ts","../src/features/animation-default.ts","../src/carrier.ts","../src/mcs-carrier-holder.ts","../src/mcs-vehicle.ts","../src/agv.ts","../src/buffer.ts","../src/features/conveyor-mixin.ts","../src/utils/normalize-angle.ts","../src/conveyor-join.ts","../src/conveyor.ts","../src/crane.ts","../src/equipment.ts","../src/groups/mcs-acs.ts","../src/groups/mcs-bcs.ts","../src/groups/mcs-ccs.ts","../src/groups/mcs-eqp.ts","../src/groups/mcs-ocs.ts","../src/groups/mcs-scs.ts","../src/groups/mcs-path.ts","../src/groups/mcs-shape.ts","../src/groups/index.ts","../src/utils/safe-round.ts","../src/utils/get-value-on-ranges.ts","../src/features/mcs-zone-mixin.ts","../src/zone-capacity-bar.ts","../src/stocker-capacity-bar.ts","../src/port-flow.ts","../src/oht-line.ts","../src/stocker.ts","../src/oht.ts","../src/shuttle.ts","../src/port.ts","../src/shelf.ts","../src/index.ts","../src/editors/index.ts","../src/templates/agv-line.ts","../src/templates/agv.ts","../src/templates/buffer.ts","../src/templates/conveyor.ts","../src/templates/crane.ts","../src/templates/data-subscription.js","../src/templates/equipment.ts","../src/templates/stocker-capacity-bar.ts","../src/templates/zone-capacity-bar.ts","../src/templates/port-flow.ts","../src/templates/oht.ts","../src/templates/stocker.ts","../src/templates/shuttle.ts","../src/templates/port.ts","../src/templates/shelf.ts","../src/templates/oht-line.ts","../src/templates/index.ts","../src/templates/stocker-capacity-circle.ts","../src/utils/get-locale.ts","../src/utils/round-rect.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/dom-events.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/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.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/test.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/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileIdsList":[[130,173],[130,173,226],[130,173,228,231],[130,170,173],[130,172,173],[173],[130,173,178,208],[130,173,174,179,185,186,193,205,216],[130,173,174,175,185,193],[125,126,127,130,173],[130,173,176,217],[130,173,177,178,186,194],[130,173,178,205,213],[130,173,179,181,185,193],[130,172,173,180],[130,173,181,182],[130,173,185],[130,173,183,185],[130,172,173,185],[130,173,185,186,187,205,216],[130,173,185,186,187,200,205,208],[130,168,173,221],[130,168,173,181,185,188,193,205,216],[130,173,185,186,188,189,193,205,213,216],[130,173,188,190,205,213,216],[128,129,130,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222],[130,173,185,191],[130,173,192,216],[130,173,181,185,193,205],[130,173,194],[130,173,195],[130,172,173,196],[130,170,171,172,173,174,175,176,177,178,179,180,181,182,183,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222],[130,173,198],[130,173,199],[130,173,185,200,201],[130,173,200,202,217,219],[130,173,185,205,206,207,208],[130,173,205,207],[130,173,205,206],[130,173,208],[130,173,209],[130,170,173,205],[130,173,185,211,212],[130,173,211,212],[130,173,178,193,205,213],[130,173,214],[130,173,193,215],[130,173,188,199,216],[130,173,178,217],[130,173,205,218],[130,173,192,219],[130,173,220],[130,173,178,185,187,196,205,216,219,221],[130,173,205,222],[130,173,224,230],[130,173,228],[130,173,225,229],[67,68,130,173],[130,173,227],[130,140,144,173,216],[130,140,173,205,216],[130,135,173],[130,137,140,173,213,216],[130,173,193,213],[130,173,223],[130,135,173,223],[130,137,140,173,193,216],[130,132,133,136,139,173,185,205,216],[130,140,147,173],[130,132,138,173],[130,140,161,162,173],[130,136,140,173,208,216,223],[130,161,173,223],[130,134,135,173,223],[130,140,173],[130,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,167,173],[130,140,155,173],[130,140,147,148,173],[130,138,140,148,149,173],[130,139,173],[130,132,135,140,173],[130,140,144,148,149,173],[130,144,173],[130,138,140,143,173,216],[130,132,137,140,147,173],[130,173,205],[130,135,140,161,173,221,223],[51,130,173],[49,53,130,173],[52,54,55,56,57,58,130,173],[59,130,173],[49,130,173],[48,49,63,130,173],[48,49,73,130,173],[48,49,62,130,173],[48,49,50,61,69,70,130,173],[48,49,63,76,77,130,173],[48,49,50,73,130,173],[48,130,173],[48,49,130,173],[48,50,60,130,173],[48,66,130,173],[48,49,62,66,130,173],[48,82,83,84,85,86,87,88,89,130,173],[48,62,63,64,66,71,72,73,74,75,78,79,80,81,90,94,95,96,97,98,99,100,101,102,130,173],[48,49,60,66,71,130,173],[48,49,50,60,61,130,173],[48,50,62,130,173],[48,49,50,60,61,65,130,173],[48,50,72,130,173],[48,49,65,130,173],[48,49,72,93,130,173],[48,49,50,60,61,65,91,92,130,173],[48,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,130,173],[48,91,130,173],[48,49,50,60,65,66,91,92,93,130,173]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"a448fe77b125ee9357eac7d0abfdb51321e5c009ae90d53d74fe19025bb8a2e9","impliedFormat":1},"9e74f464ae6f558d42c3ddb1b4908f0badcc742f67db2959a9a251ec1b719e01","3fa5e64e94d423eba10a9e83afdecfdd709a0aabafa492113133917a30a3148c","e7e1634c7b58a18b4d5cd00a52a595200311be8b46fa218d65f83c5caf78a7cc",{"version":"9b51dd74a388c13e157c457cc39d59dc2aae2134f6a21cc6b695219932cb8817","impliedFormat":99},"7a1d0c7c54fb2bda7480b4bd0a23787ffe77fc528d6bad79c1d0407bff9bdeeb","df2daeaeaeb13ff90da550ad449fd1d106c1d8d466a01062a8c094d0d5a29a04","372c0725ab3e1a8de4e92fdb51a8119cd85b92a5021e401c33a40e7b8f9ffeb7","308b74d903d587a5e94d07285f29aad2f2f434b6e8159a32a10c5c55304c827a","c32129c64f2daeb3f0eefcf79d9403f777b52009446244cdac0ef23d9a6cef44","de779aeeeb503c11cf88e3fd87c02219667926f7f0f304476bcdb436a0faed83","1dd908e978ce7b544744b47f587171d6f74d8e69aacac845eb21abc652a18ce2","8df0781900ab40e84f4ceb7a8f87fb04ebd2af911ead495e051968de4cebd0dc","64b3c05af5170034b537d3102758be330d00396310c1bf4779237a84ae262a4b","3be77ba21004eaa812accc57bdea8551c539d02b4c7469364e50e7ee5386490b","1c7466d567b5d1c1875d5fbcf74c083f14d3a17eee0fab783c18312d2f1bff54","9639ddad390a699757e1c9af2d04df55ce42074567cb59834f0acf32465766a7","a09507a157cc25cebdeed271c4f4dfc19cbae73911918f667faae27787d26e27",{"version":"88a3a6f8c2a1640d8d5fd30d8d86462f8babd86a1e52fab0e8b7f7c141fb348e","impliedFormat":1},{"version":"345f76c854da724803c96f727a3f9c75e26cf95c6e7b8c1064dbc4e7727b74e6","impliedFormat":1},{"version":"ab7b7a15a5d73eb0cfc2b973e580f357f07492bff6608669d7e899e2d49ac9a3","impliedFormat":1},"e3bbe4321dcae0766b25a638c5eb94e83cf826d35dfbc43de16c93619b658574","d6e13fc3cdfcdc7e0a9c59aeba80abf505e64c93d8a430da0766a76fac51e342","ca93d07b8aa92220808065de359e25ad0b962d5353dcd8c9e6946e91109247df","d5d36b50aebfcf71e042ee9a45659a892d0f3046381ac8ca94d6473956bdfbdc","4acc297a18e4c2a3126bb24ce87c6d06dee2c6d731b6b87222a1015824003747","9735957bfaaff9481953a948ede5b75c0e19c00570c0b1560cd124abfef31413","7c962f32106dbd4aed7cae530c476d35e7b3b146cb8919a0d642305de53bbcae","4c8d2abfc10f175bee954963c1999e804f737138a156d25bf33f7fcc96b6a4ff","2a7d3810be50a37cc4fd0943d3041c9dbd6177c132d5c011cc4efee89950d695","f9013cc80f482b4ffd8dbaa523c73d6db853fd0a0234914f76b4946a132cd59f","3d219135e8634ee75c781ce0e93365595006774034d8e000fa52b0d9d39dada4","f9982f39463e0ad7bc26821ea65ccf0f8e21b122e3c7240cc38a9b41c8fc7dbe","5cf7bd99b4001ee01519cfe438b5243c4d599d147d12e3f17ab27c41eb5eb4f7","5061683e6ab299e3323dad880f12043e0c44bf5f617c496994891eace1ee2b0a","3a9b3ca027dd6a2eb3f287d1d8c07b6d5a2d4258b15e62ae9d43259521f30a86","2b6aa9961058381821a87b396014a47b546d28fa648aac37fcdf361d9a86fff9","104caacd4ff3469c86bb69f8629f6e03a660ae4216b7563ba00e5cc5d7e78196","9895951c9b18385c8bb5c22b48b5474da5eb174b3d172fa3fcc47a6996ef161e","240a586ed5a6c7ac321099817b6d9a9579dc5248df4a57c83840a78b0db86126","65ec7fa06330a7939286576d641c9fb3a2347b2cae0d23522147984eefa5b554","80e495c27e43860d9f5d0669b0cd621d94111a09ad19b5e0aceb4aa4a0a59a77","12a2e54f7a7ac775b467dc0a44f7534bf100bdbf31e8bc5446276da28c74a5ae","d4fa7c1258363ef15cf546d98455c58f8df4cc4c8a5714f8e6c63eb5a4e6f6c8","dce56fb159fce0c5f631ab7a10b753bdb05a29043c0892352e4bbb3877061639","b2e156f35cb265cb7de57758c95c4cf3fabcf826798272cb4e9d14ed237c8417","ca006f64d8c4a8519cd1d460c8e03d66b3c823a3908e1440bb1fd56df23b27c8",{"version":"7c909ac740cf33a212f7e22de9c9813e13adbd45022adc125a830ad4b89e86a9","signature":"dbf97af34833e259e739aac356cab3b20b35986db453800a13cab6cb4d6b441e"},"5a1908fb468a402ba0789000ac3cb558650998b9ae940f3f97d501c6f0c13eee","8418892b9b64e9547349219a85b916b87cb78d8e0dd02d090fe3f4d3a16667bc","12902cc6378960172bb2ba96d4a0b9b5ee52563dd9e30e469f4fe9f15129ec61","a4b9f0977132dff3d99f7c992b0b545aeb17b869f5f01beafb4984ed2f78f7e4","91a1577af49a31df5f2c8e55d5af439ff368ba2d1ac2144372ed16eb7056c69f","53a560337bcc7da7e923d28537db2f3764999402c2705b942672e3f7102037eb",{"version":"8f4edc8ff20c672775b63c01323ec047bd116e64d0b8056ab07c1c61f202da78","signature":"faa80317c2099c4f68136edc622e9725d94045012ff95cc13a6f54b64c9cafea"},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","3fc7c6bc770af7c3baad2fd5a15e469e8c6d0daf27e6e70c71602c4485ec298a","778cbab406cb9061671fcd26cee039e353e6461e7fc59bfe73dfa239282977e8","4cb3888dd3407f1b59430087b0a2dfb370ead7be67eb29f47bd8254058bb0530","7f7bc2ac8dd3e5f61c892591df33db7df55cc7f11cde5facae9bfb50858422e4","aabe8a1cf992b5f4d1f3c32436ce86a3b4bc53e5ff8508d17f7af39363ece4a1","0a8756869fdf7b830eaff19569fc0f914ed7ed0273633215dde7a1d45563695b","ca6e7842d72566eb33839345dba988398a6aa4b7f03d1c9c717efa93cef83c3d","e1ab04a9cf673edad359a19c1633ed3e3c022c48d0c9d4bf2975e85e00623bc9","83235dbd88ee5802fb486cc7c6b366bcc847d42a97d48f8caa75037deb77f1ad","2ea754d5c402d1106468bf3268bbdd45426f2d9ffcb3088dfb258cfbf86a18a6","7bdecc687401ec2d0b99b3327516c579452f2b42cb3ad49b2010e95c6b08ad33","f924ee8f634f0963b64c4e0e1e851b07cba783930e55c0e25db29cd87d5a5614","d9c0f9c63660fb591939b3d58f64a434d6dba8b5c4c7d61499d56902232a1075","0749858c880806df3ed172eaa5dc2437cd567c944ac3b31146e218ff80a6de9d","65d3a8f424faf3b13daeb790292090abc300bc2c930c18b161c2e3e997a9d142","d4f2080f9ce4d7c5a42f4b6708745ec1144ee533e739749512fe1ee4eb638c62","07df3c0cc2f354358a0a51645198236746d2bc5eb4199dff18ac31774cd64006","6f7ad3f0a5c37dc2a3b6ebe735216b29568ad0550fb086a6ecf0924a09f5b03e","09f31f96e0103f98e1d2c6d85bb5a9d918560867a389c2ebd982b36e202f4b7a","4ea71e852889a6561d0495aa35ce148ab10df95b7f40d56853e0d1d05c3fd2e3",{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"13af9e8fb6757946c48117315866177b95e554d1e773577bb6ca6e40083b6d73","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"d2bc987ae352271d0d615a420dcf98cc886aa16b87fb2b569358c1fe0ca0773d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0539c58717cbc8b73acb29f9e992ab5ff20adba5f9b57130691c7f9b186a4d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ff5a53a58e756d2661b73ba60ffe274231a4432d21f7a2d0d9e4f6aa99f4283","impliedFormat":1},{"version":"1e289f30a48126935a5d408a91129a13a59c9b0f8c007a816f9f16ef821e144e","impliedFormat":1},{"version":"2ea254f944dfe131df1264d1fb96e4b1f7d110195b21f1f5dbb68fdd394e5518","impliedFormat":1},{"version":"5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","impliedFormat":1},{"version":"4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"b11cb909327c874a4e81bfb390bf0d231e5bf9439052689ab80ba8afa50da17b","affectsGlobalScope":true,"impliedFormat":1},{"version":"23459c1915878a7c1e86e8bdb9c187cddd3aea105b8b1dfce512f093c969bc7e","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"1dc73f8854e5c4506131c4d95b3a6c24d0c80336d3758e95110f4c7b5cb16397","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f6f1d54779d0b9ed152b0516b0958cd34889764c1190434bbf18e7a8bb884cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"1cbae62b67f180291d211f0e1045fb923a8ec800cfbf9caa13223d769013dae2","impliedFormat":1},{"version":"b52d379b4939681f3781d1cfd5b2c3cbb35e7e76f2425172e165782f8a08228c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"993985beef40c7d113f6dd8f0ba26eed63028b691fbfeb6a5b63f26408dd2c6d","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","impliedFormat":1},{"version":"5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb094bb347d7df3380299eb69836c2c8758626ecf45917577707c03cf816b6f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","impliedFormat":1},{"version":"b02784111b3fc9c38590cd4339ff8718f9329a6f4d3fd66e9744a1dcd1d7e191","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1}],"root":[50,[61,66],[70,124]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"declaration":false,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"noImplicitAny":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":4,"useDefineForClassFields":false},"referencedMap":[[49,1],[224,1],[227,2],[226,1],[232,3],[170,4],[171,4],[172,5],[130,6],[173,7],[174,8],[175,9],[125,1],[128,10],[126,1],[127,1],[176,11],[177,12],[178,13],[179,14],[180,15],[181,16],[182,16],[184,17],[183,18],[185,19],[186,20],[187,21],[169,22],[129,1],[188,23],[189,24],[190,25],[223,26],[191,27],[192,28],[193,29],[194,30],[195,31],[196,32],[197,33],[198,34],[199,35],[200,36],[201,36],[202,37],[203,1],[204,1],[205,38],[207,39],[206,40],[208,41],[209,42],[210,43],[211,44],[212,45],[213,46],[214,47],[215,48],[216,49],[217,50],[218,51],[219,52],[220,53],[221,54],[222,55],[131,1],[225,1],[231,56],[229,57],[230,58],[69,59],[67,1],[68,1],[228,60],[48,1],[46,1],[47,1],[8,1],[9,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[20,1],[21,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[1,1],[147,61],[157,62],[146,61],[167,63],[138,64],[137,65],[166,66],[160,67],[165,68],[140,69],[154,70],[139,71],[163,72],[135,73],[134,66],[164,74],[136,75],[141,76],[142,1],[145,76],[132,1],[168,77],[158,78],[149,79],[150,80],[152,81],[148,82],[151,83],[161,66],[143,84],[144,85],[153,86],[133,87],[156,78],[155,76],[159,1],[162,88],[53,1],[52,89],[54,90],[55,1],[56,89],[59,91],[57,1],[58,1],[60,92],[51,93],[64,94],[74,95],[75,96],[71,97],[78,98],[79,94],[80,99],[104,1],[81,96],[70,100],[76,101],[50,100],[61,102],[93,103],[65,104],[90,105],[82,100],[83,100],[84,100],[85,100],[86,100],[88,100],[87,100],[89,100],[103,106],[72,107],[62,108],[63,109],[66,110],[73,111],[97,94],[99,95],[96,112],[101,113],[102,113],[100,95],[95,114],[98,94],[105,100],[106,100],[107,100],[108,100],[109,100],[110,100],[111,100],[121,115],[120,100],[115,100],[114,100],[118,100],[119,100],[117,100],[112,100],[122,100],[116,100],[113,100],[123,100],[92,100],[77,100],[124,116],[91,100],[94,117]],"version":"5.7.3"}
1
+ {"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.dom.iterable.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.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.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.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.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.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@hatiolab/things-scene/things-scene.d.ts","../src/features/mcs-status-default.ts","../../api/dist/src/types.d.ts","../../api/dist/src/graphql/board.d.ts","../../../node_modules/zen-observable-ts/module.d.ts","../../api/dist/src/graphql/data-subscription.d.ts","../../api/dist/src/graphql/favorite-board.d.ts","../../api/dist/src/graphql/group.d.ts","../../api/dist/src/graphql/scenario.d.ts","../../api/dist/src/graphql/theme.d.ts","../../api/dist/src/graphql/index.d.ts","../../api/dist/src/index.d.ts","../src/features/mcs-status-mixin.ts","../src/mcs-machine.ts","../src/mcs-transport.ts","../src/agv-line.ts","../src/features/parent-object-mixin.ts","../src/mcs-unit.ts","../../../node_modules/json5/lib/parse.d.ts","../../../node_modules/json5/lib/stringify.d.ts","../../../node_modules/json5/lib/index.d.ts","../src/features/animation-default.ts","../src/carrier.ts","../src/mcs-carrier-holder.ts","../src/mcs-vehicle.ts","../src/agv.ts","../src/buffer.ts","../src/features/conveyor-mixin.ts","../src/utils/normalize-angle.ts","../src/conveyor-join.ts","../src/conveyor.ts","../src/crane.ts","../src/equipment.ts","../src/groups/mcs-acs.ts","../src/groups/mcs-bcs.ts","../src/groups/mcs-ccs.ts","../src/groups/mcs-eqp.ts","../src/groups/mcs-ocs.ts","../src/groups/mcs-scs.ts","../src/groups/mcs-path.ts","../src/groups/mcs-shape.ts","../src/groups/index.ts","../src/utils/safe-round.ts","../src/utils/get-value-on-ranges.ts","../src/features/mcs-zone-mixin.ts","../src/zone-capacity-bar.ts","../src/stocker-capacity-bar.ts","../src/port-flow.ts","../src/oht-line.ts","../src/stocker.ts","../src/oht.ts","../src/shuttle.ts","../src/port.ts","../src/shelf.ts","../src/index.ts","../src/editors/index.ts","../src/templates/agv-line.ts","../src/templates/agv.ts","../src/templates/buffer.ts","../src/templates/conveyor.ts","../src/templates/crane.ts","../src/templates/data-subscription.js","../src/templates/equipment.ts","../src/templates/stocker-capacity-bar.ts","../src/templates/zone-capacity-bar.ts","../src/templates/port-flow.ts","../src/templates/oht.ts","../src/templates/stocker.ts","../src/templates/shuttle.ts","../src/templates/port.ts","../src/templates/shelf.ts","../src/templates/oht-line.ts","../src/templates/index.ts","../src/templates/stocker-capacity-circle.ts","../src/utils/get-locale.ts","../src/utils/round-rect.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/dom-events.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/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.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/test.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/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileIdsList":[[130,173],[130,173,226],[130,173,228,231],[130,170,173],[130,172,173],[173],[130,173,178,208],[130,173,174,179,185,186,193,205,216],[130,173,174,175,185,193],[125,126,127,130,173],[130,173,176,217],[130,173,177,178,186,194],[130,173,178,205,213],[130,173,179,181,185,193],[130,172,173,180],[130,173,181,182],[130,173,185],[130,173,183,185],[130,172,173,185],[130,173,185,186,187,205,216],[130,173,185,186,187,200,205,208],[130,168,173,221],[130,168,173,181,185,188,193,205,216],[130,173,185,186,188,189,193,205,213,216],[130,173,188,190,205,213,216],[128,129,130,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222],[130,173,185,191],[130,173,192,216],[130,173,181,185,193,205],[130,173,194],[130,173,195],[130,172,173,196],[130,170,171,172,173,174,175,176,177,178,179,180,181,182,183,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222],[130,173,198],[130,173,199],[130,173,185,200,201],[130,173,200,202,217,219],[130,173,185,205,206,207,208],[130,173,205,207],[130,173,205,206],[130,173,208],[130,173,209],[130,170,173,205],[130,173,185,211,212],[130,173,211,212],[130,173,178,193,205,213],[130,173,214],[130,173,193,215],[130,173,188,199,216],[130,173,178,217],[130,173,205,218],[130,173,192,219],[130,173,220],[130,173,178,185,187,196,205,216,219,221],[130,173,205,222],[130,173,224,230],[130,173,228],[130,173,225,229],[67,68,130,173],[130,173,227],[130,140,144,173,216],[130,140,173,205,216],[130,135,173],[130,137,140,173,213,216],[130,173,193,213],[130,173,223],[130,135,173,223],[130,137,140,173,193,216],[130,132,133,136,139,173,185,205,216],[130,140,147,173],[130,132,138,173],[130,140,161,162,173],[130,136,140,173,208,216,223],[130,161,173,223],[130,134,135,173,223],[130,140,173],[130,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,167,173],[130,140,155,173],[130,140,147,148,173],[130,138,140,148,149,173],[130,139,173],[130,132,135,140,173],[130,140,144,148,149,173],[130,144,173],[130,138,140,143,173,216],[130,132,137,140,147,173],[130,173,205],[130,135,140,161,173,221,223],[51,130,173],[49,53,130,173],[52,54,55,56,57,58,130,173],[59,130,173],[49,130,173],[48,49,63,130,173],[48,49,73,130,173],[48,49,62,130,173],[48,49,50,61,69,70,130,173],[48,49,63,76,77,130,173],[48,49,50,73,130,173],[48,130,173],[48,49,130,173],[48,50,60,130,173],[48,66,130,173],[48,49,62,66,130,173],[48,82,83,84,85,86,87,88,89,130,173],[48,62,63,64,66,71,72,73,74,75,78,79,80,81,90,94,95,96,97,98,99,100,101,102,130,173],[48,49,60,66,71,130,173],[48,49,50,60,61,130,173],[48,50,62,130,173],[48,49,50,60,61,65,130,173],[48,50,72,130,173],[48,49,65,130,173],[48,49,72,93,130,173],[48,49,50,60,61,65,91,92,130,173],[48,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,130,173],[48,91,130,173],[48,49,50,60,65,66,91,92,93,130,173]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"a448fe77b125ee9357eac7d0abfdb51321e5c009ae90d53d74fe19025bb8a2e9","impliedFormat":1},"9e74f464ae6f558d42c3ddb1b4908f0badcc742f67db2959a9a251ec1b719e01","3fa5e64e94d423eba10a9e83afdecfdd709a0aabafa492113133917a30a3148c","e7e1634c7b58a18b4d5cd00a52a595200311be8b46fa218d65f83c5caf78a7cc",{"version":"9b51dd74a388c13e157c457cc39d59dc2aae2134f6a21cc6b695219932cb8817","impliedFormat":99},"7a1d0c7c54fb2bda7480b4bd0a23787ffe77fc528d6bad79c1d0407bff9bdeeb","df2daeaeaeb13ff90da550ad449fd1d106c1d8d466a01062a8c094d0d5a29a04","372c0725ab3e1a8de4e92fdb51a8119cd85b92a5021e401c33a40e7b8f9ffeb7","308b74d903d587a5e94d07285f29aad2f2f434b6e8159a32a10c5c55304c827a","c32129c64f2daeb3f0eefcf79d9403f777b52009446244cdac0ef23d9a6cef44","de779aeeeb503c11cf88e3fd87c02219667926f7f0f304476bcdb436a0faed83","1dd908e978ce7b544744b47f587171d6f74d8e69aacac845eb21abc652a18ce2","8df0781900ab40e84f4ceb7a8f87fb04ebd2af911ead495e051968de4cebd0dc","64b3c05af5170034b537d3102758be330d00396310c1bf4779237a84ae262a4b","3be77ba21004eaa812accc57bdea8551c539d02b4c7469364e50e7ee5386490b","1c7466d567b5d1c1875d5fbcf74c083f14d3a17eee0fab783c18312d2f1bff54","9639ddad390a699757e1c9af2d04df55ce42074567cb59834f0acf32465766a7","a09507a157cc25cebdeed271c4f4dfc19cbae73911918f667faae27787d26e27",{"version":"88a3a6f8c2a1640d8d5fd30d8d86462f8babd86a1e52fab0e8b7f7c141fb348e","impliedFormat":1},{"version":"345f76c854da724803c96f727a3f9c75e26cf95c6e7b8c1064dbc4e7727b74e6","impliedFormat":1},{"version":"ab7b7a15a5d73eb0cfc2b973e580f357f07492bff6608669d7e899e2d49ac9a3","impliedFormat":1},"0e73d77b6b3c799f4716b2cc7ad54c76cbe57089bae10a69f8319b672fc13632","68c1c7ab2cf842b414dae8c6979eef181e72f18715010fea6b5c3dd0422b3ccd","21906c40e30cc647d720e687cf63d516be05c02ff2400c1960b07ce74a3deef2","d5d36b50aebfcf71e042ee9a45659a892d0f3046381ac8ca94d6473956bdfbdc","4acc297a18e4c2a3126bb24ce87c6d06dee2c6d731b6b87222a1015824003747","9735957bfaaff9481953a948ede5b75c0e19c00570c0b1560cd124abfef31413","7c962f32106dbd4aed7cae530c476d35e7b3b146cb8919a0d642305de53bbcae","4c8d2abfc10f175bee954963c1999e804f737138a156d25bf33f7fcc96b6a4ff","2a7d3810be50a37cc4fd0943d3041c9dbd6177c132d5c011cc4efee89950d695","f9013cc80f482b4ffd8dbaa523c73d6db853fd0a0234914f76b4946a132cd59f","3d219135e8634ee75c781ce0e93365595006774034d8e000fa52b0d9d39dada4","f9982f39463e0ad7bc26821ea65ccf0f8e21b122e3c7240cc38a9b41c8fc7dbe","5cf7bd99b4001ee01519cfe438b5243c4d599d147d12e3f17ab27c41eb5eb4f7","5061683e6ab299e3323dad880f12043e0c44bf5f617c496994891eace1ee2b0a","3a9b3ca027dd6a2eb3f287d1d8c07b6d5a2d4258b15e62ae9d43259521f30a86","2b6aa9961058381821a87b396014a47b546d28fa648aac37fcdf361d9a86fff9","104caacd4ff3469c86bb69f8629f6e03a660ae4216b7563ba00e5cc5d7e78196","9895951c9b18385c8bb5c22b48b5474da5eb174b3d172fa3fcc47a6996ef161e","240a586ed5a6c7ac321099817b6d9a9579dc5248df4a57c83840a78b0db86126","65ec7fa06330a7939286576d641c9fb3a2347b2cae0d23522147984eefa5b554","80e495c27e43860d9f5d0669b0cd621d94111a09ad19b5e0aceb4aa4a0a59a77","12a2e54f7a7ac775b467dc0a44f7534bf100bdbf31e8bc5446276da28c74a5ae","d4fa7c1258363ef15cf546d98455c58f8df4cc4c8a5714f8e6c63eb5a4e6f6c8","dce56fb159fce0c5f631ab7a10b753bdb05a29043c0892352e4bbb3877061639","b2e156f35cb265cb7de57758c95c4cf3fabcf826798272cb4e9d14ed237c8417","ca006f64d8c4a8519cd1d460c8e03d66b3c823a3908e1440bb1fd56df23b27c8","74185af7bb8076e67edf6e429aa2782c24a17cbca29f6f1b6f3930c144bfb906","5a1908fb468a402ba0789000ac3cb558650998b9ae940f3f97d501c6f0c13eee","8418892b9b64e9547349219a85b916b87cb78d8e0dd02d090fe3f4d3a16667bc","12902cc6378960172bb2ba96d4a0b9b5ee52563dd9e30e469f4fe9f15129ec61","a4b9f0977132dff3d99f7c992b0b545aeb17b869f5f01beafb4984ed2f78f7e4","91a1577af49a31df5f2c8e55d5af439ff368ba2d1ac2144372ed16eb7056c69f","53a560337bcc7da7e923d28537db2f3764999402c2705b942672e3f7102037eb","8f4edc8ff20c672775b63c01323ec047bd116e64d0b8056ab07c1c61f202da78","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","3fc7c6bc770af7c3baad2fd5a15e469e8c6d0daf27e6e70c71602c4485ec298a","778cbab406cb9061671fcd26cee039e353e6461e7fc59bfe73dfa239282977e8","4cb3888dd3407f1b59430087b0a2dfb370ead7be67eb29f47bd8254058bb0530","7f7bc2ac8dd3e5f61c892591df33db7df55cc7f11cde5facae9bfb50858422e4","aabe8a1cf992b5f4d1f3c32436ce86a3b4bc53e5ff8508d17f7af39363ece4a1","0a8756869fdf7b830eaff19569fc0f914ed7ed0273633215dde7a1d45563695b","ca6e7842d72566eb33839345dba988398a6aa4b7f03d1c9c717efa93cef83c3d","e1ab04a9cf673edad359a19c1633ed3e3c022c48d0c9d4bf2975e85e00623bc9","83235dbd88ee5802fb486cc7c6b366bcc847d42a97d48f8caa75037deb77f1ad","0935ddd9226305b92f17cdb90361f9722937e58e7398084444e21a272ddbdb94","7bdecc687401ec2d0b99b3327516c579452f2b42cb3ad49b2010e95c6b08ad33","f924ee8f634f0963b64c4e0e1e851b07cba783930e55c0e25db29cd87d5a5614","d9c0f9c63660fb591939b3d58f64a434d6dba8b5c4c7d61499d56902232a1075","0749858c880806df3ed172eaa5dc2437cd567c944ac3b31146e218ff80a6de9d","65d3a8f424faf3b13daeb790292090abc300bc2c930c18b161c2e3e997a9d142","d4f2080f9ce4d7c5a42f4b6708745ec1144ee533e739749512fe1ee4eb638c62","07df3c0cc2f354358a0a51645198236746d2bc5eb4199dff18ac31774cd64006","6f7ad3f0a5c37dc2a3b6ebe735216b29568ad0550fb086a6ecf0924a09f5b03e","09f31f96e0103f98e1d2c6d85bb5a9d918560867a389c2ebd982b36e202f4b7a","4ea71e852889a6561d0495aa35ce148ab10df95b7f40d56853e0d1d05c3fd2e3",{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"13af9e8fb6757946c48117315866177b95e554d1e773577bb6ca6e40083b6d73","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"d2bc987ae352271d0d615a420dcf98cc886aa16b87fb2b569358c1fe0ca0773d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0539c58717cbc8b73acb29f9e992ab5ff20adba5f9b57130691c7f9b186a4d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ff5a53a58e756d2661b73ba60ffe274231a4432d21f7a2d0d9e4f6aa99f4283","impliedFormat":1},{"version":"1e289f30a48126935a5d408a91129a13a59c9b0f8c007a816f9f16ef821e144e","impliedFormat":1},{"version":"2ea254f944dfe131df1264d1fb96e4b1f7d110195b21f1f5dbb68fdd394e5518","impliedFormat":1},{"version":"5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","impliedFormat":1},{"version":"4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"b11cb909327c874a4e81bfb390bf0d231e5bf9439052689ab80ba8afa50da17b","affectsGlobalScope":true,"impliedFormat":1},{"version":"23459c1915878a7c1e86e8bdb9c187cddd3aea105b8b1dfce512f093c969bc7e","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"1dc73f8854e5c4506131c4d95b3a6c24d0c80336d3758e95110f4c7b5cb16397","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f6f1d54779d0b9ed152b0516b0958cd34889764c1190434bbf18e7a8bb884cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"1cbae62b67f180291d211f0e1045fb923a8ec800cfbf9caa13223d769013dae2","impliedFormat":1},{"version":"b52d379b4939681f3781d1cfd5b2c3cbb35e7e76f2425172e165782f8a08228c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"993985beef40c7d113f6dd8f0ba26eed63028b691fbfeb6a5b63f26408dd2c6d","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","impliedFormat":1},{"version":"5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb094bb347d7df3380299eb69836c2c8758626ecf45917577707c03cf816b6f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","impliedFormat":1},{"version":"b02784111b3fc9c38590cd4339ff8718f9329a6f4d3fd66e9744a1dcd1d7e191","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1}],"root":[50,[61,66],[70,124]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"declaration":false,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"noImplicitAny":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":4,"useDefineForClassFields":false},"referencedMap":[[49,1],[224,1],[227,2],[226,1],[232,3],[170,4],[171,4],[172,5],[130,6],[173,7],[174,8],[175,9],[125,1],[128,10],[126,1],[127,1],[176,11],[177,12],[178,13],[179,14],[180,15],[181,16],[182,16],[184,17],[183,18],[185,19],[186,20],[187,21],[169,22],[129,1],[188,23],[189,24],[190,25],[223,26],[191,27],[192,28],[193,29],[194,30],[195,31],[196,32],[197,33],[198,34],[199,35],[200,36],[201,36],[202,37],[203,1],[204,1],[205,38],[207,39],[206,40],[208,41],[209,42],[210,43],[211,44],[212,45],[213,46],[214,47],[215,48],[216,49],[217,50],[218,51],[219,52],[220,53],[221,54],[222,55],[131,1],[225,1],[231,56],[229,57],[230,58],[69,59],[67,1],[68,1],[228,60],[48,1],[46,1],[47,1],[8,1],[9,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[20,1],[21,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[1,1],[147,61],[157,62],[146,61],[167,63],[138,64],[137,65],[166,66],[160,67],[165,68],[140,69],[154,70],[139,71],[163,72],[135,73],[134,66],[164,74],[136,75],[141,76],[142,1],[145,76],[132,1],[168,77],[158,78],[149,79],[150,80],[152,81],[148,82],[151,83],[161,66],[143,84],[144,85],[153,86],[133,87],[156,78],[155,76],[159,1],[162,88],[53,1],[52,89],[54,90],[55,1],[56,89],[59,91],[57,1],[58,1],[60,92],[51,93],[64,94],[74,95],[75,96],[71,97],[78,98],[79,94],[80,99],[104,1],[81,96],[70,100],[76,101],[50,100],[61,102],[93,103],[65,104],[90,105],[82,100],[83,100],[84,100],[85,100],[86,100],[88,100],[87,100],[89,100],[103,106],[72,107],[62,108],[63,109],[66,110],[73,111],[97,94],[99,95],[96,112],[101,113],[102,113],[100,95],[95,114],[98,94],[105,100],[106,100],[107,100],[108,100],[109,100],[110,100],[111,100],[121,115],[120,100],[115,100],[114,100],[118,100],[119,100],[117,100],[112,100],[122,100],[116,100],[113,100],[123,100],[92,100],[77,100],[124,116],[91,100],[94,117]],"version":"5.7.3"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@fmsim/machine",
3
3
  "description": "Layout View를 구성하는 설비(machine)들과 유닛을 구현한 모듈입니다.",
4
4
  "author": "heartyoh",
5
- "version": "1.0.20",
5
+ "version": "1.0.22",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
8
8
  "things-scene": true,
@@ -54,5 +54,5 @@
54
54
  "prettier --write"
55
55
  ]
56
56
  },
57
- "gitHead": "851408eb7e054bdcc3ff71e731e4c75bb6688781"
57
+ "gitHead": "5f24974b764b8c3c57908ae9852ea05ef146a79f"
58
58
  }
package/src/carrier.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import JSON5 from 'json5'
2
2
 
3
- import { BOUNDS, Component, ComponentNature, RectPath, Shape } from '@hatiolab/things-scene'
3
+ import { BOUNDS, Component, ComponentNature, Properties, Shape } from '@hatiolab/things-scene'
4
4
  import { ANIMATION_DEFAULT, AnimationPreset, AnimationConfig } from './features/animation-default.js'
5
5
  import { LEGEND_CARRIER, Legend } from './features/mcs-status-default.js'
6
6
  import { MCSStatusMixin } from './features/mcs-status-mixin.js'
@@ -16,10 +16,6 @@ export default class Carrier extends MCSStatusMixin(Shape) {
16
16
  return NATURE
17
17
  }
18
18
 
19
- id?: string
20
- emptyType?: 'FULL' | 'EMPTY' | 'EMPTYEMPTY'
21
- carrierStatus?: string
22
-
23
19
  get path() {
24
20
  const { left, top, width, height } = this.calculateShrunkRectangle(this.parent.bounds)
25
21
 
@@ -34,13 +30,13 @@ export default class Carrier extends MCSStatusMixin(Shape) {
34
30
 
35
31
  set path(path) {}
36
32
 
37
- onchangeData(after, before) {
33
+ onchangeData(after: Properties, before: Properties): void {
38
34
  const { CARRIERNAME, CARRIERTYPE = '', EMPTYTYPE, CARRIERSTATUS } = this.data || {}
39
35
 
40
36
  this.setState('id', CARRIERNAME)
41
-
42
- this.emptyType = EMPTYTYPE
43
- this.carrierStatus = CARRIERSTATUS
37
+ this.setState('EMPTYTYPE', EMPTYTYPE)
38
+ this.setState('CARRIERTYPE', CARRIERTYPE)
39
+ this.setState('CARRIERSTATUS', CARRIERSTATUS)
44
40
 
45
41
  // TODO carrierstatus에 따라서 매핑되는 애니메이션 테마 수행
46
42
  if (after.data.CARRIERSTATUS !== before.data?.CARRIERSTATUS) {
@@ -50,51 +46,41 @@ export default class Carrier extends MCSStatusMixin(Shape) {
50
46
  if (lastAnimationConfig) {
51
47
  let { animation, decorator, border, arrow } = lastAnimationConfig
52
48
  if (animation) {
53
- ;(this as any).started = false
54
- ;(this as any)._animation = null
49
+ this.resetAnimation()
55
50
  this.setState('animation', {
56
51
  oncreate: null
57
52
  })
58
53
  }
59
54
 
60
- if (decorator) {
61
- this.trigger('iconoff')
62
- }
63
-
64
- if (border) {
65
- this.trigger('borderoff')
66
- }
67
-
68
- if (arrow) {
69
- this.trigger('bouncingoff')
55
+ if (decorator || border || arrow) {
56
+ this.trigger('animatoroff')
70
57
  }
71
58
  }
72
59
 
73
- const animationConfig = this.getAnimationConfig(this.carrierStatus)
60
+ const animationConfig = this.getAnimationConfig(this.getState('CARRIERSTATUS'))
74
61
 
75
62
  if (animationConfig) {
76
63
  let { animation, decorator, border, arrow } = animationConfig
77
64
  if (animation) {
78
- ;(this as any).started = false
79
- ;(this as any)._animation = null
65
+ this.resetAnimation()
80
66
  this.setState('animation', {
81
67
  oncreate: animation
82
68
  })
83
- ;(this as any).started = true
69
+ this.started = true
84
70
  }
85
71
 
86
72
  if (decorator) {
87
- this.trigger('iconoff')
73
+ this.trigger('animatoroff')
88
74
  this.trigger('icon', decorator)
89
75
  }
90
76
 
91
77
  if (border) {
92
- this.trigger('borderoff')
78
+ this.trigger('animatoroff')
93
79
  this.trigger('border', border)
94
80
  }
95
81
 
96
82
  if (arrow) {
97
- this.trigger('bouncingoff')
83
+ this.trigger('animatoroff')
98
84
  this.trigger('bouncing', arrow)
99
85
  }
100
86
  }
@@ -102,7 +88,7 @@ export default class Carrier extends MCSStatusMixin(Shape) {
102
88
  }
103
89
 
104
90
  get status() {
105
- return this.emptyType
91
+ return this.getState('EMPTYTYPE')
106
92
  }
107
93
 
108
94
  get legend(): Legend {
@@ -141,6 +127,10 @@ export default class Carrier extends MCSStatusMixin(Shape) {
141
127
  return ANIMATION_DEFAULT
142
128
  }
143
129
 
130
+ get hasTextProperty() {
131
+ return this.getState('showText') || false
132
+ }
133
+
144
134
  calculateShrunkRectangle(originalRect: BOUNDS): BOUNDS {
145
135
  const shrunkRect: BOUNDS = { ...originalRect }
146
136
 
@@ -154,7 +144,9 @@ export default class Carrier extends MCSStatusMixin(Shape) {
154
144
  }
155
145
 
156
146
  contains(x, y) {
157
- if (!this.emptyType) {
147
+ const EMPTYTYPE = this.getState('EMPTYTYPE')
148
+
149
+ if (!EMPTYTYPE) {
158
150
  return false
159
151
  }
160
152
 
@@ -185,12 +177,16 @@ export default class Carrier extends MCSStatusMixin(Shape) {
185
177
  }
186
178
 
187
179
  render(ctx: CanvasRenderingContext2D) {
188
- if (!this.emptyType) {
180
+ const { EMPTYTYPE, showText } = this.state
181
+
182
+ if (!EMPTYTYPE) {
189
183
  return
190
184
  }
191
185
 
192
186
  const { width, height } = this.bounds
193
187
  const path = this.path
188
+ const round = Math.round(Math.min(width, height) * 0.1)
189
+ const lineWidth = round > 5 ? 1 : 0.5
194
190
 
195
191
  ctx.beginPath()
196
192
  ctx.moveTo(path[0].x, path[0].y)
@@ -201,12 +197,27 @@ export default class Carrier extends MCSStatusMixin(Shape) {
201
197
 
202
198
  ctx.closePath()
203
199
 
204
- ctx.lineWidth = Math.round(Math.min(width, height) * 0.1) > 5 ? 1 : 0.5
200
+ ctx.lineWidth = lineWidth
205
201
  ctx.fillStyle = this.statusColor || 'transparent'
206
202
  ctx.strokeStyle = this.auxColor || 'transparent'
207
203
 
208
204
  ctx.fill()
209
205
  ctx.stroke()
206
+
207
+ if (showText) {
208
+ const text = EMPTYTYPE == 'FULL' ? 'F' : EMPTYTYPE == 'EMPTY' ? 'E' : EMPTYTYPE == 'EMPTYEMPTY' ? 'X' : ''
209
+
210
+ if (text) {
211
+ const { x: cx, y: cy } = this.center
212
+
213
+ ctx.fillStyle = 'black'
214
+ ctx.font = `normal ${Math.round(round * 8)}px Arial`
215
+ ctx.textAlign = 'center'
216
+ ctx.textBaseline = 'middle'
217
+
218
+ ctx.fillText(text, cx - width / 8, cy + height / 8)
219
+ }
220
+ }
210
221
  }
211
222
  }
212
223
 
@@ -7,21 +7,7 @@ export interface AnimationPreset {
7
7
  }
8
8
 
9
9
  export const ANIMATION_DEFAULT: AnimationPreset = {
10
- WARN: {
11
- animation: {
12
- type: 'vibration',
13
- duration: 1000,
14
- theta: 0.3,
15
- repeat: true
16
- }
17
- },
18
- CRITICAL: {
19
- animation: {
20
- type: 'vibration',
21
- duration: 500,
22
- theta: 0.5,
23
- repeat: true
24
- }
25
- },
10
+ WARN: null,
11
+ CRITICAL: null,
26
12
  default: null
27
13
  }
@@ -1,4 +1,4 @@
1
- import { Model } from '@hatiolab/things-scene'
1
+ import { Model, Properties } from '@hatiolab/things-scene'
2
2
  import { themesColorMap, themesAnimationMap } from '@fmsim/api'
3
3
  import MCSUnit from './mcs-unit.js'
4
4
  import Carrier from './carrier.js'
@@ -22,6 +22,11 @@ export default class MCSCarrierHolder extends MCSUnit {
22
22
  property: {
23
23
  options: themesAnimationMap
24
24
  }
25
+ },
26
+ {
27
+ type: 'boolean',
28
+ label: 'show-carrier-text',
29
+ name: 'showCarrierText'
25
30
  }
26
31
  ]
27
32
  }
@@ -31,11 +36,17 @@ export default class MCSCarrierHolder extends MCSUnit {
31
36
  ready() {
32
37
  super.ready()
33
38
 
34
- this.carrier = Model.compile({ type: 'Carrier' }, this.root.app) as any
35
-
36
- this.carrier!.data = this.data
39
+ this.carrier = Model.compile(
40
+ {
41
+ type: 'Carrier',
42
+ showText: this.getState('showCarrierText') || false
43
+ },
44
+ this.root.app
45
+ ) as any
37
46
 
38
47
  this.addComponent(this.carrier!)
48
+
49
+ this.carrier!.data = this.data
39
50
  }
40
51
 
41
52
  dispose(): void {
@@ -44,7 +55,7 @@ export default class MCSCarrierHolder extends MCSUnit {
44
55
  super.dispose()
45
56
  }
46
57
 
47
- onchangeData(after: any, before: any) {
58
+ onchangeData(after: Properties, before: Properties): void {
48
59
  if (this.carrier) {
49
60
  this.carrier.data = this.data
50
61
  }
package/src/port-flow.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Component, ComponentNature, RectPath, Shape } from '@hatiolab/things-scene'
1
+ import { Component, ComponentNature, RectPath, Shape, Properties } from '@hatiolab/things-scene'
2
2
  import { ParentObjectMixin, ParentObjectMixinProperties } from './features/parent-object-mixin'
3
3
 
4
4
  const NATURE: ComponentNature = {
@@ -30,6 +30,11 @@ const NATURE: ComponentNature = {
30
30
  property: {
31
31
  options: ['IN', 'OUT', 'BOTH']
32
32
  }
33
+ },
34
+ {
35
+ type: 'checkbox',
36
+ name: 'showText',
37
+ label: 'show-text'
33
38
  }
34
39
  ]
35
40
  }
@@ -39,6 +44,10 @@ export default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {
39
44
  return NATURE
40
45
  }
41
46
 
47
+ get hasTextProperty() {
48
+ return this.getState('showText') || false
49
+ }
50
+
42
51
  get textBounds() {
43
52
  var { paddingTop, paddingLeft, paddingRight, paddingBottom, fontSize = 24 } = this.state
44
53
 
@@ -111,7 +120,7 @@ export default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {
111
120
 
112
121
  ctx.beginPath()
113
122
 
114
- const arrowSize = Math.min(width, height) * 0.3
123
+ const arrowSize = Math.min(width, height) * 0.5
115
124
  const bodyWidth = orientation === 'left to right' || orientation === 'right to left' ? height * 0.2 : width * 0.2
116
125
  const centerX = left + width / 2
117
126
  const centerY = top + height / 2
@@ -220,6 +229,12 @@ export default class PortFlow extends ParentObjectMixin(RectPath(Shape)) {
220
229
 
221
230
  this.drawStroke(ctx)
222
231
  }
232
+
233
+ onchangeData(after: Properties, before: Properties): void {
234
+ const { INOUTTYPE } = after.data
235
+
236
+ this.setState('direction', INOUTTYPE)
237
+ }
223
238
  }
224
239
 
225
240
  Component.register('PortFlow', PortFlow)
@@ -10,6 +10,8 @@ export default {
10
10
  left: 100,
11
11
  top: 100,
12
12
  width: 80,
13
- height: 20
13
+ height: 20,
14
+ fillStyle: 'black',
15
+ strokeStyle: 'black'
14
16
  }
15
17
  }
@@ -12,6 +12,8 @@
12
12
  "label.transfer-command": "transfer command",
13
13
  "label.parent-object-id": "parent object",
14
14
  "label.process-type": "process type",
15
+ "label.show-carrier-text": "show carrier text",
16
+ "label.show-text": "show text",
15
17
  "label.sub-state": "sub state",
16
18
  "label.banned": "banned",
17
19
  "label.type": "type",
@@ -12,6 +12,8 @@
12
12
  "label.reserved-carrier": "reserved carrier",
13
13
  "label.transfer-command": "transfer command",
14
14
  "label.process-type": "process type",
15
+ "label.show-carrier-text": "show carrier text",
16
+ "label.show-text": "show text",
15
17
  "label.sub-state": "sub state",
16
18
  "label.banned": "banned",
17
19
  "label.type": "type",
@@ -13,6 +13,8 @@
13
13
  "label.transfer-command": "transfer command",
14
14
  "label.parent-object-id": "부모 오브젝트",
15
15
  "label.process-type": "process type",
16
+ "label.show-carrier-text": "캐리어 텍스트",
17
+ "label.show-text": "텍스트 보이기",
16
18
  "label.sub-state": "sub state",
17
19
  "label.banned": "banned",
18
20
  "label.type": "type",
@@ -12,6 +12,8 @@
12
12
  "label.reserved-carrier": "reserved carrier",
13
13
  "label.transfer-command": "transfer command",
14
14
  "label.process-type": "process type",
15
+ "label.show-carrier-text": "show carrier text",
16
+ "label.show-text": "show text",
15
17
  "label.sub-state": "sub state",
16
18
  "label.banned": "banned",
17
19
  "label.type": "type",
@@ -12,6 +12,8 @@
12
12
  "label.reserved-carrier": "reserved carrier",
13
13
  "label.transfer-command": "transfer command",
14
14
  "label.process-type": "process type",
15
+ "label.show-carrier-text": "show carrier text",
16
+ "label.show-text": "show text",
15
17
  "label.sub-state": "sub state",
16
18
  "label.banned": "banned",
17
19
  "label.type": "type",