@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
package/dist/meta.js
CHANGED
|
@@ -3839,6 +3839,227 @@ var RoleMemberPickerMeta = {
|
|
|
3839
3839
|
},
|
|
3840
3840
|
resize: { kind: "none" }
|
|
3841
3841
|
};
|
|
3842
|
+
var FileDropzoneMeta = {
|
|
3843
|
+
name: "FileDropzone",
|
|
3844
|
+
label: "\uD30C\uC77C \uCCA8\uBD80",
|
|
3845
|
+
category: "input",
|
|
3846
|
+
icon: "paperclip",
|
|
3847
|
+
description: "\uB4DC\uB798\uADF8 \uC564 \uB4DC\uB86D \uB2E4\uC911 \uCCA8\uBD80. \uC5C5\uB85C\uB4DC \uACBD\uB85C\uAC00 \uC5C6\uAC70\uB098 \uBC31\uC5D4\uB4DC\uAC00 503\uC774\uBA74 object URL \uB85C\uCEEC \uBBF8\uB9AC\uBCF4\uAE30\uB85C \uB5A8\uC5B4\uC9C4\uB2E4.",
|
|
3848
|
+
props: [
|
|
3849
|
+
{
|
|
3850
|
+
name: "value",
|
|
3851
|
+
kind: "array",
|
|
3852
|
+
label: "\uCCA8\uBD80 \uBAA9\uB85D",
|
|
3853
|
+
bindable: true,
|
|
3854
|
+
description: "\uC8FC\uBA74 controlled. \uC2E4\uCE21 6/7\uC774 \uC804\uBD80 $state \uBC14\uC778\uB529\uC774\uACE0 default\uAC00 \uBE48 \uBC30\uC5F4\uC774\uB2E4.",
|
|
3855
|
+
group: "data",
|
|
3856
|
+
// 실측 6/7. 원소 리터럴은 스펙에 한 건도 없어(전부 빈 배열) 형태의 근거는 타입뿐이다.
|
|
3857
|
+
item: [
|
|
3858
|
+
{ name: "id", kind: "string", label: "\uC2DD\uBCC4\uC790", required: true },
|
|
3859
|
+
{ name: "url", kind: "string", label: "URL", required: true },
|
|
3860
|
+
{ name: "name", kind: "string", label: "\uD30C\uC77C\uBA85" }
|
|
3861
|
+
]
|
|
3862
|
+
},
|
|
3863
|
+
{
|
|
3864
|
+
name: "onChange",
|
|
3865
|
+
kind: "action",
|
|
3866
|
+
label: "\uCCA8\uBD80 \uBCC0\uACBD",
|
|
3867
|
+
eventArg: "\uBCC0\uACBD\uB41C \uCCA8\uBD80 \uBAA9\uB85D \uBC30\uC5F4",
|
|
3868
|
+
group: "behavior"
|
|
3869
|
+
},
|
|
3870
|
+
// 실측 6/7 — 전부 setState + fromEvent
|
|
3871
|
+
{
|
|
3872
|
+
name: "endpoint",
|
|
3873
|
+
kind: "string",
|
|
3874
|
+
label: "\uC5C5\uB85C\uB4DC \uACBD\uB85C",
|
|
3875
|
+
description: '\uD30C\uC77C\uB9C8\uB2E4 FormData("file")\uB97C POST\uD558\uACE0 {id,url} \uC751\uB2F5\uC744 \uAE30\uB300\uD55C\uB2E4. \uC5C6\uC73C\uBA74 \uB85C\uCEEC \uBBF8\uB9AC\uBCF4\uAE30 \uBAA8\uB4DC\uB85C\uB9CC \uB3D9\uC791\uD55C\uB2E4.',
|
|
3876
|
+
group: "data"
|
|
3877
|
+
},
|
|
3878
|
+
// 실측 1/7 ("/asset/attachments")
|
|
3879
|
+
{ name: "maxCount", kind: "number", label: "\uCD5C\uB300 \uCCA8\uBD80 \uC218", group: "behavior" },
|
|
3880
|
+
// 실측 7/7 (5×4, 8×3)
|
|
3881
|
+
{
|
|
3882
|
+
name: "accept",
|
|
3883
|
+
kind: "string",
|
|
3884
|
+
label: "\uD5C8\uC6A9 \uD615\uC2DD",
|
|
3885
|
+
default: "image/*",
|
|
3886
|
+
description: "input accept \uBB38\uBC95. \uB9DE\uC9C0 \uC54A\uB294 \uD30C\uC77C\uC740 \uC81C\uC678\uD558\uACE0 \uC778\uB77C\uC778 \uACBD\uACE0\uB85C \uC548\uB0B4\uD55C\uB2E4.",
|
|
3887
|
+
group: "behavior"
|
|
3888
|
+
},
|
|
3889
|
+
// 실측 7/7 ("image/*,.pdf"×4, "image/*"×3)
|
|
3890
|
+
{ name: "hint", kind: "string", label: "\uBCF4\uC870 \uBB38\uAD6C", description: "\uB4DC\uB86D \uC601\uC5ED \uC544\uB798\uC5D0 \uBD99\uB294\uB2E4.", group: "content" },
|
|
3891
|
+
// 실측 7/7
|
|
3892
|
+
{
|
|
3893
|
+
name: "deleteEndpoint",
|
|
3894
|
+
kind: "string",
|
|
3895
|
+
label: "\uC0AD\uC81C \uACBD\uB85C \uAE30\uC900",
|
|
3896
|
+
description: "\uC8FC\uBA74 \uC378\uB124\uC77C \uC0AD\uC81C\uAC00 DELETE {\uC774 \uAC12}/{id}\uAE4C\uC9C0 \uBCF4\uB0B8\uB2E4(\uC608: /attachments). \uC774\uBBF8 \uC62C\uB77C\uAC04 \uC0AC\uC9C4\uC744 \uC774 \uCE78\uC5D0 \uCC44\uC6CC \uB458 \uB54C \uD544\uC218 \u2014 \uC5C6\uC73C\uBA74 \uC9C0\uC6B4 \uAC83\uCC98\uB7FC \uBCF4\uC774\uB294\uB370 \uC11C\uBC84\uC5D0\uB294 \uB0A8\uB294\uB2E4.",
|
|
3897
|
+
group: "data"
|
|
3898
|
+
},
|
|
3899
|
+
{
|
|
3900
|
+
name: "onRemove",
|
|
3901
|
+
kind: "action",
|
|
3902
|
+
label: "\uC0AD\uC81C \uD6C4",
|
|
3903
|
+
description: "\uC11C\uBC84\uC5D0\uC11C \uC2E4\uC81C\uB85C \uC9C0\uC6B4 \uB4A4 \uD55C \uBC88. \uBCF4\uD1B5 \uBAA9\uB85D\xB7\uC0C1\uC138\uB97C \uB2E4\uC2DC \uC77D\uB294 invalidate\uB97C \uAC74\uB2E4.",
|
|
3904
|
+
group: "behavior"
|
|
3905
|
+
},
|
|
3906
|
+
{ name: "disabled", kind: "boolean", label: "\uBE44\uD65C\uC131", default: false, bindable: true, group: "behavior" },
|
|
3907
|
+
// 실측 0/7 — 구현에는 있다
|
|
3908
|
+
{
|
|
3909
|
+
name: "onBusyChange",
|
|
3910
|
+
kind: "action",
|
|
3911
|
+
label: "\uC5C5\uB85C\uB4DC \uC9C4\uD589 \uC54C\uB9BC",
|
|
3912
|
+
eventArg: "\uC5C5\uB85C\uB4DC \uD050\uAC00 \uB3C4\uB294 \uB3D9\uC548 true, \uB05D\uB098\uBA74 false",
|
|
3913
|
+
description: "\uCCA8\uBD80\uAC00 \uC62C\uB77C\uAC00\uB294 \uB3D9\uC548 \uC800\uC7A5 \uBC84\uD2BC\uC744 \uC7A0\uAE00 \uB54C \uC4F4\uB2E4.",
|
|
3914
|
+
group: "behavior",
|
|
3915
|
+
advanced: true
|
|
3916
|
+
},
|
|
3917
|
+
// 실측 0/7 — 구현에는 있다
|
|
3918
|
+
{
|
|
3919
|
+
name: "fileField",
|
|
3920
|
+
kind: "string",
|
|
3921
|
+
label: "multipart \uD544\uB4DC \uC774\uB984",
|
|
3922
|
+
description: "\uAE30\uBCF8 'file'. \uC11C\uBC84\uAC00 \uB2E4\uB978 \uC774\uB984\uC744 \uBC1B\uC73C\uBA74 \uBC14\uAFBC\uB2E4.",
|
|
3923
|
+
group: "data",
|
|
3924
|
+
advanced: true
|
|
3925
|
+
},
|
|
3926
|
+
{
|
|
3927
|
+
name: "localFallbackOn503",
|
|
3928
|
+
kind: "boolean",
|
|
3929
|
+
label: "503\uC774\uBA74 \uB85C\uCEEC \uBBF8\uB9AC\uBCF4\uAE30",
|
|
3930
|
+
description: '503\uC744 "\uBC31\uC5D4\uB4DC \uBBF8\uC5F0\uB3D9"\uC73C\uB85C \uC77D\uC5B4 \uAC15\uB4F1\uD55C\uB2E4. \uAE30\uBCF8 \uAEBC\uC9D0 \u2014 \uC77C\uBC18 \uC11C\uBC84\uC758 \uACFC\uBD80\uD558 503\uC5D0\uC11C "\uC62C\uB9B0 \uAC83 \uAC19\uC740\uB370 \uC0C8\uB85C\uACE0\uCE68\uD558\uBA74 \uC5C6\uB294" \uD56D\uBAA9\uC744 \uB9CC\uB4E4\uBA74 \uC548 \uB418\uAE30 \uB54C\uBB38\uC774\uB2E4.',
|
|
3931
|
+
group: "behavior",
|
|
3932
|
+
advanced: true
|
|
3933
|
+
}
|
|
3934
|
+
],
|
|
3935
|
+
children: { accepts: false },
|
|
3936
|
+
dom: { element: "div" },
|
|
3937
|
+
// 실측: 루트가 <div class="wp-col">
|
|
3938
|
+
// 프리셋에 endpoint를 넣지 않는다 — 넣으면 캔버스에서 파일을 놓는 순간 실제 업로드가 나간다.
|
|
3939
|
+
// 없으면 업로드 큐가 object URL로만 돌아 바깥으로 나가는 요청이 0건이다.
|
|
3940
|
+
preset: {
|
|
3941
|
+
component: "FileDropzone",
|
|
3942
|
+
props: {
|
|
3943
|
+
value: { $state: "form.attachments", default: [] },
|
|
3944
|
+
onChange: { action: "setState", key: "form.attachments", fromEvent: true },
|
|
3945
|
+
accept: "image/*",
|
|
3946
|
+
maxCount: 5,
|
|
3947
|
+
hint: "\uC774\uBBF8\uC9C0 \uD30C\uC77C\uC744 \uB04C\uC5B4\uB2E4 \uB193\uAC70\uB098 \uD074\uB9AD\uD574 \uC120\uD0DD\uD558\uC138\uC694"
|
|
3948
|
+
}
|
|
3949
|
+
},
|
|
3950
|
+
resize: { kind: "none" }
|
|
3951
|
+
};
|
|
3952
|
+
var ExcelUploadCardMeta = {
|
|
3953
|
+
name: "ExcelUploadCard",
|
|
3954
|
+
label: "\uC5D1\uC140 \uC77C\uAD04 \uC5C5\uB85C\uB4DC",
|
|
3955
|
+
category: "data",
|
|
3956
|
+
icon: "cloud-upload",
|
|
3957
|
+
description: "\uC5D1\uC140 \uC77C\uAD04 \uC5C5\uB85C\uB4DC \uCE74\uB4DC. server\uB294 \uD30C\uC77C\uC744 \uADF8\uB300\uB85C \uC62C\uB824 \uCC98\uB9AC \uC694\uC57D\uC744 \uBC1B\uACE0, preview\uB294 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uD30C\uC2F1\xB7\uAC80\uC99D\uD558\uACE0 \uC624\uB958 \uC140\uC744 \uACE0\uCE5C \uB4A4 \uC720\uD6A8 \uD589\uB9CC \uBCF4\uB0B8\uB2E4.",
|
|
3958
|
+
props: [
|
|
3959
|
+
{
|
|
3960
|
+
name: "mode",
|
|
3961
|
+
kind: "enum",
|
|
3962
|
+
label: "\uB3D9\uC791 \uBC29\uC2DD",
|
|
3963
|
+
default: "server",
|
|
3964
|
+
options: [
|
|
3965
|
+
{ value: "server", label: "\uC11C\uBC84 \uC5C5\uB85C\uB4DC", description: "\uD30C\uC77C\uC744 multipart\uB85C \uC62C\uB9AC\uACE0 \uCC98\uB9AC \uC694\uC57D\xB7\uD589 \uC624\uB958\uB97C \uBC1B\uB294\uB2E4" },
|
|
3966
|
+
{ value: "preview", label: "\uBBF8\uB9AC\uBCF4\uAE30 \uAC80\uC99D", description: "\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uD30C\uC2F1\xB7\uAC80\uC99D\uD558\uACE0 \uC624\uB958 \uC140\uC744 \uC778\uB77C\uC778 \uC218\uC815\uD55C \uB4A4 \uC720\uD6A8 \uD589\uB9CC \uBCF4\uB0B8\uB2E4" }
|
|
3967
|
+
],
|
|
3968
|
+
group: "behavior"
|
|
3969
|
+
},
|
|
3970
|
+
// 실측 8/8 (preview×5, server×3)
|
|
3971
|
+
{
|
|
3972
|
+
name: "endpoint",
|
|
3973
|
+
kind: "string",
|
|
3974
|
+
label: "\uC5C5\uB85C\uB4DC \uACBD\uB85C",
|
|
3975
|
+
description: "server\uBA74 \uD30C\uC77C multipart POST \uB300\uC0C1, preview\uBA74 \uAC80\uC99D\uB41C { rows } JSON POST \uB300\uC0C1.",
|
|
3976
|
+
group: "data"
|
|
3977
|
+
},
|
|
3978
|
+
// 실측 7/8
|
|
3979
|
+
{
|
|
3980
|
+
name: "templateColumns",
|
|
3981
|
+
kind: "array",
|
|
3982
|
+
label: "\uD15C\uD50C\uB9BF \uCEEC\uB7FC",
|
|
3983
|
+
description: "\uC788\uC73C\uBA74 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uD15C\uD50C\uB9BF xlsx\uB97C \uB9CC\uB4E0\uB2E4(\uBC31\uC5D4\uB4DC \uBD88\uD544\uC694). 2\uD589\uC5D0 \uC608\uC2DC\uAC12\uC774 \uB4E4\uC5B4\uAC04\uB2E4.",
|
|
3984
|
+
group: "data",
|
|
3985
|
+
// 실측 8/8, 원소 54개 — key·header·example 세 키가 모두 54/54로 항상 채워져 있다.
|
|
3986
|
+
item: [
|
|
3987
|
+
{ name: "key", kind: "string", label: "\uD0A4", required: true },
|
|
3988
|
+
{ name: "header", kind: "string", label: "\uD5E4\uB354", required: true },
|
|
3989
|
+
{ name: "example", kind: "string", label: "\uC608\uC2DC\uAC12", description: "\uD15C\uD50C\uB9BF 2\uD589\uC5D0 \uB4E4\uC5B4\uAC04\uB2E4." }
|
|
3990
|
+
]
|
|
3991
|
+
},
|
|
3992
|
+
{
|
|
3993
|
+
name: "columns",
|
|
3994
|
+
kind: "array",
|
|
3995
|
+
label: "\uAC80\uC99D \uC2A4\uD0A4\uB9C8",
|
|
3996
|
+
description: "preview \uBAA8\uB4DC\uC758 \uD30C\uC2F1\xB7\uAC80\uC99D \uAE30\uC900. \uC2E4\uCE21\uC0C1 preview \uC778\uC2A4\uD134\uC2A4 5\uAC1C\uC640 \uC815\uD655\uD788 \uC77C\uCE58\uD55C\uB2E4.",
|
|
3997
|
+
group: "data",
|
|
3998
|
+
// 실측 5/8, 원소 34개 — key·header 34/34, required 17/34(값은 전부 true), options 9/34.
|
|
3999
|
+
item: [
|
|
4000
|
+
{ name: "key", kind: "string", label: "\uD0A4", required: true },
|
|
4001
|
+
{ name: "header", kind: "string", label: "\uC5D1\uC140 \uD5E4\uB354", required: true, description: "\uD55C\uAD6D\uC5B4 \uBCC4\uCE6D. key\uC640\uB3C4 \uB9E4\uCE6D\uB41C\uB2E4." },
|
|
4002
|
+
{ name: "required", kind: "boolean", label: "\uD544\uC218", default: false },
|
|
4003
|
+
{
|
|
4004
|
+
name: "options",
|
|
4005
|
+
kind: "array",
|
|
4006
|
+
label: "\uD5C8\uC6A9\uAC12",
|
|
4007
|
+
description: "\uC788\uC73C\uBA74 \uC624\uB958 \uC140\uC744 Select\uB85C, \uC5C6\uC73C\uBA74 Input\uC73C\uB85C \uACE0\uCE5C\uB2E4.",
|
|
4008
|
+
item: [],
|
|
4009
|
+
itemKind: "string"
|
|
4010
|
+
}
|
|
4011
|
+
]
|
|
4012
|
+
},
|
|
4013
|
+
{
|
|
4014
|
+
name: "summaryLabels",
|
|
4015
|
+
kind: "object",
|
|
4016
|
+
label: "\uC694\uC57D \uD0C0\uC77C \uB77C\uBCA8",
|
|
4017
|
+
// fields를 적지 않아 자유 JSON으로 둔다 — 키가 백엔드 응답의 숫자 필드 이름이라
|
|
4018
|
+
// 엔드포인트마다 다르다. 실측에서도 rows(3)·createdUnits(2) 외에 skippedRows·
|
|
4019
|
+
// createdAssets·skippedUnits·createdBorrows·skippedBorrows가 각 1회씩으로 전부 달랐다.
|
|
4020
|
+
description: "\uC11C\uBC84 \uC751\uB2F5\uC758 \uC22B\uC790 \uD544\uB4DC \uC774\uB984 \u2192 \uC694\uC57D \uD0C0\uC77C\uC5D0 \uC4F8 \uB77C\uBCA8. server \uBAA8\uB4DC\uC5D0\uC11C\uB9CC \uC4F0\uC778\uB2E4.",
|
|
4021
|
+
group: "content"
|
|
4022
|
+
},
|
|
4023
|
+
// 실측 3/8 — server 인스턴스 3개와 일치
|
|
4024
|
+
{
|
|
4025
|
+
name: "templateEndpoint",
|
|
4026
|
+
kind: "string",
|
|
4027
|
+
label: "\uD15C\uD50C\uB9BF \uB2E4\uC6B4\uB85C\uB4DC \uACBD\uB85C",
|
|
4028
|
+
description: "templateColumns\uAC00 \uC5C6\uC744 \uB54C\uB9CC \uC4F0\uC778\uB2E4(blob \uB2E4\uC6B4\uB85C\uB4DC).",
|
|
4029
|
+
group: "data",
|
|
4030
|
+
advanced: true
|
|
4031
|
+
},
|
|
4032
|
+
// 실측 0/8 — 구현에는 있다
|
|
4033
|
+
{
|
|
4034
|
+
name: "onComplete",
|
|
4035
|
+
kind: "action",
|
|
4036
|
+
label: "\uC644\uB8CC",
|
|
4037
|
+
eventArg: "server\uBA74 \uC751\uB2F5 JSON, preview\uBA74 \uC11C\uBC84 \uC751\uB2F5 \uB610\uB294 \uAC80\uC99D\uB41C \uC720\uD6A8 \uD589 \uBC30\uC5F4",
|
|
4038
|
+
group: "behavior"
|
|
4039
|
+
}
|
|
4040
|
+
// 실측 5/8 — 단일 toast×3, 액션 배열×2(close→toast)
|
|
4041
|
+
],
|
|
4042
|
+
children: { accepts: false },
|
|
4043
|
+
dom: { element: "div" },
|
|
4044
|
+
// 실측: 루트가 라이브러리 Card → <div class="wp-card">
|
|
4045
|
+
// 프리셋에 endpoint·templateEndpoint를 넣지 않는다. 이 조합이면 템플릿은 브라우저에서
|
|
4046
|
+
// xlsx로 만들고, 가져오기도 onComplete만 부른다 → 바깥으로 나가는 요청이 0건이다.
|
|
4047
|
+
preset: {
|
|
4048
|
+
component: "ExcelUploadCard",
|
|
4049
|
+
props: {
|
|
4050
|
+
mode: "preview",
|
|
4051
|
+
templateColumns: [
|
|
4052
|
+
{ key: "name", header: "\uD488\uBAA9\uBA85", example: "\uB178\uD2B8\uBD81" },
|
|
4053
|
+
{ key: "qty", header: "\uC218\uB7C9", example: "3" }
|
|
4054
|
+
],
|
|
4055
|
+
columns: [
|
|
4056
|
+
{ key: "name", header: "\uD488\uBAA9\uBA85", required: true },
|
|
4057
|
+
{ key: "qty", header: "\uC218\uB7C9", required: true }
|
|
4058
|
+
]
|
|
4059
|
+
}
|
|
4060
|
+
},
|
|
4061
|
+
resize: { kind: "none" }
|
|
4062
|
+
};
|
|
3842
4063
|
var AutocompleteFieldMeta = {
|
|
3843
4064
|
name: "AutocompleteField",
|
|
3844
4065
|
label: "\uC790\uB3D9\uC644\uC131",
|
|
@@ -5259,6 +5480,8 @@ var widgetComponentMeta = {
|
|
|
5259
5480
|
ApprovalLineEditor: ApprovalLineEditorMeta,
|
|
5260
5481
|
ApprovalOverridesEditor: ApprovalOverridesEditorMeta,
|
|
5261
5482
|
ApprovalStepper: ApprovalStepperMeta,
|
|
5483
|
+
ExcelUploadCard: ExcelUploadCardMeta,
|
|
5484
|
+
FileDropzone: FileDropzoneMeta,
|
|
5262
5485
|
PermissionMatrixEditor: PermissionMatrixEditorMeta,
|
|
5263
5486
|
RoleMemberPicker: RoleMemberPickerMeta,
|
|
5264
5487
|
OrgChartBoard: OrgChartBoardMeta,
|
|
@@ -5320,4 +5543,4 @@ function paletteGroups(catalog = allComponentMeta) {
|
|
|
5320
5543
|
})).filter((group) => group.items.length > 0);
|
|
5321
5544
|
}
|
|
5322
5545
|
|
|
5323
|
-
export { ActionsMeta, AlertMeta, ApprovalLineEditorMeta, ApprovalOverridesEditorMeta, ApprovalStepperMeta, AutocompleteFieldMeta, AvatarMeta, BadgeMeta, BreadcrumbMeta, ButtonMeta, CanMeta, CardMeta, ChartMeta, CheckboxMeta, ColMeta, ColumnBoardMeta, DatePickerMeta, DateRangePickerMeta, DialogMeta, DiffViewMeta, DisclosureMeta, DividerMeta, EmptyStateMeta, EventCalendarMeta, FieldMeta, ForEachMeta, FormMeta, FragmentMeta, GridMeta, IconButtonMeta, IconMeta, ImageLightboxMeta, InlineEditMeta, InputMeta, JsonFieldMeta, KeyValueListMeta, LiveClockMeta, MapPreviewMeta, OrgChartBoardMeta, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PermissionMatrixEditorMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RankBoardMeta, RecordSheetMeta, RemoteSearchResultsMeta, RoleMemberPickerMeta, RowMeta, SDUI_CATEGORIES, SELF_AXIS_PROPS, SearchResultsMeta, SearchableMultiPickerMeta, SectionMeta, SecureScreenMeta, SegmentedControlMeta, SelectMeta, ShowMeta, SidebarNavMeta, SortHandleMeta, SortableListMeta, SpacerMeta, SpinnerMeta, StackedMeterMeta, StatCardMeta, StripMeta, SummaryTableMeta, SwitchMeta, TableMeta, TabsMeta, TagMeta, TagMultiSelectMeta, TextMeta, TextareaMeta, TimePickerMeta, TimelineMeta, ToastMeta, TooltipMeta, TreePickerMeta, TreeViewMeta, allComponentMeta, builtinComponentMeta, coreComponentMeta, dsComponentMeta, getComponentMeta, paletteGroups, richComponentMeta, slotNamesOf, widgetComponentMeta, withSelfAxis, withSelfAxisAll };
|
|
5546
|
+
export { ActionsMeta, AlertMeta, ApprovalLineEditorMeta, ApprovalOverridesEditorMeta, ApprovalStepperMeta, AutocompleteFieldMeta, AvatarMeta, BadgeMeta, BreadcrumbMeta, ButtonMeta, CanMeta, CardMeta, ChartMeta, CheckboxMeta, ColMeta, ColumnBoardMeta, DatePickerMeta, DateRangePickerMeta, DialogMeta, DiffViewMeta, DisclosureMeta, DividerMeta, EmptyStateMeta, EventCalendarMeta, ExcelUploadCardMeta, FieldMeta, FileDropzoneMeta, ForEachMeta, FormMeta, FragmentMeta, GridMeta, IconButtonMeta, IconMeta, ImageLightboxMeta, InlineEditMeta, InputMeta, JsonFieldMeta, KeyValueListMeta, LiveClockMeta, MapPreviewMeta, OrgChartBoardMeta, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PermissionMatrixEditorMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RankBoardMeta, RecordSheetMeta, RemoteSearchResultsMeta, RoleMemberPickerMeta, RowMeta, SDUI_CATEGORIES, SELF_AXIS_PROPS, SearchResultsMeta, SearchableMultiPickerMeta, SectionMeta, SecureScreenMeta, SegmentedControlMeta, SelectMeta, ShowMeta, SidebarNavMeta, SortHandleMeta, SortableListMeta, SpacerMeta, SpinnerMeta, StackedMeterMeta, StatCardMeta, StripMeta, SummaryTableMeta, SwitchMeta, TableMeta, TabsMeta, TagMeta, TagMultiSelectMeta, TextMeta, TextareaMeta, TimePickerMeta, TimelineMeta, ToastMeta, TooltipMeta, TreePickerMeta, TreeViewMeta, allComponentMeta, builtinComponentMeta, coreComponentMeta, dsComponentMeta, getComponentMeta, paletteGroups, richComponentMeta, slotNamesOf, widgetComponentMeta, withSelfAxis, withSelfAxisAll };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
|
|
4
|
+
interface ExcelTemplateColumn {
|
|
5
|
+
key: string;
|
|
6
|
+
header: string;
|
|
7
|
+
/** 템플릿 2행에 들어갈 예시값 */
|
|
8
|
+
example?: string;
|
|
9
|
+
}
|
|
10
|
+
interface ExcelPreviewColumn {
|
|
11
|
+
key: string;
|
|
12
|
+
/** 엑셀 헤더(한국어 별칭). key와도 매칭된다. */
|
|
13
|
+
header: string;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
/** 허용값 목록 — 있으면 오류 셀을 Select로 수정 */
|
|
16
|
+
options?: string[];
|
|
17
|
+
}
|
|
18
|
+
interface ExcelUploadCardProps {
|
|
19
|
+
/** server = 파일을 서버로 바로 업로드, preview = 클라이언트 파싱·검증 후 가져오기 */
|
|
20
|
+
mode?: 'server' | 'preview';
|
|
21
|
+
/** server: multipart POST 대상 / preview: 검증된 rows JSON POST 대상 */
|
|
22
|
+
endpoint?: string;
|
|
23
|
+
/** 템플릿 다운로드 GET 경로 (templateColumns 없을 때 사용) */
|
|
24
|
+
templateEndpoint?: string;
|
|
25
|
+
/** 있으면 클라이언트에서 템플릿 xlsx 생성 — 백엔드 없이 동작 */
|
|
26
|
+
templateColumns?: ExcelTemplateColumn[];
|
|
27
|
+
/** preview 모드 파싱·검증 스키마 */
|
|
28
|
+
columns?: ExcelPreviewColumn[];
|
|
29
|
+
/** server 응답 요약 타일 라벨 매핑 (응답 키 → 라벨) */
|
|
30
|
+
summaryLabels?: Record<string, string>;
|
|
31
|
+
/** server: 응답 JSON / preview: 서버 응답(없으면 유효 행 배열) */
|
|
32
|
+
onComplete?: (result: unknown) => void;
|
|
33
|
+
}
|
|
34
|
+
/** 바깥에서 온 `style`·`className`을 뿌리에 얹어 내보낸다 — 자기 축(폭·여백)이 닿게 하는 통로. */
|
|
35
|
+
declare const ExcelUploadCard: React__default.FC<ExcelUploadCardProps & SduiBoxProps>;
|
|
36
|
+
|
|
37
|
+
export { type ExcelPreviewColumn, type ExcelTemplateColumn, ExcelUploadCard, type ExcelUploadCardProps };
|