@wipco/sdui 0.27.0 → 0.29.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/index.js CHANGED
@@ -6,11 +6,11 @@ import { ImageViewer } from './chunk-THEP3VWY.js';
6
6
  export { ImageViewer } from './chunk-THEP3VWY.js';
7
7
  import { normalizeSearchFields, searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-BD75U73S.js';
8
8
  export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-BD75U73S.js';
9
- import { DEV, isSafeNavigationTarget, useSduiAdapter, hostFetchOf, useSduiSandbox, resolveAdapter, assetResolverOf, SduiAdapterContext } from './chunk-DVOPZFQS.js';
10
- export { defaultAdapter, useSduiAssetResolver, useSduiSandbox } from './chunk-DVOPZFQS.js';
11
9
  import { HoistedStyle, DateRangePicker, DatePicker } from './chunk-EFMKWPZ3.js';
12
10
  export { DatePicker, DateRangePicker } from './chunk-EFMKWPZ3.js';
13
11
  export { OverlayContainerContext, OverlayLayer, getOverlayRoot, useOverlayLayer } from './chunk-XQPTSEJC.js';
12
+ import { DEV, isSafeNavigationTarget, useSduiAdapter, hostFetchOf, useSduiSandbox, resolveAdapter, assetResolverOf, SduiAdapterContext } from './chunk-DVOPZFQS.js';
13
+ export { defaultAdapter, useSduiAssetResolver, useSduiSandbox } from './chunk-DVOPZFQS.js';
14
14
  import { EmptyState, Button, Checkbox, SegmentedControl, Spinner, Select, Pagination, Icon, Card, Badge, ProgressBar, Tag, Toast, Textarea, Tabs, Table, Switch, StatCard, Input, IconButton, Field, Alert, warnOnce } from './chunk-WIDDHR7L.js';
15
15
  export { Alert, Avatar, Badge, Breadcrumb, Button, Card, Checkbox, Dialog, EmptyState, Field, Icon, IconButton, Input, Pagination, ProgressBar, Radio, SegmentedControl, Select, SidebarNav, Spinner, StatCard, Switch, Table, Tabs, Tag, Textarea, Toast, Tooltip } from './chunk-WIDDHR7L.js';
16
16
  import { boxed, mergeStyle, containerLayoutStyle, joinClass, columnsClass, typographyStyle, LAYOUT_CSS, childLayoutFrom, CHILD_LAYOUT_PROPS } from './chunk-SAN4IX6N.js';
package/dist/meta.d.ts CHANGED
@@ -427,6 +427,9 @@ declare const ApprovalStepperMeta: SduiComponentMeta;
427
427
  declare const RankBoardMeta: SduiComponentMeta;
428
428
  declare const ApprovalLineEditorMeta: SduiComponentMeta;
429
429
  declare const ApprovalOverridesEditorMeta: SduiComponentMeta;
430
+ declare const OrgChartBoardMeta: SduiComponentMeta;
431
+ declare const PermissionMatrixEditorMeta: SduiComponentMeta;
432
+ declare const RoleMemberPickerMeta: SduiComponentMeta;
430
433
  declare const AutocompleteFieldMeta: SduiComponentMeta;
431
434
  declare const InlineEditMeta: SduiComponentMeta;
432
435
  declare const JsonFieldMeta: SduiComponentMeta;
@@ -463,6 +466,9 @@ declare const widgetComponentMeta: {
463
466
  ApprovalLineEditor: SduiComponentMeta;
464
467
  ApprovalOverridesEditor: SduiComponentMeta;
465
468
  ApprovalStepper: SduiComponentMeta;
469
+ PermissionMatrixEditor: SduiComponentMeta;
470
+ RoleMemberPicker: SduiComponentMeta;
471
+ OrgChartBoard: SduiComponentMeta;
466
472
  RankBoard: SduiComponentMeta;
467
473
  AutocompleteField: SduiComponentMeta;
468
474
  ColumnBoard: SduiComponentMeta;
@@ -596,4 +602,4 @@ declare function paletteGroups(catalog?: Record<string, SduiComponentMeta>): Arr
596
602
  items: SduiComponentMeta[];
597
603
  }>;
598
604
 
599
- 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, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RankBoardMeta, 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 };
605
+ 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, 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
@@ -3666,6 +3666,179 @@ var ApprovalOverridesEditorMeta = {
3666
3666
  },
3667
3667
  resize: { kind: "none" }
3668
3668
  };
3669
+ var OrgChartBoardMeta = {
3670
+ name: "OrgChartBoard",
3671
+ label: "\uC870\uC9C1\uB3C4 \uBCF4\uB4DC",
3672
+ category: "display",
3673
+ icon: "git-branch",
3674
+ description: "\uC2E4\uB370\uC774\uD130 \uC870\uC9C1\uB3C4 \uCE94\uBC84\uC2A4(v2 \uC774\uC2DD). /employees\xB7/departments?include=paths\xB7/job-positions 3\uC6D0\uC744 \uC2A4\uC2A4\uB85C \uD398\uC774\uC9C0 \uC218\uC9D1\uD574 \uB9AC\uB354\uC2ED \uC2A4\uD0DD\xB7\uBCF8\uBD80 \uC0C9 \uD5E4\uB354\xB7\uC138\uB85C\uC4F0\uAE30 \uD300 \uB77C\uBCA8\xB72\uC5F4 \uAD6C\uC131\uC6D0 \uADF8\uB9AC\uB4DC\uB85C \uADF8\uB9B0\uB2E4(\uBD80\uC11C\xB7\uC9C1\uC704 \uC870\uD68C\uB294 \uC2E4\uD328 \uD5C8\uC6A9). \uAD6C\uC131\uC6D0 \uC815\uB82C\uC740 \uC9C1\uCC45\u2192\uC9C1\uC704 \uB9C8\uC2A4\uD130 rank_order(\uCD5C\uC7A5 \uD3EC\uD568 \uB9E4\uCE6D)\u2192GRADE_ORDER \uD3F4\uBC31\u2192level\u2192\uC774\uB984. \uD720 \uC90C\xB7\uB4DC\uB798\uADF8 \uD32C\xB7\uC804\uCCB4\uD654\uBA74 \uB0B4\uC7A5, \uBBF8\uC9C0\uC815 \uADF8\uB8F9\uC740 \uC228\uAE34\uB2E4.",
3675
+ props: [
3676
+ {
3677
+ name: "onMemberClick",
3678
+ kind: "action",
3679
+ label: "\uC0AC\uC6D0 \uCE74\uB4DC \uD074\uB9AD",
3680
+ eventArg: "\uC0AC\uC6D0 \uD589(snake_case \uC6D0\uBB38 \u2014 id\xB7name\xB7grade\xB7job_title\xB7department_id \u2026)",
3681
+ description: "\uBE44\uC6B0\uBA74 \uC704\uC82F\uC774 /hr/personal-card/{id}\uB85C \uC9C1\uC811 \uC774\uB3D9\uD55C\uB2E4.",
3682
+ group: "behavior"
3683
+ },
3684
+ {
3685
+ name: "height",
3686
+ kind: "string",
3687
+ label: "\uCE94\uBC84\uC2A4 \uB192\uC774",
3688
+ default: "72vh",
3689
+ description: "px \uC22B\uC790 \uB610\uB294 CSS \uAE38\uC774. \uCD5C\uC18C 620px\uB294 \uC704\uC82F\uC774 \uBCF4\uC7A5\uD55C\uB2E4.",
3690
+ group: "appearance",
3691
+ advanced: true
3692
+ },
3693
+ {
3694
+ name: "employeesEndpoint",
3695
+ kind: "string",
3696
+ label: "\uC0AC\uC6D0 \uBAA9\uB85D \uACBD\uB85C",
3697
+ description: "\uC751\uB2F5\uC740 {data:[\u2026], total}. \uD589\uC5D0\uC11C id\xB7name\xB7grade\xB7job_title\xB7department_id \uB97C \uC77D\uB294\uB2E4(\uC2A4\uB124\uC774\uD06C\xB7\uCE74\uBA5C \uAD00\uC6A9 \uC218\uC6A9). \uAE30\uBCF8 '/employees'.",
3698
+ group: "data",
3699
+ advanced: true
3700
+ },
3701
+ {
3702
+ name: "departmentsEndpoint",
3703
+ kind: "string",
3704
+ label: "\uBD80\uC11C \uBAA9\uB85D \uACBD\uB85C",
3705
+ description: "\uAE30\uBCF8 '/departments?include=paths' \u2014 \uACBD\uB85C \uC815\uBCF4\uAC00 \uC788\uC5B4\uC57C \uACC4\uCE35\uC774 \uC120\uB2E4.",
3706
+ group: "data",
3707
+ advanced: true
3708
+ },
3709
+ {
3710
+ name: "positionsEndpoint",
3711
+ kind: "string",
3712
+ label: "\uC9C1\uC704 \uB9C8\uC2A4\uD130 \uACBD\uB85C",
3713
+ description: "\uC11C\uC5F4 \uC815\uB82C\uC5D0 \uC4F4\uB2E4. \uC2E4\uD328\uD574\uB3C4 \uC774\uB984\uC21C\uC73C\uB85C \uB5A8\uC5B4\uC9C4\uB2E4. \uAE30\uBCF8 '/job-positions'.",
3714
+ group: "data",
3715
+ advanced: true
3716
+ }
3717
+ ],
3718
+ children: { accepts: false },
3719
+ dom: { element: "div" },
3720
+ preset: {
3721
+ component: "OrgChartBoard",
3722
+ props: {
3723
+ onMemberClick: [
3724
+ { action: "setState", key: "orgMember", fromEvent: true },
3725
+ {
3726
+ action: "navigate",
3727
+ to: {
3728
+ $calc: {
3729
+ op: "concat",
3730
+ args: ["/hr/personal-card/", { $state: "orgMember.id", default: "" }]
3731
+ }
3732
+ }
3733
+ }
3734
+ ]
3735
+ }
3736
+ },
3737
+ resize: { kind: "none" }
3738
+ };
3739
+ var PermissionMatrixEditorMeta = {
3740
+ name: "PermissionMatrixEditor",
3741
+ label: "\uAD8C\uD55C \uD589\uB82C \uD3B8\uC9D1\uAE30",
3742
+ category: "input",
3743
+ icon: "shield-check",
3744
+ description: "\uC5ED\uD560\uC758 \uAD8C\uD55C 216\uC885\uC744 \uCE74\uD14C\uACE0\uB9AC\u2192\uC5D4\uD2F0\uD2F0\uB85C \uC811\uC5B4 4\uC5F0\uC0B0 \uCCB4\uD06C + \uC5D4\uD2F0\uD2F0\uBCC4 \uBC94\uC704(\uD300\xB7\uBCF8\uBD80\xB7\uC804\uCCB4)\uB85C \uD3B8\uC9D1\uD55C\uB2E4. \uAC12\uC740 PUT /roles/{id}/permissions \uC758 permissions \uBC30\uC5F4({code, scope}) \uADF8\uB300\uB85C\uB2E4.",
3745
+ props: [
3746
+ {
3747
+ name: "permissions",
3748
+ kind: "array",
3749
+ label: "\uAD8C\uD55C \uCE74\uD0C8\uB85C\uADF8",
3750
+ required: true,
3751
+ bindable: true,
3752
+ item: [
3753
+ { name: "code", kind: "string", label: "\uAD8C\uD55C \uCF54\uB4DC" },
3754
+ { name: "name", kind: "string", label: "\uAD8C\uD55C\uBA85" },
3755
+ { name: "category", kind: "string", label: "\uCE74\uD14C\uACE0\uB9AC" }
3756
+ ],
3757
+ description: "\uC804\uCCB4 \uAD8C\uD55C \uBAA9\uB85D(GET /permissions?limit=1000 \uC758 data). \uB300\uAC1C page.data \uAC00 \uCC44\uC6B4 \uC0C1\uD0DC\uB97C \uBC14\uC778\uB529\uD55C\uB2E4 \u2014 \uAE30\uBCF8 100\uAC74\uB9CC \uC624\uB294 \uD568\uC815\uC774 \uC788\uC73C\uB2C8 limit \uC744 \uAF2D \uC900\uB2E4.",
3758
+ group: "data"
3759
+ },
3760
+ {
3761
+ name: "value",
3762
+ kind: "array",
3763
+ label: "\uBD80\uC5EC \uBAA9\uB85D",
3764
+ required: true,
3765
+ item: [
3766
+ { name: "code", kind: "string", label: "\uAD8C\uD55C \uCF54\uB4DC" },
3767
+ { name: "scope", kind: "string", label: "\uBC94\uC704(team\xB7headquarter\xB7all)" }
3768
+ ],
3769
+ bindable: true,
3770
+ description: "[{code, scope}] \u2014 \uC11C\uBC84 PUT \uACC4\uC57D \uADF8\uB300\uB85C.",
3771
+ group: "data"
3772
+ },
3773
+ {
3774
+ name: "onChange",
3775
+ kind: "action",
3776
+ label: "\uBD80\uC5EC \uBCC0\uACBD",
3777
+ required: true,
3778
+ eventArg: "{code, scope} \uBC30\uC5F4 (scope \uB294 team\xB7headquarter\xB7all)",
3779
+ group: "behavior"
3780
+ },
3781
+ {
3782
+ name: "sourceEndpoint",
3783
+ kind: "string",
3784
+ label: "\uD604\uC7AC \uBD80\uC5EC \uC2DC\uB529 \uACBD\uB85C",
3785
+ description: "/roles/{id}/permissions \u2014 \uACBD\uB85C\uAC00 \uBC14\uB014 \uB54C\uB9C8\uB2E4 \uC11C\uBC84 \uAC12\uC744 onChange \uB85C \uD55C \uBC88 \uD758\uB9B0\uB2E4.",
3786
+ group: "data",
3787
+ advanced: true
3788
+ },
3789
+ { name: "disabled", kind: "boolean", label: "\uBE44\uD65C\uC131", default: false, bindable: true, group: "behavior" }
3790
+ ],
3791
+ children: { accepts: false },
3792
+ dom: { element: "div" },
3793
+ preset: {
3794
+ component: "PermissionMatrixEditor",
3795
+ props: {
3796
+ permissions: [
3797
+ { code: "asset.read", name: "\uC7A5\uBE44 \uC870\uD68C", category: "asset" },
3798
+ { code: "asset.update", name: "\uC7A5\uBE44 \uC218\uC815", category: "asset" }
3799
+ ],
3800
+ value: { $state: "grantsForm.permissions", default: [{ code: "asset.read", scope: "all" }] },
3801
+ onChange: { action: "setState", key: "grantsForm.permissions", fromEvent: true }
3802
+ }
3803
+ },
3804
+ resize: { kind: "none" }
3805
+ };
3806
+ var RoleMemberPickerMeta = {
3807
+ name: "RoleMemberPicker",
3808
+ label: "\uC5ED\uD560 \uBA64\uBC84 \uAD00\uB9AC\uAE30",
3809
+ category: "input",
3810
+ icon: "users",
3811
+ description: "\uC5ED\uD560\uC744 \uBD80\uC5EC\uBC1B\uC740 \uC0AC\uC6A9\uC790\uB97C \uBCF4\uC5EC\uC8FC\uACE0 \uAC1C\uBCC4 \uD574\uC81C(DELETE /roles/{id}/employees/{employee_id})\uC640 \uBBF8\uBC30\uC815 \uC9C1\uC6D0 \uAC80\uC0C9\xB7\uB2E4\uC911 \uC120\uD0DD \uCD94\uAC00(POST \uBCF8\uBB38 {employees:[ids]})\uB97C \uC218\uD589\uD55C\uB2E4. sourceEndpoint \uB85C \uD604\uC7AC \uBA64\uBC84\uB97C \uC2DC\uB529\uD55C\uB2E4.",
3812
+ props: [
3813
+ { name: "employees", kind: "array", label: "\uC9C1\uC6D0 \uCE74\uD0C8\uB85C\uADF8", bindable: true, item: [
3814
+ { name: "id", kind: "string", label: "\uC9C1\uC6D0 id" },
3815
+ { name: "name", kind: "string", label: "\uC774\uB984" },
3816
+ { name: "employee_number", kind: "string", label: "\uC0AC\uBC88" },
3817
+ { name: "department_name", kind: "string", label: "\uBD80\uC11C" },
3818
+ { name: "work_email", kind: "string", label: "\uC774\uBA54\uC77C" },
3819
+ { name: "job_title", kind: "string", label: "\uC9C1\uCC45" }
3820
+ ], description: "/employees?limit=500 \uC758 data \u2014 page.data \uB85C \uCC44\uC6B4\uB2E4. \uBE44\uBA74 \uC704\uC82F\uC774 offset \uD398\uC774\uC9C0\uB85C \uC790\uCCB4 \uC218\uC9D1\uD55C\uB2E4.", group: "data" },
3821
+ { name: "sourceEndpoint", kind: "string", label: "\uBA64\uBC84\uC2ED \uACBD\uB85C", description: "/roles/{id}/employees?_=seq \u2014 \uACBD\uB85C\uAC00 \uBC14\uB014 \uB54C\uB9C8\uB2E4 \uD604\uC7AC \uBA64\uBC84\uB97C \uC7AC\uC2DC\uB529\uD558\uACE0, \uCD94\uAC00\xB7\uD574\uC81C\uB294 \uCFFC\uB9AC\uB97C \uB5C0 \uAC19\uC740 \uACBD\uB85C\uB85C \uBCF4\uB0B8\uB2E4.", group: "data" },
3822
+ { name: "disabled", kind: "boolean", label: "\uBE44\uD65C\uC131", default: false, bindable: true, group: "behavior" },
3823
+ {
3824
+ name: "catalogEndpoint",
3825
+ kind: "string",
3826
+ label: "\uD6C4\uBCF4 \uBAA9\uB85D \uACBD\uB85C",
3827
+ description: "\uC751\uB2F5 {data:[{id,name,\u2026}], total} \uC744 500\uAC74\uC529 \uC218\uC9D1\uD55C\uB2E4. \uAE30\uBCF8 '/employees'.",
3828
+ group: "data",
3829
+ advanced: true
3830
+ }
3831
+ ],
3832
+ children: { accepts: false },
3833
+ dom: { element: "div" },
3834
+ preset: {
3835
+ component: "RoleMemberPicker",
3836
+ props: {
3837
+ employees: [{ id: "emp-1", name: "\uAE40\uC704\uD504", employee_number: "1001", department_name: "\uACBD\uC601\uC9C0\uC6D0\uD300", work_email: "kim@wipco.co.kr" }]
3838
+ }
3839
+ },
3840
+ resize: { kind: "none" }
3841
+ };
3669
3842
  var AutocompleteFieldMeta = {
3670
3843
  name: "AutocompleteField",
3671
3844
  label: "\uC790\uB3D9\uC644\uC131",
@@ -5086,6 +5259,9 @@ var widgetComponentMeta = {
5086
5259
  ApprovalLineEditor: ApprovalLineEditorMeta,
5087
5260
  ApprovalOverridesEditor: ApprovalOverridesEditorMeta,
5088
5261
  ApprovalStepper: ApprovalStepperMeta,
5262
+ PermissionMatrixEditor: PermissionMatrixEditorMeta,
5263
+ RoleMemberPicker: RoleMemberPickerMeta,
5264
+ OrgChartBoard: OrgChartBoardMeta,
5089
5265
  RankBoard: RankBoardMeta,
5090
5266
  AutocompleteField: AutocompleteFieldMeta,
5091
5267
  ColumnBoard: ColumnBoardMeta,
@@ -5144,4 +5320,4 @@ function paletteGroups(catalog = allComponentMeta) {
5144
5320
  })).filter((group) => group.items.length > 0);
5145
5321
  }
5146
5322
 
5147
- 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, OrgChartMeta, PageHeadMeta, PaginationMeta, PeriodFilterMeta, PrintSheetMeta, ProgressBarMeta, RadioMeta, RankBoardMeta, 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 };
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 };
package/dist/rich.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { useOptionalModule, DependencyPlaceholder } from './chunk-WXOU7QTN.js';
2
2
  export { TimePicker } from './chunk-WXOU7QTN.js';
3
- import { useSduiAssetResolver } from './chunk-DVOPZFQS.js';
4
3
  import { HoistedStyle } from './chunk-EFMKWPZ3.js';
5
4
  export { DatePicker, DateRangePicker } from './chunk-EFMKWPZ3.js';
6
5
  import './chunk-XQPTSEJC.js';
6
+ import { useSduiAssetResolver } from './chunk-DVOPZFQS.js';
7
7
  import { Spinner, EmptyState } from './chunk-WIDDHR7L.js';
8
8
  import './chunk-SAN4IX6N.js';
9
9
  import { useRef, useCallback, useMemo, useState, useEffect, useLayoutEffect } from 'react';
@@ -1,7 +1,7 @@
1
1
  export { ApprovalLineEditor, stepLabel, stepTypeIcon } from '../chunk-SAPJVLZM.js';
2
2
  import '../chunk-BD75U73S.js';
3
- import '../chunk-DVOPZFQS.js';
4
3
  import '../chunk-EFMKWPZ3.js';
5
4
  import '../chunk-XQPTSEJC.js';
5
+ import '../chunk-DVOPZFQS.js';
6
6
  import '../chunk-WIDDHR7L.js';
7
7
  import '../chunk-SAN4IX6N.js';
@@ -2,8 +2,8 @@ export { ApprovalOverridesEditor } from '../chunk-ZDRERW4G.js';
2
2
  import '../chunk-QDEZXA34.js';
3
3
  import '../chunk-SAPJVLZM.js';
4
4
  import '../chunk-BD75U73S.js';
5
- import '../chunk-DVOPZFQS.js';
6
5
  import '../chunk-EFMKWPZ3.js';
7
6
  import '../chunk-XQPTSEJC.js';
7
+ import '../chunk-DVOPZFQS.js';
8
8
  import '../chunk-WIDDHR7L.js';
9
9
  import '../chunk-SAN4IX6N.js';
@@ -1,7 +1,7 @@
1
1
  export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-6S5CFNFM.js';
2
2
  import '../chunk-BD75U73S.js';
3
- import '../chunk-DVOPZFQS.js';
4
3
  import '../chunk-EFMKWPZ3.js';
5
4
  import '../chunk-XQPTSEJC.js';
5
+ import '../chunk-DVOPZFQS.js';
6
6
  import '../chunk-WIDDHR7L.js';
7
7
  import '../chunk-SAN4IX6N.js';
@@ -0,0 +1,72 @@
1
+ import * as React from 'react';
2
+ import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
3
+
4
+ /**
5
+ * OrgChartBoard — 실데이터 조직도 보드(v2 organization-chart.tsx 1522줄 직이식).
6
+ *
7
+ * 라이브러리 OrgChart(단순 상하 트리)로는 v2 개편 화면(리더십 스택·노드 내 사원 카드·
8
+ * 세로쓰기 팀 라벨·세대 홀짝 레이아웃·마스터 직위 서열 정렬)을 표현할 수 없어
9
+ * ERP 위젯으로 옮겼다. 데이터도 스펙($state/$calc)에는 3원 조인·트리 조립 어휘가
10
+ * 없으므로 위젯이 스스로 불러온다(PermissionMatrixEditor의 "묶기 연산은 위젯" 원칙).
11
+ *
12
+ * 데이터 3원(전부 페이지 수집, limit=500):
13
+ * - GET /employees — 필수. 실패하면 화면 전체가 오류 상태.
14
+ * - GET /departments?include=paths — **실패 허용**: 사원의 department 참조로 그룹을 합성.
15
+ * - GET /job-positions — **실패 허용**: 정렬 보조일 뿐(마스터 없으면 GRADE_ORDER).
16
+ *
17
+ * v3 서버 응답은 snake_case이고 v2와 필드가 다르다(실측):
18
+ * - 사원: position 없음 → 직위 = `grade`, 직책 = `job_title`. groups/teamGroup 없음 →
19
+ * 소속 = `department_id ?? department.id`(v2 규칙의 잔여 폴백만 남음).
20
+ * - 부서: {id, name, parent_id, path}. 직위: {name, rank_order, sort_order, is_active}.
21
+ *
22
+ * 구성원 정렬(v2 compareMembers 그대로): 직책 서열(DUTY_ORDER) → 직위 서열
23
+ * (마스터 rank_order 항상 우선, 최장 포함 매칭 — "부사장"≠"사장", 한쪽만 마스터에
24
+ * 있으면 그쪽이 위, 둘 다 없으면 GRADE_ORDER 폴백) → level 내림차순 → 이름(ko).
25
+ * rank map은 미사용(is_active=false) 직위 포함 전건이다.
26
+ *
27
+ * 사원 카드 클릭 → `onMemberClick(사원 행)` — 스펙에서 setState(fromEvent)+navigate
28
+ * 체인으로 /hr/personal-card/{id}에 잇는다. 프롭이 없으면 location.assign 폴백.
29
+ */
30
+ interface OrgGroupRow {
31
+ id: string;
32
+ name: string;
33
+ parent_id?: string | null;
34
+ path?: string | null;
35
+ }
36
+ interface OrgEmployeeRow {
37
+ id: string;
38
+ name: string;
39
+ /** 직위 문자열(직위 마스터 name의 사본) — v2의 position/grade에 해당 */
40
+ grade?: string | null;
41
+ /** 직책(팀장·본부장 등) */
42
+ job_title?: string | null;
43
+ level?: number | null;
44
+ department_id?: string | null;
45
+ department?: {
46
+ id?: string | null;
47
+ name?: string | null;
48
+ parent_id?: string | null;
49
+ } | null;
50
+ image?: string | null;
51
+ /** 이벤트 인자로 원문 행을 그대로 넘긴다(스펙이 다른 키도 쓸 수 있게) */
52
+ [key: string]: unknown;
53
+ }
54
+ interface OrgChartBoardProps {
55
+ /** 사원 카드 클릭 — 인자는 사원 행(id·name·grade·job_title·department_id …). */
56
+ onMemberClick?: (member: OrgEmployeeRow) => void;
57
+ /** 캔버스 높이(px 숫자 또는 CSS 길이). 기본 72vh(최소 620px). */
58
+ height?: number | string;
59
+ /**
60
+ * 사원 목록 경로. 응답은 `{data:[…], total}` 이고 행에서 읽는 키는
61
+ * id·name·grade·job_title·department_id 다(스네이크·카멜 양쪽 관용 수용).
62
+ */
63
+ employeesEndpoint?: string;
64
+ /** 부서(그룹) 목록 경로. 경로 정보를 함께 주는 질의를 기본값에 담았다. */
65
+ departmentsEndpoint?: string;
66
+ /** 직위 마스터 경로 — 서열 정렬에 쓴다. 실패해도 이름순으로 떨어진다. */
67
+ positionsEndpoint?: string;
68
+ }
69
+ /** 바깥 style·className을 뿌리에 얹는다 — 자기 축(폭·여백) 통로. */
70
+ declare const OrgChartBoard: React.FC<OrgChartBoardProps & SduiBoxProps>;
71
+
72
+ export { OrgChartBoard, type OrgChartBoardProps, type OrgEmployeeRow, type OrgGroupRow };
@@ -0,0 +1,6 @@
1
+ export { OrgChartBoard } from '../chunk-KBLFOC37.js';
2
+ import '../chunk-XPBZMECW.js';
3
+ import '../chunk-THEP3VWY.js';
4
+ import '../chunk-DVOPZFQS.js';
5
+ import '../chunk-WIDDHR7L.js';
6
+ import '../chunk-SAN4IX6N.js';
@@ -0,0 +1,37 @@
1
+ import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
2
+ import React__default from 'react';
3
+
4
+ /** 서버 PUT 계약의 원소 — 키 이름 변경 금지. */
5
+ interface PermissionGrant {
6
+ code: string;
7
+ scope?: string;
8
+ }
9
+ /** GET /permissions 행 — 실측 키 category·code·description·name. */
10
+ interface PermissionCatalogEntry {
11
+ code: string;
12
+ name: string;
13
+ category?: string | null;
14
+ description?: string | null;
15
+ }
16
+ interface PermissionMatrixEditorProps {
17
+ /** 권한 카탈로그 전체(216종). 대개 page.data 가 채운 상태를 바인딩한다. */
18
+ permissions: PermissionCatalogEntry[];
19
+ /** 현재 부여 목록 — PUT `permissions` 배열과 같은 모양. */
20
+ value: PermissionGrant[];
21
+ onChange: (value: PermissionGrant[]) => void;
22
+ /**
23
+ * 역할의 현재 부여를 스스로 읽어 와 onChange 로 **한 번** 흘리는 시딩 경로
24
+ * (예: `/roles/{id}/permissions`). 응답의 `permissions` 배열을 쓴다.
25
+ *
26
+ * 왜 필요한가: 상태에는 감시자가 없어 "다이얼로그가 열리면 GET 결과를 폼 상태에
27
+ * 복사"를 스펙이 표현할 수 없다(rowClick 복사는 fetch 와 경주한다). 경로가 바뀔
28
+ * 때마다 다시 시딩하므로, 여는 쪽이 경로에 여는 횟수를 붙이면(`…&_=3`) 같은 역할을
29
+ * 다시 열어도 서버 값으로 초기화된다. 캔버스 샌드박스에서는 조용히 실패한다.
30
+ */
31
+ sourceEndpoint?: string;
32
+ disabled?: boolean;
33
+ }
34
+ /** 바깥 style·className 을 뿌리에 얹는다 — 자기 축(폭·여백) 통로. */
35
+ declare const PermissionMatrixEditor: React__default.FC<PermissionMatrixEditorProps & SduiBoxProps>;
36
+
37
+ export { type PermissionCatalogEntry, type PermissionGrant, PermissionMatrixEditor, type PermissionMatrixEditorProps };
@@ -0,0 +1,4 @@
1
+ export { PermissionMatrixEditor } from '../chunk-WLQ7PLHB.js';
2
+ import '../chunk-DVOPZFQS.js';
3
+ import '../chunk-WIDDHR7L.js';
4
+ import '../chunk-SAN4IX6N.js';
@@ -1,6 +1,6 @@
1
1
  export { RankBoard } from '../chunk-DIVN4TBW.js';
2
2
  import '../chunk-QU7YVMFA.js';
3
- import '../chunk-DVOPZFQS.js';
4
3
  import '../chunk-XQPTSEJC.js';
4
+ import '../chunk-DVOPZFQS.js';
5
5
  import '../chunk-WIDDHR7L.js';
6
6
  import '../chunk-SAN4IX6N.js';
@@ -0,0 +1,37 @@
1
+ import { S as SduiBoxProps } from '../layout-B1QrIBm6.js';
2
+ import React__default from 'react';
3
+
4
+ /** GET /roles/{id}/employees 행(평면)과 GET /employees 행(department 객체)을 모두 수용. */
5
+ interface RoleMemberEntry {
6
+ id: string;
7
+ name?: string | null;
8
+ employee_number?: string | null;
9
+ work_email?: string | null;
10
+ job_title?: string | null;
11
+ grade?: string | null;
12
+ department_name?: string | null;
13
+ department?: {
14
+ name?: string | null;
15
+ } | null;
16
+ }
17
+ interface RoleMemberPickerProps {
18
+ /** 직원 카탈로그 — 대개 page.data 의 /employees?limit=500 data 를 바인딩한다. 비면 자체 수집. */
19
+ employees?: RoleMemberEntry[];
20
+ /**
21
+ * 멤버십 경로(예: `/roles/{id}/employees?_=3`). 경로가 바뀔 때마다 GET 으로 현재
22
+ * 멤버를 다시 읽는다 — 여는 쪽이 여는 횟수를 붙이면(`?_=seq`) 같은 역할을 다시
23
+ * 열어도 서버 값으로 초기화된다(PermissionMatrixEditor.sourceEndpoint 와 같은 계약).
24
+ * 추가(POST)·해제(DELETE)는 **쿼리를 뗀 같은 경로**로 보낸다.
25
+ */
26
+ /**
27
+ * 후보 목록 경로. 응답은 `{data:[{id,name,…}], total}` 이고 500건씩 수집한다.
28
+ * 기본 '/employees'.
29
+ */
30
+ catalogEndpoint?: string;
31
+ sourceEndpoint?: string;
32
+ disabled?: boolean;
33
+ }
34
+ /** 바깥 style·className 을 뿌리에 얹는다 — 자기 축(폭·여백) 통로. */
35
+ declare const RoleMemberPicker: React__default.FC<RoleMemberPickerProps & SduiBoxProps>;
36
+
37
+ export { type RoleMemberEntry, RoleMemberPicker, type RoleMemberPickerProps };
@@ -0,0 +1,4 @@
1
+ export { RoleMemberPicker } from '../chunk-XSCFMCLH.js';
2
+ import '../chunk-DVOPZFQS.js';
3
+ import '../chunk-WIDDHR7L.js';
4
+ import '../chunk-SAN4IX6N.js';
@@ -16,6 +16,8 @@ import { SecureScreenProps } from './SecureScreen.js';
16
16
  export { SecureScreen } from './SecureScreen.js';
17
17
  import { SearchableMultiPickerProps } from './SearchableMultiPicker.js';
18
18
  export { MultiPickerOption, SearchableMultiPicker } from './SearchableMultiPicker.js';
19
+ import { RoleMemberPickerProps } from './RoleMemberPicker.js';
20
+ export { RoleMemberPicker } from './RoleMemberPicker.js';
19
21
  import { RecordSheetProps } from './RecordSheet.js';
20
22
  export { RecordSheet, RecordSheetCell, RecordSheetCellKind, RecordSheetRow } from './RecordSheet.js';
21
23
  import { RankBoardProps } from './RankBoard.js';
@@ -24,6 +26,10 @@ import { PrintSheetProps } from './PrintSheet.js';
24
26
  export { PrintSheet } from './PrintSheet.js';
25
27
  import { PeriodFilterProps } from './PeriodFilter.js';
26
28
  export { Period, PeriodFilter, PeriodMode, PeriodModeItem } from './PeriodFilter.js';
29
+ import { PermissionMatrixEditorProps } from './PermissionMatrixEditor.js';
30
+ export { PermissionMatrixEditor } from './PermissionMatrixEditor.js';
31
+ import { OrgChartBoardProps } from './OrgChartBoard.js';
32
+ export { OrgChartBoard } from './OrgChartBoard.js';
27
33
  import { OrgChartProps } from './OrgChart.js';
28
34
  export { OrgChart, OrgNode } from './OrgChart.js';
29
35
  import { LiveClockProps } from './LiveClock.js';
@@ -72,10 +78,13 @@ declare const widgetComponents: {
72
78
  JsonField: React.FC<JsonFieldProps & SduiBoxProps>;
73
79
  LiveClock: React.FC<LiveClockProps & SduiBoxProps>;
74
80
  OrgChart: React.FC<OrgChartProps & SduiBoxProps>;
81
+ OrgChartBoard: React.FC<OrgChartBoardProps & SduiBoxProps>;
82
+ PermissionMatrixEditor: React.FC<PermissionMatrixEditorProps & SduiBoxProps>;
75
83
  PeriodFilter: React.FC<PeriodFilterProps & SduiBoxProps>;
76
84
  PrintSheet: React.FC<PrintSheetProps & SduiBoxProps>;
77
85
  RankBoard: React.FC<RankBoardProps & SduiBoxProps>;
78
86
  RecordSheet: React.FC<RecordSheetProps & SduiBoxProps>;
87
+ RoleMemberPicker: React.FC<RoleMemberPickerProps & SduiBoxProps>;
79
88
  SearchableMultiPicker: React.FC<SearchableMultiPickerProps & SduiBoxProps>;
80
89
  SecureScreen: React.FC<SecureScreenProps & SduiBoxProps>;
81
90
  StackedMeter: React.FC<StackedMeterProps & SduiBoxProps>;
@@ -89,4 +98,4 @@ declare const widgetComponents: {
89
98
  /** 위젯 어휘의 컴포넌트 이름 union — 메타데이터 대조에 쓴다(`@wipco/sdui/meta`). */
90
99
  type SduiWidgetComponentName = keyof typeof widgetComponents;
91
100
 
92
- export { ApprovalLineEditorProps, ApprovalOverridesEditorProps, ApprovalStepperProps, ColumnBoardProps, DiffViewProps, DisclosureProps, EventCalendarProps, ImageLightboxProps, InlineEditProps, JsonFieldProps, LiveClockProps, OrgChartProps, PeriodFilterProps, PrintSheetProps, RankBoardProps, RecordSheetProps, type SduiWidgetComponentName, SearchableMultiPickerProps, SecureScreenProps, StackedMeterProps, StripProps, SummaryTableProps, TagMultiSelectProps, TimelineProps, TreePickerProps, TreeViewProps, widgetComponents };
101
+ export { ApprovalLineEditorProps, ApprovalOverridesEditorProps, ApprovalStepperProps, ColumnBoardProps, DiffViewProps, DisclosureProps, EventCalendarProps, ImageLightboxProps, InlineEditProps, JsonFieldProps, LiveClockProps, OrgChartBoardProps, OrgChartProps, PeriodFilterProps, PermissionMatrixEditorProps, PrintSheetProps, RankBoardProps, RecordSheetProps, RoleMemberPickerProps, type SduiWidgetComponentName, SearchableMultiPickerProps, SecureScreenProps, StackedMeterProps, StripProps, SummaryTableProps, TagMultiSelectProps, TimelineProps, TreePickerProps, TreeViewProps, widgetComponents };
@@ -1,3 +1,9 @@
1
+ import { SearchableMultiPicker } from '../chunk-C53NGSA3.js';
2
+ export { SearchableMultiPicker } from '../chunk-C53NGSA3.js';
3
+ import { SecureScreen } from '../chunk-IIRENCDS.js';
4
+ export { SecureScreen } from '../chunk-IIRENCDS.js';
5
+ import { StackedMeter } from '../chunk-BMZKZGJF.js';
6
+ export { StackedMeter } from '../chunk-BMZKZGJF.js';
1
7
  import { Strip } from '../chunk-ZH5MLOZS.js';
2
8
  export { Strip } from '../chunk-ZH5MLOZS.js';
3
9
  import { SummaryTable } from '../chunk-O4U7Y3XL.js';
@@ -10,6 +16,10 @@ import { TreeView } from '../chunk-X5R2HHEN.js';
10
16
  export { TreeView, buildTreeNodes } from '../chunk-X5R2HHEN.js';
11
17
  import { OrgChart } from '../chunk-QWJ3OBBL.js';
12
18
  export { OrgChart } from '../chunk-QWJ3OBBL.js';
19
+ import { OrgChartBoard } from '../chunk-KBLFOC37.js';
20
+ export { OrgChartBoard } from '../chunk-KBLFOC37.js';
21
+ import { PermissionMatrixEditor } from '../chunk-WLQ7PLHB.js';
22
+ export { PermissionMatrixEditor } from '../chunk-WLQ7PLHB.js';
13
23
  import { PeriodFilter } from '../chunk-INWASR2G.js';
14
24
  export { PeriodFilter } from '../chunk-INWASR2G.js';
15
25
  import { PrintSheet } from '../chunk-MYJ2KEIP.js';
@@ -18,12 +28,8 @@ import { RankBoard } from '../chunk-DIVN4TBW.js';
18
28
  export { RankBoard } from '../chunk-DIVN4TBW.js';
19
29
  import { RecordSheet } from '../chunk-K3JBSWFI.js';
20
30
  export { RecordSheet } from '../chunk-K3JBSWFI.js';
21
- import { SearchableMultiPicker } from '../chunk-C53NGSA3.js';
22
- export { SearchableMultiPicker } from '../chunk-C53NGSA3.js';
23
- import { SecureScreen } from '../chunk-IIRENCDS.js';
24
- export { SecureScreen } from '../chunk-IIRENCDS.js';
25
- import { StackedMeter } from '../chunk-BMZKZGJF.js';
26
- export { StackedMeter } from '../chunk-BMZKZGJF.js';
31
+ import { RoleMemberPicker } from '../chunk-XSCFMCLH.js';
32
+ export { RoleMemberPicker } from '../chunk-XSCFMCLH.js';
27
33
  import { ColumnBoard } from '../chunk-C4JRSZGS.js';
28
34
  export { ColumnBoard } from '../chunk-C4JRSZGS.js';
29
35
  import { DiffView } from '../chunk-LDJ2CFFH.js';
@@ -52,9 +58,9 @@ import { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
52
58
  export { ApprovalStepper } from '../chunk-ZTQEP3TR.js';
53
59
  export { AutocompleteField, toAutocompleteOptions } from '../chunk-6S5CFNFM.js';
54
60
  import '../chunk-BD75U73S.js';
55
- import '../chunk-DVOPZFQS.js';
56
61
  import '../chunk-EFMKWPZ3.js';
57
62
  import '../chunk-XQPTSEJC.js';
63
+ import '../chunk-DVOPZFQS.js';
58
64
  import '../chunk-WIDDHR7L.js';
59
65
  import '../chunk-SAN4IX6N.js';
60
66
 
@@ -72,10 +78,13 @@ var widgetComponents = {
72
78
  JsonField,
73
79
  LiveClock,
74
80
  OrgChart,
81
+ OrgChartBoard,
82
+ PermissionMatrixEditor,
75
83
  PeriodFilter,
76
84
  PrintSheet,
77
85
  RankBoard,
78
86
  RecordSheet,
87
+ RoleMemberPicker,
79
88
  SearchableMultiPicker,
80
89
  SecureScreen,
81
90
  StackedMeter,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipco/sdui",
3
- "version": "0.27.0",
3
+ "version": "0.29.0",
4
4
  "description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
5
5
  "keywords": [
6
6
  "sdui",
@@ -88,6 +88,14 @@
88
88
  "types": "./dist/widgets/OrgChart.d.ts",
89
89
  "default": "./dist/widgets/OrgChart.js"
90
90
  },
91
+ "./widgets/OrgChartBoard": {
92
+ "types": "./dist/widgets/OrgChartBoard.d.ts",
93
+ "default": "./dist/widgets/OrgChartBoard.js"
94
+ },
95
+ "./widgets/PermissionMatrixEditor": {
96
+ "types": "./dist/widgets/PermissionMatrixEditor.d.ts",
97
+ "default": "./dist/widgets/PermissionMatrixEditor.js"
98
+ },
91
99
  "./widgets/PeriodFilter": {
92
100
  "types": "./dist/widgets/PeriodFilter.d.ts",
93
101
  "default": "./dist/widgets/PeriodFilter.js"
@@ -104,6 +112,10 @@
104
112
  "types": "./dist/widgets/RecordSheet.d.ts",
105
113
  "default": "./dist/widgets/RecordSheet.js"
106
114
  },
115
+ "./widgets/RoleMemberPicker": {
116
+ "types": "./dist/widgets/RoleMemberPicker.d.ts",
117
+ "default": "./dist/widgets/RoleMemberPicker.js"
118
+ },
107
119
  "./widgets/SearchableMultiPicker": {
108
120
  "types": "./dist/widgets/SearchableMultiPicker.d.ts",
109
121
  "default": "./dist/widgets/SearchableMultiPicker.js"