@wipco/sdui 0.29.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-6S5CFNFM.js → chunk-CVCP52OD.js} +1 -1
- package/dist/{chunk-DVOPZFQS.js → chunk-DKPNFEVU.js} +6 -1
- package/dist/chunk-DQVDS2VP.js +400 -0
- package/dist/{chunk-WLQ7PLHB.js → chunk-N24VF6KI.js} +1 -1
- package/dist/{chunk-KBLFOC37.js → chunk-NGZI4V3O.js} +1 -1
- package/dist/{chunk-ZDRERW4G.js → chunk-OR27SRKL.js} +2 -2
- package/dist/chunk-RRMKCZYQ.js +67 -0
- package/dist/{chunk-SAPJVLZM.js → chunk-S4LOH2TU.js} +1 -1
- package/dist/{chunk-WXOU7QTN.js → chunk-SNRKPEWT.js} +2 -63
- package/dist/{chunk-DIVN4TBW.js → chunk-U6H7YN4I.js} +1 -1
- package/dist/{chunk-XSCFMCLH.js → chunk-WXZDYDXG.js} +1 -1
- package/dist/index.js +5 -4
- package/dist/meta.d.ts +6 -2
- package/dist/meta.js +224 -1
- package/dist/rich/ExcelUploadCard.d.ts +37 -0
- package/dist/rich/ExcelUploadCard.js +606 -0
- package/dist/rich.js +3 -3
- package/dist/widgets/ApprovalLineEditor.js +2 -2
- package/dist/widgets/ApprovalOverridesEditor.js +3 -3
- package/dist/widgets/AutocompleteField.js +2 -2
- package/dist/widgets/FileDropzone.d.ts +65 -0
- package/dist/widgets/FileDropzone.js +6 -0
- package/dist/widgets/OrgChartBoard.js +2 -2
- package/dist/widgets/PermissionMatrixEditor.js +2 -2
- package/dist/widgets/RankBoard.js +2 -2
- package/dist/widgets/RoleMemberPicker.js +2 -2
- package/dist/widgets/index.d.ts +1 -0
- package/dist/widgets/index.js +29 -28
- package/package.json +9 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
|
|
4
|
+
type FileDropzoneItem = {
|
|
5
|
+
id: string;
|
|
6
|
+
url: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
};
|
|
9
|
+
interface FileDropzoneProps {
|
|
10
|
+
/** 백엔드 업로드 경로 (예: "/attachments"). 없으면 로컬 미리보기 모드 */
|
|
11
|
+
endpoint?: string;
|
|
12
|
+
/** 첨부 목록 — 주면 controlled */
|
|
13
|
+
value?: FileDropzoneItem[];
|
|
14
|
+
onChange?: (files: FileDropzoneItem[]) => void;
|
|
15
|
+
/** 업로드 큐 시작/종료 알림 */
|
|
16
|
+
onBusyChange?: (busy: boolean) => void;
|
|
17
|
+
/** 최대 첨부 수 */
|
|
18
|
+
maxCount?: number;
|
|
19
|
+
/** 허용 형식 (input accept 문법) */
|
|
20
|
+
accept?: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
/** 드롭 영역 아래 보조 문구 */
|
|
23
|
+
hint?: string;
|
|
24
|
+
/**
|
|
25
|
+
* 첨부 삭제 경로의 **기준**(예: "/attachments"). 주면 썸네일의 삭제가 목록에서
|
|
26
|
+
* 빼는 데 그치지 않고 `DELETE {deleteEndpoint}/{id}` 까지 보낸다.
|
|
27
|
+
*
|
|
28
|
+
* 이게 없으면 이미 올라간 사진을 이 칸에 채워 둘 수 없다 — 지운 것처럼 보이는데
|
|
29
|
+
* 서버에는 그대로 남는 함정이 되기 때문이다(그래서 예전에는 "추가 전용"이었다).
|
|
30
|
+
* 아직 업로드 중이거나 로컬 미리보기(id가 `local-`)인 항목은 보낼 곳이 없어 건너뛴다.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* 업로드를 직접 맡는다. 주면 `endpoint` 대신 이 함수가 불린다 — 위젯은 응답을
|
|
34
|
+
* 해석하지 않고 항목을 그대로 받는다(서버 봉투가 특수한 앱의 탈출구).
|
|
35
|
+
*/
|
|
36
|
+
upload?: (file: File) => Promise<FileDropzoneItem>;
|
|
37
|
+
/** multipart 필드 이름. 기본 'file'. */
|
|
38
|
+
fileField?: string;
|
|
39
|
+
/**
|
|
40
|
+
* 503을 "백엔드 미연동"으로 읽어 로컬 미리보기로 강등한다. 기본 false —
|
|
41
|
+
* 일반 서버의 과부하 503에서 "올린 것처럼 보이는데 새로고침하면 없는" 항목을
|
|
42
|
+
* 만들면 안 되기 때문이다. 데모 모드를 503으로 합성하는 앱만 켠다.
|
|
43
|
+
*/
|
|
44
|
+
localFallbackOn503?: boolean;
|
|
45
|
+
deleteEndpoint?: string;
|
|
46
|
+
/** 서버에서 실제로 지운 뒤 한 번 — 보통 목록·상세를 다시 읽는 invalidate를 건다 */
|
|
47
|
+
onRemove?: () => void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 업로드 응답에서 `{id, url}` 을 꺼낸다 — **도메인 명사를 알지 않는다.**
|
|
51
|
+
*
|
|
52
|
+
* 단일 자원을 한 겹 감싸 주는 것은 REST 관례다(`{attachment:{…}}`·`{data:{…}}`).
|
|
53
|
+
* 그래서 이름 목록을 두는 대신 **모양**으로 판정한다: 최상위에 id·url 이 없고
|
|
54
|
+
* 객체 값을 가진 키가 **정확히 하나**면 그 안으로 한 겹 내려간다.
|
|
55
|
+
* 그 조건을 벗어나면(키가 둘 이상, 값이 객체가 아님) 벗기지 않는다 — 잘못 벗겨
|
|
56
|
+
* 엉뚱한 값을 집는 것보다 "응답 형식 오류"로 드러나는 편이 낫다.
|
|
57
|
+
*/
|
|
58
|
+
declare function unwrapUploaded(payload: unknown): {
|
|
59
|
+
id?: unknown;
|
|
60
|
+
url?: unknown;
|
|
61
|
+
} | null;
|
|
62
|
+
/** 바깥에서 온 `style`·`className`을 뿌리에 얹어 내보낸다 — 자기 축(폭·여백)이 닿게 하는 통로. */
|
|
63
|
+
declare const FileDropzone: React__default.FC<FileDropzoneProps & SduiBoxProps>;
|
|
64
|
+
|
|
65
|
+
export { FileDropzone, type FileDropzoneItem, type FileDropzoneProps, unwrapUploaded };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { OrgChartBoard } from '../chunk-
|
|
1
|
+
export { OrgChartBoard } from '../chunk-NGZI4V3O.js';
|
|
2
2
|
import '../chunk-XPBZMECW.js';
|
|
3
3
|
import '../chunk-THEP3VWY.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-DKPNFEVU.js';
|
|
5
5
|
import '../chunk-WIDDHR7L.js';
|
|
6
6
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { RankBoard } from '../chunk-
|
|
1
|
+
export { RankBoard } from '../chunk-U6H7YN4I.js';
|
|
2
2
|
import '../chunk-QU7YVMFA.js';
|
|
3
3
|
import '../chunk-XQPTSEJC.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-DKPNFEVU.js';
|
|
5
5
|
import '../chunk-WIDDHR7L.js';
|
|
6
6
|
import '../chunk-SAN4IX6N.js';
|
package/dist/widgets/index.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
|
|
|
57
57
|
import { ApprovalLineEditorProps } from './ApprovalLineEditor.js';
|
|
58
58
|
export { ApprovalLineEditor, ApprovalLineStep, CustomApprover } from './ApprovalLineEditor.js';
|
|
59
59
|
export { AutocompleteField, AutocompleteFieldProps, AutocompleteOption, AutocompleteSearchFn, AutocompleteSearchResult, toAutocompleteOptions } from './AutocompleteField.js';
|
|
60
|
+
export { FileDropzone, FileDropzoneItem, FileDropzoneProps, unwrapUploaded } from './FileDropzone.js';
|
|
60
61
|
|
|
61
62
|
/**
|
|
62
63
|
* `createRegistry(widgetComponents)`로 어휘에 얹는 묶음.
|
package/dist/widgets/index.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
import { Timeline } from '../chunk-EFYEOT47.js';
|
|
2
|
+
export { Timeline } from '../chunk-EFYEOT47.js';
|
|
3
|
+
import { TreePicker } from '../chunk-U3HYQCFA.js';
|
|
4
|
+
export { TreePicker } from '../chunk-U3HYQCFA.js';
|
|
5
|
+
import { TreeView } from '../chunk-X5R2HHEN.js';
|
|
6
|
+
export { TreeView, buildTreeNodes } from '../chunk-X5R2HHEN.js';
|
|
7
|
+
import { RecordSheet } from '../chunk-K3JBSWFI.js';
|
|
8
|
+
export { RecordSheet } from '../chunk-K3JBSWFI.js';
|
|
9
|
+
import { RoleMemberPicker } from '../chunk-WXZDYDXG.js';
|
|
10
|
+
export { RoleMemberPicker } from '../chunk-WXZDYDXG.js';
|
|
1
11
|
import { SearchableMultiPicker } from '../chunk-C53NGSA3.js';
|
|
2
12
|
export { SearchableMultiPicker } from '../chunk-C53NGSA3.js';
|
|
3
13
|
import { SecureScreen } from '../chunk-IIRENCDS.js';
|
|
@@ -8,28 +18,23 @@ import { Strip } from '../chunk-ZH5MLOZS.js';
|
|
|
8
18
|
export { Strip } from '../chunk-ZH5MLOZS.js';
|
|
9
19
|
import { SummaryTable } from '../chunk-O4U7Y3XL.js';
|
|
10
20
|
export { SummaryTable } from '../chunk-O4U7Y3XL.js';
|
|
11
|
-
import {
|
|
12
|
-
export {
|
|
13
|
-
import {
|
|
14
|
-
export {
|
|
15
|
-
import { TreeView } from '../chunk-X5R2HHEN.js';
|
|
16
|
-
export { TreeView, buildTreeNodes } from '../chunk-X5R2HHEN.js';
|
|
21
|
+
import { JsonField } from '../chunk-JVBZRDC2.js';
|
|
22
|
+
export { JsonField } from '../chunk-JVBZRDC2.js';
|
|
23
|
+
import { LiveClock } from '../chunk-Z3WGIFJP.js';
|
|
24
|
+
export { LiveClock } from '../chunk-Z3WGIFJP.js';
|
|
17
25
|
import { OrgChart } from '../chunk-QWJ3OBBL.js';
|
|
18
26
|
export { OrgChart } from '../chunk-QWJ3OBBL.js';
|
|
19
|
-
import { OrgChartBoard } from '../chunk-
|
|
20
|
-
export { OrgChartBoard } from '../chunk-
|
|
21
|
-
import { PermissionMatrixEditor } from '../chunk-
|
|
22
|
-
export { PermissionMatrixEditor } from '../chunk-
|
|
27
|
+
import { OrgChartBoard } from '../chunk-NGZI4V3O.js';
|
|
28
|
+
export { OrgChartBoard } from '../chunk-NGZI4V3O.js';
|
|
29
|
+
import { PermissionMatrixEditor } from '../chunk-N24VF6KI.js';
|
|
30
|
+
export { PermissionMatrixEditor } from '../chunk-N24VF6KI.js';
|
|
23
31
|
import { PeriodFilter } from '../chunk-INWASR2G.js';
|
|
24
32
|
export { PeriodFilter } from '../chunk-INWASR2G.js';
|
|
25
33
|
import { PrintSheet } from '../chunk-MYJ2KEIP.js';
|
|
26
34
|
export { PrintSheet } from '../chunk-MYJ2KEIP.js';
|
|
27
|
-
import { RankBoard } from '../chunk-
|
|
28
|
-
export { RankBoard } from '../chunk-
|
|
29
|
-
|
|
30
|
-
export { RecordSheet } from '../chunk-K3JBSWFI.js';
|
|
31
|
-
import { RoleMemberPicker } from '../chunk-XSCFMCLH.js';
|
|
32
|
-
export { RoleMemberPicker } from '../chunk-XSCFMCLH.js';
|
|
35
|
+
import { RankBoard } from '../chunk-U6H7YN4I.js';
|
|
36
|
+
export { RankBoard } from '../chunk-U6H7YN4I.js';
|
|
37
|
+
export { AutocompleteField, toAutocompleteOptions } from '../chunk-CVCP52OD.js';
|
|
33
38
|
import { ColumnBoard } from '../chunk-C4JRSZGS.js';
|
|
34
39
|
export { ColumnBoard } from '../chunk-C4JRSZGS.js';
|
|
35
40
|
import { DiffView } from '../chunk-LDJ2CFFH.js';
|
|
@@ -38,29 +43,25 @@ import { Disclosure } from '../chunk-HIZ2OVJA.js';
|
|
|
38
43
|
export { Disclosure } from '../chunk-HIZ2OVJA.js';
|
|
39
44
|
import { EventCalendar } from '../chunk-C3JY6GA3.js';
|
|
40
45
|
export { EventCalendar } from '../chunk-C3JY6GA3.js';
|
|
46
|
+
export { FileDropzone, unwrapUploaded } from '../chunk-DQVDS2VP.js';
|
|
41
47
|
import { ImageLightbox } from '../chunk-XPBZMECW.js';
|
|
42
48
|
export { ImageLightbox } from '../chunk-XPBZMECW.js';
|
|
43
49
|
import { InlineEdit } from '../chunk-KT3ZVBLN.js';
|
|
44
50
|
export { InlineEdit } from '../chunk-KT3ZVBLN.js';
|
|
45
|
-
import { JsonField } from '../chunk-JVBZRDC2.js';
|
|
46
|
-
export { JsonField } from '../chunk-JVBZRDC2.js';
|
|
47
|
-
import { LiveClock } from '../chunk-Z3WGIFJP.js';
|
|
48
|
-
export { LiveClock } from '../chunk-Z3WGIFJP.js';
|
|
49
51
|
import '../chunk-QU7YVMFA.js';
|
|
50
52
|
import '../chunk-THEP3VWY.js';
|
|
51
|
-
import { ApprovalOverridesEditor } from '../chunk-
|
|
52
|
-
export { ApprovalOverridesEditor } from '../chunk-
|
|
53
|
+
import { ApprovalOverridesEditor } from '../chunk-OR27SRKL.js';
|
|
54
|
+
export { ApprovalOverridesEditor } from '../chunk-OR27SRKL.js';
|
|
53
55
|
import { TagMultiSelect } from '../chunk-QDEZXA34.js';
|
|
54
56
|
export { TagMultiSelect } from '../chunk-QDEZXA34.js';
|
|
55
|
-
import { ApprovalLineEditor } from '../chunk-
|
|
56
|
-
export { ApprovalLineEditor } from '../chunk-
|
|
57
|
-
import { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
|
|
58
|
-
export { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
|
|
59
|
-
export { AutocompleteField, toAutocompleteOptions } from '../chunk-6S5CFNFM.js';
|
|
57
|
+
import { ApprovalLineEditor } from '../chunk-S4LOH2TU.js';
|
|
58
|
+
export { ApprovalLineEditor } from '../chunk-S4LOH2TU.js';
|
|
60
59
|
import '../chunk-BD75U73S.js';
|
|
61
60
|
import '../chunk-EFMKWPZ3.js';
|
|
62
61
|
import '../chunk-XQPTSEJC.js';
|
|
63
|
-
import '../chunk-
|
|
62
|
+
import '../chunk-DKPNFEVU.js';
|
|
63
|
+
import { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
|
|
64
|
+
export { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
|
|
64
65
|
import '../chunk-WIDDHR7L.js';
|
|
65
66
|
import '../chunk-SAN4IX6N.js';
|
|
66
67
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wipco/sdui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sdui",
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
"types": "./dist/rich.d.ts",
|
|
33
33
|
"default": "./dist/rich.js"
|
|
34
34
|
},
|
|
35
|
+
"./rich/ExcelUploadCard": {
|
|
36
|
+
"types": "./dist/rich/ExcelUploadCard.d.ts",
|
|
37
|
+
"default": "./dist/rich/ExcelUploadCard.js"
|
|
38
|
+
},
|
|
35
39
|
"./widgets": {
|
|
36
40
|
"types": "./dist/widgets/index.d.ts",
|
|
37
41
|
"default": "./dist/widgets/index.js"
|
|
@@ -68,6 +72,10 @@
|
|
|
68
72
|
"types": "./dist/widgets/EventCalendar.d.ts",
|
|
69
73
|
"default": "./dist/widgets/EventCalendar.js"
|
|
70
74
|
},
|
|
75
|
+
"./widgets/FileDropzone": {
|
|
76
|
+
"types": "./dist/widgets/FileDropzone.d.ts",
|
|
77
|
+
"default": "./dist/widgets/FileDropzone.js"
|
|
78
|
+
},
|
|
71
79
|
"./widgets/ImageLightbox": {
|
|
72
80
|
"types": "./dist/widgets/ImageLightbox.d.ts",
|
|
73
81
|
"default": "./dist/widgets/ImageLightbox.js"
|