@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.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +171 -15
- package/dist/angular/ds-table-filter.d.ts +44 -0
- package/dist/angular/ds-table-filter.js +57 -0
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +1 -0
- package/dist/angular/proxies.d.ts +1 -0
- package/dist/angular/proxies.js +1 -0
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-filter-menu.js.map +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-table-filter.d.ts +11 -0
- package/dist/components/ds-table-filter.js +2 -0
- package/dist/components/ds-table-filter.js.map +1 -0
- package/dist/components/ds-table-saved-views.js +1 -1
- package/dist/components/ds-table-sort.js +1 -1
- package/dist/components/ds-table-sort.js.map +1 -1
- package/dist/components/ds-table-toolbar.js +1 -1
- package/dist/components/ds-table-toolbar.js.map +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/{p-3dYwA4i_.js → p-Asi9h3pa.js} +2 -2
- package/dist/components/p-BFSLT0yc.js +2 -0
- package/dist/components/p-BFSLT0yc.js.map +1 -0
- package/dist/components/{p-C4p2i59V.js → p-BHz78C8h.js} +2 -2
- package/dist/components/{p-Dcnd5ZX5.js → p-BKp__CQX.js} +2 -2
- package/dist/components/p-BMERUCe1.js +2 -0
- package/dist/components/p-BMERUCe1.js.map +1 -0
- package/dist/components/{p-Ct2GVdSI.js → p-Be1sY58w.js} +2 -2
- package/dist/components/{p-vzxD117T.js → p-Bh67XbfB.js} +2 -2
- package/dist/components/{p-C_TOgX82.js → p-Bn8NryHK.js} +2 -2
- package/dist/components/{p-CaAZ-D08.js → p-C4TgWJi9.js} +2 -2
- package/dist/components/{p-COVcyUAA.js → p-CKmfuK7k.js} +2 -2
- package/dist/components/p-CKmfuK7k.js.map +1 -0
- package/dist/components/{p-EWI6ccs-.js → p-CMFvaY05.js} +2 -2
- package/dist/components/{p-BK-JjdoN.js → p-D4K9CE8a.js} +2 -2
- package/dist/components/{p-CxBE3l74.js → p-DEjh3klB.js} +2 -2
- package/dist/components/{p-NdahPypA.js → p-DFQ9mcbK.js} +2 -2
- package/dist/components/{p-WGZWqh-B.js → p-DHuyj-9J.js} +2 -2
- package/dist/components/{p-BUhShHfb.js → p-DIEK54fV.js} +2 -2
- package/dist/components/p-DOqnJVos.js +2 -0
- package/dist/components/{p-CwkcFMMe.js.map → p-DOqnJVos.js.map} +1 -1
- package/dist/components/{p-DRBTr6TS.js → p-DZ55e3j9.js} +2 -2
- package/dist/components/{p-MxptXwlW.js → p-DsJW5W3W.js} +2 -2
- package/dist/components/p-JPTkZ3Ji.js.map +1 -1
- package/dist/components/{p-DAV32g35.js → p-NzGRAPcF.js} +2 -2
- package/dist/components/p-NzGRAPcF.js.map +1 -0
- package/dist/components/{p-BUrbVZJU.js → p-ZZzC52Ea.js} +2 -2
- package/dist/components/{p-C91izpHV.js → p-__lNIImO.js} +2 -2
- package/dist/components/{p-0IbKxhqM.js → p-rrFMAZkj.js} +2 -2
- package/dist/components/{p-Cr2VT5zv.js → p-ruPTIV6t.js} +2 -2
- package/dist/docs/components.json +435 -6
- package/dist/mcp-data/registry/button-unfilled.json +4 -4
- package/dist/mcp-data/registry/filter-menu.json +5 -5
- package/dist/mcp-data/registry/loader.json +2 -1
- package/dist/mcp-data/registry/registry.json +173 -14
- package/dist/mcp-data/registry/select.json +1 -1
- package/dist/mcp-data/registry/table-filter.json +399 -0
- package/dist/mcp-data/registry/table-saved-views.json +1 -1
- package/dist/mcp-data/registry/table-sort.json +2 -2
- package/dist/mcp-data/registry/table-toolbar.json +9 -9
- package/dist/mcp-data/registry/table.json +6 -5
- package/dist/react/components.d.ts +1 -0
- package/dist/react/components.js +1 -0
- package/dist/react/ds-table-filter.d.ts +17 -0
- package/dist/react/ds-table-filter.js +19 -0
- package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
- package/dist/types/components/FilterMenu/FilterMenu.d.ts +2 -0
- package/dist/types/components/Select/Select.d.ts +2 -0
- package/dist/types/components/Table/table-column-customizer.d.ts +0 -2
- package/dist/types/components/TableFilter/TableFilter.d.ts +37 -0
- package/dist/types/components/TableToolbar/TableToolbar.d.ts +0 -6
- package/dist/types/components.d.ts +160 -4
- package/dist/vue/components.d.ts +1 -0
- package/dist/vue/components.js +1 -0
- package/dist/vue/ds-table-filter.d.ts +3 -0
- package/dist/vue/ds-table-filter.js +29 -0
- package/package.json +1 -1
- package/dist/components/p-BdnQv7Zl.js +0 -2
- package/dist/components/p-BdnQv7Zl.js.map +0 -1
- package/dist/components/p-COVcyUAA.js.map +0 -1
- package/dist/components/p-CwkcFMMe.js +0 -2
- package/dist/components/p-DAV32g35.js.map +0 -1
- /package/dist/components/{p-3dYwA4i_.js.map → p-Asi9h3pa.js.map} +0 -0
- /package/dist/components/{p-C4p2i59V.js.map → p-BHz78C8h.js.map} +0 -0
- /package/dist/components/{p-Dcnd5ZX5.js.map → p-BKp__CQX.js.map} +0 -0
- /package/dist/components/{p-Ct2GVdSI.js.map → p-Be1sY58w.js.map} +0 -0
- /package/dist/components/{p-vzxD117T.js.map → p-Bh67XbfB.js.map} +0 -0
- /package/dist/components/{p-C_TOgX82.js.map → p-Bn8NryHK.js.map} +0 -0
- /package/dist/components/{p-CaAZ-D08.js.map → p-C4TgWJi9.js.map} +0 -0
- /package/dist/components/{p-EWI6ccs-.js.map → p-CMFvaY05.js.map} +0 -0
- /package/dist/components/{p-BK-JjdoN.js.map → p-D4K9CE8a.js.map} +0 -0
- /package/dist/components/{p-CxBE3l74.js.map → p-DEjh3klB.js.map} +0 -0
- /package/dist/components/{p-NdahPypA.js.map → p-DFQ9mcbK.js.map} +0 -0
- /package/dist/components/{p-WGZWqh-B.js.map → p-DHuyj-9J.js.map} +0 -0
- /package/dist/components/{p-BUhShHfb.js.map → p-DIEK54fV.js.map} +0 -0
- /package/dist/components/{p-DRBTr6TS.js.map → p-DZ55e3j9.js.map} +0 -0
- /package/dist/components/{p-MxptXwlW.js.map → p-DsJW5W3W.js.map} +0 -0
- /package/dist/components/{p-BUrbVZJU.js.map → p-ZZzC52Ea.js.map} +0 -0
- /package/dist/components/{p-C91izpHV.js.map → p-__lNIImO.js.map} +0 -0
- /package/dist/components/{p-0IbKxhqM.js.map → p-rrFMAZkj.js.map} +0 -0
- /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";
|
package/dist/react/components.js
CHANGED
|
@@ -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 '
|
|
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 '
|
|
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 '
|
|
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 '
|
|
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>;
|
package/dist/vue/components.d.ts
CHANGED
|
@@ -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';
|
package/dist/vue/components.js
CHANGED
|
@@ -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,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,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":"AAGA,IAAIA,EAAsB,E,SAEVC,IACdD,GAAuB,EACvB,MAAO,8BAA8BA,GACvC,CAEM,SAAUE,EAAoBC,GAClC,OAAOA,EAAOC,OAAS,QACzB,CAEM,SAAUC,EAA2BF,GACzC,OAAOA,EAAOG,OAAOC,QAAUJ,EAAOK,aAAaD,QAAUJ,EAAOM,EACtE,CAEM,SAAUC,EAAiBC,GAC/B,OAAOA,EAAQC,QAAOT,IAAWD,EAAoBC,IACvD,CAGM,SAAUU,EACdF,EACAG,GAEA,MAAMC,EAAaL,EAAiBC,GAASK,KAAIb,GAAUA,EAAOM,KAClE,MAAMQ,EAAU,IAAIC,IAAIH,GACxB,MAAMI,EAAO,IAAID,IACjB,MAAME,EAAoB,GAE1B,IAAK,MAAMX,KAAMK,GAAe,GAAI,CAClC,IAAKG,EAAQI,IAAIZ,IAAOU,EAAKE,IAAIZ,GAAK,SACtCU,EAAKG,IAAIb,GACTW,EAAQG,KAAKd,E,CAGf,IAAK,MAAMA,KAAMM,EAAY,CAC3B,GAAII,EAAKE,IAAIZ,GAAK,SAClBW,EAAQG,KAAKd,E,CAGf,OAAOW,CACT,CAMM,SAAUI,EACdb,EACAc,GAEA,MAAMC,EAAUhB,EAAiBC,GAASK,KAAIb,GAAUA,EAAOM,KAC/D,MAAMkB,EAAO,IAAIT,IAAIQ,GACrB,MAAME,EAAS,IAAI,IAAIV,KAAKO,GAAmB,IAAIb,QAAOH,GAAMkB,EAAKN,IAAIZ,OACzE,GAAIiB,EAAQG,SAAW,GAAKD,EAAOC,OAASH,EAAQG,OAAQ,OAAOD,EAEnE,MAAME,EAAOJ,EAAQ,GACrB,OAAOE,EAAOhB,QAAOH,GAAMA,IAAOqB,GACpC,C,SAGgBC,EACdpB,EACAc,EACAX,GAEA,GAAIU,EAA4Bb,EAASc,GAAiBI,OAAS,EAAG,OAAO,KAC7E,MAAMZ,EAAUP,EAAiBC,GAASK,KAAIb,GAAUA,EAAOM,KAC/D,MAAMuB,EAAQnB,EAAwBF,EAASG,GAC/C,OAAOkB,EAAMH,SAAWZ,EAAQY,QAAUG,EAAMC,MAAK,CAACxB,EAAIyB,IAAUzB,IAAOQ,EAAQiB,IACrF,C,SAEgBC,EACdxB,EACAyB,EAII,IAEJ,IAAKA,EAAQC,iBAAkB,OAAO1B,EAEtC,MAAM2B,EAAO,IAAIC,IAAI5B,EAAQK,KAAIb,GAAU,CAACA,EAAOM,GAAIN,MACvD,MAAMyB,EAAS,IAAIV,IAAIM,EAA4Bb,EAASyB,EAAQX,kBACpE,MAAMe,EAAc3B,EAAwBF,EAASyB,EAAQtB,aAC1DE,KAAIP,GAAM6B,EAAKG,IAAIhC,KACnBG,QAAQT,KAAoCA,IAAWyB,EAAOP,IAAIlB,EAAOM,MAE5E,MAAO,IAAI+B,KAAgB7B,EAAQC,OAAOV,GAC5C,C,SAEgBwC,EACd/B,EACAc,EACAkB,GAEA,MAAMxC,EAASQ,EAAQiC,MAAKC,GAAaA,EAAUpC,KAAOkC,IAC1D,IAAKxC,GAAUD,EAAoBC,GAAS,OAAO,MAEnD,MAAMyB,EAAS,IAAIV,IAAIM,EAA4Bb,EAASc,IAC5D,GAAIG,EAAOP,IAAIsB,GAAW,OAAO,KAEjC,MAAMH,EAAc9B,EAAiBC,GAASC,QAAOiC,IAAcjB,EAAOP,IAAIwB,EAAUpC,MACxF,OAAO+B,EAAYX,OAAS,CAC9B,C,SAEgBiB,EACdnC,EACAc,EACAkB,GAEA,MAAMI,EAAWvB,EAA4Bb,EAASc,GACtD,IAAKiB,EAA2B/B,EAASoC,EAAUJ,GAAW,OAAOI,EAErE,MAAMnB,EAAS,IAAIV,IAAI6B,GACvB,GAAInB,EAAOP,IAAIsB,GAAWf,EAAOoB,OAAOL,QACnCf,EAAON,IAAIqB,GAChB,OAAOnB,EAA4Bb,EAAS,IAAIiB,GAClD,C,SA+BgBqB,EACdtC,EACAc,EACAX,GAEA,MAAMwB,EAAO,IAAIC,IAAI5B,EAAQK,KAAIb,GAAU,CAACA,EAAOM,GAAIN,MACvD,MAAM+C,EAAiB1B,EAA4Bb,EAASc,GAC5D,MAAMG,EAAS,IAAIV,IAAIgC,GACvB,MAAMC,EAAYtC,EAAwBF,EAASG,GAAasC,SAAQ3C,IACtE,MAAMN,EAASmC,EAAKG,IAAIhC,GACxB,IAAKN,EAAQ,MAAO,GACpB,MAAO,CACL,CACEA,SACAkD,MAAOhD,EAA2BF,GAClCmD,SAAU1B,EAAOP,IAAIZ,GACrB8C,SAAUb,EAA2B/B,EAASuC,EAAgBzC,GAC9D+C,YAAa,MAEhB,IAEH,OAAOL,CACT,C,SAGgBM,EACd9C,EACAc,EACAX,GAEA,OAAOmC,EAA2BtC,EAASc,EAAiBX,GAAaE,KAAI0C,IAAI,CAC/EL,MAAOK,EAAKL,MACZM,MAAOD,EAAKvD,OAAOM,GACnBmD,WAAY,KACZC,YAAaH,EAAKJ,QAClBQ,YAAaJ,EAAKH,SAClBC,YAAaE,EAAKF,eAEtB,Q","ignoreList":[]}
|