@fmsim/machine 1.0.48 → 1.0.50
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/editors/ox-input-nodes.js +120 -56
- package/dist/editors/ox-input-nodes.js.map +1 -1
- package/dist/editors/ox-property-editor-nodes.js +1 -11
- package/dist/editors/ox-property-editor-nodes.js.map +1 -1
- package/dist/mcs-vehicle.js +2 -2
- package/dist/mcs-vehicle.js.map +1 -1
- package/dist/node.js +5 -5
- package/dist/node.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/editors/ox-input-nodes.ts +129 -62
- package/src/editors/ox-property-editor-nodes.ts +2 -15
- package/src/mcs-vehicle.ts +2 -2
- package/src/node.ts +5 -5
- package/translations/en.json +3 -1
- package/translations/ja.json +3 -1
- package/translations/ko.json +3 -1
- package/translations/ms.json +3 -1
- package/translations/zh.json +3 -1
|
@@ -3,89 +3,145 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __decorate, __metadata } from "tslib";
|
|
5
5
|
import '@material/web/icon/icon.js';
|
|
6
|
-
import { css, html } from 'lit';
|
|
7
|
-
import { customElement, state } from 'lit/decorators.js';
|
|
6
|
+
import { css, html, nothing } from 'lit';
|
|
7
|
+
import { customElement, state, query, queryAll } from 'lit/decorators.js';
|
|
8
8
|
import { OxFormField } from '@operato/input';
|
|
9
9
|
let OxInputNodes = class OxInputNodes extends OxFormField {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments);
|
|
12
12
|
this.value = [];
|
|
13
|
+
this._changingNow = false;
|
|
14
|
+
}
|
|
15
|
+
firstUpdated() {
|
|
16
|
+
this.renderRoot.addEventListener('change', this._onChange.bind(this));
|
|
13
17
|
}
|
|
14
18
|
render() {
|
|
15
|
-
const
|
|
19
|
+
const value = this.value || [];
|
|
16
20
|
return html `
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
${value.map(item => html `
|
|
22
|
+
<div data-record>
|
|
23
|
+
<input
|
|
24
|
+
type="text"
|
|
25
|
+
data-id
|
|
26
|
+
.value=${item}
|
|
27
|
+
@keyup=${(e) => e.key === 'Enter' && this._build()}
|
|
28
|
+
/>
|
|
29
|
+
<button
|
|
30
|
+
class="record-action"
|
|
31
|
+
@click=${(e) => this._delete(e)}
|
|
32
|
+
tabindex="-1"
|
|
33
|
+
?disabled=${this.disabled}
|
|
34
|
+
>
|
|
35
|
+
<md-icon>remove</md-icon>
|
|
36
|
+
</button>
|
|
37
|
+
</div>
|
|
38
|
+
`)}
|
|
39
|
+
${this.disabled
|
|
40
|
+
? nothing
|
|
41
|
+
: html `
|
|
42
|
+
<div data-record-new>
|
|
43
|
+
<input type="text" data-id value="" @keyup=${(e) => e.key === 'Enter' && this._add()} />
|
|
44
|
+
<button class="record-action" @click=${(e) => this._add()} tabindex="-1">
|
|
45
|
+
<md-icon>add</md-icon>
|
|
46
|
+
</button>
|
|
47
|
+
</div>
|
|
48
|
+
`}
|
|
27
49
|
`;
|
|
28
50
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
51
|
+
_onChange(e) {
|
|
52
|
+
if (this._changingNow) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this._changingNow = true;
|
|
56
|
+
const input = e.target;
|
|
57
|
+
const record = e.target.closest('[data-record],[data-record-new]');
|
|
58
|
+
if (record.hasAttribute('data-record')) {
|
|
59
|
+
this._build();
|
|
60
|
+
}
|
|
61
|
+
else if (record.hasAttribute('data-record-new') && input.hasAttribute('data-value')) {
|
|
62
|
+
this._add();
|
|
63
|
+
}
|
|
64
|
+
this._changingNow = false;
|
|
65
|
+
}
|
|
66
|
+
_build(includeNewRecord) {
|
|
67
|
+
const selector = includeNewRecord ? '[data-record],[data-record-new]' : '[data-record]';
|
|
68
|
+
const records = this.renderRoot.querySelectorAll(selector);
|
|
69
|
+
this.value = Array.from(records)
|
|
70
|
+
.map(record => record.querySelector('[data-id]').value)
|
|
71
|
+
.filter(Boolean)
|
|
72
|
+
.sort();
|
|
73
|
+
this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: this.value }));
|
|
74
|
+
}
|
|
75
|
+
_add() {
|
|
76
|
+
this._build(true);
|
|
77
|
+
this.addinput.value = '';
|
|
78
|
+
this.addinput.focus();
|
|
79
|
+
}
|
|
80
|
+
_delete(e) {
|
|
81
|
+
const record = e.target.closest('[data-record]');
|
|
82
|
+
record.querySelector('[data-id]').value = '';
|
|
83
|
+
this._build();
|
|
44
84
|
}
|
|
45
85
|
};
|
|
46
86
|
OxInputNodes.styles = [
|
|
47
87
|
css `
|
|
48
88
|
:host {
|
|
49
|
-
display: flex;
|
|
50
|
-
--md-icon-size: 1.4em;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
fieldset {
|
|
54
|
-
flex: 1;
|
|
55
|
-
font-size: 0.8em;
|
|
56
|
-
border: 0;
|
|
57
|
-
border-bottom: 1px solid;
|
|
58
|
-
background-color: var(--md-sys-color-surface-variant);
|
|
59
|
-
padding: var(--spacing-medium);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
ul {
|
|
63
89
|
display: flex;
|
|
64
90
|
flex-direction: column;
|
|
65
|
-
|
|
91
|
+
overflow: hidden;
|
|
66
92
|
|
|
67
|
-
|
|
68
|
-
|
|
93
|
+
--md-icon-size: 14px;
|
|
94
|
+
--spacing-large: 16px;
|
|
95
|
+
--spacing-medium: 8px;
|
|
96
|
+
--spacing-small: 4px;
|
|
97
|
+
--spacing-tiny: 2px;
|
|
98
|
+
--padding-default: 4px;
|
|
99
|
+
--button-color: rgba(0, 0, 0, 0.5);
|
|
100
|
+
--button-border: 1px solid rgba(0, 0, 0, 0.15);
|
|
101
|
+
--button-background-color: rgba(0, 0, 0, 0.05);
|
|
102
|
+
--button-background-focus-color: rgba(0, 0, 0, 0.1);
|
|
103
|
+
--button-active-border: 1px solid rgba(0, 0, 0, 0.2);
|
|
69
104
|
}
|
|
70
105
|
|
|
71
|
-
|
|
106
|
+
div {
|
|
72
107
|
display: flex;
|
|
73
|
-
flex-
|
|
74
|
-
|
|
75
|
-
|
|
108
|
+
flex-flow: row nowrap;
|
|
109
|
+
gap: var(--spacing-medium);
|
|
110
|
+
margin-bottom: var(--spacing-small);
|
|
76
111
|
}
|
|
77
112
|
|
|
78
|
-
|
|
79
|
-
|
|
113
|
+
button {
|
|
114
|
+
border: var(--button-border);
|
|
115
|
+
border-radius: var(--border-radius);
|
|
116
|
+
background-color: var(--button-background-color);
|
|
117
|
+
padding: var(--spacing-small) var(--padding-default);
|
|
118
|
+
line-height: 0.8;
|
|
119
|
+
color: var(--button-color);
|
|
120
|
+
cursor: pointer;
|
|
121
|
+
}
|
|
122
|
+
button + button {
|
|
123
|
+
margin-left: -5px;
|
|
124
|
+
}
|
|
125
|
+
button:focus,
|
|
126
|
+
button:hover,
|
|
127
|
+
button:active {
|
|
128
|
+
border: var(--button-active-border);
|
|
129
|
+
background-color: var(--button-background-focus-color);
|
|
130
|
+
color: rgba(0, 0, 0, 0.5);
|
|
80
131
|
}
|
|
81
132
|
|
|
82
|
-
|
|
83
|
-
|
|
133
|
+
input {
|
|
134
|
+
flex: 1;
|
|
135
|
+
border: 0;
|
|
136
|
+
border: 1px solid rgba(0, 0, 0, 0.15);
|
|
137
|
+
padding: var(--spacing-tiny);
|
|
138
|
+
font: var(--input-font);
|
|
139
|
+
min-width: 50px;
|
|
84
140
|
}
|
|
85
141
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
142
|
+
input:focus {
|
|
143
|
+
outline: none;
|
|
144
|
+
border: 1px solid rgba(0, 0, 0, 0.2);
|
|
89
145
|
}
|
|
90
146
|
`
|
|
91
147
|
];
|
|
@@ -93,6 +149,14 @@ __decorate([
|
|
|
93
149
|
state(),
|
|
94
150
|
__metadata("design:type", Array)
|
|
95
151
|
], OxInputNodes.prototype, "value", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
queryAll('[data-record]'),
|
|
154
|
+
__metadata("design:type", Object)
|
|
155
|
+
], OxInputNodes.prototype, "records", void 0);
|
|
156
|
+
__decorate([
|
|
157
|
+
query('[data-record-new] [data-id]'),
|
|
158
|
+
__metadata("design:type", HTMLInputElement)
|
|
159
|
+
], OxInputNodes.prototype, "addinput", void 0);
|
|
96
160
|
OxInputNodes = __decorate([
|
|
97
161
|
customElement('ox-input-nodes')
|
|
98
162
|
], OxInputNodes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ox-input-nodes.js","sourceRoot":"","sources":["../../src/editors/ox-input-nodes.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"ox-input-nodes.js","sourceRoot":"","sources":["../../src/editors/ox-input-nodes.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGrC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,WAAW;IAAtC;;QAgEI,UAAK,GAAa,EAAE,CAAA;QAKrB,iBAAY,GAAY,KAAK,CAAA;IAyFvC,CAAC;IAvFC,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;QAE9B,OAAO,IAAI,CAAA;QACP,KAAK,CAAC,GAAG,CACT,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;;;;;uBAKG,IAAI;uBACJ,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;;;;uBAIxD,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;;0BAE/B,IAAI,CAAC,QAAQ;;;;;SAK9B,CACF;QACC,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,IAAI,CAAA;;2DAE6C,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;qDAC5D,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;;;;WAIxE;KACN,CAAA;IACH,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAExB,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAE1C,MAAM,MAAM,GAAI,CAAC,CAAC,MAAkB,CAAC,OAAO,CAAC,iCAAiC,CAAgB,CAAA;QAE9F,IAAI,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YACtF,IAAI,CAAC,IAAI,EAAE,CAAA;QACb,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;IAC3B,CAAC;IAED,MAAM,CAAC,gBAA0B;QAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,eAAe,CAAA;QACvF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAA4B,CAAA;QAErF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aAC7B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAuB,CAAC,KAAe,CAAC;aACvF,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,EAAE,CAAA;QAET,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACtG,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;IAED,OAAO,CAAC,CAAa;QACnB,MAAM,MAAM,GAAI,CAAC,CAAC,MAAkB,CAAC,OAAO,CAAC,eAAe,CAAgB,CAE3E;QAAC,MAAO,CAAC,aAAa,CAAC,WAAW,CAAuB,CAAC,KAAK,GAAG,EAAE,CAAA;QAErE,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;;AA5JM,mBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2DF;CACF,AA7DY,CA6DZ;AAEQ;IAAR,KAAK,EAAE;;2CAAqB;AAEF;IAA1B,QAAQ,CAAC,eAAe,CAAC;;6CAAkC;AACtB;IAArC,KAAK,CAAC,6BAA6B,CAAC;8BAAY,gBAAgB;8CAAA;AAnEtD,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CA8JxB","sourcesContent":["/**\n * @license Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport '@material/web/icon/icon.js'\n\nimport { css, html, nothing } from 'lit'\nimport { customElement, state, query, queryAll } from 'lit/decorators.js'\n\nimport { OxFormField } from '@operato/input'\n\n@customElement('ox-input-nodes')\nexport class OxInputNodes extends OxFormField {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n --md-icon-size: 14px;\n --spacing-large: 16px;\n --spacing-medium: 8px;\n --spacing-small: 4px;\n --spacing-tiny: 2px;\n --padding-default: 4px;\n --button-color: rgba(0, 0, 0, 0.5);\n --button-border: 1px solid rgba(0, 0, 0, 0.15);\n --button-background-color: rgba(0, 0, 0, 0.05);\n --button-background-focus-color: rgba(0, 0, 0, 0.1);\n --button-active-border: 1px solid rgba(0, 0, 0, 0.2);\n }\n\n div {\n display: flex;\n flex-flow: row nowrap;\n gap: var(--spacing-medium);\n margin-bottom: var(--spacing-small);\n }\n\n button {\n border: var(--button-border);\n border-radius: var(--border-radius);\n background-color: var(--button-background-color);\n padding: var(--spacing-small) var(--padding-default);\n line-height: 0.8;\n color: var(--button-color);\n cursor: pointer;\n }\n button + button {\n margin-left: -5px;\n }\n button:focus,\n button:hover,\n button:active {\n border: var(--button-active-border);\n background-color: var(--button-background-focus-color);\n color: rgba(0, 0, 0, 0.5);\n }\n\n input {\n flex: 1;\n border: 0;\n border: 1px solid rgba(0, 0, 0, 0.15);\n padding: var(--spacing-tiny);\n font: var(--input-font);\n min-width: 50px;\n }\n\n input:focus {\n outline: none;\n border: 1px solid rgba(0, 0, 0, 0.2);\n }\n `\n ]\n\n @state() value: string[] = []\n\n @queryAll('[data-record]') records!: NodeListOf<HTMLElement>\n @query('[data-record-new] [data-id]') addinput!: HTMLInputElement\n\n private _changingNow: boolean = false\n\n firstUpdated() {\n this.renderRoot.addEventListener('change', this._onChange.bind(this))\n }\n\n render() {\n const value = this.value || []\n\n return html`\n ${value.map(\n item => html`\n <div data-record>\n <input\n type=\"text\"\n data-id\n .value=${item}\n @keyup=${(e: KeyboardEvent) => e.key === 'Enter' && this._build()}\n />\n <button\n class=\"record-action\"\n @click=${(e: MouseEvent) => this._delete(e)}\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n >\n <md-icon>remove</md-icon>\n </button>\n </div>\n `\n )}\n ${this.disabled\n ? nothing\n : html`\n <div data-record-new>\n <input type=\"text\" data-id value=\"\" @keyup=${(e: KeyboardEvent) => e.key === 'Enter' && this._add()} />\n <button class=\"record-action\" @click=${(e: MouseEvent) => this._add()} tabindex=\"-1\">\n <md-icon>add</md-icon>\n </button>\n </div>\n `}\n `\n }\n\n _onChange(e: Event) {\n if (this._changingNow) {\n return\n }\n\n this._changingNow = true\n\n const input = e.target as HTMLInputElement\n\n const record = (e.target as Element).closest('[data-record],[data-record-new]') as HTMLElement\n\n if (record.hasAttribute('data-record')) {\n this._build()\n } else if (record.hasAttribute('data-record-new') && input.hasAttribute('data-value')) {\n this._add()\n }\n\n this._changingNow = false\n }\n\n _build(includeNewRecord?: boolean) {\n const selector = includeNewRecord ? '[data-record],[data-record-new]' : '[data-record]'\n const records = this.renderRoot.querySelectorAll(selector) as NodeListOf<HTMLElement>\n\n this.value = Array.from(records)\n .map(record => (record.querySelector('[data-id]')! as HTMLInputElement).value as string)\n .filter(Boolean)\n .sort()\n\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: this.value }))\n }\n\n _add() {\n this._build(true)\n\n this.addinput.value = ''\n this.addinput.focus()\n }\n\n _delete(e: MouseEvent) {\n const record = (e.target as Element).closest('[data-record]') as HTMLElement\n\n ;(record!.querySelector('[data-id]') as HTMLInputElement)!.value = ''\n\n this._build()\n }\n}\n"]}
|
|
@@ -5,17 +5,7 @@ import { customElement } from 'lit/decorators.js';
|
|
|
5
5
|
import { OxPropertyEditor } from '@operato/property-editor';
|
|
6
6
|
let PropertyEditorNodes = class PropertyEditorNodes extends OxPropertyEditor {
|
|
7
7
|
editorTemplate(value, spec) {
|
|
8
|
-
|
|
9
|
-
// value ||= []
|
|
10
|
-
// const valueProperty = defaultValue
|
|
11
|
-
// .map(({ name, ...others }) => {
|
|
12
|
-
// const node = value.find(v => v.name == name)
|
|
13
|
-
// if (node) {
|
|
14
|
-
// return { ...others, ...node }
|
|
15
|
-
// }
|
|
16
|
-
// })
|
|
17
|
-
// .filter(Boolean)
|
|
18
|
-
return html ` <ox-input-nodes .value=${value} fullwidth></ox-input-nodes> `;
|
|
8
|
+
return html ` <ox-input-nodes .value=${value}></ox-input-nodes> `;
|
|
19
9
|
}
|
|
20
10
|
};
|
|
21
11
|
PropertyEditorNodes = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ox-property-editor-nodes.js","sourceRoot":"","sources":["../../src/editors/ox-property-editor-nodes.ts"],"names":[],"mappings":";AAAA,OAAO,kBAAkB,CAAA;AAEzB,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"ox-property-editor-nodes.js","sourceRoot":"","sources":["../../src/editors/ox-property-editor-nodes.ts"],"names":[],"mappings":";AAAA,OAAO,kBAAkB,CAAA;AAEzB,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAA;AAGlE,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,gBAAgB;IACvD,cAAc,CAAC,KAAe,EAAE,IAAkB;QAChD,OAAO,IAAI,CAAA,2BAA2B,KAAK,qBAAqB,CAAA;IAClE,CAAC;CACF,CAAA;AAJY,mBAAmB;IAD/B,aAAa,CAAC,0BAA0B,CAAC;GAC7B,mBAAmB,CAI/B","sourcesContent":["import './ox-input-nodes'\n\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { OxPropertyEditor, PropertySpec } from '@operato/property-editor'\n\n@customElement('ox-property-editor-nodes')\nexport class PropertyEditorNodes extends OxPropertyEditor {\n editorTemplate(value: string[], spec: PropertySpec) {\n return html` <ox-input-nodes .value=${value}></ox-input-nodes> `\n }\n}\n"]}
|
package/dist/mcs-vehicle.js
CHANGED
|
@@ -81,8 +81,8 @@ export default class MCSVehicle extends MCSCarrierHolder {
|
|
|
81
81
|
}
|
|
82
82
|
onchangeData(after, before) {
|
|
83
83
|
super.onchangeData(after, before);
|
|
84
|
-
const {
|
|
85
|
-
const { NodeId, NodeMachine } = after.data || {};
|
|
84
|
+
const { NODEID: beforeNodeId, NODEMACHINE: beforeNodeMachine } = before.data || {};
|
|
85
|
+
const { NODEID: NodeId, NODEMACHINE: NodeMachine } = after.data || {};
|
|
86
86
|
if (NodeId === undefined ||
|
|
87
87
|
NodeMachine === undefined ||
|
|
88
88
|
(beforeNodeId === NodeId && beforeNodeMachine === NodeMachine) ||
|
package/dist/mcs-vehicle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcs-vehicle.js","sourceRoot":"","sources":["../src/mcs-vehicle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAU,MAAM,+BAA+B,CAAA;AACtE,OAAO,gBAAgB,MAAM,sBAAsB,CAAA;AAGnD,MAAM,aAAa,GAAG,CAAC,CAAA;AAEvB,SAAS,QAAQ,CAAC,OAAmB,EAAE,MAAc,EAAE,WAAmB;IACxE,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAW,CAAA;IAElG,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAU,EAAE,EAAE;QAC/B,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,gBAAgB;IAAxD;;QAeU,iBAAY,GAAmD,IAAI,CAAA;IA6F7E,CAAC;IA3GC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,gBAAgB,CAAC,UAAU;YAC9B;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE;oBACR,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;iBAC7C;aACF;SACF,CAAA;IACH,CAAC;IAID,iBAAiB;QACf,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,eAAe,CAAC,GAA6B;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAEhC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YAE/C,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAExB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAA;YACzB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAA;YACvB,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAA;YACtB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;YACjB,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAEnB,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,IAAI;oBACP,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;oBAC3C,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,GAAG,aAAa,CAAC,CAAA;oBACnD,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;oBAC3C,MAAK;gBACP,KAAK,MAAM;oBACT,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAA;oBACnD,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,aAAa,CAAC,CAAA;oBAC3D,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAA;oBACnD,MAAK;gBACP,KAAK,MAAM;oBACT,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5C,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;oBACvC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5C,MAAK;gBACP,KAAK,OAAO,CAAC;gBACb;oBACE,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBACnD,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC1D,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBACnD,MAAK;YACT,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;YAC1B,GAAG,CAAC,SAAS,EAAE,CAAA;YAEf,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,GAAG,CAAC,MAAM,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,UAAU,CAAC,GAA6B;QACtC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACrB,4BAA4B;IAC9B,CAAC;IAED,YAAY,CAAC,KAAiB,EAAE,MAAkB;QAChD,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEjC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QAClF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"mcs-vehicle.js","sourceRoot":"","sources":["../src/mcs-vehicle.ts"],"names":[],"mappings":"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","sourcesContent":["import { Properties } from '@hatiolab/things-scene'\nimport { LEGEND_VEHICLE, Legend } from './features/mcs-status-default'\nimport MCSCarrierHolder from './mcs-carrier-holder'\nimport Node from './node'\n\nconst DIRECTION_GAP = 3\n\nfunction findNode(vehicle: MCSVehicle, nodeId: string, nodeMachine: string) {\n if (!nodeId || !nodeMachine) {\n return null\n }\n\n const nodes = vehicle.root.findAllById(nodeId).filter(node => node.state.type == 'Node') as Node[]\n\n return nodes.find((node: Node) => {\n return node.nodeMachine === nodeMachine\n })\n}\n\n/**\n * MCS용 Unit > Transport들의 공통 속성을 정의한 오브젝트\n */\nexport default class MCSVehicle extends MCSCarrierHolder {\n static get properties(): any {\n return [\n ...MCSCarrierHolder.properties,\n {\n type: 'select',\n label: 'direction',\n name: 'direction',\n property: {\n options: ['', 'up', 'down', 'left', 'right']\n }\n }\n ]\n }\n\n private lastWaypoint: { NodeId: string; NodeMachine: string } | null = null\n\n getLegendFallback(): Legend {\n return LEGEND_VEHICLE\n }\n\n renderDirection(ctx: CanvasRenderingContext2D) {\n const { direction } = this.state\n\n if (direction) {\n const { left, top, width, height } = this.state\n\n ctx.beginPath()\n ctx.translate(left, top)\n\n ctx.strokeStyle = 'black'\n ctx.fillStyle = 'black'\n ctx.lineJoin = 'round'\n ctx.lineWidth = 1\n ctx.setLineDash([])\n\n switch (direction) {\n case 'up':\n ctx.moveTo((width * 1) / 3, -DIRECTION_GAP)\n ctx.lineTo(width / 2, -height / 10 - DIRECTION_GAP)\n ctx.lineTo((width * 2) / 3, -DIRECTION_GAP)\n break\n case 'down':\n ctx.moveTo((width * 1) / 3, height + DIRECTION_GAP)\n ctx.lineTo(width / 2, height + height / 10 + DIRECTION_GAP)\n ctx.lineTo((width * 2) / 3, height + DIRECTION_GAP)\n break\n case 'left':\n ctx.moveTo(-DIRECTION_GAP, (height * 1) / 3)\n ctx.lineTo(-width / 10 - 2, height / 2)\n ctx.lineTo(-DIRECTION_GAP, (height * 2) / 3)\n break\n case 'right':\n default:\n ctx.moveTo(DIRECTION_GAP + width, (height * 1) / 3)\n ctx.lineTo(DIRECTION_GAP + width + width / 10, height / 2)\n ctx.lineTo(DIRECTION_GAP + width, (height * 2) / 3)\n break\n }\n\n ctx.translate(-left, -top)\n ctx.closePath()\n\n ctx.fill()\n ctx.stroke()\n }\n }\n\n // Performance aware\n postrender(ctx: CanvasRenderingContext2D): void {\n super.postrender(ctx)\n // this.renderDirection(ctx)\n }\n\n onchangeData(after: Properties, before: Properties): void {\n super.onchangeData(after, before)\n\n const { NODEID: beforeNodeId, NODEMACHINE: beforeNodeMachine } = before.data || {}\n const { NODEID: NodeId, NODEMACHINE: NodeMachine } = after.data || {}\n\n if (\n NodeId === undefined ||\n NodeMachine === undefined ||\n (beforeNodeId === NodeId && beforeNodeMachine === NodeMachine) ||\n (this.lastWaypoint && this.lastWaypoint.NodeId === NodeId && this.lastWaypoint.NodeMachine === NodeMachine)\n ) {\n return // not changed\n }\n\n const afterNode = findNode(this, NodeId, NodeMachine)\n if (!afterNode) {\n console.warn(`Node not found. NodeId: ${NodeId}, NodeMachine: ${NodeMachine}`)\n return\n }\n\n const beforeNode = this.lastWaypoint\n ? findNode(this, this.lastWaypoint.NodeId, this.lastWaypoint.NodeMachine)\n : afterNode\n\n // 실제 존재하는 노드 중 가장 최근에 이동한 노드\n this.lastWaypoint = { NodeId, NodeMachine }\n\n this.trigger('waypoint', {\n from: beforeNode,\n to: afterNode,\n duration: 5000\n })\n }\n}\n"]}
|
package/dist/node.js
CHANGED
|
@@ -8,15 +8,15 @@ const NATURE = {
|
|
|
8
8
|
resizable: false,
|
|
9
9
|
rotatable: false,
|
|
10
10
|
properties: [
|
|
11
|
-
{
|
|
12
|
-
type: 'string',
|
|
13
|
-
name: 'NodeIDs',
|
|
14
|
-
label: 'node-ids'
|
|
15
|
-
},
|
|
16
11
|
{
|
|
17
12
|
type: 'string',
|
|
18
13
|
name: 'NodeMachine',
|
|
19
14
|
label: 'node-machine'
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
type: 'nodes',
|
|
18
|
+
label: 'nodes',
|
|
19
|
+
name: 'nodes'
|
|
20
20
|
}
|
|
21
21
|
]
|
|
22
22
|
};
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,UAAU,MAAM,eAAe,CAAA;AAEtC,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, Shape } from '@hatiolab/things-scene'\nimport MCSMachine from './mcs-machine'\n\nconst NATURE = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: [\n {\n type: 'string',\n name: 'NodeMachine',\n label: 'node-machine'\n },\n {\n type: 'nodes',\n label: 'nodes',\n name: 'nodes'\n }\n ]\n}\n\nexport default class Node extends Shape {\n static RADIUS = 8\n\n is3dish() {\n return false\n }\n\n isDescendible() {\n return false\n }\n\n render(context) {\n const { cx, cy } = this.state\n\n context.beginPath()\n\n context.ellipse(cx, cy, Math.abs(Node.RADIUS) * 1, Math.abs(Node.RADIUS) * 1, 0, 0, 2 * Math.PI)\n\n context.closePath()\n }\n\n get path() {\n var { cx, cy } = this.state\n\n return [\n {\n x: cx - Node.RADIUS * 1,\n y: cy - Node.RADIUS * 1\n },\n {\n x: cx + Node.RADIUS * 1,\n y: cy - Node.RADIUS * 1\n },\n {\n x: cx + Node.RADIUS * 1,\n y: cy + Node.RADIUS * 1\n },\n {\n x: cx - Node.RADIUS * 1,\n y: cy + Node.RADIUS * 1\n }\n ]\n }\n\n set path(path) {\n var left_top = path[0]\n var right_bottom = path[2]\n\n this.set({\n cx: left_top.x + (right_bottom.x - left_top.x) / 2,\n cy: left_top.y + (right_bottom.y - left_top.y) / 2\n })\n }\n\n get nodeMachine() {\n if (this.state.NodeMachine) {\n return this.state.NodeMachine\n }\n\n const parent = this.parent\n\n if (parent && parent instanceof MCSMachine) {\n return parent.state.id\n }\n }\n\n contains(x, y) {\n var { cx, cy } = this.state\n\n var normx = (x - cx) / (Node.RADIUS * 2)\n var normy = (y - cy) / (Node.RADIUS * 2)\n\n return normx * normx + normy * normy < 0.25\n }\n\n outline(progress) {\n var { cx, cy } = this.state\n\n return this.transcoordS2T(cx, cy)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Node.prototype, 'path', false)\n\nComponent.register('Node', Node)\n"]}
|