@operato/board 1.0.0-alpha.9 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +376 -0
  2. package/dist/src/graphql/data-subscription.d.ts +7 -0
  3. package/dist/src/graphql/data-subscription.js +24 -0
  4. package/dist/src/graphql/data-subscription.js.map +1 -0
  5. package/dist/src/modeller/property-sidebar/abstract-property.js +0 -3
  6. package/dist/src/modeller/property-sidebar/abstract-property.js.map +1 -1
  7. package/dist/src/modeller/property-sidebar/data-binding/data-binding-mapper.d.ts +2 -2
  8. package/dist/src/modeller/property-sidebar/data-binding/data-binding-mapper.js +7 -7
  9. package/dist/src/modeller/property-sidebar/data-binding/data-binding-mapper.js.map +1 -1
  10. package/dist/src/modeller/property-sidebar/data-binding/data-binding.js +5 -2
  11. package/dist/src/modeller/property-sidebar/data-binding/data-binding.js.map +1 -1
  12. package/dist/src/modeller/property-sidebar/effects/property-shadow.d.ts +1 -1
  13. package/dist/src/modeller/property-sidebar/effects/property-shadow.js +1 -1
  14. package/dist/src/modeller/property-sidebar/effects/property-shadow.js.map +1 -1
  15. package/dist/src/modeller/property-sidebar/effects/value-converter.js +0 -2
  16. package/dist/src/modeller/property-sidebar/effects/value-converter.js.map +1 -1
  17. package/dist/src/modeller/property-sidebar/inspector/inspector.d.ts +1 -1
  18. package/dist/src/modeller/property-sidebar/specifics/specific-properties-builder.d.ts +1 -1
  19. package/dist/src/modeller/property-sidebar/specifics/specific-properties-builder.js +2 -2
  20. package/dist/src/modeller/property-sidebar/specifics/specific-properties-builder.js.map +1 -1
  21. package/dist/src/modeller/property-sidebar/styles/styles.d.ts +1 -1
  22. package/dist/src/modeller/property-sidebar/styles/styles.js +3 -3
  23. package/dist/src/modeller/property-sidebar/styles/styles.js.map +1 -1
  24. package/dist/src/ox-board-modeller.d.ts +2 -2
  25. package/dist/src/ox-board-modeller.js +5 -5
  26. package/dist/src/ox-board-modeller.js.map +1 -1
  27. package/dist/src/ox-board-viewer.d.ts +3 -1
  28. package/dist/src/ox-board-viewer.js +16 -3
  29. package/dist/src/ox-board-viewer.js.map +1 -1
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +15 -15
  32. package/src/graphql/data-subscription.ts +30 -0
  33. package/src/modeller/property-sidebar/abstract-property.ts +0 -4
  34. package/src/modeller/property-sidebar/data-binding/data-binding-mapper.ts +8 -9
  35. package/src/modeller/property-sidebar/data-binding/data-binding.ts +7 -5
  36. package/src/modeller/property-sidebar/effects/property-shadow.ts +1 -1
  37. package/src/modeller/property-sidebar/effects/value-converter.ts +0 -3
  38. package/src/modeller/property-sidebar/specifics/specific-properties-builder.ts +3 -3
  39. package/src/modeller/property-sidebar/styles/styles.ts +3 -3
  40. package/src/ox-board-modeller.ts +6 -7
  41. package/src/ox-board-viewer.ts +21 -7
  42. package/yarn-error.log +0 -16185
package/CHANGELOG.md CHANGED
@@ -3,6 +3,382 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.0.0-beta.0](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.53...v1.0.0-beta.0) (2022-04-10)
7
+
8
+
9
+ ### :rocket: New Features
10
+
11
+ * all component can subscribe message from server ([dd761e4](https://github.com/hatiolab/operato/commit/dd761e47d73707cc967cf02101c60971cd22fee6))
12
+ * all component can subscribe message from server ([3e41da0](https://github.com/hatiolab/operato/commit/3e41da09ce24c82a88a96c26c328de293de14853))
13
+ * all component can subscribe message from server ([26354ea](https://github.com/hatiolab/operato/commit/26354ea6ae89642a9505a3763dbfe81c3a32d84e))
14
+
15
+
16
+ ### :bug: Bug Fix
17
+
18
+ * @hatiolab/things-scene 2.8.0 to support tag-subscription ([0e91c46](https://github.com/hatiolab/operato/commit/0e91c461007b9321e8cbaa7977a8b7eced394dbc))
19
+ * @hatiolab/things-scene 2.8.1 to support tag-subscription ([8e6dc87](https://github.com/hatiolab/operato/commit/8e6dc87a7e79dd053ac8e9a491f5ad8612cf96ac))
20
+
21
+
22
+
23
+ ## [1.0.0-alpha.53](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.52...v1.0.0-alpha.53) (2022-04-08)
24
+
25
+
26
+ ### :rocket: New Features
27
+
28
+ * ox-board-viewer support async model loading ([ff070cc](https://github.com/hatiolab/operato/commit/ff070ccfdceeab6ff8ec0df4d10b090f0c44f5c0))
29
+
30
+
31
+
32
+ ## [1.0.0-alpha.52](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.51...v1.0.0-alpha.52) (2022-04-08)
33
+
34
+ **Note:** Version bump only for package @operato/board
35
+
36
+
37
+
38
+
39
+
40
+ ## [1.0.0-alpha.51](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.50...v1.0.0-alpha.51) (2022-04-05)
41
+
42
+ **Note:** Version bump only for package @operato/board
43
+
44
+
45
+
46
+
47
+
48
+ ## [1.0.0-alpha.50](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.49...v1.0.0-alpha.50) (2022-04-04)
49
+
50
+ **Note:** Version bump only for package @operato/board
51
+
52
+
53
+
54
+
55
+
56
+ ## [1.0.0-alpha.49](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.48...v1.0.0-alpha.49) (2022-04-04)
57
+
58
+
59
+ ### :bug: Bug Fix
60
+
61
+ * lit@2.2.1 ([6707752](https://github.com/hatiolab/operato/commit/6707752907d24f7ecbe248cba18a4b18cfda282f))
62
+
63
+
64
+
65
+ ## [1.0.0-alpha.48](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.47...v1.0.0-alpha.48) (2022-04-03)
66
+
67
+ **Note:** Version bump only for package @operato/board
68
+
69
+
70
+
71
+
72
+
73
+ ## [1.0.0-alpha.47](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.46...v1.0.0-alpha.47) (2022-04-02)
74
+
75
+ **Note:** Version bump only for package @operato/board
76
+
77
+
78
+
79
+
80
+
81
+ ## [1.0.0-alpha.46](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.45...v1.0.0-alpha.46) (2022-04-02)
82
+
83
+ **Note:** Version bump only for package @operato/board
84
+
85
+
86
+
87
+
88
+
89
+ ## [1.0.0-alpha.45](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.44...v1.0.0-alpha.45) (2022-03-31)
90
+
91
+ **Note:** Version bump only for package @operato/board
92
+
93
+
94
+
95
+
96
+
97
+ ## [1.0.0-alpha.44](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.43...v1.0.0-alpha.44) (2022-03-31)
98
+
99
+ **Note:** Version bump only for package @operato/board
100
+
101
+
102
+
103
+
104
+
105
+ ## [1.0.0-alpha.43](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.42...v1.0.0-alpha.43) (2022-03-30)
106
+
107
+ **Note:** Version bump only for package @operato/board
108
+
109
+
110
+
111
+
112
+
113
+ ## [1.0.0-alpha.42](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.41...v1.0.0-alpha.42) (2022-03-29)
114
+
115
+ **Note:** Version bump only for package @operato/board
116
+
117
+
118
+
119
+
120
+
121
+ ## [1.0.0-alpha.41](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.40...v1.0.0-alpha.41) (2022-03-27)
122
+
123
+ **Note:** Version bump only for package @operato/board
124
+
125
+
126
+
127
+
128
+
129
+ ## [1.0.0-alpha.40](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.39...v1.0.0-alpha.40) (2022-03-26)
130
+
131
+ **Note:** Version bump only for package @operato/board
132
+
133
+
134
+
135
+
136
+
137
+ ## [1.0.0-alpha.39](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.38...v1.0.0-alpha.39) (2022-03-25)
138
+
139
+ **Note:** Version bump only for package @operato/board
140
+
141
+
142
+
143
+
144
+
145
+ ## [1.0.0-alpha.38](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.37...v1.0.0-alpha.38) (2022-03-25)
146
+
147
+ **Note:** Version bump only for package @operato/board
148
+
149
+
150
+
151
+
152
+
153
+ ## [1.0.0-alpha.37](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.36...v1.0.0-alpha.37) (2022-03-25)
154
+
155
+ **Note:** Version bump only for package @operato/board
156
+
157
+
158
+
159
+
160
+
161
+ ## [1.0.0-alpha.36](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.35...v1.0.0-alpha.36) (2022-03-21)
162
+
163
+ **Note:** Version bump only for package @operato/board
164
+
165
+
166
+
167
+
168
+
169
+ ## [1.0.0-alpha.35](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.34...v1.0.0-alpha.35) (2022-03-21)
170
+
171
+ **Note:** Version bump only for package @operato/board
172
+
173
+
174
+
175
+
176
+
177
+ ## [1.0.0-alpha.34](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.33...v1.0.0-alpha.34) (2022-03-20)
178
+
179
+ **Note:** Version bump only for package @operato/board
180
+
181
+
182
+
183
+
184
+
185
+ ## [1.0.0-alpha.33](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.32...v1.0.0-alpha.33) (2022-03-19)
186
+
187
+ **Note:** Version bump only for package @operato/board
188
+
189
+
190
+
191
+
192
+
193
+ ## [1.0.0-alpha.32](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.31...v1.0.0-alpha.32) (2022-03-19)
194
+
195
+ **Note:** Version bump only for package @operato/board
196
+
197
+
198
+
199
+
200
+
201
+ ## [1.0.0-alpha.31](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.30...v1.0.0-alpha.31) (2022-03-19)
202
+
203
+ **Note:** Version bump only for package @operato/board
204
+
205
+
206
+
207
+
208
+
209
+ ## [1.0.0-alpha.30](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.29...v1.0.0-alpha.30) (2022-03-18)
210
+
211
+ **Note:** Version bump only for package @operato/board
212
+
213
+
214
+
215
+
216
+
217
+ ## [1.0.0-alpha.29](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.28...v1.0.0-alpha.29) (2022-03-17)
218
+
219
+ **Note:** Version bump only for package @operato/board
220
+
221
+
222
+
223
+
224
+
225
+ ## [1.0.0-alpha.28](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.26...v1.0.0-alpha.28) (2022-03-17)
226
+
227
+ **Note:** Version bump only for package @operato/board
228
+
229
+
230
+
231
+
232
+
233
+ ## [1.0.0-alpha.27](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.26...v1.0.0-alpha.27) (2022-03-17)
234
+
235
+ **Note:** Version bump only for package @operato/board
236
+
237
+
238
+
239
+
240
+
241
+ ## [1.0.0-alpha.26](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.25...v1.0.0-alpha.26) (2022-03-17)
242
+
243
+ **Note:** Version bump only for package @operato/board
244
+
245
+
246
+
247
+
248
+
249
+ ## [1.0.0-alpha.25](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.24...v1.0.0-alpha.25) (2022-03-17)
250
+
251
+ **Note:** Version bump only for package @operato/board
252
+
253
+
254
+
255
+
256
+
257
+ ## [1.0.0-alpha.24](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.23...v1.0.0-alpha.24) (2022-03-17)
258
+
259
+ **Note:** Version bump only for package @operato/board
260
+
261
+
262
+
263
+
264
+
265
+ ## [1.0.0-alpha.23](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.22...v1.0.0-alpha.23) (2022-03-17)
266
+
267
+ **Note:** Version bump only for package @operato/board
268
+
269
+
270
+
271
+
272
+
273
+ ## [1.0.0-alpha.22](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.21...v1.0.0-alpha.22) (2022-03-17)
274
+
275
+ **Note:** Version bump only for package @operato/board
276
+
277
+
278
+
279
+
280
+
281
+ ## [1.0.0-alpha.21](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.20...v1.0.0-alpha.21) (2022-03-16)
282
+
283
+ **Note:** Version bump only for package @operato/board
284
+
285
+
286
+
287
+
288
+
289
+ ## [1.0.0-alpha.20](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.19...v1.0.0-alpha.20) (2022-03-15)
290
+
291
+ **Note:** Version bump only for package @operato/board
292
+
293
+
294
+
295
+
296
+
297
+ ## [1.0.0-alpha.19](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.18...v1.0.0-alpha.19) (2022-03-14)
298
+
299
+ **Note:** Version bump only for package @operato/board
300
+
301
+
302
+
303
+
304
+
305
+ ## [1.0.0-alpha.18](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.17...v1.0.0-alpha.18) (2022-03-14)
306
+
307
+
308
+ ### :bug: Bug Fix
309
+
310
+ * missing font module import ([a5348cf](https://github.com/hatiolab/operato/commit/a5348cf0d567927f18bf31bba09994f3fbf742f6))
311
+
312
+
313
+
314
+ ## [1.0.0-alpha.17](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.16...v1.0.0-alpha.17) (2022-03-13)
315
+
316
+ **Note:** Version bump only for package @operato/board
317
+
318
+
319
+
320
+
321
+
322
+ ## [1.0.0-alpha.16](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.15...v1.0.0-alpha.16) (2022-03-13)
323
+
324
+ **Note:** Version bump only for package @operato/board
325
+
326
+
327
+
328
+
329
+
330
+ ## [1.0.0-alpha.15](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.14...v1.0.0-alpha.15) (2022-03-13)
331
+
332
+
333
+ ### :rocket: New Features
334
+
335
+ * migrate input, property-editor from things-factory ([dbd5e73](https://github.com/hatiolab/operato/commit/dbd5e73eac328e72c4bb7abd113a819532bc894d))
336
+
337
+
338
+
339
+ ## [1.0.0-alpha.14](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.13...v1.0.0-alpha.14) (2022-03-13)
340
+
341
+ **Note:** Version bump only for package @operato/board
342
+
343
+
344
+
345
+
346
+
347
+ ## [1.0.0-alpha.13](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.12...v1.0.0-alpha.13) (2022-03-13)
348
+
349
+
350
+ ### :bug: Bug Fix
351
+
352
+ * typos ([71447fa](https://github.com/hatiolab/operato/commit/71447fa2dfb52c5e45909baac735c2e195856256))
353
+
354
+
355
+
356
+ ## [1.0.0-alpha.12](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.11...v1.0.0-alpha.12) (2022-03-13)
357
+
358
+
359
+ ### :rocket: New Features
360
+
361
+ * migrate input, property-editor from things-factory ([4800d85](https://github.com/hatiolab/operato/commit/4800d859473bf623325233a7f2af851e5d093dcb))
362
+
363
+
364
+
365
+ ## [1.0.0-alpha.11](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.10...v1.0.0-alpha.11) (2022-03-12)
366
+
367
+ **Note:** Version bump only for package @operato/board
368
+
369
+
370
+
371
+
372
+
373
+ ## [1.0.0-alpha.10](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.9...v1.0.0-alpha.10) (2022-03-12)
374
+
375
+
376
+ ### :bug: Bug Fix
377
+
378
+ * invalid import ([6448b1f](https://github.com/hatiolab/operato/commit/6448b1fb3df90760ca80e42827e53901fcefefe0))
379
+
380
+
381
+
6
382
  ## [1.0.0-alpha.9](https://github.com/hatiolab/operato/compare/v1.0.0-alpha.8...v1.0.0-alpha.9) (2022-03-12)
7
383
 
8
384
 
@@ -0,0 +1,7 @@
1
+ import { Component, DataSubscriptionProvider } from '@hatiolab/things-scene';
2
+ export declare class DataSubscriptionProviderImpl implements DataSubscriptionProvider {
3
+ subscribe(tag: string, component: Component): Promise<{
4
+ unsubscribe(): void;
5
+ }>;
6
+ dispose(): void;
7
+ }
@@ -0,0 +1,24 @@
1
+ import gql from 'graphql-tag';
2
+ import { subscribe } from '@operato/graphql';
3
+ export class DataSubscriptionProviderImpl {
4
+ async subscribe(tag, component) {
5
+ return await subscribe({
6
+ query: gql `
7
+ subscription {
8
+ data(tag: "${tag}") {
9
+ tag
10
+ data
11
+ }
12
+ }
13
+ `
14
+ }, {
15
+ next: async ({ data }) => {
16
+ if (data) {
17
+ component.data = data.data.data;
18
+ }
19
+ }
20
+ });
21
+ }
22
+ dispose() { }
23
+ }
24
+ //# sourceMappingURL=data-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-subscription.js","sourceRoot":"","sources":["../../../src/graphql/data-subscription.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,MAAM,OAAO,4BAA4B;IACvC,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,SAAoB;QAC/C,OAAO,MAAM,SAAS,CACpB;YACE,KAAK,EAAE,GAAG,CAAA;;iCAEe,GAAG;;;;;iBAKnB;SACV,EACD;YACE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAiB,EAAE,EAAE;gBACtC,IAAI,IAAI,EAAE;oBACR,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;iBAChC;YACH,CAAC;SACF,CACF,CAAA;IACH,CAAC;IAED,OAAO,KAAI,CAAC;CACb","sourcesContent":["import { Component, DataSubscriptionProvider } from '@hatiolab/things-scene'\n\nimport gql from 'graphql-tag'\nimport { subscribe } from '@operato/graphql'\n\nexport class DataSubscriptionProviderImpl implements DataSubscriptionProvider {\n async subscribe(tag: string, component: Component) {\n return await subscribe(\n {\n query: gql`\n subscription {\n data(tag: \"${tag}\") {\n tag\n data\n }\n }\n `\n },\n {\n next: async ({ data }: { data: any }) => {\n if (data) {\n component.data = data.data.data\n }\n }\n }\n )\n }\n\n dispose() {}\n}\n"]}
@@ -18,9 +18,6 @@ export class AbstractProperty extends LitElement {
18
18
  _getValueFromEventTarget(element) {
19
19
  var value;
20
20
  switch (element.tagName) {
21
- case 'THINGS-EDITOR-ANGLE-INPUT':
22
- value = Number(element.radian) || 0;
23
- break;
24
21
  case 'INPUT':
25
22
  switch (element.type) {
26
23
  case 'checkbox':
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-property.js","sourceRoot":"","sources":["../../../../src/modeller/property-sidebar/abstract-property.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAEhC,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,cAAc,CAAC,CAAQ;QACrB,IAAI,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAA;QACrC,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAE3C,IAAI,CAAC,GAAG,EAAE;YACR,OAAM;SACP;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAElD,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,wBAAwB,CAAC,OAAoB;QAC3C,IAAI,KAAK,CAAA;QAET,QAAQ,OAAO,CAAC,OAAO,EAAE;YACvB,KAAK,2BAA2B;gBAC9B,KAAK,GAAG,MAAM,CAAE,OAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC5C,MAAK;YAEP,KAAK,OAAO;gBACV,QAAS,OAAe,CAAC,IAAI,EAAE;oBAC7B,KAAK,UAAU;wBACb,KAAK,GAAI,OAAe,CAAC,OAAO,CAAA;wBAChC,MAAK;oBACP,KAAK,QAAQ;wBACX,KAAK,GAAG,MAAM,CAAE,OAAe,CAAC,aAAa,CAAC,CAAA;wBAC9C,MAAK;oBACP,KAAK,MAAM;wBACT,KAAK,GAAG,MAAM,CAAE,OAAe,CAAC,KAAK,CAAC,CAAA;iBACzC;gBACD,MAAK;YAEP,KAAK,cAAc;gBACjB,KAAK,GAAI,OAAe,CAAC,MAAM,CAAA;gBAC/B,MAAK;YAEP,KAAK,eAAe;gBAClB,KAAK,GAAI,OAAe,CAAC,QAAQ,CAAA;gBACjC,MAAK;YAEP;gBACE,KAAK,GAAI,OAAe,CAAC,KAAK,CAAA;gBAC9B,MAAK;SACR;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mBAAmB,CAAC,GAAW,EAAE,KAAU;QACzC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,iBAAiB,EAAE;YACjC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,CAAC,GAAG,CAAC,EAAE,KAAK;aACb;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF","sourcesContent":["/**\n * @license Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { LitElement } from 'lit'\n\nexport class AbstractProperty extends LitElement {\n firstUpdated() {\n this.renderRoot.addEventListener('change', this._onValueChange.bind(this))\n }\n\n _onValueChange(e: Event) {\n var element = e.target as HTMLElement\n var key = element.getAttribute('value-key')\n\n if (!key) {\n return\n }\n\n var value = this._getValueFromEventTarget(element)\n\n this._onAfterValueChange(key, value)\n }\n\n _getValueFromEventTarget(element: HTMLElement) {\n var value\n\n switch (element.tagName) {\n case 'THINGS-EDITOR-ANGLE-INPUT':\n value = Number((element as any).radian) || 0\n break\n\n case 'INPUT':\n switch ((element as any).type) {\n case 'checkbox':\n value = (element as any).checked\n break\n case 'number':\n value = Number((element as any).valueAsNumber)\n break\n case 'text':\n value = String((element as any).value)\n }\n break\n\n case 'PAPER-BUTTON':\n value = (element as any).active\n break\n\n case 'PAPER-LISTBOX':\n value = (element as any).selected\n break\n\n default:\n value = (element as any).value\n break\n }\n\n return value\n }\n\n _onAfterValueChange(key: string, value: any) {\n this.dispatchEvent(\n new CustomEvent('property-change', {\n bubbles: true,\n composed: true,\n detail: {\n [key]: value\n }\n })\n )\n }\n}\n"]}
1
+ {"version":3,"file":"abstract-property.js","sourceRoot":"","sources":["../../../../src/modeller/property-sidebar/abstract-property.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAEhC,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,cAAc,CAAC,CAAQ;QACrB,IAAI,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAA;QACrC,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAE3C,IAAI,CAAC,GAAG,EAAE;YACR,OAAM;SACP;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAElD,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,wBAAwB,CAAC,OAAoB;QAC3C,IAAI,KAAK,CAAA;QAET,QAAQ,OAAO,CAAC,OAAO,EAAE;YACvB,KAAK,OAAO;gBACV,QAAS,OAAe,CAAC,IAAI,EAAE;oBAC7B,KAAK,UAAU;wBACb,KAAK,GAAI,OAAe,CAAC,OAAO,CAAA;wBAChC,MAAK;oBACP,KAAK,QAAQ;wBACX,KAAK,GAAG,MAAM,CAAE,OAAe,CAAC,aAAa,CAAC,CAAA;wBAC9C,MAAK;oBACP,KAAK,MAAM;wBACT,KAAK,GAAG,MAAM,CAAE,OAAe,CAAC,KAAK,CAAC,CAAA;iBACzC;gBACD,MAAK;YAEP,KAAK,cAAc;gBACjB,KAAK,GAAI,OAAe,CAAC,MAAM,CAAA;gBAC/B,MAAK;YAEP,KAAK,eAAe;gBAClB,KAAK,GAAI,OAAe,CAAC,QAAQ,CAAA;gBACjC,MAAK;YAEP;gBACE,KAAK,GAAI,OAAe,CAAC,KAAK,CAAA;gBAC9B,MAAK;SACR;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mBAAmB,CAAC,GAAW,EAAE,KAAU;QACzC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,iBAAiB,EAAE;YACjC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,CAAC,GAAG,CAAC,EAAE,KAAK;aACb;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF","sourcesContent":["/**\n * @license Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { LitElement } from 'lit'\n\nexport class AbstractProperty extends LitElement {\n firstUpdated() {\n this.renderRoot.addEventListener('change', this._onValueChange.bind(this))\n }\n\n _onValueChange(e: Event) {\n var element = e.target as HTMLElement\n var key = element.getAttribute('value-key')\n\n if (!key) {\n return\n }\n\n var value = this._getValueFromEventTarget(element)\n\n this._onAfterValueChange(key, value)\n }\n\n _getValueFromEventTarget(element: HTMLElement) {\n var value\n\n switch (element.tagName) {\n case 'INPUT':\n switch ((element as any).type) {\n case 'checkbox':\n value = (element as any).checked\n break\n case 'number':\n value = Number((element as any).valueAsNumber)\n break\n case 'text':\n value = String((element as any).value)\n }\n break\n\n case 'PAPER-BUTTON':\n value = (element as any).active\n break\n\n case 'PAPER-LISTBOX':\n value = (element as any).selected\n break\n\n default:\n value = (element as any).value\n break\n }\n\n return value\n }\n\n _onAfterValueChange(key: string, value: any) {\n this.dispatchEvent(\n new CustomEvent('property-change', {\n bubbles: true,\n composed: true,\n detail: {\n [key]: value\n }\n })\n )\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
- import '@things-factory/modeller-ui/client/editors/things-editor-value-map';
5
- import '@things-factory/modeller-ui/client/editors/things-editor-value-range';
4
+ import '@operato/input/ox-input-value-map.js';
5
+ import '@operato/input/ox-input-value-ranges.js';
6
6
  import '@operato/input/ox-buttons-radio.js';
7
7
  import '@operato/input/ox-input-code.js';
8
8
  import '@operato/i18n/ox-i18n.js';
@@ -2,12 +2,12 @@
2
2
  * @license Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
4
  import { __decorate } from "tslib";
5
- import '@things-factory/modeller-ui/client/editors/things-editor-value-map';
6
- import '@things-factory/modeller-ui/client/editors/things-editor-value-range';
5
+ import '@operato/input/ox-input-value-map.js';
6
+ import '@operato/input/ox-input-value-ranges.js';
7
7
  import '@operato/input/ox-buttons-radio.js';
8
8
  import '@operato/input/ox-input-code.js';
9
9
  import '@operato/i18n/ox-i18n.js';
10
- import { css, html, LitElement } from 'lit';
10
+ import { LitElement, css, html } from 'lit';
11
11
  import { customElement, property, query, state } from 'lit/decorators.js';
12
12
  /**
13
13
  element for mapping data value editing
@@ -99,21 +99,21 @@ let DataBindingMapper = class DataBindingMapper extends LitElement {
99
99
  </ox-buttons-radio>
100
100
 
101
101
  <div rule-editors class="content" ?hidden=${mapping.rule == 'value'}>
102
- <things-editor-value-map
102
+ <ox-input-value-map
103
103
  value-key="map"
104
104
  .value=${this.rule.map || {}}
105
105
  .valuetype=${this._valuetype(mapping.property)}
106
106
  ?active=${mapping.rule == 'map'}
107
107
  >
108
- </things-editor-value-map>
108
+ </ox-input-value-map>
109
109
 
110
- <things-editor-value-range
110
+ <ox-input-value-ranges
111
111
  value-key="range"
112
112
  .value=${this.rule.range || []}
113
113
  .valuetype=${this._valuetype(mapping.property)}
114
114
  ?active=${mapping.rule == 'range'}
115
115
  >
116
- </things-editor-value-range>
116
+ </ox-input-value-ranges>
117
117
 
118
118
  <ox-input-code
119
119
  value-key="eval"
@@ -1 +1 @@
1
- {"version":3,"file":"data-binding-mapper.js","sourceRoot":"","sources":["../../../../../src/modeller/property-sidebar/data-binding/data-binding-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport '@things-factory/modeller-ui/client/editors/things-editor-value-map'\nimport '@things-factory/modeller-ui/client/editors/things-editor-value-range'\nimport '@operato/input/ox-buttons-radio.js'\nimport '@operato/input/ox-input-code.js'\nimport '@operato/i18n/ox-i18n.js'\n\nimport { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport { Properties, Scene } from '@hatiolab/things-scene'\n\nexport type Rule =\n | {\n map?: Properties\n range?: Properties[]\n eval?: string\n }\n | any\n\nexport type Mapping = {\n rule: 'map' | 'range' | 'eval' | 'value'\n accessor?: string\n target?: string\n property?: string\n param?: Rule\n}\n\n/**\nelement for mapping data value editing\n\nExample:\n\n <data-binding-mapper mapping=${mapping}>\n </data-binding-mapper>\n*/\n\n@customElement('data-binding-mapper')\nexport default class DataBindingMapper extends LitElement {\n static styles = [\n css`\n :host {\n background-color: rgba(255, 255, 255, 0.5);\n overflow: hidden;\n padding: 7px 0 0 0;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-width: 0 1px 1px 1px;\n padding: 4px;\n line-height: 2;\n\n display: grid;\n grid-template-columns: repeat(10, 1fr);\n grid-gap: 4px;\n grid-auto-rows: minmax(24px, auto);\n\n align-items: center;\n }\n\n :host > * {\n align-self: stretch;\n }\n\n label {\n grid-column: span 3;\n text-align: right;\n text-transform: capitalize;\n }\n\n input,\n select,\n ox-buttons-radio,\n [mapping-rule] {\n grid-column: span 7;\n }\n input,\n select {\n border: var(--property-sidebar-fieldset-border);\n }\n\n ox-buttons-radio {\n display: flex;\n padding: 0 4px;\n }\n\n ox-buttons-radio > * {\n text-align: center;\n flex: 1;\n margin: 2px;\n border-bottom: 2px solid #fff;\n }\n\n ox-buttons-radio div[active] {\n border-color: #f2471c;\n }\n\n select {\n height: 22px;\n }\n\n [mapping-rule] {\n display: flex;\n }\n\n [mapping-rule] * {\n flex: auto;\n margin: 0;\n text-align: left;\n align-self: center;\n }\n\n [rule-editors] {\n grid-column: span 10;\n\n display: 'flex';\n align-content: auto;\n }\n\n [rule-editors] :not([active]) {\n display: none;\n }\n\n ox-input-code {\n height: 300px;\n overflow: auto;\n }\n `\n ]\n\n @property({ type: Object }) mapping: Mapping = {\n rule: 'value'\n }\n @property({ type: Object }) rule: Rule = {}\n @property({ type: Array }) properties: Properties[] = []\n @property({ type: Object }) scene?: Scene\n\n @state() _valueTypes: any = {\n play: 'boolean',\n hidden: 'boolean',\n started: 'boolean',\n\n rotation: 'number',\n value: 'number',\n\n fillStyle: 'color',\n strokeStyle: 'color',\n fontColor: 'color',\n\n data: 'object',\n source: 'object',\n location: 'object',\n dimension: 'object',\n\n text: 'string',\n ref: 'string'\n }\n @state() _componentIds: any[] = []\n\n @query('#eval-editor') editor!: HTMLInputElement\n @query('#target-input') target!: HTMLInputElement\n\n firstUpdated() {\n this.renderRoot.addEventListener('change', e => this._onChange(e))\n }\n\n updated(changes: PropertyValues<this>) {\n changes.has('mapping') && this._onChangedMapping()\n }\n\n render() {\n const mapping = this.mapping || {\n rule: 'value'\n }\n\n return html`\n <label for=\"accessor-input\"> <ox-i18n msgid=\"label.accessor\">accessor</ox-i18n> </label>\n <input\n id=\"accessor-input\"\n value-key=\"accessor\"\n type=\"text\"\n data-mapping-accessor\n .value=${mapping.accessor || ''}\n />\n\n <label for=\"target-input\"> <ox-i18n msgid=\"label.target\">target</ox-i18n> </label>\n <input\n id=\"target-input\"\n type=\"text\"\n value-key=\"target\"\n list=\"target-list\"\n .value=${mapping.target || ''}\n @focusin=${() => {\n if (!this.scene) this._componentIds = []\n this._componentIds = this.scene!.ids.map(info => info.key).filter(id => !!id)\n }}\n />\n <datalist id=\"target-list\">\n <option value=\"(self)\"></option>\n <option value=\"(key)\"></option>\n ${this._componentIds.length\n ? html` ${this._componentIds.map(id => html` <option value=${id}></option> `)} `\n : html``}\n </datalist>\n\n <label for=\"property-input\"> <ox-i18n msgid=\"label.property\">property</ox-i18n> </label>\n <select id=\"property-input\" value-key=\"property\" .value=${mapping.property}>\n ${this.properties.map(\n item => html` <option .value=${item.name} ?selected=${item.name == mapping.property}>${item.label}</option> `\n )}\n </select>\n\n <label> <ox-i18n msgid=\"label.rule-type\">rule type</ox-i18n> </label>\n <ox-buttons-radio .value=${mapping.rule} @change=${(e: Event) => this._onChangeRule(e)}>\n <div data-value=\"value\"><ox-i18n msgid=\"label.value\"></ox-i18n></div>\n <div data-value=\"map\"><ox-i18n msgid=\"label.map\"></ox-i18n></div>\n <div data-value=\"range\"><ox-i18n msgid=\"label.range\"></ox-i18n></div>\n <div data-value=\"eval\"><ox-i18n msgid=\"label.eval\"></ox-i18n></div>\n </ox-buttons-radio>\n\n <div rule-editors class=\"content\" ?hidden=${mapping.rule == 'value'}>\n <things-editor-value-map\n value-key=\"map\"\n .value=${this.rule.map || {}}\n .valuetype=${this._valuetype(mapping.property!)}\n ?active=${mapping.rule == 'map'}\n >\n </things-editor-value-map>\n\n <things-editor-value-range\n value-key=\"range\"\n .value=${this.rule.range || []}\n .valuetype=${this._valuetype(mapping.property!)}\n ?active=${mapping.rule == 'range'}\n >\n </things-editor-value-range>\n\n <ox-input-code\n value-key=\"eval\"\n id=\"eval-editor\"\n .value=${this.rule.eval || ''}\n ?active=${mapping.rule == 'eval'}\n >\n </ox-input-code>\n </div>\n `\n }\n\n _valuetype(property: string) {\n return this._valueTypes[property] || 'string'\n }\n\n private _keep_saved_rule_params: boolean = false\n\n async _onChangedMapping() {\n if (this._keep_saved_rule_params) {\n this._keep_saved_rule_params = false\n } else {\n await this.updateComplete\n\n var rule: Rule = {}\n\n if (this.mapping) {\n switch (this.mapping.rule) {\n case 'map':\n rule.map = this.mapping.param || {}\n break\n case 'range':\n rule.range = this.mapping.param || []\n break\n case 'eval':\n rule.eval = this.mapping.param || ''\n break\n default:\n this.mapping.rule = 'value'\n break\n }\n }\n\n this.rule = rule\n this.requestUpdate()\n }\n }\n\n _onChangeRule(e: Event) {\n var element = e.target as HTMLInputElement\n var value = element.value\n\n let param\n\n switch (value) {\n case 'map':\n param = this.rule.map\n break\n case 'range':\n param = this.rule.range\n break\n case 'eval':\n param = this.rule.eval || ''\n\n // rule.eval에 값이 없을 때, ace-editor 내용이 초기화되지 않는 문제때문에 처리함.\n if (!param) {\n this.editor.value = 'return'\n }\n break\n default:\n }\n\n this.mapping = {\n ...this.mapping,\n rule: value as 'value' | 'map' | 'range' | 'eval',\n param\n }\n\n this._keep_saved_rule_params = true\n this.dispatchEvent(new CustomEvent('value-change', { bubbles: true, composed: true }))\n }\n\n _onChange(e: Event) {\n var element = e.target as HTMLInputElement\n var key = element.getAttribute('value-key')\n\n if (!key) return\n\n var value = element.value\n\n if (key == 'target') {\n if (value.length > 0 && !/^[.#(\\[]/.test(value)) {\n value = '#' + value.trim()\n\n this.target.value = value\n }\n\n this.mapping = {\n ...this.mapping,\n target: value\n }\n } else if (key == 'accessor') {\n this.mapping = {\n ...this.mapping,\n accessor: (value || '').trim()\n }\n } else if (key == 'property') {\n this.mapping = {\n ...this.mapping,\n property: (value || '').trim()\n }\n } else if (key == 'map' || key == 'range' || key == 'eval') {\n this.rule[key] = value\n this.mapping = {\n ...this.mapping,\n param: value\n }\n }\n\n if (!this.mapping.rule) this.mapping.rule = 'value'\n\n this._keep_saved_rule_params = true\n this.dispatchEvent(\n new CustomEvent('value-change', {\n bubbles: true,\n composed: true,\n detail: {\n changed: {\n [key]: value\n }\n }\n })\n )\n }\n}\n"]}
1
+ {"version":3,"file":"data-binding-mapper.js","sourceRoot":"","sources":["../../../../../src/modeller/property-sidebar/data-binding/data-binding-mapper.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,OAAO,sCAAsC,CAAA;AAC7C,OAAO,yCAAyC,CAAA;AAChD,OAAO,oCAAoC,CAAA;AAC3C,OAAO,iCAAiC,CAAA;AACxC,OAAO,0BAA0B,CAAA;AAEjC,OAAO,EAAE,UAAU,EAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAkBzE;;;;;;;EAOE;AAGF,IAAqB,iBAAiB,GAAtC,MAAqB,iBAAkB,SAAQ,UAAU;IAAzD;;QA0F8B,YAAO,GAAY;YAC7C,IAAI,EAAE,OAAO;SACd,CAAA;QAC2B,SAAI,GAAS,EAAE,CAAA;QAChB,eAAU,GAAiB,EAAE,CAAA;QAG/C,gBAAW,GAAQ;YAC1B,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,SAAS;YAElB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YAEf,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,OAAO;YAElB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,QAAQ;YAEnB,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ;SACd,CAAA;QACQ,kBAAa,GAAU,EAAE,CAAA;QA+F1B,4BAAuB,GAAY,KAAK,CAAA;IAsHlD,CAAC;IAhNC,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACpD,CAAC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI;YAC9B,IAAI,EAAE,OAAO;SACd,CAAA;QAED,OAAO,IAAI,CAAA;;;;;;;iBAOE,OAAO,CAAC,QAAQ,IAAI,EAAE;;;;;;;;;iBAStB,OAAO,CAAC,MAAM,IAAI,EAAE;mBAClB,GAAG,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC/E,CAAC;;;;;UAKC,IAAI,CAAC,aAAa,CAAC,MAAM;YACzB,CAAC,CAAC,IAAI,CAAA,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAA,kBAAkB,EAAE,aAAa,CAAC,GAAG;YAChF,CAAC,CAAC,IAAI,CAAA,EAAE;;;;gEAI8C,OAAO,CAAC,QAAQ;UACtE,IAAI,CAAC,UAAU,CAAC,GAAG,CACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,mBAAmB,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,YAAY,CAC9G;;;;iCAIwB,OAAO,CAAC,IAAI,YAAY,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;;;;;;kDAO1C,OAAO,CAAC,IAAI,IAAI,OAAO;;;mBAGtD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE;uBACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAS,CAAC;oBACrC,OAAO,CAAC,IAAI,IAAI,KAAK;;;;;;mBAMtB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;uBACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAS,CAAC;oBACrC,OAAO,CAAC,IAAI,IAAI,OAAO;;;;;;;mBAOxB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;oBACnB,OAAO,CAAC,IAAI,IAAI,MAAM;;;;KAIrC,CAAA;IACH,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAA;IAC/C,CAAC;IAID,KAAK,CAAC,iBAAiB;QACrB,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAChC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAA;SACrC;aAAM;YACL,MAAM,IAAI,CAAC,cAAc,CAAA;YAEzB,IAAI,IAAI,GAAS,EAAE,CAAA;YAEnB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBACzB,KAAK,KAAK;wBACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;wBACnC,MAAK;oBACP,KAAK,OAAO;wBACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;wBACrC,MAAK;oBACP,KAAK,MAAM;wBACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;wBACpC,MAAK;oBACP;wBACE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;wBAC3B,MAAK;iBACR;aACF;YAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,aAAa,EAAE,CAAA;SACrB;IACH,CAAC;IAED,aAAa,CAAC,CAAQ;QACpB,IAAI,OAAO,GAAG,CAAC,CAAC,MAA0B,CAAA;QAC1C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAEzB,IAAI,KAAK,CAAA;QAET,QAAQ,KAAK,EAAE;YACb,KAAK,KAAK;gBACR,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;gBACrB,MAAK;YACP,KAAK,OAAO;gBACV,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;gBACvB,MAAK;YACP,KAAK,MAAM;gBACT,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;gBAE5B,yDAAyD;gBACzD,IAAI,CAAC,KAAK,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAA;iBAC7B;gBACD,MAAK;YACP,QAAQ;SACT;QAED,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,IAAI,EAAE,KAA2C;YACjD,KAAK;SACN,CAAA;QAED,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAA;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxF,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC,MAA0B,CAAA;QAC1C,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAE3C,IAAI,CAAC,GAAG;YAAE,OAAM;QAEhB,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAEzB,IAAI,GAAG,IAAI,QAAQ,EAAE;YACnB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC/C,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;gBAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;aAC1B;YAED,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,IAAI,CAAC,OAAO;gBACf,MAAM,EAAE,KAAK;aACd,CAAA;SACF;aAAM,IAAI,GAAG,IAAI,UAAU,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,IAAI,CAAC,OAAO;gBACf,QAAQ,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;aAC/B,CAAA;SACF;aAAM,IAAI,GAAG,IAAI,UAAU,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,IAAI,CAAC,OAAO;gBACf,QAAQ,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;aAC/B,CAAA;SACF;aAAM,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,EAAE;YAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACtB,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,IAAI,CAAC,OAAO;gBACf,KAAK,EAAE,KAAK;aACb,CAAA;SACF;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;QAEnD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAA;QACnC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,cAAc,EAAE;YAC9B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE;oBACP,CAAC,GAAG,CAAC,EAAE,KAAK;iBACb;aACF;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAA;AAzUQ,wBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqFF;CACF,CAAA;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDAE1B;AAC2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAgB;AAChB;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;qDAA8B;AAC5B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAAc;AAEhC;IAAR,KAAK,EAAE;sDAmBP;AACQ;IAAR,KAAK,EAAE;wDAA0B;AAEX;IAAtB,KAAK,CAAC,cAAc,CAAC;iDAA0B;AACxB;IAAvB,KAAK,CAAC,eAAe,CAAC;iDAA0B;AAxH9B,iBAAiB;IADrC,aAAa,CAAC,qBAAqB,CAAC;GAChB,iBAAiB,CA0UrC;eA1UoB,iBAAiB","sourcesContent":["/**\n * @license Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport '@operato/input/ox-input-value-map.js'\nimport '@operato/input/ox-input-value-ranges.js'\nimport '@operato/input/ox-buttons-radio.js'\nimport '@operato/input/ox-input-code.js'\nimport '@operato/i18n/ox-i18n.js'\n\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { Properties, Scene } from '@hatiolab/things-scene'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nexport type Rule =\n | {\n map?: Properties\n range?: Properties[]\n eval?: string\n }\n | any\n\nexport type Mapping = {\n rule: 'map' | 'range' | 'eval' | 'value'\n accessor?: string\n target?: string\n property?: string\n param?: Rule\n}\n\n/**\nelement for mapping data value editing\n\nExample:\n\n <data-binding-mapper mapping=${mapping}>\n </data-binding-mapper>\n*/\n\n@customElement('data-binding-mapper')\nexport default class DataBindingMapper extends LitElement {\n static styles = [\n css`\n :host {\n background-color: rgba(255, 255, 255, 0.5);\n overflow: hidden;\n padding: 7px 0 0 0;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-width: 0 1px 1px 1px;\n padding: 4px;\n line-height: 2;\n\n display: grid;\n grid-template-columns: repeat(10, 1fr);\n grid-gap: 4px;\n grid-auto-rows: minmax(24px, auto);\n\n align-items: center;\n }\n\n :host > * {\n align-self: stretch;\n }\n\n label {\n grid-column: span 3;\n text-align: right;\n text-transform: capitalize;\n }\n\n input,\n select,\n ox-buttons-radio,\n [mapping-rule] {\n grid-column: span 7;\n }\n input,\n select {\n border: var(--property-sidebar-fieldset-border);\n }\n\n ox-buttons-radio {\n display: flex;\n padding: 0 4px;\n }\n\n ox-buttons-radio > * {\n text-align: center;\n flex: 1;\n margin: 2px;\n border-bottom: 2px solid #fff;\n }\n\n ox-buttons-radio div[active] {\n border-color: #f2471c;\n }\n\n select {\n height: 22px;\n }\n\n [mapping-rule] {\n display: flex;\n }\n\n [mapping-rule] * {\n flex: auto;\n margin: 0;\n text-align: left;\n align-self: center;\n }\n\n [rule-editors] {\n grid-column: span 10;\n\n display: 'flex';\n align-content: auto;\n }\n\n [rule-editors] :not([active]) {\n display: none;\n }\n\n ox-input-code {\n height: 300px;\n overflow: auto;\n }\n `\n ]\n\n @property({ type: Object }) mapping: Mapping = {\n rule: 'value'\n }\n @property({ type: Object }) rule: Rule = {}\n @property({ type: Array }) properties: Properties[] = []\n @property({ type: Object }) scene?: Scene\n\n @state() _valueTypes: any = {\n play: 'boolean',\n hidden: 'boolean',\n started: 'boolean',\n\n rotation: 'number',\n value: 'number',\n\n fillStyle: 'color',\n strokeStyle: 'color',\n fontColor: 'color',\n\n data: 'object',\n source: 'object',\n location: 'object',\n dimension: 'object',\n\n text: 'string',\n ref: 'string'\n }\n @state() _componentIds: any[] = []\n\n @query('#eval-editor') editor!: HTMLInputElement\n @query('#target-input') target!: HTMLInputElement\n\n firstUpdated() {\n this.renderRoot.addEventListener('change', e => this._onChange(e))\n }\n\n updated(changes: PropertyValues<this>) {\n changes.has('mapping') && this._onChangedMapping()\n }\n\n render() {\n const mapping = this.mapping || {\n rule: 'value'\n }\n\n return html`\n <label for=\"accessor-input\"> <ox-i18n msgid=\"label.accessor\">accessor</ox-i18n> </label>\n <input\n id=\"accessor-input\"\n value-key=\"accessor\"\n type=\"text\"\n data-mapping-accessor\n .value=${mapping.accessor || ''}\n />\n\n <label for=\"target-input\"> <ox-i18n msgid=\"label.target\">target</ox-i18n> </label>\n <input\n id=\"target-input\"\n type=\"text\"\n value-key=\"target\"\n list=\"target-list\"\n .value=${mapping.target || ''}\n @focusin=${() => {\n if (!this.scene) this._componentIds = []\n this._componentIds = this.scene!.ids.map(info => info.key).filter(id => !!id)\n }}\n />\n <datalist id=\"target-list\">\n <option value=\"(self)\"></option>\n <option value=\"(key)\"></option>\n ${this._componentIds.length\n ? html` ${this._componentIds.map(id => html` <option value=${id}></option> `)} `\n : html``}\n </datalist>\n\n <label for=\"property-input\"> <ox-i18n msgid=\"label.property\">property</ox-i18n> </label>\n <select id=\"property-input\" value-key=\"property\" .value=${mapping.property}>\n ${this.properties.map(\n item => html` <option .value=${item.name} ?selected=${item.name == mapping.property}>${item.label}</option> `\n )}\n </select>\n\n <label> <ox-i18n msgid=\"label.rule-type\">rule type</ox-i18n> </label>\n <ox-buttons-radio .value=${mapping.rule} @change=${(e: Event) => this._onChangeRule(e)}>\n <div data-value=\"value\"><ox-i18n msgid=\"label.value\"></ox-i18n></div>\n <div data-value=\"map\"><ox-i18n msgid=\"label.map\"></ox-i18n></div>\n <div data-value=\"range\"><ox-i18n msgid=\"label.range\"></ox-i18n></div>\n <div data-value=\"eval\"><ox-i18n msgid=\"label.eval\"></ox-i18n></div>\n </ox-buttons-radio>\n\n <div rule-editors class=\"content\" ?hidden=${mapping.rule == 'value'}>\n <ox-input-value-map\n value-key=\"map\"\n .value=${this.rule.map || {}}\n .valuetype=${this._valuetype(mapping.property!)}\n ?active=${mapping.rule == 'map'}\n >\n </ox-input-value-map>\n\n <ox-input-value-ranges\n value-key=\"range\"\n .value=${this.rule.range || []}\n .valuetype=${this._valuetype(mapping.property!)}\n ?active=${mapping.rule == 'range'}\n >\n </ox-input-value-ranges>\n\n <ox-input-code\n value-key=\"eval\"\n id=\"eval-editor\"\n .value=${this.rule.eval || ''}\n ?active=${mapping.rule == 'eval'}\n >\n </ox-input-code>\n </div>\n `\n }\n\n _valuetype(property: string) {\n return this._valueTypes[property] || 'string'\n }\n\n private _keep_saved_rule_params: boolean = false\n\n async _onChangedMapping() {\n if (this._keep_saved_rule_params) {\n this._keep_saved_rule_params = false\n } else {\n await this.updateComplete\n\n var rule: Rule = {}\n\n if (this.mapping) {\n switch (this.mapping.rule) {\n case 'map':\n rule.map = this.mapping.param || {}\n break\n case 'range':\n rule.range = this.mapping.param || []\n break\n case 'eval':\n rule.eval = this.mapping.param || ''\n break\n default:\n this.mapping.rule = 'value'\n break\n }\n }\n\n this.rule = rule\n this.requestUpdate()\n }\n }\n\n _onChangeRule(e: Event) {\n var element = e.target as HTMLInputElement\n var value = element.value\n\n let param\n\n switch (value) {\n case 'map':\n param = this.rule.map\n break\n case 'range':\n param = this.rule.range\n break\n case 'eval':\n param = this.rule.eval || ''\n\n // rule.eval에 값이 없을 때, ace-editor 내용이 초기화되지 않는 문제때문에 처리함.\n if (!param) {\n this.editor.value = 'return'\n }\n break\n default:\n }\n\n this.mapping = {\n ...this.mapping,\n rule: value as 'value' | 'map' | 'range' | 'eval',\n param\n }\n\n this._keep_saved_rule_params = true\n this.dispatchEvent(new CustomEvent('value-change', { bubbles: true, composed: true }))\n }\n\n _onChange(e: Event) {\n var element = e.target as HTMLInputElement\n var key = element.getAttribute('value-key')\n\n if (!key) return\n\n var value = element.value\n\n if (key == 'target') {\n if (value.length > 0 && !/^[.#(\\[]/.test(value)) {\n value = '#' + value.trim()\n\n this.target.value = value\n }\n\n this.mapping = {\n ...this.mapping,\n target: value\n }\n } else if (key == 'accessor') {\n this.mapping = {\n ...this.mapping,\n accessor: (value || '').trim()\n }\n } else if (key == 'property') {\n this.mapping = {\n ...this.mapping,\n property: (value || '').trim()\n }\n } else if (key == 'map' || key == 'range' || key == 'eval') {\n this.rule[key] = value\n this.mapping = {\n ...this.mapping,\n param: value\n }\n }\n\n if (!this.mapping.rule) this.mapping.rule = 'value'\n\n this._keep_saved_rule_params = true\n this.dispatchEvent(\n new CustomEvent('value-change', {\n bubbles: true,\n composed: true,\n detail: {\n changed: {\n [key]: value\n }\n }\n })\n )\n }\n}\n"]}
@@ -76,6 +76,9 @@ let PropertyDataBinding = class PropertyDataBinding extends AbstractProperty {
76
76
  <label> <ox-i18n msgid="label.class">Class</ox-i18n> </label>
77
77
  <input value-key="class" .value=${value.class || ''} />
78
78
 
79
+ <label> <ox-i18n msgid="label.tag">Tag</ox-i18n> </label>
80
+ <input value-key="tag" .value=${value.tag || ''} />
81
+
79
82
  <label> <ox-i18n msgid="label.template-prefix">Template Prefix</ox-i18n> </label>
80
83
  <input value-key="templatePrefix" .value=${value.templatePrefix || ''} />
81
84
 
@@ -217,8 +220,8 @@ let PropertyDataBinding = class PropertyDataBinding extends AbstractProperty {
217
220
  this.scene &&
218
221
  this.scene.findAll(mapping.target, this.scene.selected && this.scene.selected[0]).forEach((c, i) => {
219
222
  if (i == 0)
220
- c.trigger('tagreset');
221
- c.trigger('tag', {});
223
+ c.trigger('decotagreset');
224
+ c.trigger('decotag', {});
222
225
  });
223
226
  }
224
227
  /* mapping의 모든 속성이 편집되면, 모델에 반영한다. */