@wipco/sdui 0.21.0 → 0.23.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-HPZTFZZN.js → chunk-36MXPCJP.js} +64 -96
- package/dist/chunk-DVOPZFQS.js +100 -0
- package/dist/{chunk-SRGXODY2.js → chunk-OG62LSFH.js} +30 -5
- package/dist/chunk-ZTQEP3TR.js +211 -0
- package/dist/index.d.ts +44 -5
- package/dist/index.js +369 -123
- package/dist/meta.d.ts +7 -5
- package/dist/meta.js +111 -4
- package/dist/rich.js +3 -51
- package/dist/styles.css +3 -0
- package/dist/{types-opTPYysN.d.ts → types-DmHC7HCN.d.ts} +93 -3
- package/dist/widgets/ApprovalStepper.d.ts +41 -0
- package/dist/widgets/ApprovalStepper.js +3 -0
- package/dist/widgets/AutocompleteField.d.ts +29 -2
- package/dist/widgets/AutocompleteField.js +2 -1
- package/dist/widgets/index.d.ts +6 -3
- package/dist/widgets/index.js +11 -7
- package/package.json +10 -2
package/dist/meta.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as SduiPropValue, i as SduiNode } from './types-
|
|
1
|
+
import { b as SduiPropValue, i as SduiNode } from './types-DmHC7HCN.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 시각 빌더용 컴포넌트 메타데이터 스키마.
|
|
@@ -405,9 +405,9 @@ declare const richComponentMeta: {
|
|
|
405
405
|
* 받지 않게 하려는 것이다. 여기도 값 import는 없다(`import type`만).
|
|
406
406
|
*
|
|
407
407
|
* 프롭 목록은 `src/widgets/*.tsx`의 **실제 프롭 인터페이스**와, ERP 스펙 84개를 훑어
|
|
408
|
-
* 뽑은 **실사용 프롭 집합**의 합집합이다.
|
|
409
|
-
*
|
|
410
|
-
*
|
|
408
|
+
* 뽑은 **실사용 프롭 집합**의 합집합이다. 스펙이 쓰는데 구현에 없는 프롭은 이제
|
|
409
|
+
* **한 개도 없다** — 마지막 하나였던 `AutocompleteField.endpoint`가 0.22.0에서
|
|
410
|
+
* 구현으로 들어왔다(소비 앱이 들고 있던 어댑터가 그만큼 사라진다).
|
|
411
411
|
*
|
|
412
412
|
* ## 함수 프롭을 메타데이터에 넣지 않은 자리
|
|
413
413
|
*
|
|
@@ -423,6 +423,7 @@ declare const richComponentMeta: {
|
|
|
423
423
|
* 그리지 않는 편이 낫다고 보고 'none'으로 뒀다.
|
|
424
424
|
*/
|
|
425
425
|
|
|
426
|
+
declare const ApprovalStepperMeta: SduiComponentMeta;
|
|
426
427
|
declare const AutocompleteFieldMeta: SduiComponentMeta;
|
|
427
428
|
declare const InlineEditMeta: SduiComponentMeta;
|
|
428
429
|
declare const JsonFieldMeta: SduiComponentMeta;
|
|
@@ -456,6 +457,7 @@ declare const StripMeta: SduiComponentMeta;
|
|
|
456
457
|
* 프롭을 못 그린다.
|
|
457
458
|
*/
|
|
458
459
|
declare const widgetComponentMeta: {
|
|
460
|
+
ApprovalStepper: SduiComponentMeta;
|
|
459
461
|
AutocompleteField: SduiComponentMeta;
|
|
460
462
|
ColumnBoard: SduiComponentMeta;
|
|
461
463
|
DiffView: SduiComponentMeta;
|
|
@@ -588,4 +590,4 @@ declare function paletteGroups(catalog?: Record<string, SduiComponentMeta>): Arr
|
|
|
588
590
|
items: SduiComponentMeta[];
|
|
589
591
|
}>;
|
|
590
592
|
|
|
591
|
-
export { ActionsMeta, AlertMeta, 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, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RecordSheetMeta, RemoteSearchResultsMeta, RowMeta, SDUI_CATEGORIES, SELF_AXIS_PROPS, type SduiCategory, type SduiChildrenMeta, type SduiComponentMeta, type SduiDomMeta, type SduiEnumOption, type SduiPropGroup, type SduiPropKind, type SduiPropMeta, type SduiResizeMeta, type SduiSlotMeta, 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 };
|
|
593
|
+
export { ActionsMeta, AlertMeta, 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, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RecordSheetMeta, RemoteSearchResultsMeta, RowMeta, SDUI_CATEGORIES, SELF_AXIS_PROPS, type SduiCategory, type SduiChildrenMeta, type SduiComponentMeta, type SduiDomMeta, type SduiEnumOption, type SduiPropGroup, type SduiPropKind, type SduiPropMeta, type SduiResizeMeta, type SduiSlotMeta, 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 };
|
package/dist/meta.js
CHANGED
|
@@ -3293,12 +3293,112 @@ var treeNodeItem = [
|
|
|
3293
3293
|
itemKind: "object"
|
|
3294
3294
|
}
|
|
3295
3295
|
];
|
|
3296
|
+
var ApprovalStepperMeta = {
|
|
3297
|
+
name: "ApprovalStepper",
|
|
3298
|
+
label: "\uACB0\uC7AC \uC9C4\uD589 \uC2A4\uD14C\uD37C",
|
|
3299
|
+
category: "display",
|
|
3300
|
+
icon: "workflow",
|
|
3301
|
+
description: '\uC2E0\uCCAD\uC790 \u2192 \uACB0\uC7AC \uB2E8\uACC4\uB97C \uAC00\uB85C\uB85C \uB098\uC5F4\uD558\uB294 \uC77D\uAE30 \uC804\uC6A9 \uC2A4\uD14C\uD37C. \uB2E8\uACC4\uAC00 \uD558\uB098\uB3C4 \uC5C6\uC73C\uBA74 "\uC790\uB3D9 \uC2B9\uC778"\uC73C\uB85C \uD45C\uC2DC\uD55C\uB2E4.',
|
|
3302
|
+
props: [
|
|
3303
|
+
{
|
|
3304
|
+
name: "steps",
|
|
3305
|
+
kind: "array",
|
|
3306
|
+
label: "\uACB0\uC7AC \uB2E8\uACC4",
|
|
3307
|
+
required: true,
|
|
3308
|
+
bindable: true,
|
|
3309
|
+
description: "\uBE48 \uBC30\uC5F4\uC774\uBA74 \uC790\uB3D9 \uC2B9\uC778\uC73C\uB85C \uADF8\uB9B0\uB2E4(\uBC31\uC5D4\uB4DC \uD574\uC11D\uAE30\uC640 \uAC19\uC740 \uC758\uBBF8).",
|
|
3310
|
+
group: "data",
|
|
3311
|
+
item: [
|
|
3312
|
+
{ name: "id", kind: "string", label: "\uB2E8\uACC4 id", required: true },
|
|
3313
|
+
{ name: "name", kind: "string", label: "\uB2E8\uACC4\uBA85" },
|
|
3314
|
+
{
|
|
3315
|
+
name: "type",
|
|
3316
|
+
kind: "string",
|
|
3317
|
+
label: "\uC720\uD615",
|
|
3318
|
+
description: "`typeLabels`\uC5D0\uC11C \uD45C\uC2DC\uBA85\uC744 \uCC3E\uB294 \uD0A4. \uB2E8\uACC4\uBA85\uC774 \uC5C6\uC744 \uB54C\uB9CC \uC4F0\uC778\uB2E4 \u2014 \uC870\uC9C1\uB9C8\uB2E4 \uC5B4\uD718\uAC00 \uB2EC\uB77C \uC5F4\uB9B0 \uBB38\uC790\uC5F4\uC774\uB2E4(\uC608: 'team_leader')."
|
|
3319
|
+
},
|
|
3320
|
+
{
|
|
3321
|
+
name: "status",
|
|
3322
|
+
kind: "enum",
|
|
3323
|
+
label: "\uC0C1\uD0DC",
|
|
3324
|
+
description: "\uBBF8\uC9C0\uC815\uC774\uBA74 \uB300\uAE30\uB85C \uBCF8\uB2E4.",
|
|
3325
|
+
// 스펙에는 approved·current·pending만 등장하지만(각 4·4·1), rejected·skipped도
|
|
3326
|
+
// 구현이 실제로 그리는 상태다(STATUS_META 5종). 값 후보는 구현 기준으로 적는다 —
|
|
3327
|
+
// 실사용이 없다는 이유로 빼면 편집기가 반려 상태를 만들 수단을 잃는다.
|
|
3328
|
+
options: [
|
|
3329
|
+
{ value: "pending", label: "\uB300\uAE30" },
|
|
3330
|
+
{ value: "current", label: "\uC9C4\uD589 \uC911" },
|
|
3331
|
+
{ value: "approved", label: "\uC2B9\uC778" },
|
|
3332
|
+
{ value: "rejected", label: "\uBC18\uB824" },
|
|
3333
|
+
{ value: "skipped", label: "\uAC74\uB108\uB700" }
|
|
3334
|
+
]
|
|
3335
|
+
},
|
|
3336
|
+
{ name: "approver", kind: "string", label: "\uCC98\uB9AC\uC790", description: "\uC2B9\uC778\xB7\uBC18\uB824\uB41C \uB2E8\uACC4\uC5D0\uC11C \uD234\uD301\uC5D0 \uBCF4\uC778\uB2E4." },
|
|
3337
|
+
{
|
|
3338
|
+
name: "processedAt",
|
|
3339
|
+
kind: "string",
|
|
3340
|
+
label: "\uCC98\uB9AC \uC77C\uC2DC",
|
|
3341
|
+
description: "ISO \uBB38\uC790\uC5F4 \uAD8C\uC7A5 \u2014 \uD30C\uC2F1\uC5D0 \uC2E4\uD328\uD558\uBA74 \uC6D0\uBB38\uC744 \uADF8\uB300\uB85C \uBCF4\uC5EC\uC900\uB2E4."
|
|
3342
|
+
},
|
|
3343
|
+
{ name: "candidates", kind: "array", label: "\uACB0\uC7AC \uD6C4\uBCF4", item: [], itemKind: "string" }
|
|
3344
|
+
]
|
|
3345
|
+
},
|
|
3346
|
+
{
|
|
3347
|
+
name: "requester",
|
|
3348
|
+
kind: "object",
|
|
3349
|
+
label: "\uC2E0\uCCAD\uC790",
|
|
3350
|
+
bindable: true,
|
|
3351
|
+
description: "\uC788\uC73C\uBA74 \uB9E8 \uC55E\uC5D0 \uC2E0\uCCAD\uC790 \uB178\uB4DC\uB97C \uADF8\uB9B0\uB2E4.",
|
|
3352
|
+
group: "data",
|
|
3353
|
+
fields: [
|
|
3354
|
+
{ name: "name", kind: "string", label: "\uC774\uB984", required: true },
|
|
3355
|
+
{ name: "sub", kind: "string", label: "\uC18C\uC18D\xB7\uC9C1\uAE09", description: '\uBE44\uBA74 "\uC2E0\uCCAD\uC790"\uB85C \uB300\uC2E0 \uD45C\uC2DC\uD55C\uB2E4.' }
|
|
3356
|
+
]
|
|
3357
|
+
},
|
|
3358
|
+
{
|
|
3359
|
+
name: "typeLabels",
|
|
3360
|
+
kind: "object",
|
|
3361
|
+
label: "\uC720\uD615 \uD45C\uC2DC\uBA85",
|
|
3362
|
+
bindable: true,
|
|
3363
|
+
description: '\uC720\uD615 \uCF54\uB4DC \u2192 \uD45C\uC2DC\uBA85. \uC548 \uC8FC\uBA74 \uCF54\uB4DC\uB97C \uADF8\uB300\uB85C \uBCF4\uC5EC\uC8FC\uACE0, \uC720\uD615\uB3C4 \uC5C6\uC73C\uBA74 "N\uB2E8\uACC4"\uB85C \uB5A8\uC5B4\uC9C4\uB2E4.',
|
|
3364
|
+
group: "content",
|
|
3365
|
+
advanced: true
|
|
3366
|
+
},
|
|
3367
|
+
{
|
|
3368
|
+
name: "onStepClick",
|
|
3369
|
+
kind: "action",
|
|
3370
|
+
label: "\uB2E8\uACC4 \uD074\uB9AD",
|
|
3371
|
+
eventArg: "\uD074\uB9AD\uD55C \uB2E8\uACC4 \uAC1D\uCCB4",
|
|
3372
|
+
description: "\uD578\uB4E4\uB7EC\uB97C \uC8FC\uBA74 \uB2E8\uACC4 \uB178\uB4DC\uAC00 \uD074\uB9AD \uAC00\uB2A5\uD574\uC9C4\uB2E4.",
|
|
3373
|
+
group: "behavior",
|
|
3374
|
+
advanced: true
|
|
3375
|
+
}
|
|
3376
|
+
// 실측 0/6 — 구현에는 있다
|
|
3377
|
+
],
|
|
3378
|
+
children: { accepts: false },
|
|
3379
|
+
dom: { element: "div" },
|
|
3380
|
+
// 실측: 자동 승인 분기·일반 분기 모두 <div class="wp-row">
|
|
3381
|
+
// 순수 렌더라 프리셋에 위험이 없다. 세 가지 상태가 한눈에 보이게 골랐다.
|
|
3382
|
+
preset: {
|
|
3383
|
+
component: "ApprovalStepper",
|
|
3384
|
+
props: {
|
|
3385
|
+
requester: { name: "\uAE40\uB3C4\uD604", sub: "\uACBD\uC601\uC9C0\uC6D0\uD300 \xB7 \uB300\uB9AC" },
|
|
3386
|
+
typeLabels: { team_leader: "\uD300\uC7A5", division_head: "\uBCF8\uBD80\uC7A5\xB7\uC2E4\uC7A5", custom: "\uC0AC\uC6A9\uC790 \uC9C0\uC815" },
|
|
3387
|
+
steps: [
|
|
3388
|
+
{ id: "step-1", type: "team_leader", status: "approved", approver: "\uC774\uC11C\uC5F0" },
|
|
3389
|
+
{ id: "step-2", name: "\uBCF8\uBD80\uC7A5", type: "division_head", status: "current" },
|
|
3390
|
+
{ id: "step-3", name: "\uACBD\uC601\uC9C0\uC6D0 \uD655\uC778", type: "custom", status: "pending" }
|
|
3391
|
+
]
|
|
3392
|
+
}
|
|
3393
|
+
},
|
|
3394
|
+
resize: { kind: "none" }
|
|
3395
|
+
};
|
|
3296
3396
|
var AutocompleteFieldMeta = {
|
|
3297
3397
|
name: "AutocompleteField",
|
|
3298
3398
|
label: "\uC790\uB3D9\uC644\uC131",
|
|
3299
3399
|
category: "input",
|
|
3300
3400
|
icon: "search",
|
|
3301
|
-
description: "\uAC80\uC0C9\uD574\uC11C \uD558\uB098\uB97C \uACE0\uB974\uB294 \uC785\uB825. \uACE0\uB978 \uB4A4\uC5D0\uB294 \uC120\uD0DD \uCE74\uB4DC\uB85C \uC811\uD78C\uB2E4. \
|
|
3401
|
+
description: "\uAC80\uC0C9\uD574\uC11C \uD558\uB098\uB97C \uACE0\uB974\uB294 \uC785\uB825. \uACE0\uB978 \uB4A4\uC5D0\uB294 \uC120\uD0DD \uCE74\uB4DC\uB85C \uC811\uD78C\uB2E4. \uAC80\uC0C9 \uACBD\uB85C\uB97C \uC8FC\uBA74 \uC6D0\uACA9 \uC870\uD68C\uAE4C\uC9C0 \uD55C\uB2E4.",
|
|
3302
3402
|
props: [
|
|
3303
3403
|
{
|
|
3304
3404
|
name: "options",
|
|
@@ -3316,9 +3416,15 @@ var AutocompleteFieldMeta = {
|
|
|
3316
3416
|
{
|
|
3317
3417
|
name: "endpoint",
|
|
3318
3418
|
kind: "string",
|
|
3319
|
-
legacy: true,
|
|
3320
3419
|
label: "\uAC80\uC0C9 \uACBD\uB85C",
|
|
3321
|
-
description: "\
|
|
3420
|
+
description: "\uC8FC\uBA74 \uC5B4\uB311\uD130\uC758 fetch\uB85C \uC9C1\uC811 \uC870\uD68C\uD55C\uB2E4(`GET {\uACBD\uB85C}?q={\uD0A4\uC6CC\uB4DC}`). 0.22.0 \uC804\uC5D0\uB294 \uC774 \uD504\uB86D\uC774 \uB77C\uC774\uBE0C\uB7EC\uB9AC \uAD6C\uD604\uC5D0 \uC5C6\uC5B4\uC11C \uC18C\uBE44 \uC571\uC774 \uC5B4\uB311\uD130\uB97C \uC50C\uC6CC endpoint\uB97C search \uD568\uC218\uB85C \uBC14\uAFD4 \uB4F1\uB85D\uD588\uB2E4 \u2014 \uC774\uC81C \uD544\uC694 \uC5C6\uB2E4.",
|
|
3421
|
+
group: "data"
|
|
3422
|
+
},
|
|
3423
|
+
{
|
|
3424
|
+
name: "searchParam",
|
|
3425
|
+
kind: "string",
|
|
3426
|
+
label: "\uD0A4\uC6CC\uB4DC \uD30C\uB77C\uBBF8\uD130",
|
|
3427
|
+
description: "endpoint \uC870\uD68C\uC5D0 \uBD99\uB294 \uD0A4\uC6CC\uB4DC \uCFFC\uB9AC \uC774\uB984. \uAE30\uBCF8 'q'.",
|
|
3322
3428
|
group: "data"
|
|
3323
3429
|
},
|
|
3324
3430
|
{
|
|
@@ -4704,6 +4810,7 @@ var StripMeta = {
|
|
|
4704
4810
|
resize: { kind: "none" }
|
|
4705
4811
|
};
|
|
4706
4812
|
var widgetComponentMeta = {
|
|
4813
|
+
ApprovalStepper: ApprovalStepperMeta,
|
|
4707
4814
|
AutocompleteField: AutocompleteFieldMeta,
|
|
4708
4815
|
ColumnBoard: ColumnBoardMeta,
|
|
4709
4816
|
DiffView: DiffViewMeta,
|
|
@@ -4761,4 +4868,4 @@ function paletteGroups(catalog = allComponentMeta) {
|
|
|
4761
4868
|
})).filter((group) => group.items.length > 0);
|
|
4762
4869
|
}
|
|
4763
4870
|
|
|
4764
|
-
export { ActionsMeta, AlertMeta, 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, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RecordSheetMeta, RemoteSearchResultsMeta, 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 };
|
|
4871
|
+
export { ActionsMeta, AlertMeta, 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, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RecordSheetMeta, RemoteSearchResultsMeta, 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 };
|
package/dist/rich.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { TimePicker } from './chunk-
|
|
1
|
+
import { useOptionalModule, DependencyPlaceholder } from './chunk-36MXPCJP.js';
|
|
2
|
+
export { TimePicker } from './chunk-36MXPCJP.js';
|
|
3
|
+
import { useSduiAssetResolver } from './chunk-DVOPZFQS.js';
|
|
3
4
|
import { HoistedStyle } from './chunk-XKLUCUVA.js';
|
|
4
5
|
export { DatePicker, DateRangePicker } from './chunk-XKLUCUVA.js';
|
|
5
6
|
import { Spinner, EmptyState } from './chunk-WIDDHR7L.js';
|
|
@@ -7,55 +8,6 @@ import './chunk-SAN4IX6N.js';
|
|
|
7
8
|
import { useRef, useCallback, useMemo, useState, useEffect, useLayoutEffect } from 'react';
|
|
8
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
10
|
|
|
10
|
-
function useOptionalModule(load) {
|
|
11
|
-
const [state, setState] = useState({ status: "loading" });
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
let alive = true;
|
|
14
|
-
load().then(
|
|
15
|
-
(module) => {
|
|
16
|
-
if (alive) setState({ status: "ready", module });
|
|
17
|
-
},
|
|
18
|
-
(error) => {
|
|
19
|
-
if (!alive) return;
|
|
20
|
-
console.warn("[sdui] \uC120\uD0DD \uC758\uC874\uC131 \uB85C\uB4DC \uC2E4\uD328 \u2014 \uD50C\uB808\uC774\uC2A4\uD640\uB354\uB85C \uB300\uCCB4\uD569\uB2C8\uB2E4", error);
|
|
21
|
-
setState({ status: "missing" });
|
|
22
|
-
}
|
|
23
|
-
);
|
|
24
|
-
return () => {
|
|
25
|
-
alive = false;
|
|
26
|
-
};
|
|
27
|
-
}, [load]);
|
|
28
|
-
return state;
|
|
29
|
-
}
|
|
30
|
-
function DependencyPlaceholder({
|
|
31
|
-
packageName,
|
|
32
|
-
purpose,
|
|
33
|
-
height,
|
|
34
|
-
loading = false
|
|
35
|
-
}) {
|
|
36
|
-
return /* @__PURE__ */ jsx(
|
|
37
|
-
"div",
|
|
38
|
-
{
|
|
39
|
-
style: {
|
|
40
|
-
minHeight: height,
|
|
41
|
-
display: "flex",
|
|
42
|
-
alignItems: "center",
|
|
43
|
-
justifyContent: "center",
|
|
44
|
-
border: "1px solid var(--wp-border-subtle)",
|
|
45
|
-
borderRadius: "var(--wp-radius-md)",
|
|
46
|
-
background: "var(--wp-surface-sunken)"
|
|
47
|
-
},
|
|
48
|
-
children: loading ? /* @__PURE__ */ jsx(Spinner, { label: `${purpose} \uC900\uBE44 \uC911` }) : /* @__PURE__ */ jsxs(EmptyState, { tight: true, icon: "box", title: `${purpose}\uB97C \uADF8\uB9AC\uB824\uBA74 ${packageName} \uD328\uD0A4\uC9C0\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4`, children: [
|
|
49
|
-
"\uC120\uD0DD \uC758\uC874\uC131\uC774\uB77C \uAE30\uBCF8 \uC124\uCE58\uC5D0\uB294 \uD3EC\uD568\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 \u2014 ",
|
|
50
|
-
/* @__PURE__ */ jsxs("code", { children: [
|
|
51
|
-
"pnpm add ",
|
|
52
|
-
packageName
|
|
53
|
-
] }),
|
|
54
|
-
" \uD6C4 \uB2E4\uC2DC \uC5F4\uC5B4 \uC8FC\uC138\uC694."
|
|
55
|
-
] })
|
|
56
|
-
}
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
11
|
var loadRecharts = () => import('recharts');
|
|
60
12
|
var SERIES_FALLBACK = [
|
|
61
13
|
"#1d2c60",
|
package/dist/styles.css
CHANGED
|
@@ -228,6 +228,9 @@
|
|
|
228
228
|
color var(--wp-duration-fast) var(--wp-ease-standard),
|
|
229
229
|
box-shadow var(--wp-duration-fast) var(--wp-ease-standard);
|
|
230
230
|
--wp-transition-transform: transform var(--wp-duration-base) var(--wp-ease-standard);
|
|
231
|
+
/* 면(surface)의 강조 전이 — 드롭 영역·카드처럼 배경과 그림자가 함께 바뀌는 자리. */
|
|
232
|
+
--wp-transition-surface: background-color var(--wp-duration-base) var(--wp-ease-standard),
|
|
233
|
+
box-shadow var(--wp-duration-base) var(--wp-ease-standard);
|
|
231
234
|
--wp-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
232
235
|
|
|
233
236
|
/* 별칭 — 이관 CSS가 의미 이름으로 참조하는 자리 */
|
|
@@ -64,11 +64,67 @@ interface SduiIndexRef {
|
|
|
64
64
|
interface SduiCalcRef {
|
|
65
65
|
$calc: {
|
|
66
66
|
op: 'sum' | 'sub' | 'mul' | 'div' | 'percent' | 'count' | 'concat' | 'encode'
|
|
67
|
-
/**
|
|
68
|
-
|
|
67
|
+
/**
|
|
68
|
+
* 비교·논리 — Show의 when, Button의 disabled 등에 바인딩한다.
|
|
69
|
+
* 순서 비교(gt/gte/lt/lte)는 숫자로 재되, **양쪽이 모두 숫자가 아닌 문자열일
|
|
70
|
+
* 때만** 사전순으로 본다 — ISO 날짜·시각 문자열의 대소가 이 규칙으로 성립한다.
|
|
71
|
+
*/
|
|
72
|
+
| 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'not' | 'and' | 'or'
|
|
73
|
+
/**
|
|
74
|
+
* 값 고르기. `if`는 `then`/`else`, `match`는 `cases`(+`default`)를 쓴다 —
|
|
75
|
+
* 둘 다 **고른 가지만** 해석되므로 안 고른 가지의 조회는 나가지 않는다.
|
|
76
|
+
* `coalesce`는 args에서 처음으로 비지 않은 값(null·undefined·'' 제외)을 준다.
|
|
77
|
+
*/
|
|
78
|
+
| 'if' | 'match' | 'coalesce'
|
|
79
|
+
/**
|
|
80
|
+
* 목록·객체. JSON에는 람다가 없으므로 술어는 `where` 객체로 쓴다
|
|
81
|
+
* (Prisma의 where와 같은 모양 — 아래 필드 설명 참고).
|
|
82
|
+
*
|
|
83
|
+
* - `get` args[0]에서 args[1] 키/인덱스로 꺼낸다(런타임 값이 키가 될 수 있다)
|
|
84
|
+
* - `pluck` 객체 배열에서 `field` 값만 뽑아 값 배열로 만든다(빈 값은 떨어뜨린다)
|
|
85
|
+
* - `filter` `where`에 맞는 행만 남긴다
|
|
86
|
+
* - `some`/`every` `where`에 맞는 행이 있는지 / 전부인지
|
|
87
|
+
* - `includes` 목록(또는 문자열)이 args[1]을 담고 있는지
|
|
88
|
+
* - `distinct` `field`(없으면 값 자체) 기준 중복 제거
|
|
89
|
+
* - `except` args[0]에서 args[1]에 있는 것을 뺀다(`field`로 맞춘다)
|
|
90
|
+
* - `entries` 객체를 `{key, value}` 배열로 편다 — ForEach가 돌 수 있는 모양
|
|
91
|
+
* - `length` 배열·문자열의 길이
|
|
92
|
+
* - `join` `sep`(기본 ',')으로 잇는다
|
|
93
|
+
* - `split` `sep`(기본 ',')으로 가른다. `take`를 주면 그 조각 하나(음수는 뒤에서)
|
|
94
|
+
* - `sortBy` `field` 기준 정렬(`desc: true`면 내림차순). 원본은 건드리지 않는다
|
|
95
|
+
*/
|
|
96
|
+
| 'get' | 'pluck' | 'filter' | 'some' | 'every' | 'includes' | 'distinct' | 'except' | 'entries' | 'length' | 'join' | 'split' | 'sortBy';
|
|
69
97
|
args: SduiPropValue[];
|
|
70
|
-
/** sum/count
|
|
98
|
+
/** sum/count·목록 연산에서 객체 배열의 필드를 지정 */
|
|
71
99
|
field?: string;
|
|
100
|
+
/**
|
|
101
|
+
* `filter`·`some`·`every`의 술어. 키가 필드, 값이 연산 객체다.
|
|
102
|
+
*
|
|
103
|
+
* { "deptId": { "eq": { "$state": "sel" } },
|
|
104
|
+
* "level": { "gte": 3 },
|
|
105
|
+
* "OR": [ { "status": "open" }, { "owner": { "isNull": true } } ] }
|
|
106
|
+
*
|
|
107
|
+
* 필드 연산: eq · ne · gt · gte · lt · lte · in · notIn · contains ·
|
|
108
|
+
* startsWith · endsWith · isNull. 값이 연산 객체가 아니면 `eq`로 읽는다.
|
|
109
|
+
* 같은 객체의 키들은 AND이고, `AND`/`OR`는 술어 배열, `NOT`은 술어 하나다.
|
|
110
|
+
* 술어 안의 값에도 참조를 쓸 수 있는데, 이때 `$item`은 거르고 있는 행이 아니라
|
|
111
|
+
* **바깥 ForEach의 행**을 가리킨다(거르는 행은 필드 이름으로 지목한다).
|
|
112
|
+
*/
|
|
113
|
+
where?: SduiPropValue;
|
|
114
|
+
/** `if`가 참일 때의 값 (고를 때만 해석된다) */
|
|
115
|
+
then?: SduiPropValue;
|
|
116
|
+
/** `if`가 거짓일 때의 값 (고를 때만 해석된다) */
|
|
117
|
+
else?: SduiPropValue;
|
|
118
|
+
/** `match`의 대응표 — 키는 args[0]을 문자열로 눕힌 값 */
|
|
119
|
+
cases?: Record<string, SduiPropValue>;
|
|
120
|
+
/** `match`에서 어느 case에도 안 맞을 때의 값 */
|
|
121
|
+
default?: SduiPropValue;
|
|
122
|
+
/** `join`/`split`의 구분자 (기본 ',') */
|
|
123
|
+
sep?: string;
|
|
124
|
+
/** `split`에서 꺼낼 조각의 인덱스. 음수는 뒤에서부터 센다 */
|
|
125
|
+
take?: number;
|
|
126
|
+
/** `sortBy`를 내림차순으로 */
|
|
127
|
+
desc?: boolean;
|
|
72
128
|
};
|
|
73
129
|
}
|
|
74
130
|
/** 폼 필드 검증 규칙. */
|
|
@@ -146,6 +202,23 @@ type SduiAction = {
|
|
|
146
202
|
onSuccess?: SduiAction[];
|
|
147
203
|
/** 실패 시 순차 실행 (이벤트 값 = 에러 메시지). 생략하면 danger 토스트 */
|
|
148
204
|
onError?: SduiAction[];
|
|
205
|
+
/**
|
|
206
|
+
* 실패 상세를 담을 상태 키. 주면 `onError` 체인이 돌기 **직전에**
|
|
207
|
+
* `{ status, message, body }` 를 여기 심는다.
|
|
208
|
+
*
|
|
209
|
+
* `onError` 의 이벤트 값은 예전 그대로 **문자열 메시지**다(기존 스펙 불변).
|
|
210
|
+
* 상태 코드나 응답 본문으로 갈라 써야 할 때만 이 키를 준다 — 예컨대 서버가
|
|
211
|
+
* 409 로 거절하며 위반 목록을 실어 보내면, 그것을 화면에 그리는 길이 여기다:
|
|
212
|
+
*
|
|
213
|
+
* { "action": "request", "endpoint": "…", "errorKey": "saveError",
|
|
214
|
+
* "onError": [{ "action": "toast", "tone": "danger",
|
|
215
|
+
* "message": { "$state": "saveError.message" } }] }
|
|
216
|
+
* → ForEach source: { "$state": "saveError.body.violations" }
|
|
217
|
+
*
|
|
218
|
+
* `status`·`body` 는 호스트 어댑터가 오류에 얹어 줬을 때만 채워진다
|
|
219
|
+
* (계약은 {@link SduiAdapter.fetch} 참고). 안 얹으면 message 만 남는다.
|
|
220
|
+
*/
|
|
221
|
+
errorKey?: string;
|
|
149
222
|
}
|
|
150
223
|
/**
|
|
151
224
|
* 단발 API 호출 — submitForm에서 폼 수집·검증을 뺀 것. 서버의 2단계 커밋 계약
|
|
@@ -162,6 +235,23 @@ type SduiAction = {
|
|
|
162
235
|
onSuccess?: SduiAction[];
|
|
163
236
|
/** 실패 시 순차 실행 (이벤트 값 = 에러 메시지). 생략하면 danger 토스트 */
|
|
164
237
|
onError?: SduiAction[];
|
|
238
|
+
/**
|
|
239
|
+
* 실패 상세를 담을 상태 키. 주면 `onError` 체인이 돌기 **직전에**
|
|
240
|
+
* `{ status, message, body }` 를 여기 심는다.
|
|
241
|
+
*
|
|
242
|
+
* `onError` 의 이벤트 값은 예전 그대로 **문자열 메시지**다(기존 스펙 불변).
|
|
243
|
+
* 상태 코드나 응답 본문으로 갈라 써야 할 때만 이 키를 준다 — 예컨대 서버가
|
|
244
|
+
* 409 로 거절하며 위반 목록을 실어 보내면, 그것을 화면에 그리는 길이 여기다:
|
|
245
|
+
*
|
|
246
|
+
* { "action": "request", "endpoint": "…", "errorKey": "saveError",
|
|
247
|
+
* "onError": [{ "action": "toast", "tone": "danger",
|
|
248
|
+
* "message": { "$state": "saveError.message" } }] }
|
|
249
|
+
* → ForEach source: { "$state": "saveError.body.violations" }
|
|
250
|
+
*
|
|
251
|
+
* `status`·`body` 는 호스트 어댑터가 오류에 얹어 줬을 때만 채워진다
|
|
252
|
+
* (계약은 {@link SduiAdapter.fetch} 참고). 안 얹으면 message 만 남는다.
|
|
253
|
+
*/
|
|
254
|
+
errorKey?: string;
|
|
165
255
|
/** 성공 시 무효화할 조회 prefix — onSuccess의 invalidate 액션 단축 */
|
|
166
256
|
invalidate?: string;
|
|
167
257
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
|
|
4
|
+
interface ApprovalStepperStep {
|
|
5
|
+
id: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
/**
|
|
8
|
+
* 단계 유형. `typeLabels`에서 표시명을 찾는 키다 — 열린 문자열이라 조직마다
|
|
9
|
+
* 자기 어휘를 쓴다. 이름(`name`)이 있으면 그쪽이 이긴다.
|
|
10
|
+
*/
|
|
11
|
+
type?: string;
|
|
12
|
+
status?: 'pending' | 'current' | 'approved' | 'rejected' | 'skipped';
|
|
13
|
+
/** 처리한 결재자 이름(승인/반려된 단계). */
|
|
14
|
+
approver?: string;
|
|
15
|
+
/** 처리 일시(ISO 문자열 권장 — 파싱 실패 시 원문 그대로 표시). */
|
|
16
|
+
processedAt?: string;
|
|
17
|
+
/** 이 단계에서 결재할 수 있는 후보자 이름들. */
|
|
18
|
+
candidates?: string[];
|
|
19
|
+
}
|
|
20
|
+
interface ApprovalStepperProps {
|
|
21
|
+
/** 결재를 올린 사람. 있으면 맨 앞에 신청자 노드를 그린다. */
|
|
22
|
+
requester?: {
|
|
23
|
+
name: string;
|
|
24
|
+
sub?: string;
|
|
25
|
+
};
|
|
26
|
+
steps: ApprovalStepperStep[];
|
|
27
|
+
/** 단계 클릭 핸들러 — 첫 인자(step 객체)가 SDUI 이벤트 값으로 저장된다. */
|
|
28
|
+
onStepClick?: (step: ApprovalStepperStep) => void;
|
|
29
|
+
/**
|
|
30
|
+
* 유형 코드 → 표시명. 단계에 `name`이 없을 때만 쓰인다.
|
|
31
|
+
*
|
|
32
|
+
* 결재선의 유형 어휘는 조직마다 다르므로(팀장/본부장은 한 회사의 직제다) 여기서
|
|
33
|
+
* 받는다. 안 주면 유형 코드를 그대로 보여주고, 유형도 없으면 `N단계`로 떨어진다 —
|
|
34
|
+
* 어느 쪽이든 화면이 서고, 라이브러리가 특정 회사의 직제를 알지 않는다.
|
|
35
|
+
*/
|
|
36
|
+
typeLabels?: Record<string, string>;
|
|
37
|
+
}
|
|
38
|
+
/** 바깥에서 온 `style`·`className`을 뿌리에 얹어 내보낸다 — 자기 축(폭·여백)이 닿게 하는 통로. */
|
|
39
|
+
declare const ApprovalStepper: React__default.FC<ApprovalStepperProps & SduiBoxProps>;
|
|
40
|
+
|
|
41
|
+
export { ApprovalStepper, type ApprovalStepperProps, type ApprovalStepperStep };
|
|
@@ -26,7 +26,20 @@ interface AutocompleteFieldProps {
|
|
|
26
26
|
* ERP의 `endpoint` 프롭은 이 함수를 만드는 앱 쪽 어댑터가 계속 소유한다(위 주석 참고).
|
|
27
27
|
*/
|
|
28
28
|
search?: AutocompleteSearchFn;
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* 조회 경로. 주면 **어댑터의 `fetch`로 직접 조회한다** — 소비 앱이 `search`를
|
|
31
|
+
* 만들어 넘기지 않아도 된다(`GET {endpoint}?{searchParam}={키워드}`).
|
|
32
|
+
*
|
|
33
|
+
* `search`가 함께 오면 그쪽이 이긴다 — 응답 모양이나 오류 분기가 특수한 화면은
|
|
34
|
+
* 여전히 자기 함수를 넘길 수 있다.
|
|
35
|
+
*
|
|
36
|
+
* 어댑터가 없거나 `fetch`를 안 준 환경(편집기 캔버스 등)에서는 조회하지 않고
|
|
37
|
+
* `options` 로컬 검색으로 떨어진다 — 미리보기에서 실요청이 나가면 안 된다.
|
|
38
|
+
*/
|
|
39
|
+
endpoint?: string;
|
|
40
|
+
/** `endpoint` 조회의 키워드 파라미터 이름. 기본 'q'. */
|
|
41
|
+
searchParam?: string;
|
|
42
|
+
/** 정적 옵션(데모/폴백) — `search`·`endpoint`가 없을 때 로컬 검색 대상. */
|
|
30
43
|
options?: AutocompleteOption[];
|
|
31
44
|
/** 옵션에서 표시 라벨을 읽을 키. 기본 'label'. */
|
|
32
45
|
labelKey?: string;
|
|
@@ -48,6 +61,20 @@ interface AutocompleteFieldProps {
|
|
|
48
61
|
invalid?: boolean;
|
|
49
62
|
disabled?: boolean;
|
|
50
63
|
}
|
|
64
|
+
type HostFetch = (path: string, init: {
|
|
65
|
+
method: string;
|
|
66
|
+
signal?: AbortSignal;
|
|
67
|
+
}) => Promise<unknown>;
|
|
68
|
+
/**
|
|
69
|
+
* `endpoint` → 검색 함수. 컴포넌트 밖에 두어 DOM 없이 그대로 잰다
|
|
70
|
+
* (`page-data.ts`·`calc.ts`와 같은 이유).
|
|
71
|
+
*
|
|
72
|
+
* 503만 별도로 본다. 어댑터 계약상 실패는 Error 하나라 상태 코드가 사라지지만,
|
|
73
|
+
* 503은 "서비스가 아직 없다"는 표준 의미라 "불러왔는데 없다"와 사용자에게 다른
|
|
74
|
+
* 말을 해야 한다. 호스트 오류 객체에 `status`가 있으면 읽고, 없으면 평소대로
|
|
75
|
+
* 던진다 — 특정 앱의 오류 타입을 알지 않는다.
|
|
76
|
+
*/
|
|
77
|
+
declare function endpointSearchFn(endpoint: string, searchParam: string, hostFetch: HostFetch): AutocompleteSearchFn;
|
|
51
78
|
/**
|
|
52
79
|
* 응답이 배열이 아니면 items/data/results/rows 래핑까지 풀어 준다.
|
|
53
80
|
* 조회를 앱이 맡게 됐으므로 이 정규화도 함께 내보낸다 — 앱마다 다시 짤 규칙이 아니다.
|
|
@@ -59,4 +86,4 @@ declare function toAutocompleteOptions(payload: unknown): AutocompleteOption[];
|
|
|
59
86
|
*/
|
|
60
87
|
declare const AutocompleteField: React__default.FC<AutocompleteFieldProps & SduiBoxProps>;
|
|
61
88
|
|
|
62
|
-
export { AutocompleteField, type AutocompleteFieldProps, type AutocompleteOption, type AutocompleteSearchFn, type AutocompleteSearchResult, toAutocompleteOptions };
|
|
89
|
+
export { AutocompleteField, type AutocompleteFieldProps, type AutocompleteOption, type AutocompleteSearchFn, type AutocompleteSearchResult, endpointSearchFn, toAutocompleteOptions };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { AutocompleteField, toAutocompleteOptions } from '../chunk-
|
|
1
|
+
export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-OG62LSFH.js';
|
|
2
2
|
import '../chunk-U7ZK7WYH.js';
|
|
3
|
+
import '../chunk-DVOPZFQS.js';
|
|
3
4
|
import '../chunk-XKLUCUVA.js';
|
|
4
5
|
import '../chunk-WIDDHR7L.js';
|
|
5
6
|
import '../chunk-SAN4IX6N.js';
|
package/dist/widgets/index.d.ts
CHANGED
|
@@ -38,10 +38,12 @@ import { DisclosureProps } from './Disclosure.js';
|
|
|
38
38
|
export { Disclosure } from './Disclosure.js';
|
|
39
39
|
import { DiffViewProps } from './DiffView.js';
|
|
40
40
|
export { DiffField, DiffList, DiffView } from './DiffView.js';
|
|
41
|
-
import * as React from 'react';
|
|
42
|
-
import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
|
|
43
41
|
import { ColumnBoardProps } from './ColumnBoard.js';
|
|
44
42
|
export { ColumnBoard, ColumnBoardColumn, ColumnBoardItem, ColumnBoardTone } from './ColumnBoard.js';
|
|
43
|
+
import * as React from 'react';
|
|
44
|
+
import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
|
|
45
|
+
import { ApprovalStepperProps } from './ApprovalStepper.js';
|
|
46
|
+
export { ApprovalStepper, ApprovalStepperStep } from './ApprovalStepper.js';
|
|
45
47
|
export { AutocompleteField, AutocompleteFieldProps, AutocompleteOption, AutocompleteSearchFn, AutocompleteSearchResult, toAutocompleteOptions } from './AutocompleteField.js';
|
|
46
48
|
|
|
47
49
|
/**
|
|
@@ -52,6 +54,7 @@ export { AutocompleteField, AutocompleteFieldProps, AutocompleteOption, Autocomp
|
|
|
52
54
|
* `SduiWidgetComponentName`이 어휘 목록이 되게 한다.
|
|
53
55
|
*/
|
|
54
56
|
declare const widgetComponents: {
|
|
57
|
+
ApprovalStepper: React.FC<ApprovalStepperProps & SduiBoxProps>;
|
|
55
58
|
ColumnBoard: React.FC<ColumnBoardProps & SduiBoxProps>;
|
|
56
59
|
DiffView: React.FC<DiffViewProps & SduiBoxProps>;
|
|
57
60
|
Disclosure: React.FC<DisclosureProps & SduiBoxProps>;
|
|
@@ -77,4 +80,4 @@ declare const widgetComponents: {
|
|
|
77
80
|
/** 위젯 어휘의 컴포넌트 이름 union — 메타데이터 대조에 쓴다(`@wipco/sdui/meta`). */
|
|
78
81
|
type SduiWidgetComponentName = keyof typeof widgetComponents;
|
|
79
82
|
|
|
80
|
-
export { ColumnBoardProps, DiffViewProps, DisclosureProps, EventCalendarProps, ImageLightboxProps, InlineEditProps, JsonFieldProps, LiveClockProps, OrgChartProps, PeriodFilterProps, PrintSheetProps, RecordSheetProps, type SduiWidgetComponentName, SearchableMultiPickerProps, SecureScreenProps, StackedMeterProps, StripProps, SummaryTableProps, TagMultiSelectProps, TimelineProps, TreePickerProps, TreeViewProps, widgetComponents };
|
|
83
|
+
export { ApprovalStepperProps, ColumnBoardProps, DiffViewProps, DisclosureProps, EventCalendarProps, ImageLightboxProps, InlineEditProps, JsonFieldProps, LiveClockProps, OrgChartProps, PeriodFilterProps, PrintSheetProps, RecordSheetProps, type SduiWidgetComponentName, SearchableMultiPickerProps, SecureScreenProps, StackedMeterProps, StripProps, SummaryTableProps, TagMultiSelectProps, TimelineProps, TreePickerProps, TreeViewProps, widgetComponents };
|
package/dist/widgets/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { Timeline } from '../chunk-EFYEOT47.js';
|
|
2
|
+
export { Timeline } from '../chunk-EFYEOT47.js';
|
|
1
3
|
import { TreePicker } from '../chunk-EQW24SJC.js';
|
|
2
4
|
export { TreePicker } from '../chunk-EQW24SJC.js';
|
|
3
5
|
import { TreeView } from '../chunk-IDUN2ESE.js';
|
|
4
6
|
export { TreeView, buildTreeNodes } from '../chunk-IDUN2ESE.js';
|
|
7
|
+
import { PrintSheet } from '../chunk-MYJ2KEIP.js';
|
|
8
|
+
export { PrintSheet } from '../chunk-MYJ2KEIP.js';
|
|
5
9
|
import { RecordSheet } from '../chunk-K3JBSWFI.js';
|
|
6
10
|
export { RecordSheet } from '../chunk-K3JBSWFI.js';
|
|
7
11
|
import { SearchableMultiPicker } from '../chunk-N5IATDUF.js';
|
|
@@ -16,8 +20,8 @@ import { SummaryTable } from '../chunk-O4U7Y3XL.js';
|
|
|
16
20
|
export { SummaryTable } from '../chunk-O4U7Y3XL.js';
|
|
17
21
|
import { TagMultiSelect } from '../chunk-QDEZXA34.js';
|
|
18
22
|
export { TagMultiSelect } from '../chunk-QDEZXA34.js';
|
|
19
|
-
import {
|
|
20
|
-
export {
|
|
23
|
+
import { Disclosure } from '../chunk-HIZ2OVJA.js';
|
|
24
|
+
export { Disclosure } from '../chunk-HIZ2OVJA.js';
|
|
21
25
|
import { EventCalendar } from '../chunk-C3JY6GA3.js';
|
|
22
26
|
export { EventCalendar } from '../chunk-C3JY6GA3.js';
|
|
23
27
|
import { ImageLightbox } from '../chunk-XPBZMECW.js';
|
|
@@ -32,23 +36,23 @@ import { OrgChart } from '../chunk-QWJ3OBBL.js';
|
|
|
32
36
|
export { OrgChart } from '../chunk-QWJ3OBBL.js';
|
|
33
37
|
import { PeriodFilter } from '../chunk-PFUULIZ2.js';
|
|
34
38
|
export { PeriodFilter } from '../chunk-PFUULIZ2.js';
|
|
35
|
-
import { PrintSheet } from '../chunk-MYJ2KEIP.js';
|
|
36
|
-
export { PrintSheet } from '../chunk-MYJ2KEIP.js';
|
|
37
39
|
import '../chunk-THEP3VWY.js';
|
|
38
|
-
|
|
40
|
+
import { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
|
|
41
|
+
export { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
|
|
42
|
+
export { AutocompleteField, toAutocompleteOptions } from '../chunk-OG62LSFH.js';
|
|
39
43
|
import '../chunk-U7ZK7WYH.js';
|
|
44
|
+
import '../chunk-DVOPZFQS.js';
|
|
40
45
|
import '../chunk-XKLUCUVA.js';
|
|
41
46
|
import { ColumnBoard } from '../chunk-C4JRSZGS.js';
|
|
42
47
|
export { ColumnBoard } from '../chunk-C4JRSZGS.js';
|
|
43
48
|
import { DiffView } from '../chunk-LDJ2CFFH.js';
|
|
44
49
|
export { DiffView } from '../chunk-LDJ2CFFH.js';
|
|
45
|
-
import { Disclosure } from '../chunk-HIZ2OVJA.js';
|
|
46
|
-
export { Disclosure } from '../chunk-HIZ2OVJA.js';
|
|
47
50
|
import '../chunk-WIDDHR7L.js';
|
|
48
51
|
import '../chunk-SAN4IX6N.js';
|
|
49
52
|
|
|
50
53
|
// src/widgets/index.ts
|
|
51
54
|
var widgetComponents = {
|
|
55
|
+
ApprovalStepper,
|
|
52
56
|
ColumnBoard,
|
|
53
57
|
DiffView,
|
|
54
58
|
Disclosure,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wipco/sdui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sdui",
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"types": "./dist/widgets/index.d.ts",
|
|
37
37
|
"default": "./dist/widgets/index.js"
|
|
38
38
|
},
|
|
39
|
+
"./widgets/ApprovalStepper": {
|
|
40
|
+
"types": "./dist/widgets/ApprovalStepper.d.ts",
|
|
41
|
+
"default": "./dist/widgets/ApprovalStepper.js"
|
|
42
|
+
},
|
|
39
43
|
"./widgets/AutocompleteField": {
|
|
40
44
|
"types": "./dist/widgets/AutocompleteField.d.ts",
|
|
41
45
|
"default": "./dist/widgets/AutocompleteField.js"
|
|
@@ -155,7 +159,8 @@
|
|
|
155
159
|
"ol": ">=9",
|
|
156
160
|
"react": ">=18",
|
|
157
161
|
"react-dom": ">=18",
|
|
158
|
-
"recharts": ">=3"
|
|
162
|
+
"recharts": ">=3",
|
|
163
|
+
"xlsx": ">=0.18"
|
|
159
164
|
},
|
|
160
165
|
"peerDependenciesMeta": {
|
|
161
166
|
"ol": {
|
|
@@ -163,6 +168,9 @@
|
|
|
163
168
|
},
|
|
164
169
|
"recharts": {
|
|
165
170
|
"optional": true
|
|
171
|
+
},
|
|
172
|
+
"xlsx": {
|
|
173
|
+
"optional": true
|
|
166
174
|
}
|
|
167
175
|
},
|
|
168
176
|
"devDependencies": {
|