@fmsim/board 2.0.0-beta.105 → 2.0.0-beta.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +238 -170
- package/dist/src/config/flow-replay.d.ts +14 -0
- package/dist/src/config/flow-replay.js +20 -0
- package/dist/src/config/flow-replay.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/layers/mcs-mouse-event-handler.js +9 -3
- package/dist/src/layers/mcs-mouse-event-handler.js.map +1 -1
- package/dist/src/layers/movement-layer.d.ts +4 -1
- package/dist/src/layers/movement-layer.js +11 -2
- package/dist/src/layers/movement-layer.js.map +1 -1
- package/dist/src/ox-board-viewer.js +9 -5
- package/dist/src/ox-board-viewer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/custom-elements.json
CHANGED
|
@@ -15,6 +15,22 @@
|
|
|
15
15
|
"module": "src/types.js"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
+
{
|
|
19
|
+
"kind": "js",
|
|
20
|
+
"name": "setFlowReplayEnabled",
|
|
21
|
+
"declaration": {
|
|
22
|
+
"name": "setFlowReplayEnabled",
|
|
23
|
+
"module": "./config/flow-replay.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kind": "js",
|
|
28
|
+
"name": "isFlowReplayEnabled",
|
|
29
|
+
"declaration": {
|
|
30
|
+
"name": "isFlowReplayEnabled",
|
|
31
|
+
"module": "./config/flow-replay.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
18
34
|
{
|
|
19
35
|
"kind": "js",
|
|
20
36
|
"name": "registerDefaultGroups",
|
|
@@ -2955,6 +2971,58 @@
|
|
|
2955
2971
|
}
|
|
2956
2972
|
]
|
|
2957
2973
|
},
|
|
2974
|
+
{
|
|
2975
|
+
"kind": "javascript-module",
|
|
2976
|
+
"path": "src/config/flow-replay.ts",
|
|
2977
|
+
"declarations": [
|
|
2978
|
+
{
|
|
2979
|
+
"kind": "function",
|
|
2980
|
+
"name": "setFlowReplayEnabled",
|
|
2981
|
+
"return": {
|
|
2982
|
+
"type": {
|
|
2983
|
+
"text": "void"
|
|
2984
|
+
}
|
|
2985
|
+
},
|
|
2986
|
+
"parameters": [
|
|
2987
|
+
{
|
|
2988
|
+
"name": "enabled",
|
|
2989
|
+
"type": {
|
|
2990
|
+
"text": "boolean"
|
|
2991
|
+
}
|
|
2992
|
+
}
|
|
2993
|
+
],
|
|
2994
|
+
"description": "Flow-Replay(플레이백) 전역 활성 여부 설정. 부트스트랩에서 한 번 호출."
|
|
2995
|
+
},
|
|
2996
|
+
{
|
|
2997
|
+
"kind": "function",
|
|
2998
|
+
"name": "isFlowReplayEnabled",
|
|
2999
|
+
"return": {
|
|
3000
|
+
"type": {
|
|
3001
|
+
"text": "boolean"
|
|
3002
|
+
}
|
|
3003
|
+
},
|
|
3004
|
+
"description": "Flow-Replay(플레이백) 전역 활성 여부. 기본 true(활성)."
|
|
3005
|
+
}
|
|
3006
|
+
],
|
|
3007
|
+
"exports": [
|
|
3008
|
+
{
|
|
3009
|
+
"kind": "js",
|
|
3010
|
+
"name": "setFlowReplayEnabled",
|
|
3011
|
+
"declaration": {
|
|
3012
|
+
"name": "setFlowReplayEnabled",
|
|
3013
|
+
"module": "src/config/flow-replay.ts"
|
|
3014
|
+
}
|
|
3015
|
+
},
|
|
3016
|
+
{
|
|
3017
|
+
"kind": "js",
|
|
3018
|
+
"name": "isFlowReplayEnabled",
|
|
3019
|
+
"declaration": {
|
|
3020
|
+
"name": "isFlowReplayEnabled",
|
|
3021
|
+
"module": "src/config/flow-replay.ts"
|
|
3022
|
+
}
|
|
3023
|
+
}
|
|
3024
|
+
]
|
|
3025
|
+
},
|
|
2958
3026
|
{
|
|
2959
3027
|
"kind": "javascript-module",
|
|
2960
3028
|
"path": "src/component/etc.ts",
|
|
@@ -11189,6 +11257,176 @@
|
|
|
11189
11257
|
}
|
|
11190
11258
|
]
|
|
11191
11259
|
},
|
|
11260
|
+
{
|
|
11261
|
+
"kind": "javascript-module",
|
|
11262
|
+
"path": "src/modeller/property-sidebar/styles/styles.ts",
|
|
11263
|
+
"declarations": [
|
|
11264
|
+
{
|
|
11265
|
+
"kind": "class",
|
|
11266
|
+
"description": "",
|
|
11267
|
+
"name": "PropertyStyles",
|
|
11268
|
+
"members": [
|
|
11269
|
+
{
|
|
11270
|
+
"kind": "field",
|
|
11271
|
+
"name": "value",
|
|
11272
|
+
"type": {
|
|
11273
|
+
"text": "any"
|
|
11274
|
+
},
|
|
11275
|
+
"default": "{}",
|
|
11276
|
+
"attribute": "value"
|
|
11277
|
+
},
|
|
11278
|
+
{
|
|
11279
|
+
"kind": "field",
|
|
11280
|
+
"name": "selected",
|
|
11281
|
+
"type": {
|
|
11282
|
+
"text": "Component[]"
|
|
11283
|
+
},
|
|
11284
|
+
"default": "[]",
|
|
11285
|
+
"attribute": "selected"
|
|
11286
|
+
},
|
|
11287
|
+
{
|
|
11288
|
+
"kind": "field",
|
|
11289
|
+
"name": "fonts",
|
|
11290
|
+
"type": {
|
|
11291
|
+
"text": "any[]"
|
|
11292
|
+
},
|
|
11293
|
+
"default": "[]",
|
|
11294
|
+
"attribute": "fonts"
|
|
11295
|
+
},
|
|
11296
|
+
{
|
|
11297
|
+
"kind": "method",
|
|
11298
|
+
"name": "onButtonGroupClick",
|
|
11299
|
+
"parameters": [
|
|
11300
|
+
{
|
|
11301
|
+
"name": "e",
|
|
11302
|
+
"type": {
|
|
11303
|
+
"text": "Event"
|
|
11304
|
+
}
|
|
11305
|
+
}
|
|
11306
|
+
]
|
|
11307
|
+
},
|
|
11308
|
+
{
|
|
11309
|
+
"kind": "method",
|
|
11310
|
+
"name": "_isLine",
|
|
11311
|
+
"parameters": [
|
|
11312
|
+
{
|
|
11313
|
+
"name": "selected",
|
|
11314
|
+
"type": {
|
|
11315
|
+
"text": "Component[]"
|
|
11316
|
+
}
|
|
11317
|
+
}
|
|
11318
|
+
]
|
|
11319
|
+
},
|
|
11320
|
+
{
|
|
11321
|
+
"kind": "method",
|
|
11322
|
+
"name": "_onValueChange",
|
|
11323
|
+
"parameters": [
|
|
11324
|
+
{
|
|
11325
|
+
"name": "e",
|
|
11326
|
+
"type": {
|
|
11327
|
+
"text": "Event"
|
|
11328
|
+
}
|
|
11329
|
+
}
|
|
11330
|
+
],
|
|
11331
|
+
"inheritedFrom": {
|
|
11332
|
+
"name": "AbstractProperty",
|
|
11333
|
+
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
11334
|
+
}
|
|
11335
|
+
},
|
|
11336
|
+
{
|
|
11337
|
+
"kind": "method",
|
|
11338
|
+
"name": "_getValueFromEventTarget",
|
|
11339
|
+
"parameters": [
|
|
11340
|
+
{
|
|
11341
|
+
"name": "element",
|
|
11342
|
+
"type": {
|
|
11343
|
+
"text": "HTMLElement"
|
|
11344
|
+
}
|
|
11345
|
+
}
|
|
11346
|
+
],
|
|
11347
|
+
"inheritedFrom": {
|
|
11348
|
+
"name": "AbstractProperty",
|
|
11349
|
+
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
11350
|
+
}
|
|
11351
|
+
},
|
|
11352
|
+
{
|
|
11353
|
+
"kind": "method",
|
|
11354
|
+
"name": "_onAfterValueChange",
|
|
11355
|
+
"parameters": [
|
|
11356
|
+
{
|
|
11357
|
+
"name": "key",
|
|
11358
|
+
"type": {
|
|
11359
|
+
"text": "string"
|
|
11360
|
+
}
|
|
11361
|
+
},
|
|
11362
|
+
{
|
|
11363
|
+
"name": "value",
|
|
11364
|
+
"type": {
|
|
11365
|
+
"text": "any"
|
|
11366
|
+
}
|
|
11367
|
+
}
|
|
11368
|
+
],
|
|
11369
|
+
"inheritedFrom": {
|
|
11370
|
+
"name": "AbstractProperty",
|
|
11371
|
+
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
11372
|
+
}
|
|
11373
|
+
}
|
|
11374
|
+
],
|
|
11375
|
+
"attributes": [
|
|
11376
|
+
{
|
|
11377
|
+
"name": "value",
|
|
11378
|
+
"type": {
|
|
11379
|
+
"text": "any"
|
|
11380
|
+
},
|
|
11381
|
+
"default": "{}",
|
|
11382
|
+
"fieldName": "value"
|
|
11383
|
+
},
|
|
11384
|
+
{
|
|
11385
|
+
"name": "selected",
|
|
11386
|
+
"type": {
|
|
11387
|
+
"text": "Component[]"
|
|
11388
|
+
},
|
|
11389
|
+
"default": "[]",
|
|
11390
|
+
"fieldName": "selected"
|
|
11391
|
+
},
|
|
11392
|
+
{
|
|
11393
|
+
"name": "fonts",
|
|
11394
|
+
"type": {
|
|
11395
|
+
"text": "any[]"
|
|
11396
|
+
},
|
|
11397
|
+
"default": "[]",
|
|
11398
|
+
"fieldName": "fonts"
|
|
11399
|
+
}
|
|
11400
|
+
],
|
|
11401
|
+
"superclass": {
|
|
11402
|
+
"name": "AbstractProperty",
|
|
11403
|
+
"module": "/src/modeller/property-sidebar/abstract-property.js"
|
|
11404
|
+
},
|
|
11405
|
+
"events": [
|
|
11406
|
+
{
|
|
11407
|
+
"name": "property-change",
|
|
11408
|
+
"type": {
|
|
11409
|
+
"text": "CustomEvent"
|
|
11410
|
+
},
|
|
11411
|
+
"inheritedFrom": {
|
|
11412
|
+
"name": "AbstractProperty",
|
|
11413
|
+
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
11414
|
+
}
|
|
11415
|
+
}
|
|
11416
|
+
]
|
|
11417
|
+
}
|
|
11418
|
+
],
|
|
11419
|
+
"exports": [
|
|
11420
|
+
{
|
|
11421
|
+
"kind": "js",
|
|
11422
|
+
"name": "PropertyStyles",
|
|
11423
|
+
"declaration": {
|
|
11424
|
+
"name": "PropertyStyles",
|
|
11425
|
+
"module": "src/modeller/property-sidebar/styles/styles.ts"
|
|
11426
|
+
}
|
|
11427
|
+
}
|
|
11428
|
+
]
|
|
11429
|
+
},
|
|
11192
11430
|
{
|
|
11193
11431
|
"kind": "javascript-module",
|
|
11194
11432
|
"path": "src/modeller/property-sidebar/inspector/inspector-controller.ts",
|
|
@@ -12084,176 +12322,6 @@
|
|
|
12084
12322
|
}
|
|
12085
12323
|
}
|
|
12086
12324
|
]
|
|
12087
|
-
},
|
|
12088
|
-
{
|
|
12089
|
-
"kind": "javascript-module",
|
|
12090
|
-
"path": "src/modeller/property-sidebar/styles/styles.ts",
|
|
12091
|
-
"declarations": [
|
|
12092
|
-
{
|
|
12093
|
-
"kind": "class",
|
|
12094
|
-
"description": "",
|
|
12095
|
-
"name": "PropertyStyles",
|
|
12096
|
-
"members": [
|
|
12097
|
-
{
|
|
12098
|
-
"kind": "field",
|
|
12099
|
-
"name": "value",
|
|
12100
|
-
"type": {
|
|
12101
|
-
"text": "any"
|
|
12102
|
-
},
|
|
12103
|
-
"default": "{}",
|
|
12104
|
-
"attribute": "value"
|
|
12105
|
-
},
|
|
12106
|
-
{
|
|
12107
|
-
"kind": "field",
|
|
12108
|
-
"name": "selected",
|
|
12109
|
-
"type": {
|
|
12110
|
-
"text": "Component[]"
|
|
12111
|
-
},
|
|
12112
|
-
"default": "[]",
|
|
12113
|
-
"attribute": "selected"
|
|
12114
|
-
},
|
|
12115
|
-
{
|
|
12116
|
-
"kind": "field",
|
|
12117
|
-
"name": "fonts",
|
|
12118
|
-
"type": {
|
|
12119
|
-
"text": "any[]"
|
|
12120
|
-
},
|
|
12121
|
-
"default": "[]",
|
|
12122
|
-
"attribute": "fonts"
|
|
12123
|
-
},
|
|
12124
|
-
{
|
|
12125
|
-
"kind": "method",
|
|
12126
|
-
"name": "onButtonGroupClick",
|
|
12127
|
-
"parameters": [
|
|
12128
|
-
{
|
|
12129
|
-
"name": "e",
|
|
12130
|
-
"type": {
|
|
12131
|
-
"text": "Event"
|
|
12132
|
-
}
|
|
12133
|
-
}
|
|
12134
|
-
]
|
|
12135
|
-
},
|
|
12136
|
-
{
|
|
12137
|
-
"kind": "method",
|
|
12138
|
-
"name": "_isLine",
|
|
12139
|
-
"parameters": [
|
|
12140
|
-
{
|
|
12141
|
-
"name": "selected",
|
|
12142
|
-
"type": {
|
|
12143
|
-
"text": "Component[]"
|
|
12144
|
-
}
|
|
12145
|
-
}
|
|
12146
|
-
]
|
|
12147
|
-
},
|
|
12148
|
-
{
|
|
12149
|
-
"kind": "method",
|
|
12150
|
-
"name": "_onValueChange",
|
|
12151
|
-
"parameters": [
|
|
12152
|
-
{
|
|
12153
|
-
"name": "e",
|
|
12154
|
-
"type": {
|
|
12155
|
-
"text": "Event"
|
|
12156
|
-
}
|
|
12157
|
-
}
|
|
12158
|
-
],
|
|
12159
|
-
"inheritedFrom": {
|
|
12160
|
-
"name": "AbstractProperty",
|
|
12161
|
-
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
12162
|
-
}
|
|
12163
|
-
},
|
|
12164
|
-
{
|
|
12165
|
-
"kind": "method",
|
|
12166
|
-
"name": "_getValueFromEventTarget",
|
|
12167
|
-
"parameters": [
|
|
12168
|
-
{
|
|
12169
|
-
"name": "element",
|
|
12170
|
-
"type": {
|
|
12171
|
-
"text": "HTMLElement"
|
|
12172
|
-
}
|
|
12173
|
-
}
|
|
12174
|
-
],
|
|
12175
|
-
"inheritedFrom": {
|
|
12176
|
-
"name": "AbstractProperty",
|
|
12177
|
-
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
12178
|
-
}
|
|
12179
|
-
},
|
|
12180
|
-
{
|
|
12181
|
-
"kind": "method",
|
|
12182
|
-
"name": "_onAfterValueChange",
|
|
12183
|
-
"parameters": [
|
|
12184
|
-
{
|
|
12185
|
-
"name": "key",
|
|
12186
|
-
"type": {
|
|
12187
|
-
"text": "string"
|
|
12188
|
-
}
|
|
12189
|
-
},
|
|
12190
|
-
{
|
|
12191
|
-
"name": "value",
|
|
12192
|
-
"type": {
|
|
12193
|
-
"text": "any"
|
|
12194
|
-
}
|
|
12195
|
-
}
|
|
12196
|
-
],
|
|
12197
|
-
"inheritedFrom": {
|
|
12198
|
-
"name": "AbstractProperty",
|
|
12199
|
-
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
12200
|
-
}
|
|
12201
|
-
}
|
|
12202
|
-
],
|
|
12203
|
-
"attributes": [
|
|
12204
|
-
{
|
|
12205
|
-
"name": "value",
|
|
12206
|
-
"type": {
|
|
12207
|
-
"text": "any"
|
|
12208
|
-
},
|
|
12209
|
-
"default": "{}",
|
|
12210
|
-
"fieldName": "value"
|
|
12211
|
-
},
|
|
12212
|
-
{
|
|
12213
|
-
"name": "selected",
|
|
12214
|
-
"type": {
|
|
12215
|
-
"text": "Component[]"
|
|
12216
|
-
},
|
|
12217
|
-
"default": "[]",
|
|
12218
|
-
"fieldName": "selected"
|
|
12219
|
-
},
|
|
12220
|
-
{
|
|
12221
|
-
"name": "fonts",
|
|
12222
|
-
"type": {
|
|
12223
|
-
"text": "any[]"
|
|
12224
|
-
},
|
|
12225
|
-
"default": "[]",
|
|
12226
|
-
"fieldName": "fonts"
|
|
12227
|
-
}
|
|
12228
|
-
],
|
|
12229
|
-
"superclass": {
|
|
12230
|
-
"name": "AbstractProperty",
|
|
12231
|
-
"module": "/src/modeller/property-sidebar/abstract-property.js"
|
|
12232
|
-
},
|
|
12233
|
-
"events": [
|
|
12234
|
-
{
|
|
12235
|
-
"name": "property-change",
|
|
12236
|
-
"type": {
|
|
12237
|
-
"text": "CustomEvent"
|
|
12238
|
-
},
|
|
12239
|
-
"inheritedFrom": {
|
|
12240
|
-
"name": "AbstractProperty",
|
|
12241
|
-
"module": "src/modeller/property-sidebar/abstract-property.ts"
|
|
12242
|
-
}
|
|
12243
|
-
}
|
|
12244
|
-
]
|
|
12245
|
-
}
|
|
12246
|
-
],
|
|
12247
|
-
"exports": [
|
|
12248
|
-
{
|
|
12249
|
-
"kind": "js",
|
|
12250
|
-
"name": "PropertyStyles",
|
|
12251
|
-
"declaration": {
|
|
12252
|
-
"name": "PropertyStyles",
|
|
12253
|
-
"module": "src/modeller/property-sidebar/styles/styles.ts"
|
|
12254
|
-
}
|
|
12255
|
-
}
|
|
12256
|
-
]
|
|
12257
12325
|
}
|
|
12258
12326
|
]
|
|
12259
12327
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow-Replay(플레이백 = 과거 흐름 재생) 기능 ON/OFF 전역 설정.
|
|
3
|
+
*
|
|
4
|
+
* 3D 기능(things-scene 의 setThreedEnabled/isThreedEnabled)과 같은 방식이지만,
|
|
5
|
+
* 플레이백은 전적으로 fmsim(board) 안의 기능이라 엔진 전역이 아니라 fmsim 전역으로 둔다.
|
|
6
|
+
* 부트스트랩이 <things-app flow-replay-enabled="false"> 를 딱 한 번 읽어 여기에 밀어넣고,
|
|
7
|
+
* 뷰어(ox-board-viewer)가 이 값을 참조해 재생 FAB·시작 경로를 게이팅한다.
|
|
8
|
+
*
|
|
9
|
+
* 판정 규칙은 3D 와 동일한 opt-out: 명시적으로 "false" 일 때만 비활성, 그 외 전부 활성(기본 ON).
|
|
10
|
+
*/
|
|
11
|
+
/** Flow-Replay(플레이백) 전역 활성 여부 설정. 부트스트랩에서 한 번 호출. */
|
|
12
|
+
export declare function setFlowReplayEnabled(enabled: boolean): void;
|
|
13
|
+
/** Flow-Replay(플레이백) 전역 활성 여부. 기본 true(활성). */
|
|
14
|
+
export declare function isFlowReplayEnabled(): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow-Replay(플레이백 = 과거 흐름 재생) 기능 ON/OFF 전역 설정.
|
|
3
|
+
*
|
|
4
|
+
* 3D 기능(things-scene 의 setThreedEnabled/isThreedEnabled)과 같은 방식이지만,
|
|
5
|
+
* 플레이백은 전적으로 fmsim(board) 안의 기능이라 엔진 전역이 아니라 fmsim 전역으로 둔다.
|
|
6
|
+
* 부트스트랩이 <things-app flow-replay-enabled="false"> 를 딱 한 번 읽어 여기에 밀어넣고,
|
|
7
|
+
* 뷰어(ox-board-viewer)가 이 값을 참조해 재생 FAB·시작 경로를 게이팅한다.
|
|
8
|
+
*
|
|
9
|
+
* 판정 규칙은 3D 와 동일한 opt-out: 명시적으로 "false" 일 때만 비활성, 그 외 전부 활성(기본 ON).
|
|
10
|
+
*/
|
|
11
|
+
let _flowReplayEnabled = true;
|
|
12
|
+
/** Flow-Replay(플레이백) 전역 활성 여부 설정. 부트스트랩에서 한 번 호출. */
|
|
13
|
+
export function setFlowReplayEnabled(enabled) {
|
|
14
|
+
_flowReplayEnabled = enabled;
|
|
15
|
+
}
|
|
16
|
+
/** Flow-Replay(플레이백) 전역 활성 여부. 기본 true(활성). */
|
|
17
|
+
export function isFlowReplayEnabled() {
|
|
18
|
+
return _flowReplayEnabled;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=flow-replay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-replay.js","sourceRoot":"","sources":["../../../src/config/flow-replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,IAAI,kBAAkB,GAAG,IAAI,CAAA;AAE7B,qDAAqD;AACrD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,kBAAkB,GAAG,OAAO,CAAA;AAC9B,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,mBAAmB;IACjC,OAAO,kBAAkB,CAAA;AAC3B,CAAC","sourcesContent":["/**\n * Flow-Replay(플레이백 = 과거 흐름 재생) 기능 ON/OFF 전역 설정.\n *\n * 3D 기능(things-scene 의 setThreedEnabled/isThreedEnabled)과 같은 방식이지만,\n * 플레이백은 전적으로 fmsim(board) 안의 기능이라 엔진 전역이 아니라 fmsim 전역으로 둔다.\n * 부트스트랩이 <things-app flow-replay-enabled=\"false\"> 를 딱 한 번 읽어 여기에 밀어넣고,\n * 뷰어(ox-board-viewer)가 이 값을 참조해 재생 FAB·시작 경로를 게이팅한다.\n *\n * 판정 규칙은 3D 와 동일한 opt-out: 명시적으로 \"false\" 일 때만 비활성, 그 외 전부 활성(기본 ON).\n */\n\nlet _flowReplayEnabled = true\n\n/** Flow-Replay(플레이백) 전역 활성 여부 설정. 부트스트랩에서 한 번 호출. */\nexport function setFlowReplayEnabled(enabled: boolean): void {\n _flowReplayEnabled = enabled\n}\n\n/** Flow-Replay(플레이백) 전역 활성 여부. 기본 true(활성). */\nexport function isFlowReplayEnabled(): boolean {\n return _flowReplayEnabled\n}\n"]}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
|
+
export { setFlowReplayEnabled, isFlowReplayEnabled } from './config/flow-replay.js';
|
|
2
3
|
export { registerDefaultGroups } from './component/register-default-groups.js';
|
|
3
4
|
export { DataStorage } from './data-storage/data-storage.js';
|
|
4
5
|
export { PlaybackEngine } from './playback/playback-engine.js';
|
package/dist/src/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
|
+
export { setFlowReplayEnabled, isFlowReplayEnabled } from './config/flow-replay.js';
|
|
2
3
|
export { registerDefaultGroups } from './component/register-default-groups.js';
|
|
3
4
|
export { DataStorage } from './data-storage/data-storage.js';
|
|
4
5
|
export { PlaybackEngine } from './playback/playback-engine.js';
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAElC,cAAc,sBAAsB,CAAA","sourcesContent":["export * from './types.js'\n\nexport { registerDefaultGroups } from './component/register-default-groups.js'\nexport { DataStorage } from './data-storage/data-storage.js'\nexport { PlaybackEngine } from './playback/playback-engine.js'\nexport { BoardModelCache } from './data-storage/board-model-cache.js'\nexport type { CachedBoard } from './data-storage/board-model-cache.js'\n\nexport * from './ox-board-viewer.js'\nexport * from './ox-board-modeller.js'\nexport * from './ox-board-list.js'\n\nexport * from './component/index.js'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAE1B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAElC,cAAc,sBAAsB,CAAA","sourcesContent":["export * from './types.js'\n\nexport { setFlowReplayEnabled, isFlowReplayEnabled } from './config/flow-replay.js'\nexport { registerDefaultGroups } from './component/register-default-groups.js'\nexport { DataStorage } from './data-storage/data-storage.js'\nexport { PlaybackEngine } from './playback/playback-engine.js'\nexport { BoardModelCache } from './data-storage/board-model-cache.js'\nexport type { CachedBoard } from './data-storage/board-model-cache.js'\n\nexport * from './ox-board-viewer.js'\nexport * from './ox-board-modeller.js'\nexport * from './ox-board-list.js'\n\nexport * from './component/index.js'\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventMap } from '@hatiolab/things-scene';
|
|
2
2
|
function dispatchFetchLvModelDataByMouseEvent(type, event, target) {
|
|
3
|
-
var _a;
|
|
3
|
+
var _a, _b, _c;
|
|
4
4
|
// 플레이백 모드 — 함수 자체를 실행하지 않음.
|
|
5
5
|
// 1) 외부 모니터링 fetchLvModelDataByMouseEvent window 이벤트 차단
|
|
6
6
|
// 2) realTarget 반환 차단 → onclick 의 후속 clickComponent dispatch 가
|
|
@@ -9,6 +9,10 @@ function dispatchFetchLvModelDataByMouseEvent(type, event, target) {
|
|
|
9
9
|
if ((_a = target === null || target === void 0 ? void 0 : target.root) === null || _a === void 0 ? void 0 : _a.playbackMode)
|
|
10
10
|
return undefined;
|
|
11
11
|
const parent = target.parentObject;
|
|
12
|
+
// CapacityBar(Stocker/Zone) 처럼 세그먼트 게이지를 그리는 컴포넌트는, carrier/abnormal
|
|
13
|
+
// 모드에서 클릭된 세그먼트(Full/Empty/EmptyEmpty/Normal/Abnormal)를 함께 실어 보낸다.
|
|
14
|
+
// capacity 모드·비세그먼트 컴포넌트는 undefined → 필드 미포함.
|
|
15
|
+
const segment = (_c = (_b = target).segmentAtEvent) === null || _c === void 0 ? void 0 : _c.call(_b, event);
|
|
12
16
|
if (target.getState('id')) {
|
|
13
17
|
window.dispatchEvent(new CustomEvent('fetchLvModelDataByMouseEvent', {
|
|
14
18
|
detail: {
|
|
@@ -24,7 +28,8 @@ function dispatchFetchLvModelDataByMouseEvent(type, event, target) {
|
|
|
24
28
|
}
|
|
25
29
|
: null
|
|
26
30
|
},
|
|
27
|
-
data: target.data
|
|
31
|
+
data: target.data,
|
|
32
|
+
...(segment ? { segment } : {})
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
}));
|
|
@@ -37,7 +42,8 @@ function dispatchFetchLvModelDataByMouseEvent(type, event, target) {
|
|
|
37
42
|
type,
|
|
38
43
|
event,
|
|
39
44
|
model: parent.state,
|
|
40
|
-
data: parent.data
|
|
45
|
+
data: parent.data,
|
|
46
|
+
...(segment ? { segment } : {})
|
|
41
47
|
}
|
|
42
48
|
}
|
|
43
49
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcs-mouse-event-handler.js","sourceRoot":"","sources":["../../../src/layers/mcs-mouse-event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAE5D,SAAS,oCAAoC,CAC3C,IAAoC,EACpC,KAAiB,EACjB,MAAgD;;IAEhD,4BAA4B;IAC5B,0DAA0D;IAC1D,iEAAiE;IACjE,iEAAiE;IACjE,sDAAsD;IACtD,IAAI,MAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,IAAI,0CAAE,YAAY;QAAE,OAAO,SAAS,CAAA;IAEzD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAA;IAElC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,8BAA8B,EAAE;YAC9C,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,IAAI;oBACJ,KAAK;oBACL,KAAK,EAAE;wBACL,GAAG,MAAM,CAAC,KAAK;wBACf,YAAY,EAAE,MAAM;4BAClB,CAAC,CAAC;gCACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gCACpB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;6BACzB;4BACH,CAAC,CAAC,IAAI;qBACT;oBACD,IAAI,EAAE,MAAM,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"mcs-mouse-event-handler.js","sourceRoot":"","sources":["../../../src/layers/mcs-mouse-event-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventMap } from '@hatiolab/things-scene'\n\nfunction dispatchFetchLvModelDataByMouseEvent(\n type: 'hover' | 'click' | 'dblclick',\n event: MouseEvent,\n target: Component & { parentObject?: Component }\n): Component | undefined {\n // 플레이백 모드 — 함수 자체를 실행하지 않음.\n // 1) 외부 모니터링 fetchLvModelDataByMouseEvent window 이벤트 차단\n // 2) realTarget 반환 차단 → onclick 의 후속 clickComponent dispatch 가\n // realTarget = undefined 로 흘러 popup 등 후속 backend 호출 경로도 비활성\n // (popup 의 detailInfo() 가드와 더불어 백엔드 요청을 차단하는 1차 게이트.)\n if ((target as any)?.root?.playbackMode) return undefined\n\n const parent = target.parentObject\n\n // CapacityBar(Stocker/Zone) 처럼 세그먼트 게이지를 그리는 컴포넌트는, carrier/abnormal\n // 모드에서 클릭된 세그먼트(Full/Empty/EmptyEmpty/Normal/Abnormal)를 함께 실어 보낸다.\n // capacity 모드·비세그먼트 컴포넌트는 undefined → 필드 미포함.\n const segment = (target as any).segmentAtEvent?.(event)\n\n if (target.getState('id')) {\n window.dispatchEvent(\n new CustomEvent('fetchLvModelDataByMouseEvent', {\n detail: {\n value: {\n type,\n event,\n model: {\n ...target.state,\n parentObject: parent\n ? {\n id: parent.get('id'),\n type: parent.get('type')\n }\n : null\n },\n data: target.data,\n ...(segment ? { segment } : {})\n }\n }\n })\n )\n\n return parent || target\n } else if (parent && parent.getState('id')) {\n window.dispatchEvent(\n new CustomEvent('fetchLvModelDataByMouseEvent', {\n detail: {\n value: {\n type,\n event,\n model: parent.state,\n data: parent.data,\n ...(segment ? { segment } : {})\n }\n }\n })\n )\n\n return parent\n }\n}\n\n// function onmouseenter(event: MouseEvent, hint: any) {\n// const target = hint.origin\n\n// event.stopPropagation()\n\n// dispatchFetchLvModelDataByMouseEvent('hover', event, target)\n// }\n\nfunction onclick(event: MouseEvent, hint: any) {\n const target = hint.origin\n\n event.stopPropagation()\n\n setTimeout(() => {\n if (target.currentEvent !== 'dblclick') {\n const realTarget = dispatchFetchLvModelDataByMouseEvent('click', event, target)\n\n window.dispatchEvent(\n new CustomEvent('clickComponent', {\n detail: realTarget || target\n })\n )\n }\n }, 300)\n}\n\nfunction ondblclick(event: MouseEvent, hint: any) {\n const target = hint.origin\n\n setTimeout(() => {\n target.currentEvent = ''\n }, 500)\n\n event.stopPropagation()\n\n target.currentEvent = 'dblclick'\n\n dispatchFetchLvModelDataByMouseEvent('dblclick', event, target)\n}\n\nEventMap.register('mcs-event-handler', {\n 'model-layer': {\n '(all)': {\n // mouseenter: onmouseenter, /* 사용되지 않고 있음 */\n click: onclick,\n dblclick: ondblclick\n }\n }\n})\n"]}
|
|
@@ -30,7 +30,10 @@ export type PATH = {
|
|
|
30
30
|
dstUnit: string;
|
|
31
31
|
pathType: PathType;
|
|
32
32
|
status: PathStatus;
|
|
33
|
-
|
|
33
|
+
/** 강조 대상 개수(신규 이름). 미지정 시 label 자동 생성에 사용. */
|
|
34
|
+
highlightTarget?: number;
|
|
35
|
+
/** @deprecated `highlightTarget` 로 개명됨. 하위호환을 위해 유지 — 읽을 때 highlightTarget 이 없으면 이 값을 사용. */
|
|
36
|
+
transportCnt?: number;
|
|
34
37
|
label: string;
|
|
35
38
|
styles?: PathStyles;
|
|
36
39
|
};
|
|
@@ -9,6 +9,15 @@ const MOVEMENT_STYLES = {
|
|
|
9
9
|
};
|
|
10
10
|
const WING_FACTOR = Math.sqrt(3);
|
|
11
11
|
const LINEWIDTH = 2;
|
|
12
|
+
/**
|
|
13
|
+
* highlightTarget(신규) 를 우선 사용하고, 없으면 transportCnt(deprecated) 로 폴백해
|
|
14
|
+
* 자동 라벨 문자열을 만든다(2 초과일 때만 개수 표시). 하위호환 단일 소스.
|
|
15
|
+
*/
|
|
16
|
+
function autoHighlightLabel(path) {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
const count = Number((_b = (_a = path.highlightTarget) !== null && _a !== void 0 ? _a : path.transportCnt) !== null && _b !== void 0 ? _b : 0);
|
|
19
|
+
return count > 1 ? String(count) : '';
|
|
20
|
+
}
|
|
12
21
|
let MovementLayer = class MovementLayer extends Layer {
|
|
13
22
|
constructor() {
|
|
14
23
|
super(...arguments);
|
|
@@ -160,7 +169,7 @@ let MovementLayer = class MovementLayer extends Layer {
|
|
|
160
169
|
dest.transcoordS2C(destCenter.x, destCenter.y, root)
|
|
161
170
|
];
|
|
162
171
|
ctx.beginPath();
|
|
163
|
-
this.drawArrow(ctx, srcPos, destPos, path.pathType, path.status, path.label || (
|
|
172
|
+
this.drawArrow(ctx, srcPos, destPos, path.pathType, path.status, path.label || autoHighlightLabel(path), path.styles);
|
|
164
173
|
ctx.stroke();
|
|
165
174
|
});
|
|
166
175
|
ctx.restore();
|
|
@@ -185,7 +194,7 @@ let MovementLayer = class MovementLayer extends Layer {
|
|
|
185
194
|
beginSize: (_m = (_l = path.styles) === null || _l === void 0 ? void 0 : _l.beginSize) !== null && _m !== void 0 ? _m : 'size2',
|
|
186
195
|
end: (_p = (_o = path.styles) === null || _o === void 0 ? void 0 : _o.end) !== null && _p !== void 0 ? _p : 'arrow',
|
|
187
196
|
endSize: (_r = (_q = path.styles) === null || _q === void 0 ? void 0 : _q.endSize) !== null && _r !== void 0 ? _r : 'size2',
|
|
188
|
-
label: path.label || (
|
|
197
|
+
label: path.label || autoHighlightLabel(path)
|
|
189
198
|
});
|
|
190
199
|
});
|
|
191
200
|
}
|