@fmsim/board 1.0.88 → 2.0.0-beta.101
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 +7366 -3448
- package/demo/index-modeller.html +1 -1
- package/demo/index-player.html +2 -2
- package/demo/index-viewer.html +2 -2
- package/demo/index.html +2 -2
- package/dist/src/component/etc.js +36 -0
- package/dist/src/component/etc.js.map +1 -1
- package/dist/src/component/index.d.ts +1 -0
- package/dist/src/component/index.js +1 -0
- package/dist/src/component/index.js.map +1 -1
- package/dist/src/component/restful-attachment-creation-card.js +1 -1
- package/dist/src/component/restful-attachment-creation-card.js.map +1 -1
- package/dist/src/component/restful-attachment-selector.js +8 -9
- package/dist/src/component/restful-attachment-selector.js.map +1 -1
- package/dist/src/component/restful-input-attachment-selector.d.ts +1 -1
- package/dist/src/component/restful-input-attachment-selector.js +3 -3
- package/dist/src/component/restful-input-attachment-selector.js.map +1 -1
- package/dist/src/component/restful-input-fill-style.d.ts +13 -2
- package/dist/src/component/restful-input-fill-style.js.map +1 -1
- package/dist/src/component/restful-property-editor-backdrop-faces.d.ts +50 -0
- package/dist/src/component/restful-property-editor-backdrop-faces.js +524 -0
- package/dist/src/component/restful-property-editor-backdrop-faces.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 +8 -0
- package/dist/src/layers/mcs-mouse-event-handler.js.map +1 -1
- package/dist/src/layers/movement-layer.d.ts +7 -6
- package/dist/src/layers/movement-layer.js +56 -11
- package/dist/src/layers/movement-layer.js.map +1 -1
- package/dist/src/modeller/bulk-create-dialog.d.ts +51 -0
- package/dist/src/modeller/bulk-create-dialog.js +531 -0
- package/dist/src/modeller/bulk-create-dialog.js.map +1 -0
- package/dist/src/modeller/bulk-create.d.ts +101 -0
- package/dist/src/modeller/bulk-create.js +199 -0
- package/dist/src/modeller/bulk-create.js.map +1 -0
- package/dist/src/modeller/component-toolbar/component-menu.d.ts +1 -1
- package/dist/src/modeller/component-toolbar/component-toolbar.d.ts +4 -4
- package/dist/src/modeller/component-toolbar/component-toolbar.js.map +1 -1
- package/dist/src/modeller/edit-toolbar-style.js +43 -3
- package/dist/src/modeller/edit-toolbar-style.js.map +1 -1
- package/dist/src/modeller/edit-toolbar.d.ts +21 -14
- package/dist/src/modeller/edit-toolbar.js +371 -213
- package/dist/src/modeller/edit-toolbar.js.map +1 -1
- package/dist/src/modeller/property-sidebar/abstract-property.js +10 -2
- package/dist/src/modeller/property-sidebar/abstract-property.js.map +1 -1
- package/dist/src/modeller/property-sidebar/data-binding/data-binding-mapper.js +1 -1
- package/dist/src/modeller/property-sidebar/data-binding/data-binding-mapper.js.map +1 -1
- package/dist/src/modeller/property-sidebar/data-binding/data-binding.d.ts +2 -2
- package/dist/src/modeller/property-sidebar/data-binding/data-binding.js +18 -18
- package/dist/src/modeller/property-sidebar/data-binding/data-binding.js.map +1 -1
- package/dist/src/modeller/property-sidebar/effects/effects.d.ts +10 -1
- package/dist/src/modeller/property-sidebar/effects/effects.js +66 -1
- package/dist/src/modeller/property-sidebar/effects/effects.js.map +1 -1
- package/dist/src/modeller/property-sidebar/effects/event-handler-adapter.d.ts +44 -0
- package/dist/src/modeller/property-sidebar/effects/event-handler-adapter.js +70 -0
- package/dist/src/modeller/property-sidebar/effects/event-handler-adapter.js.map +1 -0
- package/dist/src/modeller/property-sidebar/effects/property-event-hover.js +3 -3
- package/dist/src/modeller/property-sidebar/effects/property-event-hover.js.map +1 -1
- package/dist/src/modeller/property-sidebar/effects/property-event.d.ts +13 -3
- package/dist/src/modeller/property-sidebar/effects/property-event.js +20 -11
- package/dist/src/modeller/property-sidebar/effects/property-event.js.map +1 -1
- package/dist/src/modeller/property-sidebar/inspector/inspector-controller.d.ts +62 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-controller.js +276 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-controller.js.map +1 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-group-view.d.ts +15 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-group-view.js +56 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-group-view.js.map +1 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-highlight.d.ts +7 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-highlight.js +25 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-highlight.js.map +1 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-model.d.ts +44 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-model.js +72 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-model.js.map +1 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-tree-view.d.ts +18 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-tree-view.js +61 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector-tree-view.js.map +1 -0
- package/dist/src/modeller/property-sidebar/inspector/inspector.d.ts +17 -12
- package/dist/src/modeller/property-sidebar/inspector/inspector.js +281 -154
- package/dist/src/modeller/property-sidebar/inspector/inspector.js.map +1 -1
- package/dist/src/modeller/property-sidebar/property-sidebar.d.ts +2 -2
- package/dist/src/modeller/property-sidebar/property-sidebar.js +11 -24
- package/dist/src/modeller/property-sidebar/property-sidebar.js.map +1 -1
- package/dist/src/modeller/property-sidebar/shapes/ox-input-entity-id.d.ts +75 -0
- package/dist/src/modeller/property-sidebar/shapes/ox-input-entity-id.js +346 -0
- package/dist/src/modeller/property-sidebar/shapes/ox-input-entity-id.js.map +1 -0
- package/dist/src/modeller/property-sidebar/shapes/shapes.d.ts +23 -2
- package/dist/src/modeller/property-sidebar/shapes/shapes.js +96 -4
- package/dist/src/modeller/property-sidebar/shapes/shapes.js.map +1 -1
- package/dist/src/modeller/property-sidebar/specifics/specifics.d.ts +25 -1
- package/dist/src/modeller/property-sidebar/specifics/specifics.js +112 -2
- package/dist/src/modeller/property-sidebar/specifics/specifics.js.map +1 -1
- package/dist/src/modeller/property-sidebar/styles/styles.d.ts +6 -4
- package/dist/src/modeller/property-sidebar/styles/styles.js +140 -437
- package/dist/src/modeller/property-sidebar/styles/styles.js.map +1 -1
- package/dist/src/modeller/scene-viewer/ox-scene-layer.d.ts +4 -3
- package/dist/src/modeller/scene-viewer/ox-scene-layer.js +2 -1
- package/dist/src/modeller/scene-viewer/ox-scene-layer.js.map +1 -1
- package/dist/src/modeller/scene-viewer/ox-scene-viewer.d.ts +6 -5
- package/dist/src/modeller/scene-viewer/ox-scene-viewer.js +7 -3
- package/dist/src/modeller/scene-viewer/ox-scene-viewer.js.map +1 -1
- package/dist/src/ox-board-component-info.d.ts +3 -3
- package/dist/src/ox-board-component-info.js +58 -19
- package/dist/src/ox-board-component-info.js.map +1 -1
- package/dist/src/ox-board-list.js +12 -12
- package/dist/src/ox-board-list.js.map +1 -1
- package/dist/src/ox-board-modeller.d.ts +9 -6
- package/dist/src/ox-board-modeller.js +32 -33
- package/dist/src/ox-board-modeller.js.map +1 -1
- package/dist/src/ox-board-viewer.d.ts +129 -17
- package/dist/src/ox-board-viewer.js +804 -115
- package/dist/src/ox-board-viewer.js.map +1 -1
- package/dist/src/ox-editor-board-selector.d.ts +4 -1
- package/dist/src/ox-editor-board-selector.js +41 -12
- package/dist/src/ox-editor-board-selector.js.map +1 -1
- package/dist/src/ox-playback-controls.d.ts +157 -0
- package/dist/src/ox-playback-controls.js +1089 -0
- package/dist/src/ox-playback-controls.js.map +1 -0
- package/dist/src/ox-property-editor-theme.js +2 -2
- package/dist/src/ox-property-editor-theme.js.map +1 -1
- package/dist/src/playback/carrier-tracking-store.d.ts +51 -0
- package/dist/src/playback/carrier-tracking-store.js +115 -0
- package/dist/src/playback/carrier-tracking-store.js.map +1 -0
- package/dist/src/playback/playback-engine.d.ts +106 -0
- package/dist/src/playback/playback-engine.js +395 -0
- package/dist/src/playback/playback-engine.js.map +1 -0
- package/dist/src/selector/board-creation-popup.d.ts +4 -5
- package/dist/src/selector/board-creation-popup.js +16 -19
- package/dist/src/selector/board-creation-popup.js.map +1 -1
- package/dist/src/selector/board-thumbnail-card.js +8 -8
- package/dist/src/selector/board-thumbnail-card.js.map +1 -1
- package/dist/src/selector/ox-board-creation-card.d.ts +1 -1
- package/dist/src/selector/ox-board-creation-card.js +7 -7
- package/dist/src/selector/ox-board-creation-card.js.map +1 -1
- package/dist/src/selector/ox-board-selector.js +21 -10
- package/dist/src/selector/ox-board-selector.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/icons/components/text.png +0 -0
- package/icons/fab/mode-2d.svg +25 -0
- package/icons/fab/mode-3d.svg +25 -0
- package/icons/fab/playback-play.svg +49 -0
- package/icons/fab/playback-stop.svg +50 -0
- package/icons/icon-htoolbar.png +0 -0
- package/package.json +22 -21
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js';
|
|
2
|
+
import '@material/web/iconbutton/icon-button.js';
|
|
3
|
+
import { LitElement } from 'lit';
|
|
4
|
+
type PlaybackState = 'idle' | 'playing' | 'paused' | 'stopped';
|
|
5
|
+
/**
|
|
6
|
+
* 플레이백 컨트롤 오버레이 바 (2행 구조)
|
|
7
|
+
*
|
|
8
|
+
* 1행 (config): Range 선택 (10m / 30m / 1H / 2H / Range) + ←/→ shift
|
|
9
|
+
* + FROM/TO datetime 입력 (date 캘린더 + time 키인) + Apply 버튼
|
|
10
|
+
* + 배속 (×1 ×2 ×4)
|
|
11
|
+
*
|
|
12
|
+
* - Fixed presets: TO 가 anchor (←/→ 로 shift), FROM = TO − range.
|
|
13
|
+
* 입력 disabled. 초기 TO = 현재시간.
|
|
14
|
+
* - Range mode: 양쪽 직접 입력. 2H cap, 10m min, future clamp,
|
|
15
|
+
* 마지막 편집한 쪽이 anchor.
|
|
16
|
+
* - 상단 변경은 PENDING tier 만 갱신 — Apply 누르기 전에는 하단
|
|
17
|
+
* 슬라이더/엔진에 영향 없음.
|
|
18
|
+
*
|
|
19
|
+
* 2행 (control): play / pause / 시크바 (적용된 range 만큼 span) /
|
|
20
|
+
* 현재 재생 시각 / 닫기.
|
|
21
|
+
*
|
|
22
|
+
* @fires playback-start - 플레이백 시작 요청 { fromTime, toTime, speed }
|
|
23
|
+
* toTime 은 window END — 엔진이 chunked fetch 의 상한으로 사용.
|
|
24
|
+
* @fires playback-pause - 일시정지 요청
|
|
25
|
+
* @fires playback-resume - 재개 요청
|
|
26
|
+
* @fires playback-stop - 중지 요청
|
|
27
|
+
* @fires playback-seek - 드래그 릴리즈 시 시크 요청 { toTime }
|
|
28
|
+
* @fires playback-seek-start - 드래그 첫 input 시 즉시 발행 (엔진 타이머·애니메이션 정지 신호, detail 없음)
|
|
29
|
+
* @fires playback-seek-preview - 드래그 중 throttle (leading+trailing, 200ms) 된 스크러빙 요청 { toTime }
|
|
30
|
+
* @fires playback-speed - 배속 변경 요청 { speed }
|
|
31
|
+
*/
|
|
32
|
+
export declare class PlaybackControls extends LitElement {
|
|
33
|
+
static styles: import("lit").CSSResult;
|
|
34
|
+
playbackState: PlaybackState;
|
|
35
|
+
speed: number;
|
|
36
|
+
currentTime: string;
|
|
37
|
+
bufferedRanges: {
|
|
38
|
+
from: number;
|
|
39
|
+
to: number;
|
|
40
|
+
}[];
|
|
41
|
+
/** 외부에서 전달받은 초기 시간 범위 (from만 사용, to는 from+1h로 자동 계산) */
|
|
42
|
+
timeRange: {
|
|
43
|
+
from: Date;
|
|
44
|
+
to: Date;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Two-tier state model:
|
|
48
|
+
*
|
|
49
|
+
* PENDING (`_pendingRange`, `_pendingFrom`, `_pendingTo`)
|
|
50
|
+
* The upper bar's draft. User edits these via the range dropdown,
|
|
51
|
+
* ←/→ shift, or direct date/time inputs (Range mode only). The
|
|
52
|
+
* lower seekbar is NOT driven by these — they only become live
|
|
53
|
+
* when the user clicks "적용".
|
|
54
|
+
*
|
|
55
|
+
* APPLIED (`_appliedFrom`, `_appliedTo`)
|
|
56
|
+
* The window the seekbar visualizes and the engine fetches data
|
|
57
|
+
* for. Updated only by `_onApply()`, which mirrors pending values
|
|
58
|
+
* here and dispatches a `playback-start` to refresh the engine
|
|
59
|
+
* with the new window (when playing/paused).
|
|
60
|
+
*
|
|
61
|
+
* Splitting these prevents mid-edit churn: typing into the time input
|
|
62
|
+
* doesn't refetch on every keystroke, and the slider doesn't jiggle
|
|
63
|
+
* while the user picks a date.
|
|
64
|
+
*/
|
|
65
|
+
private _pendingRange;
|
|
66
|
+
private _pendingFrom;
|
|
67
|
+
private _pendingTo;
|
|
68
|
+
/**
|
|
69
|
+
* Which side did the user touch most recently in Range mode? Anchors
|
|
70
|
+
* the auto-adjust when the resulting gap violates min/max — the
|
|
71
|
+
* unedited side is what gets pushed to a legal value, so the user's
|
|
72
|
+
* latest intent is preserved.
|
|
73
|
+
*/
|
|
74
|
+
private _lastEdited;
|
|
75
|
+
private _appliedFrom;
|
|
76
|
+
private _appliedTo;
|
|
77
|
+
private _seekValue;
|
|
78
|
+
private _currentPlayTime;
|
|
79
|
+
private _seeking;
|
|
80
|
+
private _seekPreviewTime;
|
|
81
|
+
private _speeds;
|
|
82
|
+
/** 드래그 중 playback-seek-preview throttle 타이머 (leading+trailing) */
|
|
83
|
+
private _previewThrottle?;
|
|
84
|
+
/** 드래그 중 가장 최근 seekbar 위치 시각 */
|
|
85
|
+
private _latestPreviewTime;
|
|
86
|
+
/** 가장 최근에 실제 emit 한 preview 시각 (dedupe 용) */
|
|
87
|
+
private _lastEmittedPreviewTime;
|
|
88
|
+
connectedCallback(): void;
|
|
89
|
+
disconnectedCallback(): void;
|
|
90
|
+
updated(changes: Map<string, any>): void;
|
|
91
|
+
/**
|
|
92
|
+
* Map a millisecond gap to the matching preset key, or `'Range'` if
|
|
93
|
+
* the gap doesn't match any preset (custom window already in effect).
|
|
94
|
+
*/
|
|
95
|
+
private _inferRangeKey;
|
|
96
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
97
|
+
private _formatTime;
|
|
98
|
+
private _toDateString;
|
|
99
|
+
/** "HH:MM:SS" — what `<input type="time" step="1">` reads/writes. */
|
|
100
|
+
private _toTimeString;
|
|
101
|
+
/**
|
|
102
|
+
* "YYYY-MM-DDTHH:MM:SS" — what `<input type="datetime-local" step="1">`
|
|
103
|
+
* reads/writes. Local time (no Z suffix), matches the input element's
|
|
104
|
+
* own convention.
|
|
105
|
+
*/
|
|
106
|
+
private _toDatetimeLocalString;
|
|
107
|
+
/**
|
|
108
|
+
* 엔진 프레임(currentTime 프로프) 을 유일한 시간 소스로 사용하여
|
|
109
|
+
* _currentPlayTime 및 _seekValue 동기화.
|
|
110
|
+
*/
|
|
111
|
+
private _syncFromEngine;
|
|
112
|
+
private _onRangeChange;
|
|
113
|
+
private _shiftPending;
|
|
114
|
+
private _pad;
|
|
115
|
+
private _onTimeKeydown;
|
|
116
|
+
private _onTimeInput;
|
|
117
|
+
private _onCompositeChange;
|
|
118
|
+
/**
|
|
119
|
+
* Commit a side's new value, then enforce the gap envelope.
|
|
120
|
+
*
|
|
121
|
+
* Rules (per spec):
|
|
122
|
+
* - `to` clamped to now (no future).
|
|
123
|
+
* - `to − from ≥ 10m` (no zero/negative window).
|
|
124
|
+
* - `to − from ≤ 2h`.
|
|
125
|
+
* - The side just edited (`side`) is the anchor; the OTHER side
|
|
126
|
+
* gets pushed to satisfy the envelope.
|
|
127
|
+
* - If anchoring `from` would push `to` past now, fall back to
|
|
128
|
+
* anchoring `to = now` and shrink `from`.
|
|
129
|
+
*/
|
|
130
|
+
private _writePendingSide;
|
|
131
|
+
/**
|
|
132
|
+
* "적용" — copy pending → applied, reset seek to window start, and
|
|
133
|
+
* (re)start the engine so it refetches data for the new window.
|
|
134
|
+
*
|
|
135
|
+
* Behavior by prior state:
|
|
136
|
+
* - playing: dispatch `playback-start` → engine restarts in new window.
|
|
137
|
+
* - paused : same — engine refetches; we leave the user in 'playing'
|
|
138
|
+
* state because the alternative (carry "paused" through a window
|
|
139
|
+
* change) ends up showing stale buffered data while the new fetch
|
|
140
|
+
* completes, which reads as a stuck UI.
|
|
141
|
+
* - idle : window updated silently; no engine activity until user
|
|
142
|
+
* presses play.
|
|
143
|
+
*/
|
|
144
|
+
private _onApply;
|
|
145
|
+
private _onStart;
|
|
146
|
+
private _onTogglePlayPause;
|
|
147
|
+
private _onStop;
|
|
148
|
+
private _onSeekInput;
|
|
149
|
+
/** latest 위치 시각으로 playback-seek-preview 를 발행 (dedupe). */
|
|
150
|
+
private _emitPreview;
|
|
151
|
+
private _onSeekChange;
|
|
152
|
+
private static readonly PREVIEW_THROTTLE_MS;
|
|
153
|
+
private _cancelPreviewThrottle;
|
|
154
|
+
private _renderBufferBars;
|
|
155
|
+
private _onSpeedChange;
|
|
156
|
+
}
|
|
157
|
+
export {};
|