@fmsim/board 2.0.1 → 3.0.0-beta.1

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 (39) hide show
  1. package/custom-elements.json +1749 -1641
  2. package/dist/src/board-thumbnail.d.ts +6 -0
  3. package/dist/src/board-thumbnail.js +21 -0
  4. package/dist/src/board-thumbnail.js.map +1 -0
  5. package/dist/src/index.d.ts +2 -0
  6. package/dist/src/index.js +7 -0
  7. package/dist/src/index.js.map +1 -1
  8. package/dist/src/layers/mcs-mouse-event-handler.js +14 -1
  9. package/dist/src/layers/mcs-mouse-event-handler.js.map +1 -1
  10. package/dist/src/layers/movement-layer.js +21 -7
  11. package/dist/src/layers/movement-layer.js.map +1 -1
  12. package/dist/src/modeller/bulk-create-dialog.js +4 -4
  13. package/dist/src/modeller/bulk-create-dialog.js.map +1 -1
  14. package/dist/src/modeller/component-toolbar/component-menu.js +62 -6
  15. package/dist/src/modeller/component-toolbar/component-menu.js.map +1 -1
  16. package/dist/src/modeller/component-toolbar/component-toolbar.d.ts +1 -0
  17. package/dist/src/modeller/component-toolbar/component-toolbar.js +28 -7
  18. package/dist/src/modeller/component-toolbar/component-toolbar.js.map +1 -1
  19. package/dist/src/modeller/property-sidebar/data-binding/data-binding-value-map.d.ts +1 -1
  20. package/dist/src/modeller/property-sidebar/data-binding/data-binding-value-range.d.ts +1 -1
  21. package/dist/src/modeller/property-sidebar/specifics/specifics.d.ts +2 -0
  22. package/dist/src/modeller/property-sidebar/specifics/specifics.js +18 -0
  23. package/dist/src/modeller/property-sidebar/specifics/specifics.js.map +1 -1
  24. package/dist/src/modeller/scene-viewer/ox-scene-viewer.d.ts +2 -0
  25. package/dist/src/modeller/scene-viewer/ox-scene-viewer.js +4 -0
  26. package/dist/src/modeller/scene-viewer/ox-scene-viewer.js.map +1 -1
  27. package/dist/src/ox-board-list.js +2 -4
  28. package/dist/src/ox-board-list.js.map +1 -1
  29. package/dist/src/ox-board-modeller.d.ts +2 -0
  30. package/dist/src/ox-board-modeller.js +4 -0
  31. package/dist/src/ox-board-modeller.js.map +1 -1
  32. package/dist/src/ox-board-viewer.js +11 -11
  33. package/dist/src/ox-board-viewer.js.map +1 -1
  34. package/dist/src/selector/ox-board-selector.js +2 -5
  35. package/dist/src/selector/ox-board-selector.js.map +1 -1
  36. package/dist/src/types.d.ts +10 -0
  37. package/dist/src/types.js.map +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +7 -6
@@ -267,10 +267,50 @@
267
267
  }
268
268
  ]
269
269
  },
270
+ {
271
+ "kind": "javascript-module",
272
+ "path": "src/board-thumbnail.ts",
273
+ "declarations": [
274
+ {
275
+ "kind": "function",
276
+ "name": "captureBoardThumbnail",
277
+ "return": {
278
+ "type": {
279
+ "text": "string | undefined"
280
+ }
281
+ },
282
+ "parameters": [
283
+ {
284
+ "name": "scene",
285
+ "optional": true,
286
+ "type": {
287
+ "text": "Scene | null"
288
+ }
289
+ }
290
+ ],
291
+ "description": "A board's thumbnail, taken from the scene's main canvas (the model layer) as it is drawn now, shrunk to fit\n400x300. Nothing is rendered again for it. Returns undefined when the scene has no canvas to read."
292
+ }
293
+ ],
294
+ "exports": [
295
+ {
296
+ "kind": "js",
297
+ "name": "captureBoardThumbnail",
298
+ "declaration": {
299
+ "name": "captureBoardThumbnail",
300
+ "module": "src/board-thumbnail.ts"
301
+ }
302
+ }
303
+ ]
304
+ },
270
305
  {
271
306
  "kind": "javascript-module",
272
307
  "path": "src/index.ts",
273
- "declarations": [],
308
+ "declarations": [
309
+ {
310
+ "kind": "variable",
311
+ "name": "uninstallFigureResolver"
312
+ }
313
+ ],
274
314
  "exports": [
275
315
  {
276
316
  "kind": "js",
@@ -384,6 +424,14 @@
384
424
  "module": "./data-storage/board-model-cache.js"
385
425
  }
386
426
  },
427
+ {
428
+ "kind": "js",
429
+ "name": "captureBoardThumbnail",
430
+ "declaration": {
431
+ "name": "captureBoardThumbnail",
432
+ "module": "./board-thumbnail.js"
433
+ }
434
+ },
387
435
  {
388
436
  "kind": "js",
389
437
  "name": "CachedBoard",
@@ -423,6 +471,14 @@
423
471
  "name": "*",
424
472
  "module": "src/component/index.js"
425
473
  }
474
+ },
475
+ {
476
+ "kind": "js",
477
+ "name": "uninstallFigureResolver",
478
+ "declaration": {
479
+ "name": "uninstallFigureResolver",
480
+ "module": "src/index.ts"
481
+ }
426
482
  }
427
483
  ]
428
484
  },
@@ -1016,6 +1072,15 @@
1016
1072
  "default": "null",
1017
1073
  "attribute": "themes"
1018
1074
  },
1075
+ {
1076
+ "kind": "field",
1077
+ "name": "itemTypes",
1078
+ "type": {
1079
+ "text": "unknown | undefined"
1080
+ },
1081
+ "description": "The domain's item type table (ADR-0155), handed to the scene viewer",
1082
+ "attribute": "itemTypes"
1083
+ },
1019
1084
  {
1020
1085
  "kind": "field",
1021
1086
  "name": "propertyEditor",
@@ -1219,6 +1284,14 @@
1219
1284
  "default": "null",
1220
1285
  "fieldName": "themes"
1221
1286
  },
1287
+ {
1288
+ "name": "itemTypes",
1289
+ "type": {
1290
+ "text": "unknown | undefined"
1291
+ },
1292
+ "description": "The domain's item type table (ADR-0155), handed to the scene viewer",
1293
+ "fieldName": "itemTypes"
1294
+ },
1222
1295
  {
1223
1296
  "name": "propertyEditor",
1224
1297
  "type": {
@@ -3213,6 +3286,58 @@
3213
3286
  "declarations": [],
3214
3287
  "exports": []
3215
3288
  },
3289
+ {
3290
+ "kind": "javascript-module",
3291
+ "path": "src/config/flow-replay.ts",
3292
+ "declarations": [
3293
+ {
3294
+ "kind": "function",
3295
+ "name": "setFlowReplayEnabled",
3296
+ "return": {
3297
+ "type": {
3298
+ "text": "void"
3299
+ }
3300
+ },
3301
+ "parameters": [
3302
+ {
3303
+ "name": "enabled",
3304
+ "type": {
3305
+ "text": "boolean"
3306
+ }
3307
+ }
3308
+ ],
3309
+ "description": "Flow-Replay(플레이백) 전역 활성 여부 설정. 부트스트랩에서 한 번 호출."
3310
+ },
3311
+ {
3312
+ "kind": "function",
3313
+ "name": "isFlowReplayEnabled",
3314
+ "return": {
3315
+ "type": {
3316
+ "text": "boolean"
3317
+ }
3318
+ },
3319
+ "description": "Flow-Replay(플레이백) 전역 활성 여부. 기본 true(활성)."
3320
+ }
3321
+ ],
3322
+ "exports": [
3323
+ {
3324
+ "kind": "js",
3325
+ "name": "setFlowReplayEnabled",
3326
+ "declaration": {
3327
+ "name": "setFlowReplayEnabled",
3328
+ "module": "src/config/flow-replay.ts"
3329
+ }
3330
+ },
3331
+ {
3332
+ "kind": "js",
3333
+ "name": "isFlowReplayEnabled",
3334
+ "declaration": {
3335
+ "name": "isFlowReplayEnabled",
3336
+ "module": "src/config/flow-replay.ts"
3337
+ }
3338
+ }
3339
+ ]
3340
+ },
3216
3341
  {
3217
3342
  "kind": "javascript-module",
3218
3343
  "path": "src/component/etc.ts",
@@ -4688,58 +4813,6 @@
4688
4813
  }
4689
4814
  ]
4690
4815
  },
4691
- {
4692
- "kind": "javascript-module",
4693
- "path": "src/config/flow-replay.ts",
4694
- "declarations": [
4695
- {
4696
- "kind": "function",
4697
- "name": "setFlowReplayEnabled",
4698
- "return": {
4699
- "type": {
4700
- "text": "void"
4701
- }
4702
- },
4703
- "parameters": [
4704
- {
4705
- "name": "enabled",
4706
- "type": {
4707
- "text": "boolean"
4708
- }
4709
- }
4710
- ],
4711
- "description": "Flow-Replay(플레이백) 전역 활성 여부 설정. 부트스트랩에서 한 번 호출."
4712
- },
4713
- {
4714
- "kind": "function",
4715
- "name": "isFlowReplayEnabled",
4716
- "return": {
4717
- "type": {
4718
- "text": "boolean"
4719
- }
4720
- },
4721
- "description": "Flow-Replay(플레이백) 전역 활성 여부. 기본 true(활성)."
4722
- }
4723
- ],
4724
- "exports": [
4725
- {
4726
- "kind": "js",
4727
- "name": "setFlowReplayEnabled",
4728
- "declaration": {
4729
- "name": "setFlowReplayEnabled",
4730
- "module": "src/config/flow-replay.ts"
4731
- }
4732
- },
4733
- {
4734
- "kind": "js",
4735
- "name": "isFlowReplayEnabled",
4736
- "declaration": {
4737
- "name": "isFlowReplayEnabled",
4738
- "module": "src/config/flow-replay.ts"
4739
- }
4740
- }
4741
- ]
4742
- },
4743
4816
  {
4744
4817
  "kind": "javascript-module",
4745
4818
  "path": "src/data-storage/board-model-cache.ts",
@@ -7967,449 +8040,65 @@
7967
8040
  },
7968
8041
  {
7969
8042
  "kind": "javascript-module",
7970
- "path": "src/modeller/property-sidebar/abstract-property.ts",
8043
+ "path": "src/modeller/scene-viewer/confidential-overlay.ts",
7971
8044
  "declarations": [
7972
8045
  {
7973
8046
  "kind": "class",
7974
8047
  "description": "",
7975
- "name": "AbstractProperty",
8048
+ "name": "ConfidentialOverlay",
7976
8049
  "members": [
7977
8050
  {
7978
8051
  "kind": "method",
7979
- "name": "_onValueChange",
7980
- "parameters": [
7981
- {
7982
- "name": "e",
7983
- "type": {
7984
- "text": "Event"
7985
- }
7986
- }
7987
- ]
7988
- },
7989
- {
7990
- "kind": "method",
7991
- "name": "_getValueFromEventTarget",
7992
- "parameters": [
7993
- {
7994
- "name": "element",
7995
- "type": {
7996
- "text": "HTMLElement"
7997
- }
7998
- }
7999
- ]
8000
- },
8001
- {
8002
- "kind": "method",
8003
- "name": "_onAfterValueChange",
8052
+ "name": "_draw",
8004
8053
  "parameters": [
8005
8054
  {
8006
- "name": "key",
8007
- "type": {
8008
- "text": "string"
8009
- }
8010
- },
8011
- {
8012
- "name": "value",
8055
+ "name": "context",
8013
8056
  "type": {
8014
- "text": "any"
8057
+ "text": "CanvasRenderingContext2D"
8015
8058
  }
8016
8059
  }
8017
8060
  ]
8018
8061
  }
8019
8062
  ],
8020
- "events": [
8021
- {
8022
- "name": "property-change",
8023
- "type": {
8024
- "text": "CustomEvent"
8025
- }
8026
- }
8027
- ],
8028
8063
  "superclass": {
8029
- "name": "LitElement",
8030
- "package": "lit"
8031
- },
8032
- "customElement": true
8033
- }
8034
- ],
8035
- "exports": [
8036
- {
8037
- "kind": "js",
8038
- "name": "AbstractProperty",
8039
- "declaration": {
8040
- "name": "AbstractProperty",
8041
- "module": "src/modeller/property-sidebar/abstract-property.ts"
8064
+ "name": "SceneLayer",
8065
+ "package": "@hatiolab/things-scene"
8042
8066
  }
8043
8067
  }
8044
- ]
8045
- },
8046
- {
8047
- "kind": "javascript-module",
8048
- "path": "src/modeller/property-sidebar/property-shared-style.ts",
8049
- "declarations": [
8050
- {
8051
- "kind": "variable",
8052
- "name": "PropertySharedStyle",
8053
- "default": "css` fieldset { border: none; margin: 4px; padding: 9px 4px 9px 4px; border-bottom: var(--property-sidebar-fieldset-border); color: var(--property-sidebar-fieldset-legend-color); font: var(--property-sidebar-fieldset-label); } fieldset legend { padding: 5px 0 0 5px; color: var(--property-sidebar-fieldset-legend-color); font: var(--property-sidebar-fieldset-legend); text-transform: capitalize; } select, input { border: var(--property-sidebar-fieldset-border); } ox-input-data { height: 300px; } /* property grid */ .property-grid { display: grid; grid-template-columns: repeat(10, 1fr); grid-gap: 5px; grid-auto-rows: minmax(24px, auto); align-items: center; } .property-grid > * { width: 100%; box-sizing: border-box; } .property-grid > label { grid-column: span 3; text-align: right; text-transform: capitalize; line-height: 2; } .property-grid > input, .property-grid > table, .property-grid > select, .property-grid > ox-input-angle, .property-grid > ox-buttons-radio, .property-grid > ox-input-color, [custom-editor] { grid-column: span 7; align-self: stretch; } .property-grid > .checkbox-row { grid-column: span 10; } .property-grid > .property-full-label { grid-column: span 3; text-align: right; text-transform: capitalize; } .property-grid > .property-half-label { grid-column: span 1; } .property-grid > .property-full-input { grid-column: span 7; } .property-grid > .property-half-input { grid-column: span 4; } /* checkbox-row */ .checkbox-row { display: grid; grid-template-columns: repeat(10, 1fr); grid-gap: 5px; grid-auto-rows: minmax(24px, auto); align-items: center; } .checkbox-row > input { grid-column: 4 / 5; } .checkbox-row > label { grid-column: span 6; text-align: left; } /* image resources */ .icon-only-label { grid-column: span 1; background: var(--url-icon-properties-label) no-repeat; float: left; margin: 0; align-self: stretch; } .icon-only-label.color { background-position: 100% -500px; } .icon-only-label.font-size { background-position: 100% -594px; } .icon-only-label.leading { background-position: 100% -696px; } .icon-only-label.hscale { background-position: 100% -296px; } .icon-only-label.vscale { background-position: 100% -396px; } .icon-only-label.linewidth { background-position: 100% -894px; } .icon-only-label.lineHeight { background-position: 100% -995px; } .icon-only-label.letterSpacing { background-position: 100% -1594px; } `"
8054
- }
8055
8068
  ],
8056
8069
  "exports": [
8057
8070
  {
8058
8071
  "kind": "js",
8059
- "name": "PropertySharedStyle",
8072
+ "name": "default",
8060
8073
  "declaration": {
8061
- "name": "PropertySharedStyle",
8062
- "module": "src/modeller/property-sidebar/property-shared-style.ts"
8074
+ "name": "ConfidentialOverlay",
8075
+ "module": "src/modeller/scene-viewer/confidential-overlay.ts"
8063
8076
  }
8064
8077
  }
8065
8078
  ]
8066
8079
  },
8067
8080
  {
8068
8081
  "kind": "javascript-module",
8069
- "path": "src/modeller/property-sidebar/property-sidebar.ts",
8082
+ "path": "src/modeller/scene-viewer/ox-scene-handler.ts",
8070
8083
  "declarations": [
8071
8084
  {
8072
8085
  "kind": "class",
8073
8086
  "description": "",
8074
- "name": "PropertySidebar",
8087
+ "name": "OxSceneHandler",
8075
8088
  "members": [
8076
8089
  {
8077
8090
  "kind": "field",
8078
- "name": "scene",
8091
+ "name": "type",
8079
8092
  "type": {
8080
- "text": "Scene | null"
8093
+ "text": "string"
8081
8094
  },
8082
- "default": "null",
8083
- "attribute": "scene"
8095
+ "attribute": "type"
8084
8096
  },
8085
8097
  {
8086
8098
  "kind": "field",
8087
- "name": "bounds",
8099
+ "name": "model",
8088
8100
  "type": {
8089
- "text": "any"
8090
- },
8091
- "default": "{}",
8092
- "attribute": "bounds"
8093
- },
8094
- {
8095
- "kind": "field",
8096
- "name": "model",
8097
- "type": {
8098
- "text": "Model | null"
8099
- },
8100
- "default": "{}",
8101
- "attribute": "model"
8102
- },
8103
- {
8104
- "kind": "field",
8105
- "name": "selected",
8106
- "type": {
8107
- "text": "Component[]"
8108
- },
8109
- "default": "[]",
8110
- "attribute": "selected"
8111
- },
8112
- {
8113
- "kind": "field",
8114
- "name": "specificProps",
8115
- "type": {
8116
- "text": "any"
8117
- },
8118
- "attribute": "specificProps"
8119
- },
8120
- {
8121
- "kind": "field",
8122
- "name": "tabName",
8123
- "type": {
8124
- "text": "string | null"
8125
- },
8126
- "default": "'specific'",
8127
- "attribute": "tabName"
8128
- },
8129
- {
8130
- "kind": "field",
8131
- "name": "collapsed",
8132
- "type": {
8133
- "text": "boolean"
8134
- },
8135
- "default": "false",
8136
- "attribute": "collapsed"
8137
- },
8138
- {
8139
- "kind": "field",
8140
- "name": "fonts",
8141
- "type": {
8142
- "text": "any[]"
8143
- },
8144
- "default": "[]",
8145
- "attribute": "fonts"
8146
- },
8147
- {
8148
- "kind": "field",
8149
- "name": "propertyEditor",
8150
- "type": {
8151
- "text": "any[]"
8152
- },
8153
- "default": "[]",
8154
- "attribute": "propertyEditor"
8155
- },
8156
- {
8157
- "kind": "field",
8158
- "name": "propertyTarget",
8159
- "type": {
8160
- "text": "Component | null"
8161
- },
8162
- "default": "null"
8163
- },
8164
- {
8165
- "kind": "field",
8166
- "name": "scopedElements",
8167
- "static": true,
8168
- "readonly": true
8169
- },
8170
- {
8171
- "kind": "method",
8172
- "name": "_onPropertyChanged",
8173
- "parameters": [
8174
- {
8175
- "name": "e",
8176
- "type": {
8177
- "text": "CustomEvent"
8178
- }
8179
- }
8180
- ]
8181
- },
8182
- {
8183
- "kind": "method",
8184
- "name": "_onBoundsChanged",
8185
- "parameters": [
8186
- {
8187
- "name": "e",
8188
- "type": {
8189
- "text": "CustomEvent"
8190
- }
8191
- }
8192
- ]
8193
- },
8194
- {
8195
- "kind": "method",
8196
- "name": "_onChangedByScene"
8197
- },
8198
- {
8199
- "kind": "method",
8200
- "name": "_setPropertyTargetAsDefault"
8201
- },
8202
- {
8203
- "kind": "method",
8204
- "name": "_onCollapsed",
8205
- "parameters": [
8206
- {
8207
- "name": "collapsed",
8208
- "type": {
8209
- "text": "boolean"
8210
- }
8211
- }
8212
- ]
8213
- },
8214
- {
8215
- "kind": "method",
8216
- "name": "_onSceneChanged"
8217
- },
8218
- {
8219
- "kind": "method",
8220
- "name": "_onSelectedChanged",
8221
- "parameters": [
8222
- {
8223
- "name": "after",
8224
- "type": {
8225
- "text": "Component[]"
8226
- }
8227
- }
8228
- ]
8229
- },
8230
- {
8231
- "kind": "method",
8232
- "name": "_setPropertyTarget",
8233
- "parameters": [
8234
- {
8235
- "name": "newTarget",
8236
- "type": {
8237
- "text": "Component | null"
8238
- }
8239
- }
8240
- ]
8241
- },
8242
- {
8243
- "kind": "method",
8244
- "name": "_setBounds",
8245
- "parameters": [
8246
- {
8247
- "name": "bounds",
8248
- "type": {
8249
- "text": "BOUNDS"
8250
- }
8251
- }
8252
- ]
8253
- }
8254
- ],
8255
- "attributes": [
8256
- {
8257
- "name": "scene",
8258
- "type": {
8259
- "text": "Scene | null"
8260
- },
8261
- "default": "null",
8262
- "fieldName": "scene"
8263
- },
8264
- {
8265
- "name": "bounds",
8266
- "type": {
8267
- "text": "any"
8268
- },
8269
- "default": "{}",
8270
- "fieldName": "bounds"
8271
- },
8272
- {
8273
- "name": "model",
8274
- "type": {
8275
- "text": "Model | null"
8276
- },
8277
- "default": "{}",
8278
- "fieldName": "model"
8279
- },
8280
- {
8281
- "name": "selected",
8282
- "type": {
8283
- "text": "Component[]"
8284
- },
8285
- "default": "[]",
8286
- "fieldName": "selected"
8287
- },
8288
- {
8289
- "name": "specificProps",
8290
- "type": {
8291
- "text": "any"
8292
- },
8293
- "fieldName": "specificProps"
8294
- },
8295
- {
8296
- "name": "tabName",
8297
- "type": {
8298
- "text": "string | null"
8299
- },
8300
- "default": "'specific'",
8301
- "fieldName": "tabName"
8302
- },
8303
- {
8304
- "name": "collapsed",
8305
- "type": {
8306
- "text": "boolean"
8307
- },
8308
- "default": "false",
8309
- "fieldName": "collapsed"
8310
- },
8311
- {
8312
- "name": "fonts",
8313
- "type": {
8314
- "text": "any[]"
8315
- },
8316
- "default": "[]",
8317
- "fieldName": "fonts"
8318
- },
8319
- {
8320
- "name": "propertyEditor",
8321
- "type": {
8322
- "text": "any[]"
8323
- },
8324
- "default": "[]",
8325
- "fieldName": "propertyEditor"
8326
- }
8327
- ],
8328
- "mixins": [
8329
- {
8330
- "name": "ScopedElementsMixin",
8331
- "package": "@open-wc/scoped-elements"
8332
- }
8333
- ],
8334
- "superclass": {
8335
- "name": "LitElement",
8336
- "package": "lit"
8337
- },
8338
- "customElement": true
8339
- }
8340
- ],
8341
- "exports": [
8342
- {
8343
- "kind": "js",
8344
- "name": "PropertySidebar",
8345
- "declaration": {
8346
- "name": "PropertySidebar",
8347
- "module": "src/modeller/property-sidebar/property-sidebar.ts"
8348
- }
8349
- }
8350
- ]
8351
- },
8352
- {
8353
- "kind": "javascript-module",
8354
- "path": "src/modeller/scene-viewer/confidential-overlay.ts",
8355
- "declarations": [
8356
- {
8357
- "kind": "class",
8358
- "description": "",
8359
- "name": "ConfidentialOverlay",
8360
- "members": [
8361
- {
8362
- "kind": "method",
8363
- "name": "_draw",
8364
- "parameters": [
8365
- {
8366
- "name": "context",
8367
- "type": {
8368
- "text": "CanvasRenderingContext2D"
8369
- }
8370
- }
8371
- ]
8372
- }
8373
- ],
8374
- "superclass": {
8375
- "name": "SceneLayer",
8376
- "package": "@hatiolab/things-scene"
8377
- }
8378
- }
8379
- ],
8380
- "exports": [
8381
- {
8382
- "kind": "js",
8383
- "name": "default",
8384
- "declaration": {
8385
- "name": "ConfidentialOverlay",
8386
- "module": "src/modeller/scene-viewer/confidential-overlay.ts"
8387
- }
8388
- }
8389
- ]
8390
- },
8391
- {
8392
- "kind": "javascript-module",
8393
- "path": "src/modeller/scene-viewer/ox-scene-handler.ts",
8394
- "declarations": [
8395
- {
8396
- "kind": "class",
8397
- "description": "",
8398
- "name": "OxSceneHandler",
8399
- "members": [
8400
- {
8401
- "kind": "field",
8402
- "name": "type",
8403
- "type": {
8404
- "text": "string"
8405
- },
8406
- "attribute": "type"
8407
- },
8408
- {
8409
- "kind": "field",
8410
- "name": "model",
8411
- "type": {
8412
- "text": "{\n type: Object\n notify: true\n }"
8101
+ "text": "{\n type: Object\n notify: true\n }"
8413
8102
  },
8414
8103
  "attribute": "model"
8415
8104
  }
@@ -8682,6 +8371,15 @@
8682
8371
  },
8683
8372
  "attribute": "themes"
8684
8373
  },
8374
+ {
8375
+ "kind": "field",
8376
+ "name": "itemTypes",
8377
+ "type": {
8378
+ "text": "unknown | undefined"
8379
+ },
8380
+ "description": "The domain's item type table (ADR-0155), given to the scene as it is made",
8381
+ "attribute": "itemTypes"
8382
+ },
8685
8383
  {
8686
8384
  "kind": "field",
8687
8385
  "name": "fit",
@@ -8998,6 +8696,14 @@
8998
8696
  },
8999
8697
  "fieldName": "themes"
9000
8698
  },
8699
+ {
8700
+ "name": "itemTypes",
8701
+ "type": {
8702
+ "text": "unknown | undefined"
8703
+ },
8704
+ "description": "The domain's item type table (ADR-0155), given to the scene as it is made",
8705
+ "fieldName": "itemTypes"
8706
+ },
9001
8707
  {
9002
8708
  "name": "fit",
9003
8709
  "type": {
@@ -9098,49 +8804,138 @@
9098
8804
  },
9099
8805
  {
9100
8806
  "kind": "javascript-module",
9101
- "path": "src/modeller/property-sidebar/effects/effects-shared-style.ts",
8807
+ "path": "src/modeller/property-sidebar/abstract-property.ts",
8808
+ "declarations": [
8809
+ {
8810
+ "kind": "class",
8811
+ "description": "",
8812
+ "name": "AbstractProperty",
8813
+ "members": [
8814
+ {
8815
+ "kind": "method",
8816
+ "name": "_onValueChange",
8817
+ "parameters": [
8818
+ {
8819
+ "name": "e",
8820
+ "type": {
8821
+ "text": "Event"
8822
+ }
8823
+ }
8824
+ ]
8825
+ },
8826
+ {
8827
+ "kind": "method",
8828
+ "name": "_getValueFromEventTarget",
8829
+ "parameters": [
8830
+ {
8831
+ "name": "element",
8832
+ "type": {
8833
+ "text": "HTMLElement"
8834
+ }
8835
+ }
8836
+ ]
8837
+ },
8838
+ {
8839
+ "kind": "method",
8840
+ "name": "_onAfterValueChange",
8841
+ "parameters": [
8842
+ {
8843
+ "name": "key",
8844
+ "type": {
8845
+ "text": "string"
8846
+ }
8847
+ },
8848
+ {
8849
+ "name": "value",
8850
+ "type": {
8851
+ "text": "any"
8852
+ }
8853
+ }
8854
+ ]
8855
+ }
8856
+ ],
8857
+ "events": [
8858
+ {
8859
+ "name": "property-change",
8860
+ "type": {
8861
+ "text": "CustomEvent"
8862
+ }
8863
+ }
8864
+ ],
8865
+ "superclass": {
8866
+ "name": "LitElement",
8867
+ "package": "lit"
8868
+ },
8869
+ "customElement": true
8870
+ }
8871
+ ],
8872
+ "exports": [
8873
+ {
8874
+ "kind": "js",
8875
+ "name": "AbstractProperty",
8876
+ "declaration": {
8877
+ "name": "AbstractProperty",
8878
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
8879
+ }
8880
+ }
8881
+ ]
8882
+ },
8883
+ {
8884
+ "kind": "javascript-module",
8885
+ "path": "src/modeller/property-sidebar/property-shared-style.ts",
9102
8886
  "declarations": [
9103
8887
  {
9104
8888
  "kind": "variable",
9105
- "name": "EffectsSharedStyle",
9106
- "default": "css` :host { display: grid; grid-template-columns: repeat(10, 1fr); grid-gap: 5px; grid-auto-rows: minmax(24px, auto); align-items: center; } * { align-self: stretch; } label { grid-column: span 3; text-align: right; text-transform: capitalize; align-self: center; } input, select, ox-input-angle, ox-input-color, [custom-editor] { grid-column: span 7; } input, select, ox-input-angle input, ox-input-color input, [custom-editor] input { border: var(--property-sidebar-fieldset-border); } ox-input-data { height: 300px; } input[type='checkbox'] { grid-column: 4 / 5; align-self: center; } label.checkbox-label { grid-column: span 6; text-align: left; } [fullwidth] { grid-column: 1 / -1; } `"
8889
+ "name": "PropertySharedStyle",
8890
+ "default": "css` fieldset { border: none; margin: 4px; padding: 9px 4px 9px 4px; border-bottom: var(--property-sidebar-fieldset-border); color: var(--property-sidebar-fieldset-legend-color); font: var(--property-sidebar-fieldset-label); } fieldset legend { padding: 5px 0 0 5px; color: var(--property-sidebar-fieldset-legend-color); font: var(--property-sidebar-fieldset-legend); text-transform: capitalize; } select, input { border: var(--property-sidebar-fieldset-border); } ox-input-data { height: 300px; } /* property grid */ .property-grid { display: grid; grid-template-columns: repeat(10, 1fr); grid-gap: 5px; grid-auto-rows: minmax(24px, auto); align-items: center; } .property-grid > * { width: 100%; box-sizing: border-box; } .property-grid > label { grid-column: span 3; text-align: right; text-transform: capitalize; line-height: 2; } .property-grid > input, .property-grid > table, .property-grid > select, .property-grid > ox-input-angle, .property-grid > ox-buttons-radio, .property-grid > ox-input-color, [custom-editor] { grid-column: span 7; align-self: stretch; } .property-grid > .checkbox-row { grid-column: span 10; } .property-grid > .property-full-label { grid-column: span 3; text-align: right; text-transform: capitalize; } .property-grid > .property-half-label { grid-column: span 1; } .property-grid > .property-full-input { grid-column: span 7; } .property-grid > .property-half-input { grid-column: span 4; } /* checkbox-row */ .checkbox-row { display: grid; grid-template-columns: repeat(10, 1fr); grid-gap: 5px; grid-auto-rows: minmax(24px, auto); align-items: center; } .checkbox-row > input { grid-column: 4 / 5; } .checkbox-row > label { grid-column: span 6; text-align: left; } /* image resources */ .icon-only-label { grid-column: span 1; background: var(--url-icon-properties-label) no-repeat; float: left; margin: 0; align-self: stretch; } .icon-only-label.color { background-position: 100% -500px; } .icon-only-label.font-size { background-position: 100% -594px; } .icon-only-label.leading { background-position: 100% -696px; } .icon-only-label.hscale { background-position: 100% -296px; } .icon-only-label.vscale { background-position: 100% -396px; } .icon-only-label.linewidth { background-position: 100% -894px; } .icon-only-label.lineHeight { background-position: 100% -995px; } .icon-only-label.letterSpacing { background-position: 100% -1594px; } `"
9107
8891
  }
9108
8892
  ],
9109
8893
  "exports": [
9110
8894
  {
9111
8895
  "kind": "js",
9112
- "name": "EffectsSharedStyle",
8896
+ "name": "PropertySharedStyle",
9113
8897
  "declaration": {
9114
- "name": "EffectsSharedStyle",
9115
- "module": "src/modeller/property-sidebar/effects/effects-shared-style.ts"
8898
+ "name": "PropertySharedStyle",
8899
+ "module": "src/modeller/property-sidebar/property-shared-style.ts"
9116
8900
  }
9117
8901
  }
9118
8902
  ]
9119
8903
  },
9120
8904
  {
9121
8905
  "kind": "javascript-module",
9122
- "path": "src/modeller/property-sidebar/effects/effects.ts",
8906
+ "path": "src/modeller/property-sidebar/property-sidebar.ts",
9123
8907
  "declarations": [
9124
8908
  {
9125
8909
  "kind": "class",
9126
8910
  "description": "",
9127
- "name": "PropertyEffects",
8911
+ "name": "PropertySidebar",
9128
8912
  "members": [
9129
8913
  {
9130
8914
  "kind": "field",
9131
- "name": "value",
8915
+ "name": "scene",
9132
8916
  "type": {
9133
- "text": "Properties | undefined"
8917
+ "text": "Scene | null"
9134
8918
  },
9135
- "attribute": "value"
8919
+ "default": "null",
8920
+ "attribute": "scene"
9136
8921
  },
9137
8922
  {
9138
8923
  "kind": "field",
9139
- "name": "scene",
8924
+ "name": "bounds",
9140
8925
  "type": {
9141
- "text": "Scene | undefined"
8926
+ "text": "any"
9142
8927
  },
9143
- "attribute": "scene"
8928
+ "default": "{}",
8929
+ "attribute": "bounds"
8930
+ },
8931
+ {
8932
+ "kind": "field",
8933
+ "name": "model",
8934
+ "type": {
8935
+ "text": "Model | null"
8936
+ },
8937
+ "default": "{}",
8938
+ "attribute": "model"
9144
8939
  },
9145
8940
  {
9146
8941
  "kind": "field",
@@ -9151,6 +8946,58 @@
9151
8946
  "default": "[]",
9152
8947
  "attribute": "selected"
9153
8948
  },
8949
+ {
8950
+ "kind": "field",
8951
+ "name": "specificProps",
8952
+ "type": {
8953
+ "text": "any"
8954
+ },
8955
+ "attribute": "specificProps"
8956
+ },
8957
+ {
8958
+ "kind": "field",
8959
+ "name": "tabName",
8960
+ "type": {
8961
+ "text": "string | null"
8962
+ },
8963
+ "default": "'specific'",
8964
+ "attribute": "tabName"
8965
+ },
8966
+ {
8967
+ "kind": "field",
8968
+ "name": "collapsed",
8969
+ "type": {
8970
+ "text": "boolean"
8971
+ },
8972
+ "default": "false",
8973
+ "attribute": "collapsed"
8974
+ },
8975
+ {
8976
+ "kind": "field",
8977
+ "name": "fonts",
8978
+ "type": {
8979
+ "text": "any[]"
8980
+ },
8981
+ "default": "[]",
8982
+ "attribute": "fonts"
8983
+ },
8984
+ {
8985
+ "kind": "field",
8986
+ "name": "propertyEditor",
8987
+ "type": {
8988
+ "text": "any[]"
8989
+ },
8990
+ "default": "[]",
8991
+ "attribute": "propertyEditor"
8992
+ },
8993
+ {
8994
+ "kind": "field",
8995
+ "name": "propertyTarget",
8996
+ "type": {
8997
+ "text": "Component | null"
8998
+ },
8999
+ "default": "null"
9000
+ },
9154
9001
  {
9155
9002
  "kind": "field",
9156
9003
  "name": "scopedElements",
@@ -9159,105 +9006,113 @@
9159
9006
  },
9160
9007
  {
9161
9008
  "kind": "method",
9162
- "name": "_onShadow3dChange",
9163
- "privacy": "private",
9009
+ "name": "_onPropertyChanged",
9164
9010
  "parameters": [
9165
9011
  {
9166
- "name": "key",
9012
+ "name": "e",
9167
9013
  "type": {
9168
- "text": "'castShadow' | 'receiveShadow'"
9014
+ "text": "CustomEvent"
9169
9015
  }
9170
- },
9016
+ }
9017
+ ]
9018
+ },
9019
+ {
9020
+ "kind": "method",
9021
+ "name": "_onBoundsChanged",
9022
+ "parameters": [
9171
9023
  {
9172
9024
  "name": "e",
9173
9025
  "type": {
9174
- "text": "Event"
9026
+ "text": "CustomEvent"
9175
9027
  }
9176
9028
  }
9177
- ],
9178
- "description": "3D 그림자 토글 — material3d.castShadow / receiveShadow 만 갱신.\n\nmaterial3d 는 단일 객체 속성이므로 기존 material3d 전체를 보존한 채 해당\n키만 덮어써 dispatch 한다 ({ castShadow } 만 보내면 set() 의 top-level shallow\nmerge 로 material3d 전체가 사라짐). value-key 를 두지 않아 AbstractProperty\n의 제너릭 change 핸들러는 이 입력을 무시한다."
9029
+ ]
9179
9030
  },
9180
9031
  {
9181
9032
  "kind": "method",
9182
- "name": "_onValueChange",
9033
+ "name": "_onChangedByScene"
9034
+ },
9035
+ {
9036
+ "kind": "method",
9037
+ "name": "_setPropertyTargetAsDefault"
9038
+ },
9039
+ {
9040
+ "kind": "method",
9041
+ "name": "_onCollapsed",
9183
9042
  "parameters": [
9184
9043
  {
9185
- "name": "e",
9044
+ "name": "collapsed",
9186
9045
  "type": {
9187
- "text": "Event"
9046
+ "text": "boolean"
9188
9047
  }
9189
9048
  }
9190
- ],
9191
- "inheritedFrom": {
9192
- "name": "AbstractProperty",
9193
- "module": "src/modeller/property-sidebar/abstract-property.ts"
9194
- }
9049
+ ]
9195
9050
  },
9196
9051
  {
9197
9052
  "kind": "method",
9198
- "name": "_getValueFromEventTarget",
9053
+ "name": "_onSceneChanged"
9054
+ },
9055
+ {
9056
+ "kind": "method",
9057
+ "name": "_onSelectedChanged",
9199
9058
  "parameters": [
9200
9059
  {
9201
- "name": "element",
9060
+ "name": "after",
9202
9061
  "type": {
9203
- "text": "HTMLElement"
9062
+ "text": "Component[]"
9204
9063
  }
9205
9064
  }
9206
- ],
9207
- "inheritedFrom": {
9208
- "name": "AbstractProperty",
9209
- "module": "src/modeller/property-sidebar/abstract-property.ts"
9210
- }
9065
+ ]
9211
9066
  },
9212
9067
  {
9213
9068
  "kind": "method",
9214
- "name": "_onAfterValueChange",
9069
+ "name": "_setPropertyTarget",
9215
9070
  "parameters": [
9216
9071
  {
9217
- "name": "key",
9072
+ "name": "newTarget",
9218
9073
  "type": {
9219
- "text": "string"
9074
+ "text": "Component | null"
9220
9075
  }
9221
- },
9076
+ }
9077
+ ]
9078
+ },
9079
+ {
9080
+ "kind": "method",
9081
+ "name": "_setBounds",
9082
+ "parameters": [
9222
9083
  {
9223
- "name": "value",
9084
+ "name": "bounds",
9224
9085
  "type": {
9225
- "text": "any"
9086
+ "text": "BOUNDS"
9226
9087
  }
9227
9088
  }
9228
- ],
9229
- "inheritedFrom": {
9230
- "name": "AbstractProperty",
9231
- "module": "src/modeller/property-sidebar/abstract-property.ts"
9232
- }
9089
+ ]
9233
9090
  }
9234
9091
  ],
9235
- "events": [
9092
+ "attributes": [
9236
9093
  {
9237
- "name": "property-change",
9094
+ "name": "scene",
9238
9095
  "type": {
9239
- "text": "CustomEvent"
9096
+ "text": "Scene | null"
9240
9097
  },
9241
- "inheritedFrom": {
9242
- "name": "AbstractProperty",
9243
- "module": "src/modeller/property-sidebar/abstract-property.ts"
9244
- }
9245
- }
9246
- ],
9247
- "attributes": [
9098
+ "default": "null",
9099
+ "fieldName": "scene"
9100
+ },
9248
9101
  {
9249
- "name": "value",
9102
+ "name": "bounds",
9250
9103
  "type": {
9251
- "text": "Properties | undefined"
9104
+ "text": "any"
9252
9105
  },
9253
- "fieldName": "value"
9106
+ "default": "{}",
9107
+ "fieldName": "bounds"
9254
9108
  },
9255
9109
  {
9256
- "name": "scene",
9110
+ "name": "model",
9257
9111
  "type": {
9258
- "text": "Scene | undefined"
9112
+ "text": "Model | null"
9259
9113
  },
9260
- "fieldName": "scene"
9114
+ "default": "{}",
9115
+ "fieldName": "model"
9261
9116
  },
9262
9117
  {
9263
9118
  "name": "selected",
@@ -9266,6 +9121,45 @@
9266
9121
  },
9267
9122
  "default": "[]",
9268
9123
  "fieldName": "selected"
9124
+ },
9125
+ {
9126
+ "name": "specificProps",
9127
+ "type": {
9128
+ "text": "any"
9129
+ },
9130
+ "fieldName": "specificProps"
9131
+ },
9132
+ {
9133
+ "name": "tabName",
9134
+ "type": {
9135
+ "text": "string | null"
9136
+ },
9137
+ "default": "'specific'",
9138
+ "fieldName": "tabName"
9139
+ },
9140
+ {
9141
+ "name": "collapsed",
9142
+ "type": {
9143
+ "text": "boolean"
9144
+ },
9145
+ "default": "false",
9146
+ "fieldName": "collapsed"
9147
+ },
9148
+ {
9149
+ "name": "fonts",
9150
+ "type": {
9151
+ "text": "any[]"
9152
+ },
9153
+ "default": "[]",
9154
+ "fieldName": "fonts"
9155
+ },
9156
+ {
9157
+ "name": "propertyEditor",
9158
+ "type": {
9159
+ "text": "any[]"
9160
+ },
9161
+ "default": "[]",
9162
+ "fieldName": "propertyEditor"
9269
9163
  }
9270
9164
  ],
9271
9165
  "mixins": [
@@ -9275,119 +9169,94 @@
9275
9169
  }
9276
9170
  ],
9277
9171
  "superclass": {
9278
- "name": "AbstractProperty",
9279
- "module": "/src/modeller/property-sidebar/abstract-property.js"
9280
- }
9172
+ "name": "LitElement",
9173
+ "package": "lit"
9174
+ },
9175
+ "customElement": true
9281
9176
  }
9282
9177
  ],
9283
9178
  "exports": [
9284
9179
  {
9285
9180
  "kind": "js",
9286
- "name": "PropertyEffects",
9181
+ "name": "PropertySidebar",
9287
9182
  "declaration": {
9288
- "name": "PropertyEffects",
9289
- "module": "src/modeller/property-sidebar/effects/effects.ts"
9183
+ "name": "PropertySidebar",
9184
+ "module": "src/modeller/property-sidebar/property-sidebar.ts"
9290
9185
  }
9291
9186
  }
9292
9187
  ]
9293
9188
  },
9294
9189
  {
9295
9190
  "kind": "javascript-module",
9296
- "path": "src/modeller/property-sidebar/effects/event-handler-adapter.ts",
9191
+ "path": "src/modeller/property-sidebar/data-binding/data-binding-mapper.ts",
9297
9192
  "declarations": [
9298
9193
  {
9299
- "kind": "function",
9300
- "name": "eventHandlersToLegacyTap",
9301
- "return": {
9302
- "type": {
9303
- "text": "LegacyTap"
9304
- }
9305
- },
9306
- "parameters": [
9194
+ "kind": "class",
9195
+ "description": "element for mapping data value editing\n\nExample:\n\n<data-binding-mapper mapping=${mapping}>\n</data-binding-mapper>",
9196
+ "name": "DataBindingMapper",
9197
+ "members": [
9307
9198
  {
9308
- "name": "handlers",
9199
+ "kind": "field",
9200
+ "name": "mapping",
9309
9201
  "type": {
9310
- "text": "EventHandler[] | undefined"
9311
- }
9312
- }
9313
- ],
9314
- "description": "trigger 가 click/tap 인 첫 핸들러를 legacy tap 객체로 변환."
9315
- },
9316
- {
9317
- "kind": "function",
9318
- "name": "applyLegacyTapToHandlers",
9319
- "return": {
9320
- "type": {
9321
- "text": "EventHandler[]"
9322
- }
9323
- },
9324
- "parameters": [
9202
+ "text": "Mapping"
9203
+ },
9204
+ "default": "{ rule: 'value' }",
9205
+ "attribute": "mapping"
9206
+ },
9325
9207
  {
9326
- "name": "handlers",
9208
+ "kind": "field",
9209
+ "name": "rule",
9327
9210
  "type": {
9328
- "text": "EventHandler[] | undefined"
9329
- }
9211
+ "text": "Rule"
9212
+ },
9213
+ "default": "{}",
9214
+ "attribute": "rule"
9330
9215
  },
9331
9216
  {
9332
- "name": "newTap",
9217
+ "kind": "field",
9218
+ "name": "scene",
9333
9219
  "type": {
9334
- "text": "LegacyTap | undefined"
9335
- }
9336
- }
9337
- ],
9338
- "description": "기존 배열에서 click/tap 항목을 새 값으로 교체 (또는 push, 또는 제거).\n다른 trigger 항목은 그대로 보존."
9339
- }
9340
- ],
9341
- "exports": [
9342
- {
9343
- "kind": "js",
9344
- "name": "eventHandlersToLegacyTap",
9345
- "declaration": {
9346
- "name": "eventHandlersToLegacyTap",
9347
- "module": "src/modeller/property-sidebar/effects/event-handler-adapter.ts"
9348
- }
9349
- },
9350
- {
9351
- "kind": "js",
9352
- "name": "applyLegacyTapToHandlers",
9353
- "declaration": {
9354
- "name": "applyLegacyTapToHandlers",
9355
- "module": "src/modeller/property-sidebar/effects/event-handler-adapter.ts"
9356
- }
9357
- }
9358
- ]
9359
- },
9360
- {
9361
- "kind": "javascript-module",
9362
- "path": "src/modeller/property-sidebar/effects/property-event-hover.ts",
9363
- "declarations": [
9364
- {
9365
- "kind": "class",
9366
- "description": "",
9367
- "name": "PropertyEventHover",
9368
- "members": [
9220
+ "text": "Scene | undefined"
9221
+ },
9222
+ "attribute": "scene"
9223
+ },
9369
9224
  {
9370
9225
  "kind": "field",
9371
- "name": "value",
9226
+ "name": "_valueTypes",
9372
9227
  "type": {
9373
- "text": "Properties | undefined"
9228
+ "text": "any"
9374
9229
  },
9375
- "attribute": "value"
9230
+ "default": "{ play: 'boolean', hidden: 'boolean', started: 'boolean', rotation: 'number', value: 'number', fillStyle: 'color', strokeStyle: 'color', fontColor: 'color', data: 'object', source: 'attachment', location: 'object', dimension: 'object', text: 'string', ref: 'string' }"
9376
9231
  },
9377
9232
  {
9378
9233
  "kind": "field",
9379
- "name": "scene",
9234
+ "name": "_componentIds",
9380
9235
  "type": {
9381
- "text": "Scene | undefined"
9236
+ "text": "{ value: string; description: string }[]"
9382
9237
  },
9383
- "attribute": "scene"
9238
+ "default": "[]"
9239
+ },
9240
+ {
9241
+ "kind": "field",
9242
+ "name": "editor",
9243
+ "type": {
9244
+ "text": "HTMLInputElement"
9245
+ }
9246
+ },
9247
+ {
9248
+ "kind": "field",
9249
+ "name": "target",
9250
+ "type": {
9251
+ "text": "HTMLInputElement"
9252
+ }
9384
9253
  },
9385
9254
  {
9386
9255
  "kind": "method",
9387
- "name": "_getPlaceHoder",
9256
+ "name": "_valuetype",
9388
9257
  "parameters": [
9389
9258
  {
9390
- "name": "action",
9259
+ "name": "property",
9391
9260
  "type": {
9392
9261
  "text": "string"
9393
9262
  }
@@ -9395,25 +9264,33 @@
9395
9264
  ]
9396
9265
  },
9397
9266
  {
9398
- "kind": "method",
9399
- "name": "_getTargetList",
9400
- "return": {
9401
- "type": {
9402
- "text": "{ value: string; description: string }[]"
9403
- }
9267
+ "kind": "field",
9268
+ "name": "_keep_saved_rule_params",
9269
+ "type": {
9270
+ "text": "boolean"
9404
9271
  },
9272
+ "privacy": "private",
9273
+ "default": "false"
9274
+ },
9275
+ {
9276
+ "kind": "method",
9277
+ "name": "_onChangedMapping"
9278
+ },
9279
+ {
9280
+ "kind": "method",
9281
+ "name": "_onChangeRule",
9405
9282
  "parameters": [
9406
9283
  {
9407
- "name": "action",
9284
+ "name": "e",
9408
9285
  "type": {
9409
- "text": "string"
9286
+ "text": "Event"
9410
9287
  }
9411
9288
  }
9412
9289
  ]
9413
9290
  },
9414
9291
  {
9415
9292
  "kind": "method",
9416
- "name": "_onValueChange",
9293
+ "name": "_onChange",
9417
9294
  "parameters": [
9418
9295
  {
9419
9296
  "name": "e",
@@ -9426,7 +9303,7 @@
9426
9303
  ],
9427
9304
  "events": [
9428
9305
  {
9429
- "name": "change",
9306
+ "name": "value-change",
9430
9307
  "type": {
9431
9308
  "text": "CustomEvent"
9432
9309
  }
@@ -9434,11 +9311,28 @@
9434
9311
  ],
9435
9312
  "attributes": [
9436
9313
  {
9437
- "name": "value",
9314
+ "name": "mapping",
9438
9315
  "type": {
9439
- "text": "Properties | undefined"
9316
+ "text": "Mapping"
9440
9317
  },
9441
- "fieldName": "value"
9318
+ "default": "{ rule: 'value' }",
9319
+ "fieldName": "mapping"
9320
+ },
9321
+ {
9322
+ "name": "rule",
9323
+ "type": {
9324
+ "text": "Rule"
9325
+ },
9326
+ "default": "{}",
9327
+ "fieldName": "rule"
9328
+ },
9329
+ {
9330
+ "name": "properties",
9331
+ "type": {
9332
+ "text": "Properties[]"
9333
+ },
9334
+ "default": "[]",
9335
+ "fieldName": "properties"
9442
9336
  },
9443
9337
  {
9444
9338
  "name": "scene",
@@ -9458,241 +9352,315 @@
9458
9352
  "exports": [
9459
9353
  {
9460
9354
  "kind": "js",
9461
- "name": "PropertyEventHover",
9355
+ "name": "DataBindingMapper",
9462
9356
  "declaration": {
9463
- "name": "PropertyEventHover",
9464
- "module": "src/modeller/property-sidebar/effects/property-event-hover.ts"
9357
+ "name": "DataBindingMapper",
9358
+ "module": "src/modeller/property-sidebar/data-binding/data-binding-mapper.ts"
9465
9359
  }
9466
9360
  }
9467
9361
  ]
9468
9362
  },
9469
9363
  {
9470
9364
  "kind": "javascript-module",
9471
- "path": "src/modeller/property-sidebar/effects/property-event-tap.ts",
9365
+ "path": "src/modeller/property-sidebar/data-binding/data-binding-value-map.ts",
9472
9366
  "declarations": [
9473
9367
  {
9474
9368
  "kind": "class",
9475
9369
  "description": "",
9476
- "name": "PropertyEventTap",
9370
+ "name": "DataBindingValueMap",
9477
9371
  "members": [
9478
- {
9479
- "kind": "field",
9480
- "name": "value",
9481
- "type": {
9482
- "text": "Properties | undefined"
9483
- },
9484
- "attribute": "value"
9485
- },
9486
- {
9487
- "kind": "field",
9488
- "name": "scene",
9489
- "type": {
9490
- "text": "Scene | undefined"
9491
- },
9492
- "attribute": "scene"
9493
- },
9494
- {
9495
- "kind": "field",
9496
- "name": "targetList",
9497
- "type": {
9498
- "text": "{ value: string; description: string }[]"
9499
- },
9500
- "default": "[]"
9501
- },
9502
9372
  {
9503
9373
  "kind": "method",
9504
- "name": "_getPlaceHoder",
9374
+ "name": "valueInputTemplate",
9505
9375
  "parameters": [
9506
9376
  {
9507
- "name": "action",
9377
+ "name": "value",
9378
+ "optional": true,
9508
9379
  "type": {
9509
- "text": "string"
9380
+ "text": "any"
9510
9381
  }
9511
9382
  }
9512
9383
  ]
9513
- },
9384
+ }
9385
+ ],
9386
+ "superclass": {
9387
+ "name": "OxInputValueMap",
9388
+ "package": "@operato/input"
9389
+ },
9390
+ "tagName": "data-binding-value-map",
9391
+ "customElement": true
9392
+ }
9393
+ ],
9394
+ "exports": [
9395
+ {
9396
+ "kind": "js",
9397
+ "name": "DataBindingValueMap",
9398
+ "declaration": {
9399
+ "name": "DataBindingValueMap",
9400
+ "module": "src/modeller/property-sidebar/data-binding/data-binding-value-map.ts"
9401
+ }
9402
+ },
9403
+ {
9404
+ "kind": "custom-element-definition",
9405
+ "name": "data-binding-value-map",
9406
+ "declaration": {
9407
+ "name": "DataBindingValueMap",
9408
+ "module": "src/modeller/property-sidebar/data-binding/data-binding-value-map.ts"
9409
+ }
9410
+ }
9411
+ ]
9412
+ },
9413
+ {
9414
+ "kind": "javascript-module",
9415
+ "path": "src/modeller/property-sidebar/data-binding/data-binding-value-range.ts",
9416
+ "declarations": [
9417
+ {
9418
+ "kind": "class",
9419
+ "description": "",
9420
+ "name": "DataBindingValueRange",
9421
+ "members": [
9514
9422
  {
9515
9423
  "kind": "method",
9516
- "name": "_onValueChange",
9424
+ "name": "valueInputTemplate",
9517
9425
  "parameters": [
9518
9426
  {
9519
- "name": "e",
9427
+ "name": "value",
9428
+ "optional": true,
9520
9429
  "type": {
9521
- "text": "Event"
9430
+ "text": "any"
9522
9431
  }
9523
9432
  }
9524
9433
  ]
9525
9434
  }
9526
9435
  ],
9527
- "events": [
9528
- {
9529
- "name": "change",
9530
- "type": {
9531
- "text": "CustomEvent"
9532
- }
9533
- }
9534
- ],
9535
- "attributes": [
9536
- {
9537
- "name": "value",
9538
- "type": {
9539
- "text": "Properties | undefined"
9540
- },
9541
- "fieldName": "value"
9542
- },
9543
- {
9544
- "name": "scene",
9545
- "type": {
9546
- "text": "Scene | undefined"
9547
- },
9548
- "fieldName": "scene"
9549
- }
9550
- ],
9551
9436
  "superclass": {
9552
- "name": "LitElement",
9553
- "package": "lit"
9437
+ "name": "OxInputValueRange",
9438
+ "package": "@operato/input"
9554
9439
  },
9440
+ "tagName": "data-binding-value-range",
9555
9441
  "customElement": true
9556
9442
  }
9557
9443
  ],
9558
9444
  "exports": [
9559
9445
  {
9560
9446
  "kind": "js",
9561
- "name": "PropertyEventTap",
9447
+ "name": "DataBindingValueRange",
9562
9448
  "declaration": {
9563
- "name": "PropertyEventTap",
9564
- "module": "src/modeller/property-sidebar/effects/property-event-tap.ts"
9449
+ "name": "DataBindingValueRange",
9450
+ "module": "src/modeller/property-sidebar/data-binding/data-binding-value-range.ts"
9451
+ }
9452
+ },
9453
+ {
9454
+ "kind": "custom-element-definition",
9455
+ "name": "data-binding-value-range",
9456
+ "declaration": {
9457
+ "name": "DataBindingValueRange",
9458
+ "module": "src/modeller/property-sidebar/data-binding/data-binding-value-range.ts"
9565
9459
  }
9566
9460
  }
9567
9461
  ]
9568
9462
  },
9569
9463
  {
9570
9464
  "kind": "javascript-module",
9571
- "path": "src/modeller/property-sidebar/effects/property-event.ts",
9465
+ "path": "src/modeller/property-sidebar/data-binding/data-binding.ts",
9572
9466
  "declarations": [
9573
9467
  {
9574
9468
  "kind": "class",
9575
- "description": "things-scene v10 의 신규 모델 (`state.eventHandlers: EventHandler[]`) 위에서\n기존 단일-tap UI 를 그대로 동작시키는 어댑터.\n\nread : eventHandlers 배열에서 trigger='click'/'tap' 인 첫 항목 → legacy tap\n 객체로 변환 후 PropertyEventTap 에 전달.\nwrite: PropertyEventTap 이 emit 한 legacy tap 변경 → click 항목을 update/push\n 한 새 배열로 외부에 emit. 다른 trigger 의 핸들러는 보존.",
9576
- "name": "PropertyEvent",
9469
+ "description": "",
9470
+ "name": "PropertyDataBinding",
9577
9471
  "members": [
9578
9472
  {
9579
- "kind": "field",
9580
- "name": "value",
9581
- "type": {
9582
- "text": "EventHandler[] | undefined"
9583
- },
9584
- "attribute": "value"
9473
+ "kind": "field",
9474
+ "name": "value",
9475
+ "type": {
9476
+ "text": "Properties | undefined"
9477
+ },
9478
+ "attribute": "value"
9479
+ },
9480
+ {
9481
+ "kind": "field",
9482
+ "name": "scene",
9483
+ "type": {
9484
+ "text": "Scene | undefined"
9485
+ },
9486
+ "attribute": "scene"
9487
+ },
9488
+ {
9489
+ "kind": "field",
9490
+ "name": "mappingIndex",
9491
+ "type": {
9492
+ "text": "number"
9493
+ },
9494
+ "default": "0"
9495
+ },
9496
+ {
9497
+ "kind": "field",
9498
+ "name": "_afterRender",
9499
+ "type": {
9500
+ "text": "Function | null | undefined"
9501
+ }
9502
+ },
9503
+ {
9504
+ "kind": "field",
9505
+ "name": "_dataExpanded",
9506
+ "type": {
9507
+ "text": "boolean"
9508
+ },
9509
+ "default": "true"
9510
+ },
9511
+ {
9512
+ "kind": "field",
9513
+ "name": "tabs",
9514
+ "type": {
9515
+ "text": "HTMLElement"
9516
+ }
9517
+ },
9518
+ {
9519
+ "kind": "field",
9520
+ "name": "tabNavLeftButton",
9521
+ "type": {
9522
+ "text": "HTMLElement"
9523
+ }
9524
+ },
9525
+ {
9526
+ "kind": "field",
9527
+ "name": "tabNavRightButton",
9528
+ "type": {
9529
+ "text": "HTMLElement"
9530
+ }
9531
+ },
9532
+ {
9533
+ "kind": "field",
9534
+ "name": "mappings",
9535
+ "readonly": true
9536
+ },
9537
+ {
9538
+ "kind": "field",
9539
+ "name": "scopedElements",
9540
+ "static": true,
9541
+ "readonly": true
9542
+ },
9543
+ {
9544
+ "kind": "method",
9545
+ "name": "_setMappingIndex",
9546
+ "parameters": [
9547
+ {
9548
+ "name": "idx",
9549
+ "type": {
9550
+ "text": "number"
9551
+ }
9552
+ }
9553
+ ]
9554
+ },
9555
+ {
9556
+ "kind": "method",
9557
+ "name": "_clearDataBindingMapper"
9558
+ },
9559
+ {
9560
+ "kind": "method",
9561
+ "name": "_copyDataBindingMapper"
9562
+ },
9563
+ {
9564
+ "kind": "method",
9565
+ "name": "_pasteDataBindingMapper"
9585
9566
  },
9586
9567
  {
9587
- "kind": "field",
9588
- "name": "scene",
9589
- "type": {
9590
- "text": "Scene | undefined"
9591
- },
9592
- "attribute": "scene"
9568
+ "kind": "method",
9569
+ "name": "_onValueChanged"
9570
+ },
9571
+ {
9572
+ "kind": "method",
9573
+ "name": "_onValueChange",
9574
+ "parameters": [
9575
+ {
9576
+ "name": "e",
9577
+ "type": {
9578
+ "text": "Event"
9579
+ }
9580
+ }
9581
+ ],
9582
+ "inheritedFrom": {
9583
+ "name": "AbstractProperty",
9584
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9585
+ }
9593
9586
  },
9594
9587
  {
9595
9588
  "kind": "field",
9596
- "name": "scopedElements",
9597
- "static": true,
9589
+ "name": "tabContainer",
9598
9590
  "readonly": true
9599
9591
  },
9600
9592
  {
9601
9593
  "kind": "method",
9602
- "name": "_onValueChange",
9594
+ "name": "_onMappingChanged",
9603
9595
  "parameters": [
9604
9596
  {
9605
9597
  "name": "e",
9606
9598
  "type": {
9607
- "text": "Event"
9599
+ "text": "CustomEvent"
9608
9600
  }
9609
9601
  }
9610
9602
  ]
9611
- }
9612
- ],
9613
- "events": [
9614
- {
9615
- "name": "change",
9616
- "type": {
9617
- "text": "CustomEvent"
9618
- }
9619
- }
9620
- ],
9621
- "attributes": [
9603
+ },
9622
9604
  {
9623
- "name": "value",
9624
- "type": {
9625
- "text": "EventHandler[] | undefined"
9626
- },
9627
- "fieldName": "value"
9605
+ "kind": "method",
9606
+ "name": "_onTabScroll"
9628
9607
  },
9629
9608
  {
9630
- "name": "scene",
9631
- "type": {
9632
- "text": "Scene | undefined"
9633
- },
9634
- "fieldName": "scene"
9635
- }
9636
- ],
9637
- "mixins": [
9609
+ "kind": "method",
9610
+ "name": "_onTabScrollNavLeft"
9611
+ },
9638
9612
  {
9639
- "name": "ScopedElementsMixin",
9640
- "package": "@open-wc/scoped-elements"
9641
- }
9642
- ],
9643
- "superclass": {
9644
- "name": "LitElement",
9645
- "package": "lit"
9646
- },
9647
- "customElement": true
9648
- }
9649
- ],
9650
- "exports": [
9651
- {
9652
- "kind": "js",
9653
- "name": "PropertyEvent",
9654
- "declaration": {
9655
- "name": "PropertyEvent",
9656
- "module": "src/modeller/property-sidebar/effects/property-event.ts"
9657
- }
9658
- }
9659
- ]
9660
- },
9661
- {
9662
- "kind": "javascript-module",
9663
- "path": "src/modeller/property-sidebar/effects/property-shadow.ts",
9664
- "declarations": [
9665
- {
9666
- "kind": "class",
9667
- "description": "컴포넌트의 그림자 속성을 편집하는 element\n\nExample:\n <property-shadow",
9668
- "name": "PropertyShadow",
9669
- "members": [
9613
+ "kind": "method",
9614
+ "name": "_onTabScrollNavRight"
9615
+ },
9670
9616
  {
9671
- "kind": "field",
9672
- "name": "value",
9673
- "type": {
9674
- "text": "Properties | undefined"
9675
- },
9676
- "attribute": "value"
9617
+ "kind": "method",
9618
+ "name": "_getValueFromEventTarget",
9619
+ "parameters": [
9620
+ {
9621
+ "name": "element",
9622
+ "type": {
9623
+ "text": "HTMLElement"
9624
+ }
9625
+ }
9626
+ ],
9627
+ "inheritedFrom": {
9628
+ "name": "AbstractProperty",
9629
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9630
+ }
9677
9631
  },
9678
9632
  {
9679
9633
  "kind": "method",
9680
- "name": "_onValueChange",
9634
+ "name": "_onAfterValueChange",
9681
9635
  "parameters": [
9682
9636
  {
9683
- "name": "e",
9637
+ "name": "key",
9684
9638
  "type": {
9685
- "text": "Event"
9639
+ "text": "string"
9640
+ }
9641
+ },
9642
+ {
9643
+ "name": "value",
9644
+ "type": {
9645
+ "text": "any"
9686
9646
  }
9687
9647
  }
9688
- ]
9648
+ ],
9649
+ "inheritedFrom": {
9650
+ "name": "AbstractProperty",
9651
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9652
+ }
9689
9653
  }
9690
9654
  ],
9691
9655
  "events": [
9692
9656
  {
9693
- "name": "change",
9657
+ "name": "property-change",
9694
9658
  "type": {
9695
9659
  "text": "CustomEvent"
9660
+ },
9661
+ "inheritedFrom": {
9662
+ "name": "AbstractProperty",
9663
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9696
9664
  }
9697
9665
  }
9698
9666
  ],
@@ -9703,80 +9671,75 @@
9703
9671
  "text": "Properties | undefined"
9704
9672
  },
9705
9673
  "fieldName": "value"
9674
+ },
9675
+ {
9676
+ "name": "scene",
9677
+ "type": {
9678
+ "text": "Scene | undefined"
9679
+ },
9680
+ "fieldName": "scene"
9681
+ }
9682
+ ],
9683
+ "mixins": [
9684
+ {
9685
+ "name": "ScopedElementsMixin",
9686
+ "package": "@open-wc/scoped-elements"
9706
9687
  }
9707
9688
  ],
9708
9689
  "superclass": {
9709
- "name": "LitElement",
9710
- "package": "lit"
9711
- },
9712
- "customElement": true
9690
+ "name": "AbstractProperty",
9691
+ "module": "/src/modeller/property-sidebar/abstract-property.js"
9692
+ }
9713
9693
  }
9714
9694
  ],
9715
9695
  "exports": [
9716
9696
  {
9717
9697
  "kind": "js",
9718
- "name": "PropertyShadow",
9698
+ "name": "PropertyDataBinding",
9719
9699
  "declaration": {
9720
- "name": "PropertyShadow",
9721
- "module": "src/modeller/property-sidebar/effects/property-shadow.ts"
9700
+ "name": "PropertyDataBinding",
9701
+ "module": "src/modeller/property-sidebar/data-binding/data-binding.ts"
9722
9702
  }
9723
9703
  }
9724
9704
  ]
9725
9705
  },
9726
9706
  {
9727
9707
  "kind": "javascript-module",
9728
- "path": "src/modeller/property-sidebar/effects/value-converter.ts",
9708
+ "path": "src/modeller/property-sidebar/effects/effects-shared-style.ts",
9729
9709
  "declarations": [
9730
9710
  {
9731
- "kind": "function",
9732
- "name": "convert",
9733
- "parameters": [
9734
- {
9735
- "name": "element",
9736
- "type": {
9737
- "text": "any"
9738
- }
9739
- }
9740
- ]
9711
+ "kind": "variable",
9712
+ "name": "EffectsSharedStyle",
9713
+ "default": "css` :host { display: grid; grid-template-columns: repeat(10, 1fr); grid-gap: 5px; grid-auto-rows: minmax(24px, auto); align-items: center; } * { align-self: stretch; } label { grid-column: span 3; text-align: right; text-transform: capitalize; align-self: center; } input, select, ox-input-angle, ox-input-color, [custom-editor] { grid-column: span 7; } input, select, ox-input-angle input, ox-input-color input, [custom-editor] input { border: var(--property-sidebar-fieldset-border); } ox-input-data { height: 300px; } input[type='checkbox'] { grid-column: 4 / 5; align-self: center; } label.checkbox-label { grid-column: span 6; text-align: left; } [fullwidth] { grid-column: 1 / -1; } `"
9741
9714
  }
9742
9715
  ],
9743
9716
  "exports": [
9744
9717
  {
9745
9718
  "kind": "js",
9746
- "name": "convert",
9719
+ "name": "EffectsSharedStyle",
9747
9720
  "declaration": {
9748
- "name": "convert",
9749
- "module": "src/modeller/property-sidebar/effects/value-converter.ts"
9721
+ "name": "EffectsSharedStyle",
9722
+ "module": "src/modeller/property-sidebar/effects/effects-shared-style.ts"
9750
9723
  }
9751
9724
  }
9752
9725
  ]
9753
9726
  },
9754
9727
  {
9755
9728
  "kind": "javascript-module",
9756
- "path": "src/modeller/property-sidebar/data-binding/data-binding-mapper.ts",
9729
+ "path": "src/modeller/property-sidebar/effects/effects.ts",
9757
9730
  "declarations": [
9758
9731
  {
9759
9732
  "kind": "class",
9760
- "description": "element for mapping data value editing\n\nExample:\n\n<data-binding-mapper mapping=${mapping}>\n</data-binding-mapper>",
9761
- "name": "DataBindingMapper",
9733
+ "description": "",
9734
+ "name": "PropertyEffects",
9762
9735
  "members": [
9763
9736
  {
9764
9737
  "kind": "field",
9765
- "name": "mapping",
9766
- "type": {
9767
- "text": "Mapping"
9768
- },
9769
- "default": "{ rule: 'value' }",
9770
- "attribute": "mapping"
9771
- },
9772
- {
9773
- "kind": "field",
9774
- "name": "rule",
9738
+ "name": "value",
9775
9739
  "type": {
9776
- "text": "Rule"
9740
+ "text": "Properties | undefined"
9777
9741
  },
9778
- "default": "{}",
9779
- "attribute": "rule"
9742
+ "attribute": "value"
9780
9743
  },
9781
9744
  {
9782
9745
  "kind": "field",
@@ -9788,251 +9751,336 @@
9788
9751
  },
9789
9752
  {
9790
9753
  "kind": "field",
9791
- "name": "_valueTypes",
9792
- "type": {
9793
- "text": "any"
9794
- },
9795
- "default": "{ play: 'boolean', hidden: 'boolean', started: 'boolean', rotation: 'number', value: 'number', fillStyle: 'color', strokeStyle: 'color', fontColor: 'color', data: 'object', source: 'attachment', location: 'object', dimension: 'object', text: 'string', ref: 'string' }"
9796
- },
9797
- {
9798
- "kind": "field",
9799
- "name": "_componentIds",
9754
+ "name": "selected",
9800
9755
  "type": {
9801
- "text": "{ value: string; description: string }[]"
9756
+ "text": "Component[]"
9802
9757
  },
9803
- "default": "[]"
9758
+ "default": "[]",
9759
+ "attribute": "selected"
9804
9760
  },
9805
9761
  {
9806
9762
  "kind": "field",
9807
- "name": "editor",
9808
- "type": {
9809
- "text": "HTMLInputElement"
9810
- }
9763
+ "name": "scopedElements",
9764
+ "static": true,
9765
+ "readonly": true
9811
9766
  },
9812
9767
  {
9813
- "kind": "field",
9814
- "name": "target",
9815
- "type": {
9816
- "text": "HTMLInputElement"
9817
- }
9768
+ "kind": "method",
9769
+ "name": "_onShadow3dChange",
9770
+ "privacy": "private",
9771
+ "parameters": [
9772
+ {
9773
+ "name": "key",
9774
+ "type": {
9775
+ "text": "'castShadow' | 'receiveShadow'"
9776
+ }
9777
+ },
9778
+ {
9779
+ "name": "e",
9780
+ "type": {
9781
+ "text": "Event"
9782
+ }
9783
+ }
9784
+ ],
9785
+ "description": "3D 그림자 토글 — material3d.castShadow / receiveShadow 만 갱신.\n\nmaterial3d 는 단일 객체 속성이므로 기존 material3d 전체를 보존한 채 해당\n키만 덮어써 dispatch 한다 ({ castShadow } 만 보내면 set() 의 top-level shallow\nmerge 로 material3d 전체가 사라짐). value-key 를 두지 않아 AbstractProperty\n의 제너릭 change 핸들러는 이 입력을 무시한다."
9818
9786
  },
9819
9787
  {
9820
9788
  "kind": "method",
9821
- "name": "_valuetype",
9789
+ "name": "_onValueChange",
9822
9790
  "parameters": [
9823
9791
  {
9824
- "name": "property",
9792
+ "name": "e",
9825
9793
  "type": {
9826
- "text": "string"
9794
+ "text": "Event"
9827
9795
  }
9828
9796
  }
9829
- ]
9830
- },
9831
- {
9832
- "kind": "field",
9833
- "name": "_keep_saved_rule_params",
9834
- "type": {
9835
- "text": "boolean"
9836
- },
9837
- "privacy": "private",
9838
- "default": "false"
9839
- },
9840
- {
9841
- "kind": "method",
9842
- "name": "_onChangedMapping"
9797
+ ],
9798
+ "inheritedFrom": {
9799
+ "name": "AbstractProperty",
9800
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9801
+ }
9843
9802
  },
9844
9803
  {
9845
9804
  "kind": "method",
9846
- "name": "_onChangeRule",
9805
+ "name": "_getValueFromEventTarget",
9847
9806
  "parameters": [
9848
9807
  {
9849
- "name": "e",
9808
+ "name": "element",
9850
9809
  "type": {
9851
- "text": "Event"
9810
+ "text": "HTMLElement"
9852
9811
  }
9853
9812
  }
9854
- ]
9813
+ ],
9814
+ "inheritedFrom": {
9815
+ "name": "AbstractProperty",
9816
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9817
+ }
9855
9818
  },
9856
9819
  {
9857
9820
  "kind": "method",
9858
- "name": "_onChange",
9821
+ "name": "_onAfterValueChange",
9859
9822
  "parameters": [
9860
9823
  {
9861
- "name": "e",
9824
+ "name": "key",
9862
9825
  "type": {
9863
- "text": "Event"
9826
+ "text": "string"
9827
+ }
9828
+ },
9829
+ {
9830
+ "name": "value",
9831
+ "type": {
9832
+ "text": "any"
9864
9833
  }
9865
9834
  }
9866
- ]
9835
+ ],
9836
+ "inheritedFrom": {
9837
+ "name": "AbstractProperty",
9838
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9839
+ }
9867
9840
  }
9868
9841
  ],
9869
9842
  "events": [
9870
9843
  {
9871
- "name": "value-change",
9844
+ "name": "property-change",
9872
9845
  "type": {
9873
9846
  "text": "CustomEvent"
9847
+ },
9848
+ "inheritedFrom": {
9849
+ "name": "AbstractProperty",
9850
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
9874
9851
  }
9875
9852
  }
9876
9853
  ],
9877
9854
  "attributes": [
9878
9855
  {
9879
- "name": "mapping",
9856
+ "name": "value",
9880
9857
  "type": {
9881
- "text": "Mapping"
9858
+ "text": "Properties | undefined"
9882
9859
  },
9883
- "default": "{ rule: 'value' }",
9884
- "fieldName": "mapping"
9860
+ "fieldName": "value"
9885
9861
  },
9886
9862
  {
9887
- "name": "rule",
9863
+ "name": "scene",
9888
9864
  "type": {
9889
- "text": "Rule"
9865
+ "text": "Scene | undefined"
9890
9866
  },
9891
- "default": "{}",
9892
- "fieldName": "rule"
9867
+ "fieldName": "scene"
9893
9868
  },
9894
9869
  {
9895
- "name": "properties",
9870
+ "name": "selected",
9896
9871
  "type": {
9897
- "text": "Properties[]"
9872
+ "text": "Component[]"
9898
9873
  },
9899
9874
  "default": "[]",
9900
- "fieldName": "properties"
9901
- },
9875
+ "fieldName": "selected"
9876
+ }
9877
+ ],
9878
+ "mixins": [
9902
9879
  {
9903
- "name": "scene",
9904
- "type": {
9905
- "text": "Scene | undefined"
9906
- },
9907
- "fieldName": "scene"
9880
+ "name": "ScopedElementsMixin",
9881
+ "package": "@open-wc/scoped-elements"
9908
9882
  }
9909
9883
  ],
9910
9884
  "superclass": {
9911
- "name": "LitElement",
9912
- "package": "lit"
9913
- },
9914
- "customElement": true
9885
+ "name": "AbstractProperty",
9886
+ "module": "/src/modeller/property-sidebar/abstract-property.js"
9887
+ }
9915
9888
  }
9916
9889
  ],
9917
9890
  "exports": [
9918
9891
  {
9919
9892
  "kind": "js",
9920
- "name": "DataBindingMapper",
9893
+ "name": "PropertyEffects",
9921
9894
  "declaration": {
9922
- "name": "DataBindingMapper",
9923
- "module": "src/modeller/property-sidebar/data-binding/data-binding-mapper.ts"
9895
+ "name": "PropertyEffects",
9896
+ "module": "src/modeller/property-sidebar/effects/effects.ts"
9924
9897
  }
9925
9898
  }
9926
9899
  ]
9927
9900
  },
9928
9901
  {
9929
9902
  "kind": "javascript-module",
9930
- "path": "src/modeller/property-sidebar/data-binding/data-binding-value-map.ts",
9903
+ "path": "src/modeller/property-sidebar/effects/event-handler-adapter.ts",
9931
9904
  "declarations": [
9932
9905
  {
9933
- "kind": "class",
9934
- "description": "",
9935
- "name": "DataBindingValueMap",
9936
- "members": [
9906
+ "kind": "function",
9907
+ "name": "eventHandlersToLegacyTap",
9908
+ "return": {
9909
+ "type": {
9910
+ "text": "LegacyTap"
9911
+ }
9912
+ },
9913
+ "parameters": [
9937
9914
  {
9938
- "kind": "method",
9939
- "name": "valueInputTemplate",
9940
- "parameters": [
9941
- {
9942
- "name": "value",
9943
- "optional": true,
9944
- "type": {
9945
- "text": "any"
9946
- }
9947
- }
9948
- ]
9915
+ "name": "handlers",
9916
+ "type": {
9917
+ "text": "EventHandler[] | undefined"
9918
+ }
9949
9919
  }
9950
9920
  ],
9951
- "superclass": {
9952
- "name": "OxInputValueMap",
9953
- "package": "@operato/input"
9921
+ "description": "trigger 가 click/tap 인 첫 핸들러를 legacy tap 객체로 변환."
9922
+ },
9923
+ {
9924
+ "kind": "function",
9925
+ "name": "applyLegacyTapToHandlers",
9926
+ "return": {
9927
+ "type": {
9928
+ "text": "EventHandler[]"
9929
+ }
9954
9930
  },
9955
- "tagName": "data-binding-value-map",
9956
- "customElement": true
9931
+ "parameters": [
9932
+ {
9933
+ "name": "handlers",
9934
+ "type": {
9935
+ "text": "EventHandler[] | undefined"
9936
+ }
9937
+ },
9938
+ {
9939
+ "name": "newTap",
9940
+ "type": {
9941
+ "text": "LegacyTap | undefined"
9942
+ }
9943
+ }
9944
+ ],
9945
+ "description": "기존 배열에서 click/tap 항목을 새 값으로 교체 (또는 push, 또는 제거).\n다른 trigger 항목은 그대로 보존."
9957
9946
  }
9958
9947
  ],
9959
9948
  "exports": [
9960
9949
  {
9961
9950
  "kind": "js",
9962
- "name": "DataBindingValueMap",
9951
+ "name": "eventHandlersToLegacyTap",
9963
9952
  "declaration": {
9964
- "name": "DataBindingValueMap",
9965
- "module": "src/modeller/property-sidebar/data-binding/data-binding-value-map.ts"
9953
+ "name": "eventHandlersToLegacyTap",
9954
+ "module": "src/modeller/property-sidebar/effects/event-handler-adapter.ts"
9966
9955
  }
9967
9956
  },
9968
9957
  {
9969
- "kind": "custom-element-definition",
9970
- "name": "data-binding-value-map",
9958
+ "kind": "js",
9959
+ "name": "applyLegacyTapToHandlers",
9971
9960
  "declaration": {
9972
- "name": "DataBindingValueMap",
9973
- "module": "src/modeller/property-sidebar/data-binding/data-binding-value-map.ts"
9961
+ "name": "applyLegacyTapToHandlers",
9962
+ "module": "src/modeller/property-sidebar/effects/event-handler-adapter.ts"
9974
9963
  }
9975
9964
  }
9976
9965
  ]
9977
9966
  },
9978
9967
  {
9979
9968
  "kind": "javascript-module",
9980
- "path": "src/modeller/property-sidebar/data-binding/data-binding-value-range.ts",
9969
+ "path": "src/modeller/property-sidebar/effects/property-event-hover.ts",
9981
9970
  "declarations": [
9982
9971
  {
9983
9972
  "kind": "class",
9984
9973
  "description": "",
9985
- "name": "DataBindingValueRange",
9974
+ "name": "PropertyEventHover",
9986
9975
  "members": [
9976
+ {
9977
+ "kind": "field",
9978
+ "name": "value",
9979
+ "type": {
9980
+ "text": "Properties | undefined"
9981
+ },
9982
+ "attribute": "value"
9983
+ },
9984
+ {
9985
+ "kind": "field",
9986
+ "name": "scene",
9987
+ "type": {
9988
+ "text": "Scene | undefined"
9989
+ },
9990
+ "attribute": "scene"
9991
+ },
9987
9992
  {
9988
9993
  "kind": "method",
9989
- "name": "valueInputTemplate",
9994
+ "name": "_getPlaceHoder",
9990
9995
  "parameters": [
9991
9996
  {
9992
- "name": "value",
9993
- "optional": true,
9997
+ "name": "action",
9994
9998
  "type": {
9995
- "text": "any"
9999
+ "text": "string"
10000
+ }
10001
+ }
10002
+ ]
10003
+ },
10004
+ {
10005
+ "kind": "method",
10006
+ "name": "_getTargetList",
10007
+ "return": {
10008
+ "type": {
10009
+ "text": "{ value: string; description: string }[]"
10010
+ }
10011
+ },
10012
+ "parameters": [
10013
+ {
10014
+ "name": "action",
10015
+ "type": {
10016
+ "text": "string"
10017
+ }
10018
+ }
10019
+ ]
10020
+ },
10021
+ {
10022
+ "kind": "method",
10023
+ "name": "_onValueChange",
10024
+ "parameters": [
10025
+ {
10026
+ "name": "e",
10027
+ "type": {
10028
+ "text": "Event"
9996
10029
  }
9997
10030
  }
9998
10031
  ]
9999
10032
  }
10000
10033
  ],
10034
+ "events": [
10035
+ {
10036
+ "name": "change",
10037
+ "type": {
10038
+ "text": "CustomEvent"
10039
+ }
10040
+ }
10041
+ ],
10042
+ "attributes": [
10043
+ {
10044
+ "name": "value",
10045
+ "type": {
10046
+ "text": "Properties | undefined"
10047
+ },
10048
+ "fieldName": "value"
10049
+ },
10050
+ {
10051
+ "name": "scene",
10052
+ "type": {
10053
+ "text": "Scene | undefined"
10054
+ },
10055
+ "fieldName": "scene"
10056
+ }
10057
+ ],
10001
10058
  "superclass": {
10002
- "name": "OxInputValueRange",
10003
- "package": "@operato/input"
10059
+ "name": "LitElement",
10060
+ "package": "lit"
10004
10061
  },
10005
- "tagName": "data-binding-value-range",
10006
10062
  "customElement": true
10007
10063
  }
10008
10064
  ],
10009
10065
  "exports": [
10010
10066
  {
10011
10067
  "kind": "js",
10012
- "name": "DataBindingValueRange",
10013
- "declaration": {
10014
- "name": "DataBindingValueRange",
10015
- "module": "src/modeller/property-sidebar/data-binding/data-binding-value-range.ts"
10016
- }
10017
- },
10018
- {
10019
- "kind": "custom-element-definition",
10020
- "name": "data-binding-value-range",
10068
+ "name": "PropertyEventHover",
10021
10069
  "declaration": {
10022
- "name": "DataBindingValueRange",
10023
- "module": "src/modeller/property-sidebar/data-binding/data-binding-value-range.ts"
10070
+ "name": "PropertyEventHover",
10071
+ "module": "src/modeller/property-sidebar/effects/property-event-hover.ts"
10024
10072
  }
10025
10073
  }
10026
10074
  ]
10027
10075
  },
10028
10076
  {
10029
10077
  "kind": "javascript-module",
10030
- "path": "src/modeller/property-sidebar/data-binding/data-binding.ts",
10078
+ "path": "src/modeller/property-sidebar/effects/property-event-tap.ts",
10031
10079
  "declarations": [
10032
10080
  {
10033
10081
  "kind": "class",
10034
10082
  "description": "",
10035
- "name": "PropertyDataBinding",
10083
+ "name": "PropertyEventTap",
10036
10084
  "members": [
10037
10085
  {
10038
10086
  "kind": "field",
@@ -10052,87 +10100,24 @@
10052
10100
  },
10053
10101
  {
10054
10102
  "kind": "field",
10055
- "name": "mappingIndex",
10056
- "type": {
10057
- "text": "number"
10058
- },
10059
- "default": "0"
10060
- },
10061
- {
10062
- "kind": "field",
10063
- "name": "_afterRender",
10064
- "type": {
10065
- "text": "Function | null | undefined"
10066
- }
10067
- },
10068
- {
10069
- "kind": "field",
10070
- "name": "_dataExpanded",
10103
+ "name": "targetList",
10071
10104
  "type": {
10072
- "text": "boolean"
10105
+ "text": "{ value: string; description: string }[]"
10073
10106
  },
10074
- "default": "true"
10075
- },
10076
- {
10077
- "kind": "field",
10078
- "name": "tabs",
10079
- "type": {
10080
- "text": "HTMLElement"
10081
- }
10082
- },
10083
- {
10084
- "kind": "field",
10085
- "name": "tabNavLeftButton",
10086
- "type": {
10087
- "text": "HTMLElement"
10088
- }
10089
- },
10090
- {
10091
- "kind": "field",
10092
- "name": "tabNavRightButton",
10093
- "type": {
10094
- "text": "HTMLElement"
10095
- }
10096
- },
10097
- {
10098
- "kind": "field",
10099
- "name": "mappings",
10100
- "readonly": true
10101
- },
10102
- {
10103
- "kind": "field",
10104
- "name": "scopedElements",
10105
- "static": true,
10106
- "readonly": true
10107
+ "default": "[]"
10107
10108
  },
10108
10109
  {
10109
10110
  "kind": "method",
10110
- "name": "_setMappingIndex",
10111
+ "name": "_getPlaceHoder",
10111
10112
  "parameters": [
10112
10113
  {
10113
- "name": "idx",
10114
+ "name": "action",
10114
10115
  "type": {
10115
- "text": "number"
10116
+ "text": "string"
10116
10117
  }
10117
10118
  }
10118
10119
  ]
10119
10120
  },
10120
- {
10121
- "kind": "method",
10122
- "name": "_clearDataBindingMapper"
10123
- },
10124
- {
10125
- "kind": "method",
10126
- "name": "_copyDataBindingMapper"
10127
- },
10128
- {
10129
- "kind": "method",
10130
- "name": "_pasteDataBindingMapper"
10131
- },
10132
- {
10133
- "kind": "method",
10134
- "name": "_onValueChanged"
10135
- },
10136
10121
  {
10137
10122
  "kind": "method",
10138
10123
  "name": "_onValueChange",
@@ -10143,89 +10128,178 @@
10143
10128
  "text": "Event"
10144
10129
  }
10145
10130
  }
10146
- ],
10147
- "inheritedFrom": {
10148
- "name": "AbstractProperty",
10149
- "module": "src/modeller/property-sidebar/abstract-property.ts"
10131
+ ]
10132
+ }
10133
+ ],
10134
+ "events": [
10135
+ {
10136
+ "name": "change",
10137
+ "type": {
10138
+ "text": "CustomEvent"
10150
10139
  }
10140
+ }
10141
+ ],
10142
+ "attributes": [
10143
+ {
10144
+ "name": "value",
10145
+ "type": {
10146
+ "text": "Properties | undefined"
10147
+ },
10148
+ "fieldName": "value"
10149
+ },
10150
+ {
10151
+ "name": "scene",
10152
+ "type": {
10153
+ "text": "Scene | undefined"
10154
+ },
10155
+ "fieldName": "scene"
10156
+ }
10157
+ ],
10158
+ "superclass": {
10159
+ "name": "LitElement",
10160
+ "package": "lit"
10161
+ },
10162
+ "customElement": true
10163
+ }
10164
+ ],
10165
+ "exports": [
10166
+ {
10167
+ "kind": "js",
10168
+ "name": "PropertyEventTap",
10169
+ "declaration": {
10170
+ "name": "PropertyEventTap",
10171
+ "module": "src/modeller/property-sidebar/effects/property-event-tap.ts"
10172
+ }
10173
+ }
10174
+ ]
10175
+ },
10176
+ {
10177
+ "kind": "javascript-module",
10178
+ "path": "src/modeller/property-sidebar/effects/property-event.ts",
10179
+ "declarations": [
10180
+ {
10181
+ "kind": "class",
10182
+ "description": "things-scene v10 의 신규 모델 (`state.eventHandlers: EventHandler[]`) 위에서\n기존 단일-tap UI 를 그대로 동작시키는 어댑터.\n\nread : eventHandlers 배열에서 trigger='click'/'tap' 인 첫 항목 → legacy tap\n 객체로 변환 후 PropertyEventTap 에 전달.\nwrite: PropertyEventTap 이 emit 한 legacy tap 변경 → click 항목을 update/push\n 한 새 배열로 외부에 emit. 다른 trigger 의 핸들러는 보존.",
10183
+ "name": "PropertyEvent",
10184
+ "members": [
10185
+ {
10186
+ "kind": "field",
10187
+ "name": "value",
10188
+ "type": {
10189
+ "text": "EventHandler[] | undefined"
10190
+ },
10191
+ "attribute": "value"
10151
10192
  },
10152
10193
  {
10153
10194
  "kind": "field",
10154
- "name": "tabContainer",
10195
+ "name": "scene",
10196
+ "type": {
10197
+ "text": "Scene | undefined"
10198
+ },
10199
+ "attribute": "scene"
10200
+ },
10201
+ {
10202
+ "kind": "field",
10203
+ "name": "scopedElements",
10204
+ "static": true,
10155
10205
  "readonly": true
10156
10206
  },
10157
10207
  {
10158
10208
  "kind": "method",
10159
- "name": "_onMappingChanged",
10209
+ "name": "_onValueChange",
10160
10210
  "parameters": [
10161
10211
  {
10162
10212
  "name": "e",
10163
10213
  "type": {
10164
- "text": "CustomEvent"
10214
+ "text": "Event"
10165
10215
  }
10166
10216
  }
10167
10217
  ]
10168
- },
10218
+ }
10219
+ ],
10220
+ "events": [
10169
10221
  {
10170
- "kind": "method",
10171
- "name": "_onTabScroll"
10172
- },
10222
+ "name": "change",
10223
+ "type": {
10224
+ "text": "CustomEvent"
10225
+ }
10226
+ }
10227
+ ],
10228
+ "attributes": [
10173
10229
  {
10174
- "kind": "method",
10175
- "name": "_onTabScrollNavLeft"
10230
+ "name": "value",
10231
+ "type": {
10232
+ "text": "EventHandler[] | undefined"
10233
+ },
10234
+ "fieldName": "value"
10176
10235
  },
10177
10236
  {
10178
- "kind": "method",
10179
- "name": "_onTabScrollNavRight"
10180
- },
10237
+ "name": "scene",
10238
+ "type": {
10239
+ "text": "Scene | undefined"
10240
+ },
10241
+ "fieldName": "scene"
10242
+ }
10243
+ ],
10244
+ "mixins": [
10181
10245
  {
10182
- "kind": "method",
10183
- "name": "_getValueFromEventTarget",
10184
- "parameters": [
10185
- {
10186
- "name": "element",
10187
- "type": {
10188
- "text": "HTMLElement"
10189
- }
10190
- }
10191
- ],
10192
- "inheritedFrom": {
10193
- "name": "AbstractProperty",
10194
- "module": "src/modeller/property-sidebar/abstract-property.ts"
10195
- }
10246
+ "name": "ScopedElementsMixin",
10247
+ "package": "@open-wc/scoped-elements"
10248
+ }
10249
+ ],
10250
+ "superclass": {
10251
+ "name": "LitElement",
10252
+ "package": "lit"
10253
+ },
10254
+ "customElement": true
10255
+ }
10256
+ ],
10257
+ "exports": [
10258
+ {
10259
+ "kind": "js",
10260
+ "name": "PropertyEvent",
10261
+ "declaration": {
10262
+ "name": "PropertyEvent",
10263
+ "module": "src/modeller/property-sidebar/effects/property-event.ts"
10264
+ }
10265
+ }
10266
+ ]
10267
+ },
10268
+ {
10269
+ "kind": "javascript-module",
10270
+ "path": "src/modeller/property-sidebar/effects/property-shadow.ts",
10271
+ "declarations": [
10272
+ {
10273
+ "kind": "class",
10274
+ "description": "컴포넌트의 그림자 속성을 편집하는 element\n\nExample:\n <property-shadow",
10275
+ "name": "PropertyShadow",
10276
+ "members": [
10277
+ {
10278
+ "kind": "field",
10279
+ "name": "value",
10280
+ "type": {
10281
+ "text": "Properties | undefined"
10282
+ },
10283
+ "attribute": "value"
10196
10284
  },
10197
10285
  {
10198
10286
  "kind": "method",
10199
- "name": "_onAfterValueChange",
10287
+ "name": "_onValueChange",
10200
10288
  "parameters": [
10201
10289
  {
10202
- "name": "key",
10203
- "type": {
10204
- "text": "string"
10205
- }
10206
- },
10207
- {
10208
- "name": "value",
10290
+ "name": "e",
10209
10291
  "type": {
10210
- "text": "any"
10292
+ "text": "Event"
10211
10293
  }
10212
10294
  }
10213
- ],
10214
- "inheritedFrom": {
10215
- "name": "AbstractProperty",
10216
- "module": "src/modeller/property-sidebar/abstract-property.ts"
10217
- }
10295
+ ]
10218
10296
  }
10219
10297
  ],
10220
10298
  "events": [
10221
10299
  {
10222
- "name": "property-change",
10300
+ "name": "change",
10223
10301
  "type": {
10224
10302
  "text": "CustomEvent"
10225
- },
10226
- "inheritedFrom": {
10227
- "name": "AbstractProperty",
10228
- "module": "src/modeller/property-sidebar/abstract-property.ts"
10229
10303
  }
10230
10304
  }
10231
10305
  ],
@@ -10236,34 +10310,50 @@
10236
10310
  "text": "Properties | undefined"
10237
10311
  },
10238
10312
  "fieldName": "value"
10239
- },
10240
- {
10241
- "name": "scene",
10242
- "type": {
10243
- "text": "Scene | undefined"
10244
- },
10245
- "fieldName": "scene"
10246
- }
10247
- ],
10248
- "mixins": [
10249
- {
10250
- "name": "ScopedElementsMixin",
10251
- "package": "@open-wc/scoped-elements"
10252
10313
  }
10253
10314
  ],
10254
10315
  "superclass": {
10255
- "name": "AbstractProperty",
10256
- "module": "/src/modeller/property-sidebar/abstract-property.js"
10316
+ "name": "LitElement",
10317
+ "package": "lit"
10318
+ },
10319
+ "customElement": true
10320
+ }
10321
+ ],
10322
+ "exports": [
10323
+ {
10324
+ "kind": "js",
10325
+ "name": "PropertyShadow",
10326
+ "declaration": {
10327
+ "name": "PropertyShadow",
10328
+ "module": "src/modeller/property-sidebar/effects/property-shadow.ts"
10257
10329
  }
10258
10330
  }
10331
+ ]
10332
+ },
10333
+ {
10334
+ "kind": "javascript-module",
10335
+ "path": "src/modeller/property-sidebar/effects/value-converter.ts",
10336
+ "declarations": [
10337
+ {
10338
+ "kind": "function",
10339
+ "name": "convert",
10340
+ "parameters": [
10341
+ {
10342
+ "name": "element",
10343
+ "type": {
10344
+ "text": "any"
10345
+ }
10346
+ }
10347
+ ]
10348
+ }
10259
10349
  ],
10260
10350
  "exports": [
10261
10351
  {
10262
10352
  "kind": "js",
10263
- "name": "PropertyDataBinding",
10353
+ "name": "convert",
10264
10354
  "declaration": {
10265
- "name": "PropertyDataBinding",
10266
- "module": "src/modeller/property-sidebar/data-binding/data-binding.ts"
10355
+ "name": "convert",
10356
+ "module": "src/modeller/property-sidebar/effects/value-converter.ts"
10267
10357
  }
10268
10358
  }
10269
10359
  ]
@@ -11166,297 +11256,185 @@
11166
11256
  },
11167
11257
  {
11168
11258
  "kind": "javascript-module",
11169
- "path": "src/modeller/property-sidebar/shapes/box-padding-editor-styles.ts",
11170
- "declarations": [
11171
- {
11172
- "kind": "variable",
11173
- "name": "BoxPaddingEditorStyles",
11174
- "default": "css` .box-padding { width: 100%; } .box-padding td { background: var(--url-icon-properties-padding) 50% 0 no-repeat; } .box-padding tr:nth-child(1), .box-padding tr:nth-child(3) { height: 20px; } .box-padding tr td:nth-child(1), .box-padding tr td:nth-child(3) { width: 18px; } .box-padding .slide1 { background-position: 0 0; } .box-padding .slide2 { background-position: 50% -40px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide3 { background-position: 100% -440px; } .box-padding .slide4 { background-position: 0 -360px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide5 { background: none; text-align: center; } .box-padding .slide6 { background-position: 100% -160px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide7 { background-position: 0 100%; } .box-padding .slide8 { background-position: 50% -320px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide9 { background-position: 0 0px; } .box-padding input { background-color: transparent; width: 35px; margin: 0px; padding: 0px; clear: both; float: initial; border: 1px solid #fff; border-width: 0 0 1px 0; text-align: right; font-size: 14px; } .slide5 input:nth-child(1), .slide5 input:nth-child(4) { display: block; margin: auto; } .slide5 input:nth-child(2) { float: left; } .slide5 input:nth-child(3) { float: right; margin-top: -25px; } .slide5 input:nth-child(4) { margin-top: -5px; } `"
11175
- }
11176
- ],
11177
- "exports": [
11178
- {
11179
- "kind": "js",
11180
- "name": "BoxPaddingEditorStyles",
11181
- "declaration": {
11182
- "name": "BoxPaddingEditorStyles",
11183
- "module": "src/modeller/property-sidebar/shapes/box-padding-editor-styles.ts"
11184
- }
11185
- }
11186
- ]
11187
- },
11188
- {
11189
- "kind": "javascript-module",
11190
- "path": "src/modeller/property-sidebar/shapes/ox-input-entity-id.ts",
11259
+ "path": "src/modeller/property-sidebar/specifics/parent-object.ts",
11191
11260
  "declarations": [
11192
11261
  {
11193
- "kind": "class",
11194
- "description": "컴포넌트 ID 입력기 — 자유 입력 + 타입별 백엔드(MCS) 검색 선택을 함께 제공.\n\n- 기존처럼 자유롭게 텍스트로 ID 를 입력할 수 있다 (commit = blur/Enter).\n- input 에 *포커스가 가면* 아래로 검색 드롭다운이 펼쳐진다. `entityType`\n (컴포넌트 타입) 으로 MCS 에 정의된 ID 후보를 조회한다.\n - machine 타입 → 머신 id 가 1레벨 평면으로 (선택 가능)\n - unit 타입 → machine 이 그룹 헤더, 그 아래 unit id 가 자식 (선택 가능).\n 컴포넌트가 부모 machine 을 알면(`machine` prop) 그 머신으로 좁혀 조회.\n\nvalue-key=\"id\" 와 함께 property-grid 안에 두면, 이 host 가 `change`(bubbles+\ncomposed) 를 발행하므로 AbstractProperty 제너릭 핸들러가 `element.value` 를\n읽어 property-change 로 전파한다.\n\n등록: 패널 자식 커스텀 엘리먼트 컨벤션에 따라 전역 `@customElement` 가 아니라\n부모 패널(PropertyShapes)의 `scopedElements` 로 등록한다 (@open-wc/scoped-elements).",
11195
- "name": "OxInputEntityId",
11196
- "members": [
11197
- {
11198
- "kind": "field",
11199
- "name": "value",
11200
- "type": {
11201
- "text": "string"
11202
- },
11203
- "default": "''",
11204
- "description": "현재 ID 값.",
11205
- "attribute": "value"
11206
- },
11207
- {
11208
- "kind": "field",
11209
- "name": "entityType",
11210
- "type": {
11211
- "text": "string"
11212
- },
11213
- "default": "''",
11214
- "description": "검색 조건 — 선택된 컴포넌트 타입 (예: 'STOCKER', 'AGV', 'Port').",
11215
- "attribute": "entityType"
11216
- },
11217
- {
11218
- "kind": "field",
11219
- "name": "machine",
11220
- "type": {
11221
- "text": "string"
11222
- },
11223
- "default": "''",
11224
- "description": "검색 조건 — 부모 machine id (unit 컴포넌트가 소속 machine 을 알 때).",
11225
- "attribute": "machine"
11226
- },
11227
- {
11228
- "kind": "field",
11229
- "name": "requireMachine",
11230
- "type": {
11231
- "text": "boolean"
11232
- },
11233
- "default": "false",
11234
- "description": "machine 필수 타입(예: Port) — machine 없으면 조회하지 않는다 (후보 과다 방지).",
11235
- "attribute": "requireMachine"
11236
- },
11237
- {
11238
- "kind": "field",
11239
- "name": "localItems",
11240
- "type": {
11241
- "text": "string[] | null"
11242
- },
11243
- "default": "null",
11244
- "description": "백엔드 조회 대신 사용할 로컬 후보 리스트 (예: parentObject — 씬의 머신들). null 이면 백엔드 조회.",
11245
- "attribute": "localItems"
11246
- },
11247
- {
11248
- "kind": "field",
11249
- "name": "placeholder",
11250
- "type": {
11251
- "text": "string"
11252
- },
11253
- "default": "''",
11254
- "attribute": "placeholder"
11255
- },
11256
- {
11257
- "kind": "field",
11258
- "name": "_open",
11259
- "type": {
11260
- "text": "boolean"
11261
- },
11262
- "privacy": "private",
11263
- "default": "false"
11264
- },
11265
- {
11266
- "kind": "field",
11267
- "name": "_all",
11268
- "type": {
11269
- "text": "string[]"
11270
- },
11271
- "privacy": "private",
11272
- "default": "[]",
11273
- "description": "서버에서 받은 전체 후보 리스트 (포커스 시 1회 조회, 키워드 미적용)."
11274
- },
11262
+ "kind": "function",
11263
+ "name": "hasParentObject",
11264
+ "return": {
11265
+ "type": {
11266
+ "text": "boolean"
11267
+ }
11268
+ },
11269
+ "parameters": [
11275
11270
  {
11276
- "kind": "field",
11277
- "name": "_loading",
11271
+ "name": "target",
11278
11272
  "type": {
11279
- "text": "boolean"
11280
- },
11281
- "privacy": "private",
11282
- "default": "false"
11283
- },
11273
+ "text": "any"
11274
+ }
11275
+ }
11276
+ ],
11277
+ "description": "대상이 ParentObjectMixin(= parentObjectTypes capability) 을 가졌는지."
11278
+ },
11279
+ {
11280
+ "kind": "function",
11281
+ "name": "parentObjectForTemplate",
11282
+ "return": {
11283
+ "type": {
11284
+ "text": "{ has: boolean; items: string[] }"
11285
+ }
11286
+ },
11287
+ "parameters": [
11284
11288
  {
11285
- "kind": "field",
11286
- "name": "_needMachine",
11289
+ "name": "template",
11287
11290
  "type": {
11288
- "text": "boolean"
11289
- },
11290
- "privacy": "private",
11291
- "default": "false",
11292
- "description": "machine 필수인데 machine 미지정이라 조회를 보류한 상태."
11291
+ "text": "any"
11292
+ }
11293
11293
  },
11294
11294
  {
11295
- "kind": "field",
11296
- "name": "_activeIndex",
11295
+ "name": "root",
11297
11296
  "type": {
11298
- "text": "number"
11299
- },
11300
- "privacy": "private",
11301
- "default": "-1",
11302
- "description": "선택 가능 항목 기준 active index."
11303
- },
11297
+ "text": "any"
11298
+ }
11299
+ }
11300
+ ],
11301
+ "description": "template(모델)의 타입으로부터 parentObject 지원 여부 + 후보 리스트 계산 (bulk-paste 용).\ntemplate 은 라이브 컴포넌트가 아니라 클립보드 모델이므로, 타입 클래스의 임시 인스턴스로\nparentObjectTypes(클래스 상수 capability)를 읽은 뒤 씬(root)에서 후보를 수집한다."
11302
+ },
11303
+ {
11304
+ "kind": "function",
11305
+ "name": "collectParentObjectItems",
11306
+ "return": {
11307
+ "type": {
11308
+ "text": "string[]"
11309
+ }
11310
+ },
11311
+ "parameters": [
11304
11312
  {
11305
- "kind": "field",
11306
- "name": "_input",
11313
+ "name": "parentObjectTypes",
11307
11314
  "type": {
11308
- "text": "HTMLInputElement"
11315
+ "text": "string[] | undefined"
11309
11316
  },
11310
- "privacy": "private"
11317
+ "description": "대상 컴포넌트가 부모로 삼을 수 있는 타입들 (빈 배열이면 isMcsMachine 폴백)."
11311
11318
  },
11312
11319
  {
11313
- "kind": "field",
11314
- "name": "_blurTimer",
11320
+ "name": "root",
11315
11321
  "type": {
11316
- "text": "ReturnType<typeof setTimeout> | undefined"
11322
+ "text": "any"
11317
11323
  },
11318
- "privacy": "private"
11324
+ "description": "씬 루트 (여기서부터 재귀 수집)."
11319
11325
  },
11320
11326
  {
11321
- "kind": "field",
11322
- "name": "_loadSeq",
11327
+ "name": "opts",
11328
+ "optional": true,
11323
11329
  "type": {
11324
- "text": "number"
11325
- },
11326
- "privacy": "private",
11327
- "default": "0"
11330
+ "text": "{ exclude?: any; knownParentId?: string }"
11331
+ }
11332
+ },
11333
+ {
11334
+ "description": "후보에서 제외할 컴포넌트 (자기 자신 등).",
11335
+ "name": "opts.exclude"
11328
11336
  },
11337
+ {
11338
+ "description": "이미 아는 부모 id — 있으면 후보 맨 앞으로.",
11339
+ "name": "opts.knownParentId"
11340
+ }
11341
+ ],
11342
+ "description": "parentObject 후보 id 리스트."
11343
+ }
11344
+ ],
11345
+ "exports": [
11346
+ {
11347
+ "kind": "js",
11348
+ "name": "hasParentObject",
11349
+ "declaration": {
11350
+ "name": "hasParentObject",
11351
+ "module": "src/modeller/property-sidebar/specifics/parent-object.ts"
11352
+ }
11353
+ },
11354
+ {
11355
+ "kind": "js",
11356
+ "name": "parentObjectForTemplate",
11357
+ "declaration": {
11358
+ "name": "parentObjectForTemplate",
11359
+ "module": "src/modeller/property-sidebar/specifics/parent-object.ts"
11360
+ }
11361
+ },
11362
+ {
11363
+ "kind": "js",
11364
+ "name": "collectParentObjectItems",
11365
+ "declaration": {
11366
+ "name": "collectParentObjectItems",
11367
+ "module": "src/modeller/property-sidebar/specifics/parent-object.ts"
11368
+ }
11369
+ }
11370
+ ]
11371
+ },
11372
+ {
11373
+ "kind": "javascript-module",
11374
+ "path": "src/modeller/property-sidebar/specifics/specific-properties-builder.ts",
11375
+ "declarations": [
11376
+ {
11377
+ "kind": "class",
11378
+ "description": "",
11379
+ "name": "SpecificPropertiesBuilder",
11380
+ "members": [
11329
11381
  {
11330
11382
  "kind": "field",
11331
- "name": "_lastEmitted",
11383
+ "name": "value",
11332
11384
  "type": {
11333
- "text": "string | undefined"
11385
+ "text": "any"
11334
11386
  },
11335
- "privacy": "private",
11336
- "description": "마지막으로 발행한 값 — 같은 값 재발행(undo 중복) 방지."
11387
+ "attribute": "value"
11337
11388
  },
11338
11389
  {
11339
11390
  "kind": "field",
11340
- "name": "_items",
11391
+ "name": "props",
11341
11392
  "type": {
11342
- "text": "string[]"
11393
+ "text": "any[]"
11343
11394
  },
11344
- "privacy": "private",
11345
- "description": "드롭다운 표시 항목 — 입력값(초기값 포함)으로 풀텍스트 로컬 필터.\n단, 매치가 0이면 전체 후보로 fallback (막다른 \"결과 없음\" 방지 — 예: committed\nid 가 후보 형식과 달라 안 맞는 경우). 서버 재조회 없음.",
11346
- "readonly": true
11395
+ "default": "[]",
11396
+ "attribute": "props"
11347
11397
  },
11348
11398
  {
11349
11399
  "kind": "field",
11350
- "name": "_selectableIds",
11400
+ "name": "propertyEditor",
11351
11401
  "type": {
11352
- "text": "string[]"
11402
+ "text": "any"
11353
11403
  },
11354
- "privacy": "private",
11355
- "description": "드롭다운에서 선택 가능한 id 들 (표시 순서).",
11356
- "readonly": true
11357
- },
11358
- {
11359
- "kind": "method",
11360
- "name": "_renderDropdown",
11361
- "privacy": "private"
11362
- },
11363
- {
11364
- "kind": "method",
11365
- "name": "_onFocus",
11366
- "privacy": "private"
11367
- },
11368
- {
11369
- "kind": "method",
11370
- "name": "_onBlur",
11371
- "privacy": "private"
11404
+ "attribute": "propertyEditor"
11372
11405
  },
11373
11406
  {
11374
11407
  "kind": "method",
11375
- "name": "_onInput",
11376
- "privacy": "private",
11408
+ "name": "_onPropsChanged",
11377
11409
  "parameters": [
11378
11410
  {
11379
- "name": "e",
11411
+ "name": "props",
11380
11412
  "type": {
11381
- "text": "Event"
11413
+ "text": "any[]"
11382
11414
  }
11383
11415
  }
11384
11416
  ]
11385
11417
  },
11386
11418
  {
11387
11419
  "kind": "method",
11388
- "name": "_onInputCommit",
11389
- "privacy": "private",
11390
- "parameters": [
11391
- {
11392
- "name": "e",
11393
- "type": {
11394
- "text": "Event"
11395
- }
11396
- }
11397
- ],
11398
- "description": "자유 입력 commit (blur/Enter 의 native change) — 기존 free-text 동작 보존."
11399
- },
11400
- {
11401
- "kind": "method",
11402
- "name": "_onKeydown",
11403
- "privacy": "private",
11404
- "parameters": [
11405
- {
11406
- "name": "e",
11407
- "type": {
11408
- "text": "KeyboardEvent"
11409
- }
11410
- }
11411
- ]
11420
+ "name": "_setValues"
11412
11421
  },
11413
11422
  {
11414
11423
  "kind": "method",
11415
- "name": "_select",
11416
- "privacy": "private",
11424
+ "name": "_onValueChanged",
11417
11425
  "parameters": [
11418
- {
11419
- "name": "id",
11420
- "type": {
11421
- "text": "string"
11422
- }
11423
- },
11424
11426
  {
11425
11427
  "name": "e",
11426
11428
  "type": {
11427
- "text": "MouseEvent"
11428
- }
11429
- }
11430
- ]
11431
- },
11432
- {
11433
- "kind": "method",
11434
- "name": "_commitValue",
11435
- "privacy": "private",
11436
- "parameters": [
11437
- {
11438
- "name": "id",
11439
- "type": {
11440
- "text": "string"
11429
+ "text": "Event"
11441
11430
  }
11442
11431
  }
11443
11432
  ]
11444
- },
11445
- {
11446
- "kind": "method",
11447
- "name": "_emitChange",
11448
- "privacy": "private"
11449
- },
11450
- {
11451
- "kind": "method",
11452
- "name": "_load",
11453
- "privacy": "private",
11454
- "description": "후보 전체를 1회 조회 (포커스 시). keyword 는 보내지 않으며, 표시 필터는 _items\n게터가 로컬에서 처리한다. entityType(+unit 이면 machine) 만 서버로 보낸다."
11455
11433
  }
11456
11434
  ],
11457
11435
  "events": [
11458
11436
  {
11459
- "name": "change",
11437
+ "name": "property-change",
11460
11438
  "type": {
11461
11439
  "text": "CustomEvent"
11462
11440
  }
@@ -11466,55 +11444,24 @@
11466
11444
  {
11467
11445
  "name": "value",
11468
11446
  "type": {
11469
- "text": "string"
11447
+ "text": "any"
11470
11448
  },
11471
- "default": "''",
11472
- "description": "현재 ID 값.",
11473
11449
  "fieldName": "value"
11474
11450
  },
11475
11451
  {
11476
- "name": "entityType",
11477
- "type": {
11478
- "text": "string"
11479
- },
11480
- "default": "''",
11481
- "description": "검색 조건 — 선택된 컴포넌트 타입 (예: 'STOCKER', 'AGV', 'Port').",
11482
- "fieldName": "entityType"
11483
- },
11484
- {
11485
- "name": "machine",
11486
- "type": {
11487
- "text": "string"
11488
- },
11489
- "default": "''",
11490
- "description": "검색 조건 — 부모 machine id (unit 컴포넌트가 소속 machine 을 알 때).",
11491
- "fieldName": "machine"
11492
- },
11493
- {
11494
- "name": "requireMachine",
11495
- "type": {
11496
- "text": "boolean"
11497
- },
11498
- "default": "false",
11499
- "description": "machine 필수 타입(예: Port) — machine 없으면 조회하지 않는다 (후보 과다 방지).",
11500
- "fieldName": "requireMachine"
11501
- },
11502
- {
11503
- "name": "localItems",
11452
+ "name": "props",
11504
11453
  "type": {
11505
- "text": "string[] | null"
11454
+ "text": "any[]"
11506
11455
  },
11507
- "default": "null",
11508
- "description": "백엔드 조회 대신 사용할 로컬 후보 리스트 (예: parentObject — 씬의 머신들). null 이면 백엔드 조회.",
11509
- "fieldName": "localItems"
11456
+ "default": "[]",
11457
+ "fieldName": "props"
11510
11458
  },
11511
11459
  {
11512
- "name": "placeholder",
11460
+ "name": "propertyEditor",
11513
11461
  "type": {
11514
- "text": "string"
11462
+ "text": "any"
11515
11463
  },
11516
- "default": "''",
11517
- "fieldName": "placeholder"
11464
+ "fieldName": "propertyEditor"
11518
11465
  }
11519
11466
  ],
11520
11467
  "superclass": {
@@ -11527,74 +11474,109 @@
11527
11474
  "exports": [
11528
11475
  {
11529
11476
  "kind": "js",
11530
- "name": "OxInputEntityId",
11477
+ "name": "SpecificPropertiesBuilder",
11531
11478
  "declaration": {
11532
- "name": "OxInputEntityId",
11533
- "module": "src/modeller/property-sidebar/shapes/ox-input-entity-id.ts"
11479
+ "name": "SpecificPropertiesBuilder",
11480
+ "module": "src/modeller/property-sidebar/specifics/specific-properties-builder.ts"
11534
11481
  }
11535
11482
  }
11536
11483
  ]
11537
11484
  },
11538
11485
  {
11539
11486
  "kind": "javascript-module",
11540
- "path": "src/modeller/property-sidebar/shapes/shapes.ts",
11487
+ "path": "src/modeller/property-sidebar/specifics/specifics.ts",
11541
11488
  "declarations": [
11542
11489
  {
11543
11490
  "kind": "class",
11544
11491
  "description": "",
11545
- "name": "PropertyShapes",
11492
+ "name": "PropertySpecific",
11546
11493
  "members": [
11547
11494
  {
11548
11495
  "kind": "field",
11549
- "name": "scopedElements",
11550
- "static": true,
11551
- "readonly": true
11496
+ "name": "value",
11497
+ "type": {
11498
+ "text": "any"
11499
+ },
11500
+ "attribute": "value"
11501
+ },
11502
+ {
11503
+ "kind": "field",
11504
+ "name": "scene",
11505
+ "type": {
11506
+ "text": "Scene | null"
11507
+ },
11508
+ "default": "null",
11509
+ "attribute": "scene"
11510
+ },
11511
+ {
11512
+ "kind": "field",
11513
+ "name": "selected",
11514
+ "type": {
11515
+ "text": "Component[]"
11516
+ },
11517
+ "default": "[]",
11518
+ "attribute": "selected"
11552
11519
  },
11553
11520
  {
11554
11521
  "kind": "field",
11555
- "name": "value",
11522
+ "name": "props",
11556
11523
  "type": {
11557
- "text": "Properties | undefined"
11524
+ "text": "any[]"
11558
11525
  },
11559
- "attribute": "value"
11526
+ "default": "[]",
11527
+ "attribute": "props"
11560
11528
  },
11561
11529
  {
11562
11530
  "kind": "field",
11563
- "name": "bounds",
11531
+ "name": "propertyEditor",
11564
11532
  "type": {
11565
- "text": "BOUNDS | null"
11533
+ "text": "any[]"
11566
11534
  },
11567
- "default": "null",
11568
- "attribute": "bounds"
11535
+ "default": "[]",
11536
+ "attribute": "propertyEditor"
11569
11537
  },
11570
11538
  {
11571
11539
  "kind": "field",
11572
- "name": "selected",
11540
+ "name": "_visibleProps",
11573
11541
  "type": {
11574
- "text": "Component[]"
11542
+ "text": "any[]"
11575
11543
  },
11576
- "default": "[]",
11577
- "attribute": "selected"
11544
+ "privacy": "private",
11545
+ "description": "3D 비활성 시 requires3d 태그 속성(조명 프리셋 등)을 뺀 목록.",
11546
+ "readonly": true
11547
+ },
11548
+ {
11549
+ "kind": "field",
11550
+ "name": "boundINeedSelected",
11551
+ "type": {
11552
+ "text": "any"
11553
+ },
11554
+ "privacy": "private"
11555
+ },
11556
+ {
11557
+ "kind": "field",
11558
+ "name": "scopedElements",
11559
+ "static": true,
11560
+ "readonly": true
11578
11561
  },
11579
11562
  {
11580
11563
  "kind": "method",
11581
- "name": "_onValueChange",
11582
- "parameters": [
11583
- {
11584
- "name": "e",
11585
- "type": {
11586
- "text": "Event"
11587
- }
11564
+ "name": "_isGroupSelected",
11565
+ "privacy": "private",
11566
+ "return": {
11567
+ "type": {
11568
+ "text": "boolean"
11588
11569
  }
11589
- ],
11590
- "inheritedFrom": {
11591
- "name": "AbstractProperty",
11592
- "module": "src/modeller/property-sidebar/abstract-property.ts"
11593
11570
  }
11594
11571
  },
11595
11572
  {
11596
11573
  "kind": "method",
11597
- "name": "_hasTextProperty",
11574
+ "name": "_hasLoadLayout",
11575
+ "return": {
11576
+ "type": {
11577
+ "text": "boolean"
11578
+ }
11579
+ },
11598
11580
  "parameters": [
11599
11581
  {
11600
11582
  "name": "selected",
@@ -11602,19 +11584,24 @@
11602
11584
  "text": "Component[]"
11603
11585
  }
11604
11586
  }
11605
- ]
11587
+ ],
11588
+ "description": "단일 선택이 적재 레이아웃 홀더(@fmsim/machine LoadLayoutHolder)인지. 구역 요소는 machine editors 가 등록한다"
11606
11589
  },
11607
11590
  {
11608
11591
  "kind": "method",
11609
- "name": "_hasProperties",
11592
+ "name": "_onValueChange",
11610
11593
  "parameters": [
11611
11594
  {
11612
- "name": "selected",
11595
+ "name": "e",
11613
11596
  "type": {
11614
- "text": "Component[]"
11597
+ "text": "Event"
11615
11598
  }
11616
11599
  }
11617
- ]
11600
+ ],
11601
+ "inheritedFrom": {
11602
+ "name": "AbstractProperty",
11603
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
11604
+ }
11618
11605
  },
11619
11606
  {
11620
11607
  "kind": "method",
@@ -11644,7 +11631,7 @@
11644
11631
  }
11645
11632
  }
11646
11633
  ],
11647
- "description": "단일 선택 컴포넌트의 부모 machine id (unit 의 ID 검색 시 조회조건으로 전달).\n부모가 루트 모델/레이어가 아니고 id 를 가지면 그 id 를 반환 — unit 이 자신의\n소속 machine 을 특정할 수 있는 경우에 해당. 그 외엔 빈 문자열."
11634
+ "description": "단일 선택 컴포넌트의 부모 machine id (unit 의 ID 검색 시 조회조건으로 전달).\n부모가 루트 모델/레이어가 아니고 id 를 가지면 그 id 를 반환. 그 외엔 빈 문자열.\n(shape 탭 PropertyShapes 와 동일한 규칙.)"
11648
11635
  },
11649
11636
  {
11650
11637
  "kind": "method",
@@ -11662,7 +11649,7 @@
11662
11649
  }
11663
11650
  }
11664
11651
  ],
11665
- "description": "선택 컴포넌트의 id 조회용 타입명 (capability `idLookupType`). 값이 있으면 그 타입으로\n검색 에디터를 띄우고, 없으면(일반 도형·Carrier 등) plain input 으로 두어 불필요한 id\n리스트 요청을 보내지 않는다. 기본은 자기 타입이며 컴포넌트가 다른 타입으로 override 가능.\n(머신/유닛 + Node 가 opt-in. isLVComponent 은 Carrier 포함·Node 제외라 부적합.)"
11652
+ "description": "선택 컴포넌트의 id 조회용 타입명 (capability `idLookupType`). 값이 있으면 그 타입으로\n검색 에디터, 없으면 plain input — 불필요한 id 리스트 요청을 막는다. 기본은 자기 타입,\n특수 케이스는 override. (shape 탭 PropertyShapes 와 동일 규칙.)"
11666
11653
  },
11667
11654
  {
11668
11655
  "kind": "method",
@@ -11684,7 +11671,7 @@
11684
11671
  },
11685
11672
  {
11686
11673
  "kind": "method",
11687
- "name": "_isClassIdentifiable",
11674
+ "name": "_hasTextProperty",
11688
11675
  "parameters": [
11689
11676
  {
11690
11677
  "name": "selected",
@@ -11696,7 +11683,12 @@
11696
11683
  },
11697
11684
  {
11698
11685
  "kind": "method",
11699
- "name": "_isLine",
11686
+ "name": "_hasParentObject",
11687
+ "return": {
11688
+ "type": {
11689
+ "text": "boolean"
11690
+ }
11691
+ },
11700
11692
  "parameters": [
11701
11693
  {
11702
11694
  "name": "selected",
@@ -11704,11 +11696,17 @@
11704
11696
  "text": "Component[]"
11705
11697
  }
11706
11698
  }
11707
- ]
11699
+ ],
11700
+ "description": "선택 컴포넌트가 ParentObjectMixin(= parentObject/parentObjectTypes capability) 인지."
11708
11701
  },
11709
11702
  {
11710
11703
  "kind": "method",
11711
- "name": "_is3dish",
11704
+ "name": "_parentObjectItems",
11705
+ "return": {
11706
+ "type": {
11707
+ "text": "string[]"
11708
+ }
11709
+ },
11712
11710
  "parameters": [
11713
11711
  {
11714
11712
  "name": "selected",
@@ -11716,6 +11714,19 @@
11716
11714
  "text": "Component[]"
11717
11715
  }
11718
11716
  }
11717
+ ],
11718
+ "description": "parentObject 후보 — 씬에서 컴포넌트 타입 기준 수집 (공유 헬퍼 재사용).\n실제 부모 컨테이너가 id 를 가지면 그 부모를 후보 맨 위로."
11719
+ },
11720
+ {
11721
+ "kind": "method",
11722
+ "name": "_onINeedSelected",
11723
+ "parameters": [
11724
+ {
11725
+ "name": "e",
11726
+ "type": {
11727
+ "text": "CustomEvent"
11728
+ }
11729
+ }
11719
11730
  ]
11720
11731
  },
11721
11732
  {
@@ -11757,39 +11768,21 @@
11757
11768
  }
11758
11769
  }
11759
11770
  ],
11760
- "events": [
11761
- {
11762
- "name": "bounds-change",
11763
- "type": {
11764
- "text": "CustomEvent"
11765
- }
11766
- },
11767
- {
11768
- "name": "property-change",
11769
- "type": {
11770
- "text": "CustomEvent"
11771
- },
11772
- "inheritedFrom": {
11773
- "name": "AbstractProperty",
11774
- "module": "src/modeller/property-sidebar/abstract-property.ts"
11775
- }
11776
- }
11777
- ],
11778
11771
  "attributes": [
11779
11772
  {
11780
11773
  "name": "value",
11781
11774
  "type": {
11782
- "text": "Properties | undefined"
11775
+ "text": "any"
11783
11776
  },
11784
11777
  "fieldName": "value"
11785
11778
  },
11786
11779
  {
11787
- "name": "bounds",
11780
+ "name": "scene",
11788
11781
  "type": {
11789
- "text": "BOUNDS | null"
11782
+ "text": "Scene | null"
11790
11783
  },
11791
11784
  "default": "null",
11792
- "fieldName": "bounds"
11785
+ "fieldName": "scene"
11793
11786
  },
11794
11787
  {
11795
11788
  "name": "selected",
@@ -11798,6 +11791,22 @@
11798
11791
  },
11799
11792
  "default": "[]",
11800
11793
  "fieldName": "selected"
11794
+ },
11795
+ {
11796
+ "name": "props",
11797
+ "type": {
11798
+ "text": "any[]"
11799
+ },
11800
+ "default": "[]",
11801
+ "fieldName": "props"
11802
+ },
11803
+ {
11804
+ "name": "propertyEditor",
11805
+ "type": {
11806
+ "text": "any[]"
11807
+ },
11808
+ "default": "[]",
11809
+ "fieldName": "propertyEditor"
11801
11810
  }
11802
11811
  ],
11803
11812
  "mixins": [
@@ -11809,201 +11818,325 @@
11809
11818
  "superclass": {
11810
11819
  "name": "AbstractProperty",
11811
11820
  "module": "/src/modeller/property-sidebar/abstract-property"
11821
+ },
11822
+ "events": [
11823
+ {
11824
+ "name": "property-change",
11825
+ "type": {
11826
+ "text": "CustomEvent"
11827
+ },
11828
+ "inheritedFrom": {
11829
+ "name": "AbstractProperty",
11830
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
11831
+ }
11832
+ }
11833
+ ]
11834
+ }
11835
+ ],
11836
+ "exports": [
11837
+ {
11838
+ "kind": "js",
11839
+ "name": "PropertySpecific",
11840
+ "declaration": {
11841
+ "name": "PropertySpecific",
11842
+ "module": "src/modeller/property-sidebar/specifics/specifics.ts"
11812
11843
  }
11813
11844
  }
11845
+ ]
11846
+ },
11847
+ {
11848
+ "kind": "javascript-module",
11849
+ "path": "src/modeller/property-sidebar/shapes/box-padding-editor-styles.ts",
11850
+ "declarations": [
11851
+ {
11852
+ "kind": "variable",
11853
+ "name": "BoxPaddingEditorStyles",
11854
+ "default": "css` .box-padding { width: 100%; } .box-padding td { background: var(--url-icon-properties-padding) 50% 0 no-repeat; } .box-padding tr:nth-child(1), .box-padding tr:nth-child(3) { height: 20px; } .box-padding tr td:nth-child(1), .box-padding tr td:nth-child(3) { width: 18px; } .box-padding .slide1 { background-position: 0 0; } .box-padding .slide2 { background-position: 50% -40px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide3 { background-position: 100% -440px; } .box-padding .slide4 { background-position: 0 -360px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide5 { background: none; text-align: center; } .box-padding .slide6 { background-position: 100% -160px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide7 { background-position: 0 100%; } .box-padding .slide8 { background-position: 50% -320px; background-color: rgba(69, 46, 41, 0.2); } .box-padding .slide9 { background-position: 0 0px; } .box-padding input { background-color: transparent; width: 35px; margin: 0px; padding: 0px; clear: both; float: initial; border: 1px solid #fff; border-width: 0 0 1px 0; text-align: right; font-size: 14px; } .slide5 input:nth-child(1), .slide5 input:nth-child(4) { display: block; margin: auto; } .slide5 input:nth-child(2) { float: left; } .slide5 input:nth-child(3) { float: right; margin-top: -25px; } .slide5 input:nth-child(4) { margin-top: -5px; } `"
11855
+ }
11814
11856
  ],
11815
11857
  "exports": [
11816
11858
  {
11817
11859
  "kind": "js",
11818
- "name": "PropertyShapes",
11860
+ "name": "BoxPaddingEditorStyles",
11819
11861
  "declaration": {
11820
- "name": "PropertyShapes",
11821
- "module": "src/modeller/property-sidebar/shapes/shapes.ts"
11862
+ "name": "BoxPaddingEditorStyles",
11863
+ "module": "src/modeller/property-sidebar/shapes/box-padding-editor-styles.ts"
11822
11864
  }
11823
11865
  }
11824
11866
  ]
11825
11867
  },
11826
11868
  {
11827
11869
  "kind": "javascript-module",
11828
- "path": "src/modeller/property-sidebar/specifics/parent-object.ts",
11870
+ "path": "src/modeller/property-sidebar/shapes/ox-input-entity-id.ts",
11829
11871
  "declarations": [
11830
11872
  {
11831
- "kind": "function",
11832
- "name": "hasParentObject",
11833
- "return": {
11834
- "type": {
11835
- "text": "boolean"
11836
- }
11837
- },
11838
- "parameters": [
11873
+ "kind": "class",
11874
+ "description": "컴포넌트 ID 입력기 — 자유 입력 + 타입별 백엔드(MCS) 검색 선택을 함께 제공.\n\n- 기존처럼 자유롭게 텍스트로 ID 를 입력할 수 있다 (commit = blur/Enter).\n- input 에 *포커스가 가면* 아래로 검색 드롭다운이 펼쳐진다. `entityType`\n (컴포넌트 타입) 으로 MCS 에 정의된 ID 후보를 조회한다.\n - machine 타입 → 머신 id 가 1레벨 평면으로 (선택 가능)\n - unit 타입 → machine 이 그룹 헤더, 그 아래 unit id 가 자식 (선택 가능).\n 컴포넌트가 부모 machine 을 알면(`machine` prop) 그 머신으로 좁혀 조회.\n\nvalue-key=\"id\" 와 함께 property-grid 안에 두면, 이 host 가 `change`(bubbles+\ncomposed) 를 발행하므로 AbstractProperty 제너릭 핸들러가 `element.value` 를\n읽어 property-change 로 전파한다.\n\n등록: 패널 자식 커스텀 엘리먼트 컨벤션에 따라 전역 `@customElement` 가 아니라\n부모 패널(PropertyShapes)의 `scopedElements` 로 등록한다 (@open-wc/scoped-elements).",
11875
+ "name": "OxInputEntityId",
11876
+ "members": [
11877
+ {
11878
+ "kind": "field",
11879
+ "name": "value",
11880
+ "type": {
11881
+ "text": "string"
11882
+ },
11883
+ "default": "''",
11884
+ "description": "현재 ID 값.",
11885
+ "attribute": "value"
11886
+ },
11887
+ {
11888
+ "kind": "field",
11889
+ "name": "entityType",
11890
+ "type": {
11891
+ "text": "string"
11892
+ },
11893
+ "default": "''",
11894
+ "description": "검색 조건 — 선택된 컴포넌트 타입 (예: 'STOCKER', 'AGV', 'Port').",
11895
+ "attribute": "entityType"
11896
+ },
11897
+ {
11898
+ "kind": "field",
11899
+ "name": "machine",
11900
+ "type": {
11901
+ "text": "string"
11902
+ },
11903
+ "default": "''",
11904
+ "description": "검색 조건 — 부모 machine id (unit 컴포넌트가 소속 machine 을 알 때).",
11905
+ "attribute": "machine"
11906
+ },
11907
+ {
11908
+ "kind": "field",
11909
+ "name": "requireMachine",
11910
+ "type": {
11911
+ "text": "boolean"
11912
+ },
11913
+ "default": "false",
11914
+ "description": "machine 필수 타입(예: Port) — machine 없으면 조회하지 않는다 (후보 과다 방지).",
11915
+ "attribute": "requireMachine"
11916
+ },
11917
+ {
11918
+ "kind": "field",
11919
+ "name": "localItems",
11920
+ "type": {
11921
+ "text": "string[] | null"
11922
+ },
11923
+ "default": "null",
11924
+ "description": "백엔드 조회 대신 사용할 로컬 후보 리스트 (예: parentObject — 씬의 머신들). null 이면 백엔드 조회.",
11925
+ "attribute": "localItems"
11926
+ },
11839
11927
  {
11840
- "name": "target",
11928
+ "kind": "field",
11929
+ "name": "placeholder",
11841
11930
  "type": {
11842
- "text": "any"
11843
- }
11844
- }
11845
- ],
11846
- "description": "대상이 ParentObjectMixin(= parentObjectTypes capability) 을 가졌는지."
11847
- },
11848
- {
11849
- "kind": "function",
11850
- "name": "parentObjectForTemplate",
11851
- "return": {
11852
- "type": {
11853
- "text": "{ has: boolean; items: string[] }"
11854
- }
11855
- },
11856
- "parameters": [
11931
+ "text": "string"
11932
+ },
11933
+ "default": "''",
11934
+ "attribute": "placeholder"
11935
+ },
11857
11936
  {
11858
- "name": "template",
11937
+ "kind": "field",
11938
+ "name": "_open",
11859
11939
  "type": {
11860
- "text": "any"
11861
- }
11940
+ "text": "boolean"
11941
+ },
11942
+ "privacy": "private",
11943
+ "default": "false"
11862
11944
  },
11863
11945
  {
11864
- "name": "root",
11946
+ "kind": "field",
11947
+ "name": "_all",
11865
11948
  "type": {
11866
- "text": "any"
11867
- }
11868
- }
11869
- ],
11870
- "description": "template(모델)의 타입으로부터 parentObject 지원 여부 + 후보 리스트 계산 (bulk-paste 용).\ntemplate 은 라이브 컴포넌트가 아니라 클립보드 모델이므로, 타입 클래스의 임시 인스턴스로\nparentObjectTypes(클래스 상수 capability)를 읽은 뒤 씬(root)에서 후보를 수집한다."
11871
- },
11872
- {
11873
- "kind": "function",
11874
- "name": "collectParentObjectItems",
11875
- "return": {
11876
- "type": {
11877
- "text": "string[]"
11878
- }
11879
- },
11880
- "parameters": [
11949
+ "text": "string[]"
11950
+ },
11951
+ "privacy": "private",
11952
+ "default": "[]",
11953
+ "description": "서버에서 받은 전체 후보 리스트 (포커스 시 1회 조회, 키워드 미적용)."
11954
+ },
11881
11955
  {
11882
- "name": "parentObjectTypes",
11956
+ "kind": "field",
11957
+ "name": "_loading",
11883
11958
  "type": {
11884
- "text": "string[] | undefined"
11959
+ "text": "boolean"
11885
11960
  },
11886
- "description": "대상 컴포넌트가 부모로 삼을 수 있는 타입들 (빈 배열이면 isMcsMachine 폴백)."
11961
+ "privacy": "private",
11962
+ "default": "false"
11887
11963
  },
11888
11964
  {
11889
- "name": "root",
11965
+ "kind": "field",
11966
+ "name": "_needMachine",
11890
11967
  "type": {
11891
- "text": "any"
11968
+ "text": "boolean"
11892
11969
  },
11893
- "description": "씬 루트 (여기서부터 재귀 수집)."
11970
+ "privacy": "private",
11971
+ "default": "false",
11972
+ "description": "machine 필수인데 machine 미지정이라 조회를 보류한 상태."
11894
11973
  },
11895
11974
  {
11896
- "name": "opts",
11897
- "optional": true,
11975
+ "kind": "field",
11976
+ "name": "_activeIndex",
11898
11977
  "type": {
11899
- "text": "{ exclude?: any; knownParentId?: string }"
11900
- }
11978
+ "text": "number"
11979
+ },
11980
+ "privacy": "private",
11981
+ "default": "-1",
11982
+ "description": "선택 가능 항목 기준 active index."
11901
11983
  },
11902
11984
  {
11903
- "description": "후보에서 제외할 컴포넌트 (자기 자신 등).",
11904
- "name": "opts.exclude"
11985
+ "kind": "field",
11986
+ "name": "_input",
11987
+ "type": {
11988
+ "text": "HTMLInputElement"
11989
+ },
11990
+ "privacy": "private"
11905
11991
  },
11906
11992
  {
11907
- "description": "이미 아는 부모 id — 있으면 후보 맨 앞으로.",
11908
- "name": "opts.knownParentId"
11909
- }
11910
- ],
11911
- "description": "parentObject 후보 id 리스트."
11912
- }
11913
- ],
11914
- "exports": [
11915
- {
11916
- "kind": "js",
11917
- "name": "hasParentObject",
11918
- "declaration": {
11919
- "name": "hasParentObject",
11920
- "module": "src/modeller/property-sidebar/specifics/parent-object.ts"
11921
- }
11922
- },
11923
- {
11924
- "kind": "js",
11925
- "name": "parentObjectForTemplate",
11926
- "declaration": {
11927
- "name": "parentObjectForTemplate",
11928
- "module": "src/modeller/property-sidebar/specifics/parent-object.ts"
11929
- }
11930
- },
11931
- {
11932
- "kind": "js",
11933
- "name": "collectParentObjectItems",
11934
- "declaration": {
11935
- "name": "collectParentObjectItems",
11936
- "module": "src/modeller/property-sidebar/specifics/parent-object.ts"
11937
- }
11938
- }
11939
- ]
11940
- },
11941
- {
11942
- "kind": "javascript-module",
11943
- "path": "src/modeller/property-sidebar/specifics/specific-properties-builder.ts",
11944
- "declarations": [
11945
- {
11946
- "kind": "class",
11947
- "description": "",
11948
- "name": "SpecificPropertiesBuilder",
11949
- "members": [
11993
+ "kind": "field",
11994
+ "name": "_blurTimer",
11995
+ "type": {
11996
+ "text": "ReturnType<typeof setTimeout> | undefined"
11997
+ },
11998
+ "privacy": "private"
11999
+ },
11950
12000
  {
11951
12001
  "kind": "field",
11952
- "name": "value",
12002
+ "name": "_loadSeq",
11953
12003
  "type": {
11954
- "text": "any"
12004
+ "text": "number"
11955
12005
  },
11956
- "attribute": "value"
12006
+ "privacy": "private",
12007
+ "default": "0"
11957
12008
  },
11958
12009
  {
11959
12010
  "kind": "field",
11960
- "name": "props",
12011
+ "name": "_lastEmitted",
11961
12012
  "type": {
11962
- "text": "any[]"
12013
+ "text": "string | undefined"
11963
12014
  },
11964
- "default": "[]",
11965
- "attribute": "props"
12015
+ "privacy": "private",
12016
+ "description": "마지막으로 발행한 값 — 같은 값 재발행(undo 중복) 방지."
11966
12017
  },
11967
12018
  {
11968
12019
  "kind": "field",
11969
- "name": "propertyEditor",
12020
+ "name": "_items",
11970
12021
  "type": {
11971
- "text": "any"
12022
+ "text": "string[]"
11972
12023
  },
11973
- "attribute": "propertyEditor"
12024
+ "privacy": "private",
12025
+ "description": "드롭다운 표시 항목 — 입력값(초기값 포함)으로 풀텍스트 로컬 필터.\n단, 매치가 0이면 전체 후보로 fallback (막다른 \"결과 없음\" 방지 — 예: committed\nid 가 후보 형식과 달라 안 맞는 경우). 서버 재조회 없음.",
12026
+ "readonly": true
12027
+ },
12028
+ {
12029
+ "kind": "field",
12030
+ "name": "_selectableIds",
12031
+ "type": {
12032
+ "text": "string[]"
12033
+ },
12034
+ "privacy": "private",
12035
+ "description": "드롭다운에서 선택 가능한 id 들 (표시 순서).",
12036
+ "readonly": true
11974
12037
  },
11975
12038
  {
11976
12039
  "kind": "method",
11977
- "name": "_onPropsChanged",
12040
+ "name": "_renderDropdown",
12041
+ "privacy": "private"
12042
+ },
12043
+ {
12044
+ "kind": "method",
12045
+ "name": "_onFocus",
12046
+ "privacy": "private"
12047
+ },
12048
+ {
12049
+ "kind": "method",
12050
+ "name": "_onBlur",
12051
+ "privacy": "private"
12052
+ },
12053
+ {
12054
+ "kind": "method",
12055
+ "name": "_onInput",
12056
+ "privacy": "private",
11978
12057
  "parameters": [
11979
12058
  {
11980
- "name": "props",
12059
+ "name": "e",
11981
12060
  "type": {
11982
- "text": "any[]"
12061
+ "text": "Event"
11983
12062
  }
11984
12063
  }
11985
12064
  ]
11986
12065
  },
11987
12066
  {
11988
12067
  "kind": "method",
11989
- "name": "_setValues"
12068
+ "name": "_onInputCommit",
12069
+ "privacy": "private",
12070
+ "parameters": [
12071
+ {
12072
+ "name": "e",
12073
+ "type": {
12074
+ "text": "Event"
12075
+ }
12076
+ }
12077
+ ],
12078
+ "description": "자유 입력 commit (blur/Enter 의 native change) — 기존 free-text 동작 보존."
11990
12079
  },
11991
12080
  {
11992
12081
  "kind": "method",
11993
- "name": "_onValueChanged",
12082
+ "name": "_onKeydown",
12083
+ "privacy": "private",
11994
12084
  "parameters": [
11995
12085
  {
11996
12086
  "name": "e",
11997
12087
  "type": {
11998
- "text": "Event"
12088
+ "text": "KeyboardEvent"
12089
+ }
12090
+ }
12091
+ ]
12092
+ },
12093
+ {
12094
+ "kind": "method",
12095
+ "name": "_select",
12096
+ "privacy": "private",
12097
+ "parameters": [
12098
+ {
12099
+ "name": "id",
12100
+ "type": {
12101
+ "text": "string"
12102
+ }
12103
+ },
12104
+ {
12105
+ "name": "e",
12106
+ "type": {
12107
+ "text": "MouseEvent"
12108
+ }
12109
+ }
12110
+ ]
12111
+ },
12112
+ {
12113
+ "kind": "method",
12114
+ "name": "_commitValue",
12115
+ "privacy": "private",
12116
+ "parameters": [
12117
+ {
12118
+ "name": "id",
12119
+ "type": {
12120
+ "text": "string"
11999
12121
  }
12000
12122
  }
12001
12123
  ]
12124
+ },
12125
+ {
12126
+ "kind": "method",
12127
+ "name": "_emitChange",
12128
+ "privacy": "private"
12129
+ },
12130
+ {
12131
+ "kind": "method",
12132
+ "name": "_load",
12133
+ "privacy": "private",
12134
+ "description": "후보 전체를 1회 조회 (포커스 시). keyword 는 보내지 않으며, 표시 필터는 _items\n게터가 로컬에서 처리한다. entityType(+unit 이면 machine) 만 서버로 보낸다."
12002
12135
  }
12003
12136
  ],
12004
12137
  "events": [
12005
12138
  {
12006
- "name": "property-change",
12139
+ "name": "change",
12007
12140
  "type": {
12008
12141
  "text": "CustomEvent"
12009
12142
  }
@@ -12013,24 +12146,55 @@
12013
12146
  {
12014
12147
  "name": "value",
12015
12148
  "type": {
12016
- "text": "any"
12149
+ "text": "string"
12017
12150
  },
12151
+ "default": "''",
12152
+ "description": "현재 ID 값.",
12018
12153
  "fieldName": "value"
12019
12154
  },
12020
12155
  {
12021
- "name": "props",
12156
+ "name": "entityType",
12022
12157
  "type": {
12023
- "text": "any[]"
12158
+ "text": "string"
12024
12159
  },
12025
- "default": "[]",
12026
- "fieldName": "props"
12160
+ "default": "''",
12161
+ "description": "검색 조건 — 선택된 컴포넌트 타입 (예: 'STOCKER', 'AGV', 'Port').",
12162
+ "fieldName": "entityType"
12027
12163
  },
12028
12164
  {
12029
- "name": "propertyEditor",
12165
+ "name": "machine",
12030
12166
  "type": {
12031
- "text": "any"
12167
+ "text": "string"
12032
12168
  },
12033
- "fieldName": "propertyEditor"
12169
+ "default": "''",
12170
+ "description": "검색 조건 — 부모 machine id (unit 컴포넌트가 소속 machine 을 알 때).",
12171
+ "fieldName": "machine"
12172
+ },
12173
+ {
12174
+ "name": "requireMachine",
12175
+ "type": {
12176
+ "text": "boolean"
12177
+ },
12178
+ "default": "false",
12179
+ "description": "machine 필수 타입(예: Port) — machine 없으면 조회하지 않는다 (후보 과다 방지).",
12180
+ "fieldName": "requireMachine"
12181
+ },
12182
+ {
12183
+ "name": "localItems",
12184
+ "type": {
12185
+ "text": "string[] | null"
12186
+ },
12187
+ "default": "null",
12188
+ "description": "백엔드 조회 대신 사용할 로컬 후보 리스트 (예: parentObject — 씬의 머신들). null 이면 백엔드 조회.",
12189
+ "fieldName": "localItems"
12190
+ },
12191
+ {
12192
+ "name": "placeholder",
12193
+ "type": {
12194
+ "text": "string"
12195
+ },
12196
+ "default": "''",
12197
+ "fieldName": "placeholder"
12034
12198
  }
12035
12199
  ],
12036
12200
  "superclass": {
@@ -12043,39 +12207,45 @@
12043
12207
  "exports": [
12044
12208
  {
12045
12209
  "kind": "js",
12046
- "name": "SpecificPropertiesBuilder",
12210
+ "name": "OxInputEntityId",
12047
12211
  "declaration": {
12048
- "name": "SpecificPropertiesBuilder",
12049
- "module": "src/modeller/property-sidebar/specifics/specific-properties-builder.ts"
12212
+ "name": "OxInputEntityId",
12213
+ "module": "src/modeller/property-sidebar/shapes/ox-input-entity-id.ts"
12050
12214
  }
12051
12215
  }
12052
12216
  ]
12053
12217
  },
12054
12218
  {
12055
12219
  "kind": "javascript-module",
12056
- "path": "src/modeller/property-sidebar/specifics/specifics.ts",
12220
+ "path": "src/modeller/property-sidebar/shapes/shapes.ts",
12057
12221
  "declarations": [
12058
12222
  {
12059
12223
  "kind": "class",
12060
12224
  "description": "",
12061
- "name": "PropertySpecific",
12225
+ "name": "PropertyShapes",
12062
12226
  "members": [
12227
+ {
12228
+ "kind": "field",
12229
+ "name": "scopedElements",
12230
+ "static": true,
12231
+ "readonly": true
12232
+ },
12063
12233
  {
12064
12234
  "kind": "field",
12065
12235
  "name": "value",
12066
12236
  "type": {
12067
- "text": "any"
12237
+ "text": "Properties | undefined"
12068
12238
  },
12069
12239
  "attribute": "value"
12070
12240
  },
12071
12241
  {
12072
12242
  "kind": "field",
12073
- "name": "scene",
12243
+ "name": "bounds",
12074
12244
  "type": {
12075
- "text": "Scene | null"
12245
+ "text": "BOUNDS | null"
12076
12246
  },
12077
12247
  "default": "null",
12078
- "attribute": "scene"
12248
+ "attribute": "bounds"
12079
12249
  },
12080
12250
  {
12081
12251
  "kind": "field",
@@ -12086,58 +12256,6 @@
12086
12256
  "default": "[]",
12087
12257
  "attribute": "selected"
12088
12258
  },
12089
- {
12090
- "kind": "field",
12091
- "name": "props",
12092
- "type": {
12093
- "text": "any[]"
12094
- },
12095
- "default": "[]",
12096
- "attribute": "props"
12097
- },
12098
- {
12099
- "kind": "field",
12100
- "name": "propertyEditor",
12101
- "type": {
12102
- "text": "any[]"
12103
- },
12104
- "default": "[]",
12105
- "attribute": "propertyEditor"
12106
- },
12107
- {
12108
- "kind": "field",
12109
- "name": "_visibleProps",
12110
- "type": {
12111
- "text": "any[]"
12112
- },
12113
- "privacy": "private",
12114
- "description": "3D 비활성 시 requires3d 태그 속성(조명 프리셋 등)을 뺀 목록.",
12115
- "readonly": true
12116
- },
12117
- {
12118
- "kind": "field",
12119
- "name": "boundINeedSelected",
12120
- "type": {
12121
- "text": "any"
12122
- },
12123
- "privacy": "private"
12124
- },
12125
- {
12126
- "kind": "field",
12127
- "name": "scopedElements",
12128
- "static": true,
12129
- "readonly": true
12130
- },
12131
- {
12132
- "kind": "method",
12133
- "name": "_isGroupSelected",
12134
- "privacy": "private",
12135
- "return": {
12136
- "type": {
12137
- "text": "boolean"
12138
- }
12139
- }
12140
- },
12141
12259
  {
12142
12260
  "kind": "method",
12143
12261
  "name": "_onValueChange",
@@ -12154,6 +12272,30 @@
12154
12272
  "module": "src/modeller/property-sidebar/abstract-property.ts"
12155
12273
  }
12156
12274
  },
12275
+ {
12276
+ "kind": "method",
12277
+ "name": "_hasTextProperty",
12278
+ "parameters": [
12279
+ {
12280
+ "name": "selected",
12281
+ "type": {
12282
+ "text": "Component[]"
12283
+ }
12284
+ }
12285
+ ]
12286
+ },
12287
+ {
12288
+ "kind": "method",
12289
+ "name": "_hasProperties",
12290
+ "parameters": [
12291
+ {
12292
+ "name": "selected",
12293
+ "type": {
12294
+ "text": "Component[]"
12295
+ }
12296
+ }
12297
+ ]
12298
+ },
12157
12299
  {
12158
12300
  "kind": "method",
12159
12301
  "name": "_isIdentifiable",
@@ -12182,7 +12324,7 @@
12182
12324
  }
12183
12325
  }
12184
12326
  ],
12185
- "description": "단일 선택 컴포넌트의 부모 machine id (unit 의 ID 검색 시 조회조건으로 전달).\n부모가 루트 모델/레이어가 아니고 id 를 가지면 그 id 를 반환. 그 외엔 빈 문자열.\n(shape 탭 PropertyShapes 와 동일한 규칙.)"
12327
+ "description": "단일 선택 컴포넌트의 부모 machine id (unit 의 ID 검색 시 조회조건으로 전달).\n부모가 루트 모델/레이어가 아니고 id 를 가지면 그 id 를 반환 — unit 이 자신의\n소속 machine 을 특정할 수 있는 경우에 해당. 그 외엔 빈 문자열."
12186
12328
  },
12187
12329
  {
12188
12330
  "kind": "method",
@@ -12200,7 +12342,7 @@
12200
12342
  }
12201
12343
  }
12202
12344
  ],
12203
- "description": "선택 컴포넌트의 id 조회용 타입명 (capability `idLookupType`). 값이 있으면 그 타입으로\n검색 에디터, 없으면 plain input — 불필요한 id 리스트 요청을 막는다. 기본은 자기 타입,\n특수 케이스는 override. (shape 탭 PropertyShapes 와 동일 규칙.)"
12345
+ "description": "선택 컴포넌트의 id 조회용 타입명 (capability `idLookupType`). 값이 있으면 그 타입으로\n검색 에디터를 띄우고, 없으면(일반 도형·Carrier 등) plain input 으로 두어 불필요한 id\n리스트 요청을 보내지 않는다. 기본은 자기 타입이며 컴포넌트가 다른 타입으로 override 가능.\n(머신/유닛 + Node 가 opt-in. isLVComponent 은 Carrier 포함·Node 제외라 부적합.)"
12204
12346
  },
12205
12347
  {
12206
12348
  "kind": "method",
@@ -12222,7 +12364,7 @@
12222
12364
  },
12223
12365
  {
12224
12366
  "kind": "method",
12225
- "name": "_hasTextProperty",
12367
+ "name": "_isClassIdentifiable",
12226
12368
  "parameters": [
12227
12369
  {
12228
12370
  "name": "selected",
@@ -12234,12 +12376,7 @@
12234
12376
  },
12235
12377
  {
12236
12378
  "kind": "method",
12237
- "name": "_hasParentObject",
12238
- "return": {
12239
- "type": {
12240
- "text": "boolean"
12241
- }
12242
- },
12379
+ "name": "_isLine",
12243
12380
  "parameters": [
12244
12381
  {
12245
12382
  "name": "selected",
@@ -12247,17 +12384,11 @@
12247
12384
  "text": "Component[]"
12248
12385
  }
12249
12386
  }
12250
- ],
12251
- "description": "선택 컴포넌트가 ParentObjectMixin(= parentObject/parentObjectTypes capability) 인지."
12387
+ ]
12252
12388
  },
12253
12389
  {
12254
12390
  "kind": "method",
12255
- "name": "_parentObjectItems",
12256
- "return": {
12257
- "type": {
12258
- "text": "string[]"
12259
- }
12260
- },
12391
+ "name": "_is3dish",
12261
12392
  "parameters": [
12262
12393
  {
12263
12394
  "name": "selected",
@@ -12265,19 +12396,6 @@
12265
12396
  "text": "Component[]"
12266
12397
  }
12267
12398
  }
12268
- ],
12269
- "description": "parentObject 후보 — 씬에서 컴포넌트 타입 기준 수집 (공유 헬퍼 재사용).\n실제 부모 컨테이너가 id 를 가지면 그 부모를 후보 맨 위로."
12270
- },
12271
- {
12272
- "kind": "method",
12273
- "name": "_onINeedSelected",
12274
- "parameters": [
12275
- {
12276
- "name": "e",
12277
- "type": {
12278
- "text": "CustomEvent"
12279
- }
12280
- }
12281
12399
  ]
12282
12400
  },
12283
12401
  {
@@ -12319,21 +12437,39 @@
12319
12437
  }
12320
12438
  }
12321
12439
  ],
12440
+ "events": [
12441
+ {
12442
+ "name": "bounds-change",
12443
+ "type": {
12444
+ "text": "CustomEvent"
12445
+ }
12446
+ },
12447
+ {
12448
+ "name": "property-change",
12449
+ "type": {
12450
+ "text": "CustomEvent"
12451
+ },
12452
+ "inheritedFrom": {
12453
+ "name": "AbstractProperty",
12454
+ "module": "src/modeller/property-sidebar/abstract-property.ts"
12455
+ }
12456
+ }
12457
+ ],
12322
12458
  "attributes": [
12323
12459
  {
12324
12460
  "name": "value",
12325
12461
  "type": {
12326
- "text": "any"
12462
+ "text": "Properties | undefined"
12327
12463
  },
12328
12464
  "fieldName": "value"
12329
12465
  },
12330
12466
  {
12331
- "name": "scene",
12467
+ "name": "bounds",
12332
12468
  "type": {
12333
- "text": "Scene | null"
12469
+ "text": "BOUNDS | null"
12334
12470
  },
12335
12471
  "default": "null",
12336
- "fieldName": "scene"
12472
+ "fieldName": "bounds"
12337
12473
  },
12338
12474
  {
12339
12475
  "name": "selected",
@@ -12342,22 +12478,6 @@
12342
12478
  },
12343
12479
  "default": "[]",
12344
12480
  "fieldName": "selected"
12345
- },
12346
- {
12347
- "name": "props",
12348
- "type": {
12349
- "text": "any[]"
12350
- },
12351
- "default": "[]",
12352
- "fieldName": "props"
12353
- },
12354
- {
12355
- "name": "propertyEditor",
12356
- "type": {
12357
- "text": "any[]"
12358
- },
12359
- "default": "[]",
12360
- "fieldName": "propertyEditor"
12361
12481
  }
12362
12482
  ],
12363
12483
  "mixins": [
@@ -12369,28 +12489,16 @@
12369
12489
  "superclass": {
12370
12490
  "name": "AbstractProperty",
12371
12491
  "module": "/src/modeller/property-sidebar/abstract-property"
12372
- },
12373
- "events": [
12374
- {
12375
- "name": "property-change",
12376
- "type": {
12377
- "text": "CustomEvent"
12378
- },
12379
- "inheritedFrom": {
12380
- "name": "AbstractProperty",
12381
- "module": "src/modeller/property-sidebar/abstract-property.ts"
12382
- }
12383
- }
12384
- ]
12492
+ }
12385
12493
  }
12386
12494
  ],
12387
12495
  "exports": [
12388
12496
  {
12389
12497
  "kind": "js",
12390
- "name": "PropertySpecific",
12498
+ "name": "PropertyShapes",
12391
12499
  "declaration": {
12392
- "name": "PropertySpecific",
12393
- "module": "src/modeller/property-sidebar/specifics/specifics.ts"
12500
+ "name": "PropertyShapes",
12501
+ "module": "src/modeller/property-sidebar/shapes/shapes.ts"
12394
12502
  }
12395
12503
  }
12396
12504
  ]