@things-factory/board-ui 10.0.0-beta.71 → 10.0.0-beta.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-client/board-list/board-tile-list.d.ts +0 -2
- package/dist-client/board-list/board-tile-list.js +29 -22
- package/dist-client/board-list/board-tile-list.js.map +1 -1
- package/dist-client/graphql/attachment.d.ts +33 -0
- package/dist-client/graphql/attachment.js +87 -0
- package/dist-client/graphql/attachment.js.map +1 -0
- package/dist-client/graphql/board-import.d.ts +45 -0
- package/dist-client/graphql/board-import.js +104 -0
- package/dist-client/graphql/board-import.js.map +1 -0
- package/dist-client/pages/board-create-wizard-page.d.ts +157 -0
- package/dist-client/pages/board-create-wizard-page.js +2176 -0
- package/dist-client/pages/board-create-wizard-page.js.map +1 -0
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +3 -0
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/things-factory.config.js +1 -0
- package/translations/en.json +68 -1
- package/translations/ko.json +68 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <board-create-wizard-page> — 보드 생성 wizard.
|
|
3
|
+
*
|
|
4
|
+
* 세 가지 모드:
|
|
5
|
+
* 처음부터 (blank / template) — 빈 캔버스 또는 기존 템플릿으로 새 보드 생성.
|
|
6
|
+
* 도면 업로드 (new) — DXF / 이미지 업로드 → board-import 파이프라인으로 자동 변환.
|
|
7
|
+
* 기존 파일 (existing) — 이미 업로드된 Attachment 에서 보드 생성.
|
|
8
|
+
*/
|
|
9
|
+
import '@material/web/icon/icon.js';
|
|
10
|
+
import { type PropertyValues } from 'lit';
|
|
11
|
+
import { PageView } from '@operato/shell';
|
|
12
|
+
import '@operato/board/ox-board-preview.js';
|
|
13
|
+
declare const BoardCreateWizardPage_base: (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
|
|
14
|
+
export declare class BoardCreateWizardPage extends BoardCreateWizardPage_base {
|
|
15
|
+
static styles: import("lit").CSSResult[];
|
|
16
|
+
/** 현재 wizard 단계. URL/params 와는 독립 — 페이지 안 state 만으로 진행. */
|
|
17
|
+
private _step;
|
|
18
|
+
/** 업로드 후 받은 Attachment 정보. */
|
|
19
|
+
private _attachment?;
|
|
20
|
+
/** importBoardAsync 결과 ImportSession. polling 시 갱신. */
|
|
21
|
+
private _session?;
|
|
22
|
+
/** 현재 업로드 진행 중 — UI lock + spinner. */
|
|
23
|
+
private _uploading;
|
|
24
|
+
/** 업로드 에러 메시지 — UI 표시 + 사용자가 다시 시도 가능. */
|
|
25
|
+
private _uploadError?;
|
|
26
|
+
/** upload 스텝 안의 모드 — 새 파일 업로드 vs 기존 attachment 선택. */
|
|
27
|
+
private _uploadMode;
|
|
28
|
+
/** 기존 파일 목록 (모드 전환 시 lazy fetch). */
|
|
29
|
+
private _browseItems;
|
|
30
|
+
/** 기존 파일 목록 로딩 / 검색 상태. */
|
|
31
|
+
private _browseLoading;
|
|
32
|
+
private _browseSearch;
|
|
33
|
+
/** 사용자가 도면에 대해 추가하는 자유서술 — VLM 에 hint 로 전달. */
|
|
34
|
+
private _userPrompt;
|
|
35
|
+
/** 템플릿 목록 (template 탭 진입 시 lazy fetch). */
|
|
36
|
+
private _templates;
|
|
37
|
+
private _templatesLoading;
|
|
38
|
+
private _templatesLoaded;
|
|
39
|
+
private _templateSearch;
|
|
40
|
+
/** 템플릿 모드 — 선택된 템플릿 (id, model, thumbnail). */
|
|
41
|
+
private _selectedTemplate;
|
|
42
|
+
/** 보드 그룹 목록 (lazy fetch). */
|
|
43
|
+
private _groups;
|
|
44
|
+
private _groupsLoaded;
|
|
45
|
+
/** 새 보드의 group / type — 모든 모드 공통. */
|
|
46
|
+
private _selectedGroupId;
|
|
47
|
+
private _selectedBoardType;
|
|
48
|
+
/** import 진행 / polling 에러. */
|
|
49
|
+
private _importError?;
|
|
50
|
+
/** polling timer id — disconnect 시 취소. */
|
|
51
|
+
private _pollingTimer?;
|
|
52
|
+
/** review step — 새 Board 이름 (짧고 심플). */
|
|
53
|
+
private _newBoardName;
|
|
54
|
+
/** review step — 새 Board 설명 (자세한 narrative). */
|
|
55
|
+
private _newBoardDescription;
|
|
56
|
+
/** review step — 사용자가 선택한 시안 id. 미선택 시 default (첫 variant). */
|
|
57
|
+
private _selectedVariantId;
|
|
58
|
+
/** materialize 진행 중 — 중복 클릭 방지. */
|
|
59
|
+
private _materializing;
|
|
60
|
+
/** materialize 결과 Board id — done step 에서 모델러로 navigate 시 사용. */
|
|
61
|
+
private _newBoardId?;
|
|
62
|
+
/** materialize / done 단계 에러. */
|
|
63
|
+
private _materializeError?;
|
|
64
|
+
/** wizard 제목 / 설명 — page header 에 노출. */
|
|
65
|
+
get context(): {
|
|
66
|
+
title: string;
|
|
67
|
+
board_topmenu: boolean;
|
|
68
|
+
};
|
|
69
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
70
|
+
private _renderModeTabs;
|
|
71
|
+
private _renderFileWizard;
|
|
72
|
+
private _renderStepper;
|
|
73
|
+
private _renderFileUploadUI;
|
|
74
|
+
/** "처음부터" 탭 — 빈 보드 생성 전용 단순 폼. 템플릿 없음. */
|
|
75
|
+
private _renderFromScratchTab;
|
|
76
|
+
/** "템플릿" 탭 — existing files와 동일한 browse-item 카드 스타일. */
|
|
77
|
+
private _renderFromTemplateTab;
|
|
78
|
+
/** 공통 보드 생성 폼 (blank / template 모드 공유). */
|
|
79
|
+
private _renderBoardForm;
|
|
80
|
+
private _renderNewUpload;
|
|
81
|
+
private _renderBrowseExisting;
|
|
82
|
+
/**
|
|
83
|
+
* 선택된 attachment 의 미리보기 + 변환 시작 버튼. 두 모드 (new/existing) 공통 렌더링.
|
|
84
|
+
* 이미지 mimetype 이면 실제 이미지를 띄우고, 아니면 메타정보 카드만.
|
|
85
|
+
* 추가로 사용자 prompt textarea — VLM 의 view type 분류 + entity 추출에 hint 로 합류.
|
|
86
|
+
*/
|
|
87
|
+
private _renderSelectedPreview;
|
|
88
|
+
private _isImageMime;
|
|
89
|
+
private _setUploadMode;
|
|
90
|
+
private _loadGroups;
|
|
91
|
+
private _loadTemplates;
|
|
92
|
+
private _selectTemplate;
|
|
93
|
+
/**
|
|
94
|
+
* 기존 attachment 목록 fetch — 이미지 + DXF 만 (mimetype prefix 'image' 1차 + 검색은 파일명).
|
|
95
|
+
* mimetype 단일 prefix 만 지원하는 백엔드 한계로 image / application 분리 query 가 필요하지만,
|
|
96
|
+
* MVP 는 두 번 fetch 해서 합치는 단순 방식.
|
|
97
|
+
*/
|
|
98
|
+
private _refreshBrowse;
|
|
99
|
+
private _selectExisting;
|
|
100
|
+
private _onFileChange;
|
|
101
|
+
private _onDrop;
|
|
102
|
+
private _uploadFile;
|
|
103
|
+
private _resetUpload;
|
|
104
|
+
private _proceedToImport;
|
|
105
|
+
/**
|
|
106
|
+
* polling — 1초 간격으로 fetchImportSession.
|
|
107
|
+
* - status='completed' → review step
|
|
108
|
+
* - status='failed' → error 표시 + 재시도 가능
|
|
109
|
+
* - 그 외 → progress UI 갱신 후 다시 polling
|
|
110
|
+
*
|
|
111
|
+
* 취소 시점: pollingTimer 명시 clear (다음 단계 진입 / 페이지 떠남).
|
|
112
|
+
*/
|
|
113
|
+
private _startPolling;
|
|
114
|
+
private _stopPolling;
|
|
115
|
+
private _renderProgressStep;
|
|
116
|
+
private _statusLabel;
|
|
117
|
+
private _retryFromUpload;
|
|
118
|
+
disconnectedCallback(): void;
|
|
119
|
+
/**
|
|
120
|
+
* step 이나 session 변경 시 polling 상태 동기화. step='progress' + session 존재 + 종료 안된
|
|
121
|
+
* 상태에서만 polling 활성화. 그 외 상태로 진입하면 자동 정리.
|
|
122
|
+
*/
|
|
123
|
+
updated(changes: PropertyValues): void;
|
|
124
|
+
private _renderReviewStep;
|
|
125
|
+
/** 파일 import 모드 여부 — true 면 variants/AI 분석 표시, false 면 단순 정보 입력. */
|
|
126
|
+
private _isFileMode;
|
|
127
|
+
/** review 의 파일 모드 본문 — variants picker + AI 분석 + 큰 preview + stats + warnings. */
|
|
128
|
+
private _renderFileReviewBody;
|
|
129
|
+
/**
|
|
130
|
+
* 사용자가 선택한 시안 — _selectedVariantId 우선, 없으면 result.defaultVariantId, 없으면 첫 시안.
|
|
131
|
+
*/
|
|
132
|
+
private _getSelectedVariant;
|
|
133
|
+
/**
|
|
134
|
+
* 3 시안 picker — 썸네일 + 라벨 + 클릭 시 선택. 시안이 1개 이하면 안 그림.
|
|
135
|
+
* 사용자가 다른 시안 선택 시 _selectedVariantId 갱신 → re-render → 큰 preview / stats / 추천 갱신.
|
|
136
|
+
*/
|
|
137
|
+
private _renderVariantPicker;
|
|
138
|
+
private _onSelectVariant;
|
|
139
|
+
private _onRegenerateVariants;
|
|
140
|
+
/**
|
|
141
|
+
* AI 분석 요약 카드 — VLM 이 도면을 어떻게 이해했고 어떤 관점으로 import 를 진행했는지
|
|
142
|
+
* 사용자 review 에 노출. metadata 가 비어있으면 (DXF 임포트 등 VLM 미사용 경로) 카드 자체 생략.
|
|
143
|
+
*
|
|
144
|
+
* selected variant 의 importStrategy / subjectName / subjectDescription 은 시안별 전용.
|
|
145
|
+
*/
|
|
146
|
+
private _renderAISummary;
|
|
147
|
+
/** 사용자 입력 또는 첨부파일 이름 (확장자 제거) 을 fallback. 빈 input 일 때만 fallback. */
|
|
148
|
+
private _effectiveName;
|
|
149
|
+
private _materialize;
|
|
150
|
+
private _renderDoneStep;
|
|
151
|
+
private _goToModeller;
|
|
152
|
+
private _formatSize;
|
|
153
|
+
pageUpdated(_changes: PropertyValues, _lifecycle: any): void;
|
|
154
|
+
/** wizard 모든 state 를 초기값으로 — 'done' 후 재진입 / 처음부터 시작 시 사용. */
|
|
155
|
+
private _resetAll;
|
|
156
|
+
}
|
|
157
|
+
export {};
|