@ds-mo/ui 14.16.0 → 14.17.1

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.
Files changed (136) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +171 -15
  4. package/dist/angular/ds-table-filter.d.ts +44 -0
  5. package/dist/angular/ds-table-filter.js +57 -0
  6. package/dist/angular/index.d.ts +1 -1
  7. package/dist/angular/index.js +1 -0
  8. package/dist/angular/proxies.d.ts +1 -0
  9. package/dist/angular/proxies.js +1 -0
  10. package/dist/components/ds-agent-questionnaire.js +1 -1
  11. package/dist/components/ds-agent-response.js +1 -1
  12. package/dist/components/ds-banner.js +1 -1
  13. package/dist/components/ds-bar-nav.js +1 -1
  14. package/dist/components/ds-bar-title.js +1 -1
  15. package/dist/components/ds-bar-workflow.js +1 -1
  16. package/dist/components/ds-button-unfilled.js +1 -1
  17. package/dist/components/ds-card-chart.js +1 -1
  18. package/dist/components/ds-card-overview.js +1 -1
  19. package/dist/components/ds-card-setting.js +1 -1
  20. package/dist/components/ds-chart.js +1 -1
  21. package/dist/components/ds-code-block.js +1 -1
  22. package/dist/components/ds-filter-menu.js +1 -1
  23. package/dist/components/ds-filter-menu.js.map +1 -1
  24. package/dist/components/ds-input.js +1 -1
  25. package/dist/components/ds-markdown.js +1 -1
  26. package/dist/components/ds-menu.js +1 -1
  27. package/dist/components/ds-message-actions.js +1 -1
  28. package/dist/components/ds-message-composer.js +1 -1
  29. package/dist/components/ds-message-scroller.js +1 -1
  30. package/dist/components/ds-mobile-header.js +1 -1
  31. package/dist/components/ds-mobile-section-switcher.js +1 -1
  32. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  33. package/dist/components/ds-modal.js +1 -1
  34. package/dist/components/ds-pagination.js +1 -1
  35. package/dist/components/ds-panel-nav.js +1 -1
  36. package/dist/components/ds-panel-tool-header.js +1 -1
  37. package/dist/components/ds-panel-tool-search.js +1 -1
  38. package/dist/components/ds-panel-tools.js +1 -1
  39. package/dist/components/ds-select.js +1 -1
  40. package/dist/components/ds-shell-app.js +1 -1
  41. package/dist/components/ds-shell-tools.js +1 -1
  42. package/dist/components/ds-table-filter.d.ts +11 -0
  43. package/dist/components/ds-table-filter.js +2 -0
  44. package/dist/components/ds-table-filter.js.map +1 -0
  45. package/dist/components/ds-table-saved-views.js +1 -1
  46. package/dist/components/ds-table-sort.js +1 -1
  47. package/dist/components/ds-table-sort.js.map +1 -1
  48. package/dist/components/ds-table-toolbar.js +1 -1
  49. package/dist/components/ds-table-toolbar.js.map +1 -1
  50. package/dist/components/ds-table.js +1 -1
  51. package/dist/components/ds-table.js.map +1 -1
  52. package/dist/components/ds-toast.js +1 -1
  53. package/dist/components/ds-tooltip-chart.js +1 -1
  54. package/dist/components/ds-tooltip.js +1 -1
  55. package/dist/components/ds-typing-indicator.js +1 -1
  56. package/dist/components/{p-3dYwA4i_.js → p-Asi9h3pa.js} +2 -2
  57. package/dist/components/p-BFSLT0yc.js +2 -0
  58. package/dist/components/p-BFSLT0yc.js.map +1 -0
  59. package/dist/components/{p-C4p2i59V.js → p-BHz78C8h.js} +2 -2
  60. package/dist/components/{p-Dcnd5ZX5.js → p-BKp__CQX.js} +2 -2
  61. package/dist/components/p-BMERUCe1.js +2 -0
  62. package/dist/components/p-BMERUCe1.js.map +1 -0
  63. package/dist/components/{p-Ct2GVdSI.js → p-Be1sY58w.js} +2 -2
  64. package/dist/components/{p-vzxD117T.js → p-Bh67XbfB.js} +2 -2
  65. package/dist/components/{p-C_TOgX82.js → p-Bn8NryHK.js} +2 -2
  66. package/dist/components/{p-CaAZ-D08.js → p-C4TgWJi9.js} +2 -2
  67. package/dist/components/{p-COVcyUAA.js → p-CKmfuK7k.js} +2 -2
  68. package/dist/components/p-CKmfuK7k.js.map +1 -0
  69. package/dist/components/{p-EWI6ccs-.js → p-CMFvaY05.js} +2 -2
  70. package/dist/components/{p-BK-JjdoN.js → p-D4K9CE8a.js} +2 -2
  71. package/dist/components/{p-CxBE3l74.js → p-DEjh3klB.js} +2 -2
  72. package/dist/components/{p-NdahPypA.js → p-DFQ9mcbK.js} +2 -2
  73. package/dist/components/{p-WGZWqh-B.js → p-DHuyj-9J.js} +2 -2
  74. package/dist/components/{p-BUhShHfb.js → p-DIEK54fV.js} +2 -2
  75. package/dist/components/p-DOqnJVos.js +2 -0
  76. package/dist/components/{p-CwkcFMMe.js.map → p-DOqnJVos.js.map} +1 -1
  77. package/dist/components/{p-DRBTr6TS.js → p-DZ55e3j9.js} +2 -2
  78. package/dist/components/{p-MxptXwlW.js → p-DsJW5W3W.js} +2 -2
  79. package/dist/components/p-JPTkZ3Ji.js.map +1 -1
  80. package/dist/components/{p-DAV32g35.js → p-NzGRAPcF.js} +2 -2
  81. package/dist/components/p-NzGRAPcF.js.map +1 -0
  82. package/dist/components/{p-BUrbVZJU.js → p-ZZzC52Ea.js} +2 -2
  83. package/dist/components/{p-C91izpHV.js → p-__lNIImO.js} +2 -2
  84. package/dist/components/{p-0IbKxhqM.js → p-rrFMAZkj.js} +2 -2
  85. package/dist/components/{p-Cr2VT5zv.js → p-ruPTIV6t.js} +2 -2
  86. package/dist/docs/components.json +435 -6
  87. package/dist/mcp-data/registry/button-unfilled.json +4 -4
  88. package/dist/mcp-data/registry/filter-menu.json +5 -5
  89. package/dist/mcp-data/registry/loader.json +2 -1
  90. package/dist/mcp-data/registry/registry.json +173 -14
  91. package/dist/mcp-data/registry/select.json +1 -1
  92. package/dist/mcp-data/registry/table-filter.json +399 -0
  93. package/dist/mcp-data/registry/table-saved-views.json +1 -1
  94. package/dist/mcp-data/registry/table-sort.json +2 -2
  95. package/dist/mcp-data/registry/table-toolbar.json +9 -9
  96. package/dist/mcp-data/registry/table.json +6 -5
  97. package/dist/react/components.d.ts +1 -0
  98. package/dist/react/components.js +1 -0
  99. package/dist/react/ds-table-filter.d.ts +17 -0
  100. package/dist/react/ds-table-filter.js +19 -0
  101. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
  102. package/dist/types/components/FilterMenu/FilterMenu.d.ts +2 -0
  103. package/dist/types/components/Select/Select.d.ts +2 -0
  104. package/dist/types/components/Table/table-column-customizer.d.ts +0 -2
  105. package/dist/types/components/TableFilter/TableFilter.d.ts +37 -0
  106. package/dist/types/components/TableToolbar/TableToolbar.d.ts +0 -6
  107. package/dist/types/components.d.ts +160 -4
  108. package/dist/vue/components.d.ts +1 -0
  109. package/dist/vue/components.js +1 -0
  110. package/dist/vue/ds-table-filter.d.ts +3 -0
  111. package/dist/vue/ds-table-filter.js +29 -0
  112. package/package.json +1 -1
  113. package/dist/components/p-BdnQv7Zl.js +0 -2
  114. package/dist/components/p-BdnQv7Zl.js.map +0 -1
  115. package/dist/components/p-COVcyUAA.js.map +0 -1
  116. package/dist/components/p-CwkcFMMe.js +0 -2
  117. package/dist/components/p-DAV32g35.js.map +0 -1
  118. /package/dist/components/{p-3dYwA4i_.js.map → p-Asi9h3pa.js.map} +0 -0
  119. /package/dist/components/{p-C4p2i59V.js.map → p-BHz78C8h.js.map} +0 -0
  120. /package/dist/components/{p-Dcnd5ZX5.js.map → p-BKp__CQX.js.map} +0 -0
  121. /package/dist/components/{p-Ct2GVdSI.js.map → p-Be1sY58w.js.map} +0 -0
  122. /package/dist/components/{p-vzxD117T.js.map → p-Bh67XbfB.js.map} +0 -0
  123. /package/dist/components/{p-C_TOgX82.js.map → p-Bn8NryHK.js.map} +0 -0
  124. /package/dist/components/{p-CaAZ-D08.js.map → p-C4TgWJi9.js.map} +0 -0
  125. /package/dist/components/{p-EWI6ccs-.js.map → p-CMFvaY05.js.map} +0 -0
  126. /package/dist/components/{p-BK-JjdoN.js.map → p-D4K9CE8a.js.map} +0 -0
  127. /package/dist/components/{p-CxBE3l74.js.map → p-DEjh3klB.js.map} +0 -0
  128. /package/dist/components/{p-NdahPypA.js.map → p-DFQ9mcbK.js.map} +0 -0
  129. /package/dist/components/{p-WGZWqh-B.js.map → p-DHuyj-9J.js.map} +0 -0
  130. /package/dist/components/{p-BUhShHfb.js.map → p-DIEK54fV.js.map} +0 -0
  131. /package/dist/components/{p-DRBTr6TS.js.map → p-DZ55e3j9.js.map} +0 -0
  132. /package/dist/components/{p-MxptXwlW.js.map → p-DsJW5W3W.js.map} +0 -0
  133. /package/dist/components/{p-BUrbVZJU.js.map → p-ZZzC52Ea.js.map} +0 -0
  134. /package/dist/components/{p-C91izpHV.js.map → p-__lNIImO.js.map} +0 -0
  135. /package/dist/components/{p-0IbKxhqM.js.map → p-rrFMAZkj.js.map} +0 -0
  136. /package/dist/components/{p-Cr2VT5zv.js.map → p-ruPTIV6t.js.map} +0 -0
@@ -66,6 +66,7 @@ export { DsSlider } from "./ds-slider.js";
66
66
  export { DsSwatchPicker } from "./ds-swatch-picker.js";
67
67
  export { DsSwitch } from "./ds-switch.js";
68
68
  export { DsTabGroup } from "./ds-tab-group.js";
69
+ export { DsTableFilter } from "./ds-table-filter.js";
69
70
  export { DsTableSavedViews } from "./ds-table-saved-views.js";
70
71
  export { DsTableSort } from "./ds-table-sort.js";
71
72
  export { DsTableToolbar } from "./ds-table-toolbar.js";
@@ -67,6 +67,7 @@ export { DsSlider } from "./ds-slider.js";
67
67
  export { DsSwatchPicker } from "./ds-swatch-picker.js";
68
68
  export { DsSwitch } from "./ds-switch.js";
69
69
  export { DsTabGroup } from "./ds-tab-group.js";
70
+ export { DsTableFilter } from "./ds-table-filter.js";
70
71
  export { DsTableSavedViews } from "./ds-table-saved-views.js";
71
72
  export { DsTableSort } from "./ds-table-sort.js";
72
73
  export { DsTableToolbar } from "./ds-table-toolbar.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * This file was automatically generated by the Stencil React Output Target.
3
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
+ */
5
+ import type { EventName, StencilReactComponent } from './react-runtime.js';
6
+ import { type DsTableFilterCustomEvent, type FilterMenuChangeDetail } from "@ds-mo/ui";
7
+ import type { Components } from "@ds-mo/ui/dist/components";
8
+ import { DsTableFilter as DsTableFilterElement } from "@ds-mo/ui/dist/components/ds-table-filter.js";
9
+ export type DsTableFilterEvents = {
10
+ onDsChange: EventName<DsTableFilterCustomEvent<FilterMenuChangeDetail>>;
11
+ onDsClear: EventName<DsTableFilterCustomEvent<void>>;
12
+ onDsActiveFilterChange: EventName<DsTableFilterCustomEvent<string>>;
13
+ onDsClose: EventName<DsTableFilterCustomEvent<void>>;
14
+ onDsOpenChange: EventName<DsTableFilterCustomEvent<boolean>>;
15
+ onDsAfterClose: EventName<DsTableFilterCustomEvent<void>>;
16
+ };
17
+ export declare const DsTableFilter: StencilReactComponent<DsTableFilterElement, DsTableFilterEvents, Components.DsTableFilter>;
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { createComponent } from './react-runtime.js';
3
+ import React from 'react';
4
+ import { DsTableFilter as DsTableFilterElement, defineCustomElement as defineDsTableFilter } from "@ds-mo/ui/dist/components/ds-table-filter.js";
5
+ export const DsTableFilter = /*@__PURE__*/ createComponent({
6
+ tagName: 'ds-table-filter',
7
+ elementClass: DsTableFilterElement,
8
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
9
+ react: React,
10
+ events: {
11
+ onDsChange: 'dsChange',
12
+ onDsClear: 'dsClear',
13
+ onDsActiveFilterChange: 'dsActiveFilterChange',
14
+ onDsClose: 'dsClose',
15
+ onDsOpenChange: 'dsOpenChange',
16
+ onDsAfterClose: 'dsAfterClose'
17
+ },
18
+ defineCustomElement: defineDsTableFilter
19
+ });
@@ -100,7 +100,9 @@ export declare class ButtonUnfilled {
100
100
  private captionCompact;
101
101
  private buttonEl;
102
102
  private captionCompactDisconnect;
103
+ private hasLoaded;
103
104
  componentDidLoad(): void;
105
+ connectedCallback(): void;
104
106
  disconnectedCallback(): void;
105
107
  onCollapseLabelChange(): void;
106
108
  setFocus(): Promise<void>;
@@ -104,9 +104,11 @@ export declare class FilterMenu {
104
104
  private pendingInitialFocusVisible;
105
105
  private closeTimer;
106
106
  private captionCompactDisconnect;
107
+ private hasLoaded;
107
108
  private closingSnapshot;
108
109
  private readonly position;
109
110
  componentDidLoad(): void;
111
+ connectedCallback(): void;
110
112
  disconnectedCallback(): void;
111
113
  onCollapseLabelChange(): void;
112
114
  onOpenChange(isOpen: boolean): void;
@@ -133,9 +133,11 @@ export declare class Select {
133
133
  private observedFooterContentElement?;
134
134
  private footerMeasurementFrame?;
135
135
  private captionCompactDisconnect;
136
+ private hasLoaded;
136
137
  private createController;
137
138
  componentWillLoad(): void;
138
139
  componentDidLoad(): void;
140
+ connectedCallback(): void;
139
141
  componentDidRender(): void;
140
142
  disconnectedCallback(): void;
141
143
  onCollapseLabelChange(): void;
@@ -11,8 +11,6 @@ export declare function resolveTableColumnOrder(columns: TableColumn[], columnOr
11
11
  * column remains visible when the catalog has any data columns.
12
12
  */
13
13
  export declare function resolveTableHiddenColumnIds(columns: TableColumn[], hiddenColumnIds: string[] | undefined): string[];
14
- /** True when hidden ids or data-column order differ from the catalog default. */
15
- export declare function isTableColumnsCustomized(columns: TableColumn[], hiddenColumnIds: string[] | undefined, columnOrder: string[] | undefined): boolean;
16
14
  export declare function resolveTableVisibleColumns(columns: TableColumn[], options?: {
17
15
  columnCustomizer?: boolean;
18
16
  hiddenColumnIds?: string[];
@@ -0,0 +1,37 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import type { FilterMenuChangeDetail, FilterMenuFilter, FilterMenuValues } from '../FilterMenu/FilterMenu';
3
+ export declare class TableFilter {
4
+ /** Controlled popup visibility. */
5
+ open: boolean;
6
+ /** Product-owned filter categories and option definitions. */
7
+ filters: FilterMenuFilter[];
8
+ /** Controlled values keyed by filter id. */
9
+ values: FilterMenuValues;
10
+ /** Controlled category shown in the option pane. */
11
+ activeFilterId: string | undefined;
12
+ /** Visible trigger label. */
13
+ label: string;
14
+ /** Accessible name for the trigger. Defaults to Filter table. */
15
+ ariaLabel: string | null;
16
+ /** Accessible name for the non-modal filter dialog. Defaults to the trigger name. */
17
+ menuLabel: string | null;
18
+ /** Accessible name for the category tab list. */
19
+ categoriesLabel: string;
20
+ /** Footer action and date-clear accessible label. */
21
+ clearLabel: string;
22
+ /** Requests a controlled value replacement without closing the popup. */
23
+ dsChange: EventEmitter<FilterMenuChangeDetail>;
24
+ /** Requests that the consumer clear every filter value. */
25
+ dsClear: EventEmitter<void>;
26
+ /** Requests a controlled active-category replacement. */
27
+ dsActiveFilterChange: EventEmitter<string>;
28
+ /** Requests that the controlled popup close. */
29
+ dsClose: EventEmitter<void>;
30
+ /** Emitted whenever trigger activation changes popup visibility. */
31
+ dsOpenChange: EventEmitter<boolean>;
32
+ /** Emitted after exit motion and rendered popup removal complete. */
33
+ dsAfterClose: EventEmitter<void>;
34
+ render(): any;
35
+ private forward;
36
+ }
37
+ //# sourceMappingURL=TableFilter.d.ts.map
@@ -1,12 +1,6 @@
1
1
  export declare class TableToolbar {
2
- private el;
3
2
  /** Accessible name for the grouped table controls. */
4
3
  label: string;
5
- private captionControlObserver;
6
- componentDidLoad(): void;
7
- disconnectedCallback(): void;
8
4
  render(): any;
9
- private connectCaptionControlObserver;
10
- private syncCaptionControls;
11
5
  }
12
6
  //# sourceMappingURL=TableToolbar.d.ts.map
@@ -66,6 +66,7 @@ import { SwatchPickerOption, SwatchPickerSection } from "./components/SwatchPick
66
66
  import { SwitchSize } from "./components/Switch/Switch";
67
67
  import { TabBackground, TabGroupSize as TabGroupSize1, TabGroupWidth } from "./components/TabGroup/TabGroup";
68
68
  import { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableColumnsConfigChangeDetail, TableDataMode, TableDataModeChangeDetail, TableGroup, TableGroupCollapseChangeDetail, TableGroupingState, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
69
+ import { FilterMenuChangeDetail as FilterMenuChangeDetail1, FilterMenuFilter as FilterMenuFilter1, FilterMenuValues as FilterMenuValues1 } from "./components/FilterMenu/FilterMenu";
69
70
  import { TableSavedView, TableSavedViewChangeDetail, TableSavedViewCreateDetail, TableSavedViewDiscardDetail, TableSavedViewRemoveDetail, TableSavedViewRenameDetail, TableSavedViewSaveDetail } from "./components/TableSavedViews/table-saved-views-types";
70
71
  import { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
71
72
  import { ToastActionEventDetail, ToastCloseEventDetail, ToastEventDetail, ToastManager, ToastSwipeDirection } from "./toast";
@@ -132,6 +133,7 @@ export { SwatchPickerOption, SwatchPickerSection } from "./components/SwatchPick
132
133
  export { SwitchSize } from "./components/Switch/Switch";
133
134
  export { TabBackground, TabGroupSize as TabGroupSize1, TabGroupWidth } from "./components/TabGroup/TabGroup";
134
135
  export { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableColumnsConfigChangeDetail, TableDataMode, TableDataModeChangeDetail, TableGroup, TableGroupCollapseChangeDetail, TableGroupingState, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
136
+ export { FilterMenuChangeDetail as FilterMenuChangeDetail1, FilterMenuFilter as FilterMenuFilter1, FilterMenuValues as FilterMenuValues1 } from "./components/FilterMenu/FilterMenu";
135
137
  export { TableSavedView, TableSavedViewChangeDetail, TableSavedViewCreateDetail, TableSavedViewDiscardDetail, TableSavedViewRemoveDetail, TableSavedViewRenameDetail, TableSavedViewSaveDetail } from "./components/TableSavedViews/table-saved-views-types";
136
138
  export { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
137
139
  export { ToastActionEventDetail, ToastCloseEventDetail, ToastEventDetail, ToastManager, ToastSwipeDirection } from "./toast";
@@ -1258,7 +1260,7 @@ export namespace Components {
1258
1260
  "inputId": string | undefined;
1259
1261
  /**
1260
1262
  * Accessible name for the non-modal filter dialog.
1261
- * @default 'Filter'
1263
+ * @default 'Filters'
1262
1264
  */
1263
1265
  "menuLabel": string;
1264
1266
  /**
@@ -1288,7 +1290,7 @@ export namespace Components {
1288
1290
  "size": FilterMenuSize;
1289
1291
  /**
1290
1292
  * Select trigger text. The selected count is appended automatically.
1291
- * @default 'Filter'
1293
+ * @default 'Filters'
1292
1294
  */
1293
1295
  "triggerLabel": string;
1294
1296
  /**
@@ -3150,6 +3152,52 @@ export namespace Components {
3150
3152
  */
3151
3153
  "virtualModeLabel": string;
3152
3154
  }
3155
+ interface DsTableFilter {
3156
+ /**
3157
+ * Controlled category shown in the option pane.
3158
+ */
3159
+ "activeFilterId": string | undefined;
3160
+ /**
3161
+ * Accessible name for the trigger. Defaults to Filter table.
3162
+ * @default null
3163
+ */
3164
+ "ariaLabel": string | null;
3165
+ /**
3166
+ * Accessible name for the category tab list.
3167
+ * @default 'Filter categories'
3168
+ */
3169
+ "categoriesLabel": string;
3170
+ /**
3171
+ * Footer action and date-clear accessible label.
3172
+ * @default 'Clear'
3173
+ */
3174
+ "clearLabel": string;
3175
+ /**
3176
+ * Product-owned filter categories and option definitions.
3177
+ * @default []
3178
+ */
3179
+ "filters": FilterMenuFilter1[];
3180
+ /**
3181
+ * Visible trigger label.
3182
+ * @default 'Filter'
3183
+ */
3184
+ "label": string;
3185
+ /**
3186
+ * Accessible name for the non-modal filter dialog. Defaults to the trigger name.
3187
+ * @default null
3188
+ */
3189
+ "menuLabel": string | null;
3190
+ /**
3191
+ * Controlled popup visibility.
3192
+ * @default false
3193
+ */
3194
+ "open": boolean;
3195
+ /**
3196
+ * Controlled values keyed by filter id.
3197
+ * @default {}
3198
+ */
3199
+ "values": FilterMenuValues1;
3200
+ }
3153
3201
  interface DsTableSavedViews {
3154
3202
  /**
3155
3203
  * Footer action label that opens the create-view dialog.
@@ -3660,6 +3708,10 @@ export interface DsTableCustomEvent<T> extends CustomEvent<T> {
3660
3708
  detail: T;
3661
3709
  target: HTMLDsTableElement;
3662
3710
  }
3711
+ export interface DsTableFilterCustomEvent<T> extends CustomEvent<T> {
3712
+ detail: T;
3713
+ target: HTMLDsTableFilterElement;
3714
+ }
3663
3715
  export interface DsTableSavedViewsCustomEvent<T> extends CustomEvent<T> {
3664
3716
  detail: T;
3665
3717
  target: HTMLDsTableSavedViewsElement;
@@ -4681,6 +4733,28 @@ declare global {
4681
4733
  prototype: HTMLDsTableElement;
4682
4734
  new (): HTMLDsTableElement;
4683
4735
  };
4736
+ interface HTMLDsTableFilterElementEventMap {
4737
+ "dsChange": FilterMenuChangeDetail1;
4738
+ "dsClear": void;
4739
+ "dsActiveFilterChange": string;
4740
+ "dsClose": void;
4741
+ "dsOpenChange": boolean;
4742
+ "dsAfterClose": void;
4743
+ }
4744
+ interface HTMLDsTableFilterElement extends Components.DsTableFilter, HTMLStencilElement {
4745
+ addEventListener<K extends keyof HTMLDsTableFilterElementEventMap>(type: K, listener: (this: HTMLDsTableFilterElement, ev: DsTableFilterCustomEvent<HTMLDsTableFilterElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
4746
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4747
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4748
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
4749
+ removeEventListener<K extends keyof HTMLDsTableFilterElementEventMap>(type: K, listener: (this: HTMLDsTableFilterElement, ev: DsTableFilterCustomEvent<HTMLDsTableFilterElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
4750
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4751
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4752
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
4753
+ }
4754
+ var HTMLDsTableFilterElement: {
4755
+ prototype: HTMLDsTableFilterElement;
4756
+ new (): HTMLDsTableFilterElement;
4757
+ };
4684
4758
  interface HTMLDsTableSavedViewsElementEventMap {
4685
4759
  "dsViewChange": TableSavedViewChangeDetail;
4686
4760
  "dsViewCreate": TableSavedViewCreateDetail;
@@ -4872,6 +4946,7 @@ declare global {
4872
4946
  "ds-switch": HTMLDsSwitchElement;
4873
4947
  "ds-tab-group": HTMLDsTabGroupElement;
4874
4948
  "ds-table": HTMLDsTableElement;
4949
+ "ds-table-filter": HTMLDsTableFilterElement;
4875
4950
  "ds-table-saved-views": HTMLDsTableSavedViewsElement;
4876
4951
  "ds-table-sort": HTMLDsTableSortElement;
4877
4952
  "ds-table-toolbar": HTMLDsTableToolbarElement;
@@ -6095,7 +6170,7 @@ declare namespace LocalJSX {
6095
6170
  "inputId"?: string | undefined;
6096
6171
  /**
6097
6172
  * Accessible name for the non-modal filter dialog.
6098
- * @default 'Filter'
6173
+ * @default 'Filters'
6099
6174
  */
6100
6175
  "menuLabel"?: string;
6101
6176
  /**
@@ -6149,7 +6224,7 @@ declare namespace LocalJSX {
6149
6224
  "size"?: FilterMenuSize;
6150
6225
  /**
6151
6226
  * Select trigger text. The selected count is appended automatically.
6152
- * @default 'Filter'
6227
+ * @default 'Filters'
6153
6228
  */
6154
6229
  "triggerLabel"?: string;
6155
6230
  /**
@@ -8181,6 +8256,76 @@ declare namespace LocalJSX {
8181
8256
  */
8182
8257
  "virtualModeLabel"?: string;
8183
8258
  }
8259
+ interface DsTableFilter {
8260
+ /**
8261
+ * Controlled category shown in the option pane.
8262
+ */
8263
+ "activeFilterId"?: string | undefined;
8264
+ /**
8265
+ * Accessible name for the trigger. Defaults to Filter table.
8266
+ * @default null
8267
+ */
8268
+ "ariaLabel"?: string | null;
8269
+ /**
8270
+ * Accessible name for the category tab list.
8271
+ * @default 'Filter categories'
8272
+ */
8273
+ "categoriesLabel"?: string;
8274
+ /**
8275
+ * Footer action and date-clear accessible label.
8276
+ * @default 'Clear'
8277
+ */
8278
+ "clearLabel"?: string;
8279
+ /**
8280
+ * Product-owned filter categories and option definitions.
8281
+ * @default []
8282
+ */
8283
+ "filters"?: FilterMenuFilter1[];
8284
+ /**
8285
+ * Visible trigger label.
8286
+ * @default 'Filter'
8287
+ */
8288
+ "label"?: string;
8289
+ /**
8290
+ * Accessible name for the non-modal filter dialog. Defaults to the trigger name.
8291
+ * @default null
8292
+ */
8293
+ "menuLabel"?: string | null;
8294
+ /**
8295
+ * Requests a controlled active-category replacement.
8296
+ */
8297
+ "onDsActiveFilterChange"?: (event: DsTableFilterCustomEvent<string>) => void;
8298
+ /**
8299
+ * Emitted after exit motion and rendered popup removal complete.
8300
+ */
8301
+ "onDsAfterClose"?: (event: DsTableFilterCustomEvent<void>) => void;
8302
+ /**
8303
+ * Requests a controlled value replacement without closing the popup.
8304
+ */
8305
+ "onDsChange"?: (event: DsTableFilterCustomEvent<FilterMenuChangeDetail1>) => void;
8306
+ /**
8307
+ * Requests that the consumer clear every filter value.
8308
+ */
8309
+ "onDsClear"?: (event: DsTableFilterCustomEvent<void>) => void;
8310
+ /**
8311
+ * Requests that the controlled popup close.
8312
+ */
8313
+ "onDsClose"?: (event: DsTableFilterCustomEvent<void>) => void;
8314
+ /**
8315
+ * Emitted whenever trigger activation changes popup visibility.
8316
+ */
8317
+ "onDsOpenChange"?: (event: DsTableFilterCustomEvent<boolean>) => void;
8318
+ /**
8319
+ * Controlled popup visibility.
8320
+ * @default false
8321
+ */
8322
+ "open"?: boolean;
8323
+ /**
8324
+ * Controlled values keyed by filter id.
8325
+ * @default {}
8326
+ */
8327
+ "values"?: FilterMenuValues1;
8328
+ }
8184
8329
  interface DsTableSavedViews {
8185
8330
  /**
8186
8331
  * Footer action label that opens the create-view dialog.
@@ -9231,6 +9376,15 @@ declare namespace LocalJSX {
9231
9376
  "groupEndOfResultsLabel": string;
9232
9377
  "groupRowsLoadedLabel": string;
9233
9378
  }
9379
+ interface DsTableFilterAttributes {
9380
+ "open": boolean;
9381
+ "activeFilterId": string | undefined;
9382
+ "label": string;
9383
+ "ariaLabel": string | null;
9384
+ "menuLabel": string | null;
9385
+ "categoriesLabel": string;
9386
+ "clearLabel": string;
9387
+ }
9234
9388
  interface DsTableSavedViewsAttributes {
9235
9389
  "value": string;
9236
9390
  "dirty": boolean;
@@ -9374,6 +9528,7 @@ declare namespace LocalJSX {
9374
9528
  "ds-switch": Omit<DsSwitch, keyof DsSwitchAttributes> & { [K in keyof DsSwitch & keyof DsSwitchAttributes]?: DsSwitch[K] } & { [K in keyof DsSwitch & keyof DsSwitchAttributes as `attr:${K}`]?: DsSwitchAttributes[K] } & { [K in keyof DsSwitch & keyof DsSwitchAttributes as `prop:${K}`]?: DsSwitch[K] };
9375
9529
  "ds-tab-group": Omit<DsTabGroup, keyof DsTabGroupAttributes> & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes]?: DsTabGroup[K] } & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes as `attr:${K}`]?: DsTabGroupAttributes[K] } & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes as `prop:${K}`]?: DsTabGroup[K] };
9376
9530
  "ds-table": Omit<DsTable, keyof DsTableAttributes> & { [K in keyof DsTable & keyof DsTableAttributes]?: DsTable[K] } & { [K in keyof DsTable & keyof DsTableAttributes as `attr:${K}`]?: DsTableAttributes[K] } & { [K in keyof DsTable & keyof DsTableAttributes as `prop:${K}`]?: DsTable[K] } & OneOf<"caption", DsTable["caption"], DsTableAttributes["caption"]>;
9531
+ "ds-table-filter": Omit<DsTableFilter, keyof DsTableFilterAttributes> & { [K in keyof DsTableFilter & keyof DsTableFilterAttributes]?: DsTableFilter[K] } & { [K in keyof DsTableFilter & keyof DsTableFilterAttributes as `attr:${K}`]?: DsTableFilterAttributes[K] } & { [K in keyof DsTableFilter & keyof DsTableFilterAttributes as `prop:${K}`]?: DsTableFilter[K] };
9377
9532
  "ds-table-saved-views": Omit<DsTableSavedViews, keyof DsTableSavedViewsAttributes> & { [K in keyof DsTableSavedViews & keyof DsTableSavedViewsAttributes]?: DsTableSavedViews[K] } & { [K in keyof DsTableSavedViews & keyof DsTableSavedViewsAttributes as `attr:${K}`]?: DsTableSavedViewsAttributes[K] } & { [K in keyof DsTableSavedViews & keyof DsTableSavedViewsAttributes as `prop:${K}`]?: DsTableSavedViews[K] };
9378
9533
  "ds-table-sort": Omit<DsTableSort, keyof DsTableSortAttributes> & { [K in keyof DsTableSort & keyof DsTableSortAttributes]?: DsTableSort[K] } & { [K in keyof DsTableSort & keyof DsTableSortAttributes as `attr:${K}`]?: DsTableSortAttributes[K] } & { [K in keyof DsTableSort & keyof DsTableSortAttributes as `prop:${K}`]?: DsTableSort[K] };
9379
9534
  "ds-table-toolbar": Omit<DsTableToolbar, keyof DsTableToolbarAttributes> & { [K in keyof DsTableToolbar & keyof DsTableToolbarAttributes]?: DsTableToolbar[K] } & { [K in keyof DsTableToolbar & keyof DsTableToolbarAttributes as `attr:${K}`]?: DsTableToolbarAttributes[K] } & { [K in keyof DsTableToolbar & keyof DsTableToolbarAttributes as `prop:${K}`]?: DsTableToolbar[K] };
@@ -9470,6 +9625,7 @@ declare module "@stencil/core" {
9470
9625
  "ds-switch": LocalJSX.IntrinsicElements["ds-switch"] & JSXBase.HTMLAttributes<HTMLDsSwitchElement>;
9471
9626
  "ds-tab-group": LocalJSX.IntrinsicElements["ds-tab-group"] & JSXBase.HTMLAttributes<HTMLDsTabGroupElement>;
9472
9627
  "ds-table": LocalJSX.IntrinsicElements["ds-table"] & JSXBase.HTMLAttributes<HTMLDsTableElement>;
9628
+ "ds-table-filter": LocalJSX.IntrinsicElements["ds-table-filter"] & JSXBase.HTMLAttributes<HTMLDsTableFilterElement>;
9473
9629
  "ds-table-saved-views": LocalJSX.IntrinsicElements["ds-table-saved-views"] & JSXBase.HTMLAttributes<HTMLDsTableSavedViewsElement>;
9474
9630
  "ds-table-sort": LocalJSX.IntrinsicElements["ds-table-sort"] & JSXBase.HTMLAttributes<HTMLDsTableSortElement>;
9475
9631
  "ds-table-toolbar": LocalJSX.IntrinsicElements["ds-table-toolbar"] & JSXBase.HTMLAttributes<HTMLDsTableToolbarElement>;
@@ -67,6 +67,7 @@ export { DsSwatchPicker } from './ds-swatch-picker.js';
67
67
  export { DsSwitch } from './ds-switch.js';
68
68
  export { DsTabGroup } from './ds-tab-group.js';
69
69
  export { DsTable } from './ds-table.js';
70
+ export { DsTableFilter } from './ds-table-filter.js';
70
71
  export { DsTableSavedViews } from './ds-table-saved-views.js';
71
72
  export { DsTableSort } from './ds-table-sort.js';
72
73
  export { DsTableToolbar } from './ds-table-toolbar.js';
@@ -69,6 +69,7 @@ export { DsSwatchPicker } from './ds-swatch-picker.js';
69
69
  export { DsSwitch } from './ds-switch.js';
70
70
  export { DsTabGroup } from './ds-tab-group.js';
71
71
  export { DsTable } from './ds-table.js';
72
+ export { DsTableFilter } from './ds-table-filter.js';
72
73
  export { DsTableSavedViews } from './ds-table-saved-views.js';
73
74
  export { DsTableSort } from './ds-table-sort.js';
74
75
  export { DsTableToolbar } from './ds-table-toolbar.js';
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsTableFilter: StencilVueComponent<JSX.DsTableFilter>;
@@ -0,0 +1,29 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTableFilter } from '@ds-mo/ui/components/ds-table-filter.js';
6
+ export const DsTableFilter = /*@__PURE__*/ defineContainer('ds-table-filter', defineDsTableFilter, [
7
+ 'open',
8
+ 'filters',
9
+ 'values',
10
+ 'activeFilterId',
11
+ 'label',
12
+ 'ariaLabel',
13
+ 'menuLabel',
14
+ 'categoriesLabel',
15
+ 'clearLabel',
16
+ 'dsChange',
17
+ 'dsClear',
18
+ 'dsActiveFilterChange',
19
+ 'dsClose',
20
+ 'dsOpenChange',
21
+ 'dsAfterClose'
22
+ ], [
23
+ 'dsChange',
24
+ 'dsClear',
25
+ 'dsActiveFilterChange',
26
+ 'dsClose',
27
+ 'dsOpenChange',
28
+ 'dsAfterClose'
29
+ ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "14.16.0",
3
+ "version": "14.17.1",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,2 +0,0 @@
1
- let n=0;function t(){n+=1;return`ds-table-column-customizer-${n}`}function e(n){return n.kind==="action"}function r(n){return n.header.trim()||n.headerLabel?.trim()||n.id}function o(n){return n.filter((n=>!e(n)))}function c(n,t){const e=o(n).map((n=>n.id));const r=new Set(e);const c=new Set;const u=[];for(const n of t??[]){if(!r.has(n)||c.has(n))continue;c.add(n);u.push(n)}for(const n of e){if(c.has(n))continue;u.push(n)}return u}function u(n,t){const e=o(n).map((n=>n.id));const r=new Set(e);const c=[...new Set((t??[]).filter((n=>r.has(n))))];if(e.length===0||c.length<e.length)return c;const u=e[0];return c.filter((n=>n!==u))}function s(n,t,e){if(u(n,t).length>0)return true;const r=o(n).map((n=>n.id));const s=c(n,e);return s.length!==r.length||s.some(((n,t)=>n!==r[t]))}function i(n,t={}){if(!t.columnCustomizer)return n;const r=new Map(n.map((n=>[n.id,n])));const o=new Set(u(n,t.hiddenColumnIds));const s=c(n,t.columnOrder).map((n=>r.get(n))).filter((n=>!!n&&!o.has(n.id)));return[...s,...n.filter(e)]}function f(n,t,r){const c=n.find((n=>n.id===r));if(!c||e(c))return false;const s=new Set(u(n,t));if(s.has(r))return true;const i=o(n).filter((n=>!s.has(n.id)));return i.length>1}function a(n,t,e){const r=u(n,t);if(!f(n,r,e))return r;const o=new Set(r);if(o.has(e))o.delete(e);else o.add(e);return u(n,[...o])}function l(n,t,e){const o=new Map(n.map((n=>[n.id,n])));const s=u(n,t);const i=new Set(s);const a=c(n,e).flatMap((t=>{const e=o.get(t);if(!e)return[];return[{column:e,label:r(e),visible:!i.has(t),hideable:f(n,s,t),reorderable:true}]}));return a}function w(n,t,e){return l(n,t,e).map((n=>({label:n.label,value:n.column.id,showSwitch:true,switchValue:n.visible,isInactive:!n.hideable,reorderable:n.reorderable})))}export{s as a,c as b,u as c,a as d,e as i,t as n,i as r,w as t};
2
- //# sourceMappingURL=p-BdnQv7Zl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["columnCustomizerSeq","nextTableColumnCustomizerElementId","isTableActionColumn","column","kind","tableColumnCustomizerLabel","header","trim","headerLabel","id","tableDataColumns","columns","filter","resolveTableColumnOrder","columnOrder","catalogIds","map","catalog","Set","seen","ordered","has","add","push","resolveTableHiddenColumnIds","hiddenColumnIds","dataIds","data","hidden","length","keep","isTableColumnsCustomized","order","some","index","resolveTableVisibleColumns","options","columnCustomizer","byId","Map","visibleData","get","canToggleTableColumnHidden","columnId","find","candidate","toggleTableColumnHidden","resolved","delete","tableColumnCustomizerItems","resolvedHidden","dataItems","flatMap","label","visible","hideable","reorderable","tableColumnCustomizerMenuItems","item","value","showSwitch","switchValue","isInactive"],"sources":["src/wc/components/Table/table-column-customizer.ts"],"sourcesContent":["import type { MenuItemData } from '../Menu/menu-types';\nimport type { TableColumn } from './table-types';\n\nlet columnCustomizerSeq = 0;\n\nexport function nextTableColumnCustomizerElementId(): string {\n columnCustomizerSeq += 1;\n return `ds-table-column-customizer-${columnCustomizerSeq}`;\n}\n\nexport function isTableActionColumn(column: TableColumn): boolean {\n return column.kind === 'action';\n}\n\nexport function tableColumnCustomizerLabel(column: TableColumn): string {\n return column.header.trim() || column.headerLabel?.trim() || column.id;\n}\n\nexport function tableDataColumns(columns: TableColumn[]): TableColumn[] {\n return columns.filter(column => !isTableActionColumn(column));\n}\n\n/** Data-column ids in display order. Unknown, duplicate, and action ids are ignored. */\nexport function resolveTableColumnOrder(\n columns: TableColumn[],\n columnOrder: string[] | undefined\n): string[] {\n const catalogIds = tableDataColumns(columns).map(column => column.id);\n const catalog = new Set(catalogIds);\n const seen = new Set<string>();\n const ordered: string[] = [];\n\n for (const id of columnOrder ?? []) {\n if (!catalog.has(id) || seen.has(id)) continue;\n seen.add(id);\n ordered.push(id);\n }\n\n for (const id of catalogIds) {\n if (seen.has(id)) continue;\n ordered.push(id);\n }\n\n return ordered;\n}\n\n/**\n * Hidden data-column ids. Action and unknown ids are dropped. At least one data\n * column remains visible when the catalog has any data columns.\n */\nexport function resolveTableHiddenColumnIds(\n columns: TableColumn[],\n hiddenColumnIds: string[] | undefined\n): string[] {\n const dataIds = tableDataColumns(columns).map(column => column.id);\n const data = new Set(dataIds);\n const hidden = [...new Set((hiddenColumnIds ?? []).filter(id => data.has(id)))];\n if (dataIds.length === 0 || hidden.length < dataIds.length) return hidden;\n\n const keep = dataIds[0];\n return hidden.filter(id => id !== keep);\n}\n\n/** True when hidden ids or data-column order differ from the catalog default. */\nexport function isTableColumnsCustomized(\n columns: TableColumn[],\n hiddenColumnIds: string[] | undefined,\n columnOrder: string[] | undefined\n): boolean {\n if (resolveTableHiddenColumnIds(columns, hiddenColumnIds).length > 0) return true;\n const catalog = tableDataColumns(columns).map(column => column.id);\n const order = resolveTableColumnOrder(columns, columnOrder);\n return order.length !== catalog.length || order.some((id, index) => id !== catalog[index]);\n}\n\nexport function resolveTableVisibleColumns(\n columns: TableColumn[],\n options: {\n columnCustomizer?: boolean;\n hiddenColumnIds?: string[];\n columnOrder?: string[];\n } = {}\n): TableColumn[] {\n if (!options.columnCustomizer) return columns;\n\n const byId = new Map(columns.map(column => [column.id, column]));\n const hidden = new Set(resolveTableHiddenColumnIds(columns, options.hiddenColumnIds));\n const visibleData = resolveTableColumnOrder(columns, options.columnOrder)\n .map(id => byId.get(id))\n .filter((column): column is TableColumn => !!column && !hidden.has(column.id));\n\n return [...visibleData, ...columns.filter(isTableActionColumn)];\n}\n\nexport function canToggleTableColumnHidden(\n columns: TableColumn[],\n hiddenColumnIds: string[] | undefined,\n columnId: string\n): boolean {\n const column = columns.find(candidate => candidate.id === columnId);\n if (!column || isTableActionColumn(column)) return false;\n\n const hidden = new Set(resolveTableHiddenColumnIds(columns, hiddenColumnIds));\n if (hidden.has(columnId)) return true;\n\n const visibleData = tableDataColumns(columns).filter(candidate => !hidden.has(candidate.id));\n return visibleData.length > 1;\n}\n\nexport function toggleTableColumnHidden(\n columns: TableColumn[],\n hiddenColumnIds: string[] | undefined,\n columnId: string\n): string[] {\n const resolved = resolveTableHiddenColumnIds(columns, hiddenColumnIds);\n if (!canToggleTableColumnHidden(columns, resolved, columnId)) return resolved;\n\n const hidden = new Set(resolved);\n if (hidden.has(columnId)) hidden.delete(columnId);\n else hidden.add(columnId);\n return resolveTableHiddenColumnIds(columns, [...hidden]);\n}\n\nexport function moveTableColumnOrder(order: string[], fromId: string, toId: string): string[] {\n const from = order.indexOf(fromId);\n const to = order.indexOf(toId);\n if (from < 0 || to < 0 || from === to) return order;\n\n const next = [...order];\n next.splice(from, 1);\n next.splice(to, 0, fromId);\n return next;\n}\n\nexport function moveTableColumnInOrder(\n order: string[],\n columnId: string,\n offset: number\n): string[] {\n const from = order.indexOf(columnId);\n if (from < 0 || offset === 0) return order;\n return moveTableColumnOrder(order, columnId, order[from + offset] ?? columnId);\n}\n\nexport interface TableColumnCustomizerItem {\n column: TableColumn;\n label: string;\n visible: boolean;\n hideable: boolean;\n reorderable: boolean;\n}\n\nexport function tableColumnCustomizerItems(\n columns: TableColumn[],\n hiddenColumnIds: string[] | undefined,\n columnOrder: string[] | undefined\n): TableColumnCustomizerItem[] {\n const byId = new Map(columns.map(column => [column.id, column]));\n const resolvedHidden = resolveTableHiddenColumnIds(columns, hiddenColumnIds);\n const hidden = new Set(resolvedHidden);\n const dataItems = resolveTableColumnOrder(columns, columnOrder).flatMap(id => {\n const column = byId.get(id);\n if (!column) return [];\n return [\n {\n column,\n label: tableColumnCustomizerLabel(column),\n visible: !hidden.has(id),\n hideable: canToggleTableColumnHidden(columns, resolvedHidden, id),\n reorderable: true,\n },\n ];\n });\n return dataItems;\n}\n\n/** Menu switch rows for the table-owned column customizer. */\nexport function tableColumnCustomizerMenuItems(\n columns: TableColumn[],\n hiddenColumnIds: string[] | undefined,\n columnOrder: string[] | undefined\n): MenuItemData[] {\n return tableColumnCustomizerItems(columns, hiddenColumnIds, columnOrder).map(item => ({\n label: item.label,\n value: item.column.id,\n showSwitch: true,\n switchValue: item.visible,\n isInactive: !item.hideable,\n reorderable: item.reorderable,\n }));\n}\n"],"mappings":"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","ignoreList":[]}