@ds-mo/ui 15.4.1 → 15.5.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 +53 -6
- package/dist/angular/ds-select.d.ts +1 -1
- package/dist/angular/ds-select.js +3 -3
- package/dist/angular/ds-table.d.ts +7 -1
- package/dist/angular/ds-table.js +11 -5
- 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-page-title.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-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-calendar.js +1 -1
- package/dist/components/ds-card-action-center.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-data-customize.js +1 -1
- package/dist/components/ds-data-filter.js +1 -1
- package/dist/components/ds-data-group.js +1 -1
- package/dist/components/ds-data-preferences.js +1 -1
- package/dist/components/ds-data-saved-views.js +1 -1
- package/dist/components/ds-data-search.js +1 -1
- package/dist/components/ds-data-sort.js +1 -1
- package/dist/components/ds-data-toolbar.js +1 -1
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-input-date.js +1 -1
- package/dist/components/ds-input-date.js.map +1 -1
- package/dist/components/ds-input-time.js +1 -1
- package/dist/components/ds-input-time.js.map +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-map-entity-marker.js +1 -1
- package/dist/components/ds-map-entity-marker.js.map +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.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-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-sub-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-radio-tile.js +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-scroll-overlay.js.map +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-tab-group.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-textarea.js.map +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/{p-YYiDYQhS.js → p--VQc5GDy.js} +2 -2
- package/dist/components/{p-LENgfPDe.js → p-7MwoWtTJ.js} +2 -2
- package/dist/components/p-B95UP66y.js +2 -0
- package/dist/components/p-B95UP66y.js.map +1 -0
- package/dist/components/{p-D-J7GgjY.js → p-BLeHHoVb.js} +2 -2
- package/dist/components/{p-D-J7GgjY.js.map → p-BLeHHoVb.js.map} +1 -1
- package/dist/components/{p-CXGjCWSh.js → p-BfVMaZZE.js} +2 -2
- package/dist/components/{p-wRhYxngW.js → p-BlbfbYg6.js} +2 -2
- package/dist/components/{p-PtxCwf5S.js → p-BuDxlhnQ.js} +2 -2
- package/dist/components/p-BuGlC5r8.js +2 -0
- package/dist/components/p-BuGlC5r8.js.map +1 -0
- package/dist/components/{p-BkvAqrXg.js → p-C1ZfBbJ_.js} +2 -2
- package/dist/components/{p-BcpIK9S6.js → p-C35Tki38.js} +2 -2
- package/dist/components/{p-jwVzQaTZ.js → p-C378wwRj.js} +2 -2
- package/dist/components/{p-B6TX55c5.js → p-C9H-3JOA.js} +2 -2
- package/dist/components/{p-COD1C3Gj.js → p-CNeDJTGX.js} +2 -2
- package/dist/components/p-CXlklL-0.js +2 -0
- package/dist/components/{p-dUti7zhW.js.map → p-CXlklL-0.js.map} +1 -1
- package/dist/components/{p-D7wLvTHz.js → p-CcwxySms.js} +2 -2
- package/dist/components/p-CzdE3M3g.js +2 -0
- package/dist/components/p-CzdE3M3g.js.map +1 -0
- package/dist/components/{p-DQfKS7dz.js → p-D9_iDlkT.js} +2 -2
- package/dist/components/{p-DkxhNqT-.js → p-DPwptvZl.js} +2 -2
- package/dist/components/{p-Dg6hnCc2.js → p-DVsGfz7J.js} +2 -2
- package/dist/components/{p-Dg6hnCc2.js.map → p-DVsGfz7J.js.map} +1 -1
- package/dist/components/{p--STJbKuN.js → p-DYsRXun3.js} +2 -2
- package/dist/components/{p-BYeG0b5N.js → p-DZLtFn-r.js} +2 -2
- package/dist/components/{p-B0BQCVkq.js → p-D_iZPukF.js} +2 -2
- package/dist/components/p-Da3aFRk2.js +2 -0
- package/dist/components/p-Da3aFRk2.js.map +1 -0
- package/dist/components/{p-BK_4OHJO.js → p-Df9S0aWi.js} +2 -2
- package/dist/components/{p-YDMY8T0d.js → p-a-cIN_BX.js} +2 -2
- package/dist/components/{p-YDMY8T0d.js.map → p-a-cIN_BX.js.map} +1 -1
- package/dist/components/{p-C_9VGgPf.js → p-bQE1NZVe.js} +2 -2
- package/dist/components/{p-CcZSzCfs.js → p-sDm8BEMy.js} +2 -2
- package/dist/docs/components.json +417 -74
- package/dist/lint/index.js +1 -1
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/map-entity-marker.json +5 -5
- package/dist/mcp-data/registry/registry.json +52 -5
- package/dist/mcp-data/registry/select.json +54 -3
- package/dist/mcp-data/registry/table.json +138 -12
- package/dist/react/ds-table.d.ts +3 -1
- package/dist/react/ds-table.js +2 -0
- package/dist/styles/table.css +399 -8
- package/dist/types/components/MapEntityMarker/MapEntityMarker.d.ts +1 -1
- package/dist/types/components/Select/Select.d.ts +6 -0
- package/dist/types/components/Table/Table.d.ts +35 -0
- package/dist/types/components/Table/index.d.ts +1 -1
- package/dist/types/components/Table/table-body-renderer.d.ts +1 -0
- package/dist/types/components/Table/table-cell-editor.d.ts +4 -0
- package/dist/types/components/Table/table-grid-model.d.ts +23 -0
- package/dist/types/components/Table/table-layout-controller.d.ts +1 -0
- package/dist/types/components/Table/table-review-fixtures.d.ts +10 -0
- package/dist/types/components/Table/table-row-view.d.ts +11 -2
- package/dist/types/components/Table/table-skeleton-view.d.ts +3 -1
- package/dist/types/components/Table/table-structure.d.ts +38 -0
- package/dist/types/components/Table/table-types.d.ts +71 -1
- package/dist/types/components/Table/table-virtual-controller.d.ts +1 -0
- package/dist/types/components.d.ts +80 -4
- package/dist/types/utils/select-controller.d.ts +1 -0
- package/dist/vue/ds-select.js +3 -0
- package/dist/vue/ds-table.js +8 -0
- package/package.json +1 -1
- package/dist/components/p-buM-T4vF.js +0 -2
- package/dist/components/p-buM-T4vF.js.map +0 -1
- package/dist/components/p-dUti7zhW.js +0 -2
- /package/dist/components/{p-YYiDYQhS.js.map → p--VQc5GDy.js.map} +0 -0
- /package/dist/components/{p-LENgfPDe.js.map → p-7MwoWtTJ.js.map} +0 -0
- /package/dist/components/{p-CXGjCWSh.js.map → p-BfVMaZZE.js.map} +0 -0
- /package/dist/components/{p-wRhYxngW.js.map → p-BlbfbYg6.js.map} +0 -0
- /package/dist/components/{p-PtxCwf5S.js.map → p-BuDxlhnQ.js.map} +0 -0
- /package/dist/components/{p-BkvAqrXg.js.map → p-C1ZfBbJ_.js.map} +0 -0
- /package/dist/components/{p-BcpIK9S6.js.map → p-C35Tki38.js.map} +0 -0
- /package/dist/components/{p-jwVzQaTZ.js.map → p-C378wwRj.js.map} +0 -0
- /package/dist/components/{p-B6TX55c5.js.map → p-C9H-3JOA.js.map} +0 -0
- /package/dist/components/{p-COD1C3Gj.js.map → p-CNeDJTGX.js.map} +0 -0
- /package/dist/components/{p-D7wLvTHz.js.map → p-CcwxySms.js.map} +0 -0
- /package/dist/components/{p-DQfKS7dz.js.map → p-D9_iDlkT.js.map} +0 -0
- /package/dist/components/{p-DkxhNqT-.js.map → p-DPwptvZl.js.map} +0 -0
- /package/dist/components/{p--STJbKuN.js.map → p-DYsRXun3.js.map} +0 -0
- /package/dist/components/{p-BYeG0b5N.js.map → p-DZLtFn-r.js.map} +0 -0
- /package/dist/components/{p-B0BQCVkq.js.map → p-D_iZPukF.js.map} +0 -0
- /package/dist/components/{p-BK_4OHJO.js.map → p-Df9S0aWi.js.map} +0 -0
- /package/dist/components/{p-C_9VGgPf.js.map → p-bQE1NZVe.js.map} +0 -0
- /package/dist/components/{p-CcZSzCfs.js.map → p-sDm8BEMy.js.map} +0 -0
package/dist/react/ds-table.d.ts
CHANGED
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
4
|
*/
|
|
5
5
|
import type { EventName, StencilReactComponent } from './react-runtime.js';
|
|
6
|
-
import { type DataFieldsConfigChangeDetail, type DataSortChangeDetail, type DsTableCustomEvent, type PaginationChangeDetail, type TableCellActionDetail, type TableDataModeChangeDetail, type TableGroupCollapseChangeDetail, type TableGroupLoadMoreDetail, type TableLoadMoreDetail, type TableRowActivateDetail, type TableSelectionChangeDetail } from "@ds-mo/ui";
|
|
6
|
+
import { type DataFieldsConfigChangeDetail, type DataSortChangeDetail, type DsTableCustomEvent, type PaginationChangeDetail, type TableCellActionDetail, type TableCellRange, type TableCellsChangeDetail, type TableDataModeChangeDetail, type TableGroupCollapseChangeDetail, type TableGroupLoadMoreDetail, type TableLoadMoreDetail, type TableRowActivateDetail, type TableSelectionChangeDetail } from "@ds-mo/ui";
|
|
7
7
|
import type { Components } from "@ds-mo/ui/dist/components";
|
|
8
8
|
import { DsTable as DsTableElement } from "@ds-mo/ui/dist/components/ds-table.js";
|
|
9
9
|
export type DsTableEvents = {
|
|
10
|
+
onDsCellRangeChange: EventName<DsTableCustomEvent<TableCellRange>>;
|
|
11
|
+
onDsCellsChange: EventName<DsTableCustomEvent<TableCellsChangeDetail>>;
|
|
10
12
|
onDsCustomizeOptionChange: EventName<DsTableCustomEvent<string>>;
|
|
11
13
|
onDsSortChange: EventName<DsTableCustomEvent<DataSortChangeDetail>>;
|
|
12
14
|
onDsGroupCollapseChange: EventName<DsTableCustomEvent<TableGroupCollapseChangeDetail>>;
|
package/dist/react/ds-table.js
CHANGED
|
@@ -8,6 +8,8 @@ export const DsTable = /*@__PURE__*/ createComponent({
|
|
|
8
8
|
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
9
|
react: React,
|
|
10
10
|
events: {
|
|
11
|
+
onDsCellRangeChange: 'dsCellRangeChange',
|
|
12
|
+
onDsCellsChange: 'dsCellsChange',
|
|
11
13
|
onDsCustomizeOptionChange: 'dsCustomizeOptionChange',
|
|
12
14
|
onDsSortChange: 'dsSortChange',
|
|
13
15
|
onDsGroupCollapseChange: 'dsGroupCollapseChange',
|
package/dist/styles/table.css
CHANGED
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
--_table-border-strong: var(--ds-table-border-strong, var(--color-border-secondary));
|
|
46
46
|
--_table-radius: var(--ds-table-radius, var(--ds-radius-table, var(--dimension-radius-050)));
|
|
47
47
|
--_table-header-min-block-size: var(--ds-table-header-min-block-size, var(--dimension-size-400));
|
|
48
|
+
--_table-head-block-size: var(--_table-header-min-block-size);
|
|
48
49
|
--_table-row-min-block-size: var(--ds-table-row-min-block-size, var(--dimension-size-500));
|
|
49
50
|
--_table-cell-padding-block: var(--ds-table-cell-padding-block, var(--dimension-space-100));
|
|
50
51
|
--_table-cell-padding-inline: var(--ds-table-cell-padding-inline, var(--dimension-space-100));
|
|
@@ -459,8 +460,8 @@
|
|
|
459
460
|
position: sticky;
|
|
460
461
|
inset-block-start: var(--ds-table-sticky-header-offset, 0);
|
|
461
462
|
z-index: 6;
|
|
462
|
-
block-size: var(--_table-
|
|
463
|
-
margin-block-end: calc(-1 * var(--_table-
|
|
463
|
+
block-size: var(--_table-head-block-size);
|
|
464
|
+
margin-block-end: calc(-1 * var(--_table-head-block-size));
|
|
464
465
|
max-inline-size: 100%;
|
|
465
466
|
overflow: hidden;
|
|
466
467
|
border-radius: var(--_table-radius) var(--_table-radius) 0 0;
|
|
@@ -497,7 +498,7 @@
|
|
|
497
498
|
}
|
|
498
499
|
|
|
499
500
|
:where(.ds-table--contained-sticky-header .ds-table__sticky-group) {
|
|
500
|
-
inset-block-start: var(--_table-
|
|
501
|
+
inset-block-start: var(--_table-head-block-size);
|
|
501
502
|
transform: translateY(var(--_table-sticky-group-push, 0));
|
|
502
503
|
will-change: transform;
|
|
503
504
|
}
|
|
@@ -511,7 +512,7 @@
|
|
|
511
512
|
}
|
|
512
513
|
|
|
513
514
|
:where(.ds-table__sticky-header-table) {
|
|
514
|
-
block-size: var(--_table-
|
|
515
|
+
block-size: var(--_table-head-block-size);
|
|
515
516
|
transform: translate3d(calc(-1 * var(--ds-table-inline-scroll-offset, 0px)), 0, 0);
|
|
516
517
|
will-change: transform;
|
|
517
518
|
}
|
|
@@ -661,7 +662,9 @@
|
|
|
661
662
|
border-inline-start: 0;
|
|
662
663
|
}
|
|
663
664
|
|
|
664
|
-
|
|
665
|
+
/* Row-spanned lanes break DOM adjacency; pinned edges below still own their divider. */
|
|
666
|
+
:where(.ds-table__header-cell + .ds-table__header-cell)::before,
|
|
667
|
+
:where(.ds-table__header-cell--after-rowspan)::before {
|
|
665
668
|
content: '';
|
|
666
669
|
position: absolute;
|
|
667
670
|
inset: 0;
|
|
@@ -1244,6 +1247,10 @@
|
|
|
1244
1247
|
|
|
1245
1248
|
:where(.ds-table__row--disabled) {
|
|
1246
1249
|
color: var(--color-foreground-tertiary);
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
:where(.ds-table__row--disabled .ds-table__cell-content),
|
|
1253
|
+
:where(.ds-table__cell[data-cell-editable='false'] .ds-table__cell-content) {
|
|
1247
1254
|
opacity: var(--effect-opacity-medium);
|
|
1248
1255
|
}
|
|
1249
1256
|
|
|
@@ -1266,11 +1273,11 @@
|
|
|
1266
1273
|
}
|
|
1267
1274
|
|
|
1268
1275
|
:where(.ds-table__cell--sticky-start) {
|
|
1269
|
-
inset-inline-start: 0;
|
|
1276
|
+
inset-inline-start: var(--_table-pin-offset, 0);
|
|
1270
1277
|
}
|
|
1271
1278
|
|
|
1272
1279
|
:where(.ds-table__cell--sticky-end) {
|
|
1273
|
-
inset-inline-end: 0;
|
|
1280
|
+
inset-inline-end: var(--_table-pin-offset, 0);
|
|
1274
1281
|
}
|
|
1275
1282
|
|
|
1276
1283
|
:where(.ds-table__header-cell.ds-table__cell--sticky-start),
|
|
@@ -1391,7 +1398,7 @@
|
|
|
1391
1398
|
/* Each real section owns one sticky row and its own push-off boundary. */
|
|
1392
1399
|
:where(.ds-table--contained-sticky-header .ds-table__group-row--native-sticky) {
|
|
1393
1400
|
position: sticky;
|
|
1394
|
-
inset-block-start: var(--_table-
|
|
1401
|
+
inset-block-start: var(--_table-head-block-size);
|
|
1395
1402
|
z-index: 5;
|
|
1396
1403
|
}
|
|
1397
1404
|
|
|
@@ -1837,3 +1844,387 @@
|
|
|
1837
1844
|
:where(.ds-table__cell-tag-separator) {
|
|
1838
1845
|
flex: none;
|
|
1839
1846
|
}
|
|
1847
|
+
|
|
1848
|
+
:where(.ds-table--super-headers) {
|
|
1849
|
+
--_table-head-block-size: calc(2 * var(--_table-header-min-block-size));
|
|
1850
|
+
}
|
|
1851
|
+
|
|
1852
|
+
:where(.ds-table__super-header-cell)::after {
|
|
1853
|
+
background: var(--_table-column-border);
|
|
1854
|
+
}
|
|
1855
|
+
|
|
1856
|
+
:where(.ds-table__header-cell--rowspan) {
|
|
1857
|
+
vertical-align: bottom;
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
/* Share the body tracks across both header rows, including real row spans. */
|
|
1861
|
+
:where(.ds-table__table--native-group-sticky > .ds-table__head--multirow) {
|
|
1862
|
+
display: grid;
|
|
1863
|
+
grid-template-columns: var(--_table-grid-template-columns);
|
|
1864
|
+
grid-template-rows: repeat(2, var(--_table-header-min-block-size));
|
|
1865
|
+
}
|
|
1866
|
+
:where(.ds-table__table--native-group-sticky .ds-table__head--multirow > .ds-table__header-row) {
|
|
1867
|
+
display: contents;
|
|
1868
|
+
}
|
|
1869
|
+
:where(.ds-table__table--native-group-sticky .ds-table__header-cell--rowspan) {
|
|
1870
|
+
display: flex;
|
|
1871
|
+
flex-direction: column;
|
|
1872
|
+
justify-content: flex-end;
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
:where(.ds-table__sticky-edge--internal)::after {
|
|
1876
|
+
display: none;
|
|
1877
|
+
}
|
|
1878
|
+
|
|
1879
|
+
/* A covered body lane breaks DOM adjacency with the preceding pinned checkbox. */
|
|
1880
|
+
:where(.ds-table__cell--after-covered) {
|
|
1881
|
+
--ds-interaction-group-divider-inline-start-width: var(--dimension-stroke-width-012);
|
|
1882
|
+
--ds-interaction-group-divider-inline-start-color: var(--_table-column-border);
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
/* Move the complete content stack, never individual text, icon, tag or action tracks. */
|
|
1886
|
+
:where(.ds-table__cell[data-vertical-align='middle']) {
|
|
1887
|
+
vertical-align: middle;
|
|
1888
|
+
}
|
|
1889
|
+
:where(.ds-table__cell[data-vertical-align='bottom']) {
|
|
1890
|
+
vertical-align: bottom;
|
|
1891
|
+
}
|
|
1892
|
+
:where(.ds-table__table--native-group-sticky .ds-table__cell[data-vertical-align]) {
|
|
1893
|
+
display: flex;
|
|
1894
|
+
flex-direction: column;
|
|
1895
|
+
justify-content: flex-start;
|
|
1896
|
+
}
|
|
1897
|
+
:where(.ds-table__table--native-group-sticky .ds-table__cell[data-vertical-align='middle']) {
|
|
1898
|
+
justify-content: center;
|
|
1899
|
+
}
|
|
1900
|
+
:where(.ds-table__table--native-group-sticky .ds-table__cell[data-vertical-align='bottom']) {
|
|
1901
|
+
justify-content: flex-end;
|
|
1902
|
+
}
|
|
1903
|
+
:where(.ds-table__cell-highlight) {
|
|
1904
|
+
position: absolute;
|
|
1905
|
+
inset: 0;
|
|
1906
|
+
z-index: 3;
|
|
1907
|
+
pointer-events: none;
|
|
1908
|
+
outline: var(--dimension-stroke-width-050) solid
|
|
1909
|
+
var(--_table-cell-intent, var(--color-border-secondary));
|
|
1910
|
+
outline-offset: calc(-1 * var(--dimension-stroke-width-050));
|
|
1911
|
+
/* Clip only this decorative layer: a left-only outline without affecting
|
|
1912
|
+
* the cell's content, layout, keyboard focus ring, or pinned borders. */
|
|
1913
|
+
clip-path: inset(0 calc(100% - var(--dimension-stroke-width-050)) 0 0);
|
|
1914
|
+
}
|
|
1915
|
+
:where(.ds-table__cell[data-cell-highlight='brand']) {
|
|
1916
|
+
--_table-cell-intent: var(--color-border-bold-brand);
|
|
1917
|
+
}
|
|
1918
|
+
:where(.ds-table__cell[data-cell-highlight='negative']) {
|
|
1919
|
+
--_table-cell-intent: var(--color-border-bold-negative);
|
|
1920
|
+
}
|
|
1921
|
+
:where(.ds-table__cell[data-cell-highlight='positive']) {
|
|
1922
|
+
--_table-cell-intent: var(--color-border-bold-positive);
|
|
1923
|
+
}
|
|
1924
|
+
:where(.ds-table__cell[data-cell-highlight='warning']) {
|
|
1925
|
+
--_table-cell-intent: var(--color-border-bold-warning);
|
|
1926
|
+
}
|
|
1927
|
+
:where(.ds-table__cell[data-cell-highlight='caution']) {
|
|
1928
|
+
--_table-cell-intent: var(--color-border-bold-caution);
|
|
1929
|
+
}
|
|
1930
|
+
:where(.ds-table__cell[data-cell-borders~='start']) {
|
|
1931
|
+
border-inline-start: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
|
|
1932
|
+
}
|
|
1933
|
+
:where(.ds-table__cell[data-cell-borders~='end']) {
|
|
1934
|
+
border-inline-end: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
|
|
1935
|
+
}
|
|
1936
|
+
:where(.ds-table__cell[data-cell-borders~='top']) {
|
|
1937
|
+
border-block-start: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
|
|
1938
|
+
}
|
|
1939
|
+
:where(.ds-table__cell[data-cell-borders~='bottom']) {
|
|
1940
|
+
border-block-end: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
|
|
1941
|
+
}
|
|
1942
|
+
:where(.ds-table__cell-flag) {
|
|
1943
|
+
display: flex;
|
|
1944
|
+
align-items: center;
|
|
1945
|
+
justify-content: center;
|
|
1946
|
+
flex: none;
|
|
1947
|
+
min-block-size: var(--_table-cell-track-min-block-size);
|
|
1948
|
+
inline-size: var(--_table-cell-track-min-block-size);
|
|
1949
|
+
margin-inline-start: var(--dimension-space-050);
|
|
1950
|
+
}
|
|
1951
|
+
:where(.ds-table__card-label) {
|
|
1952
|
+
display: none;
|
|
1953
|
+
}
|
|
1954
|
+
:where(.ds-table__card-field-divider),
|
|
1955
|
+
:where(.ds-table__card-action-divider) {
|
|
1956
|
+
display: none;
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
/* Keep every field reachable when pinned lanes consume the complete viewport. */
|
|
1960
|
+
:where(.ds-table__frame[data-pins-crowded='true'] .ds-table__cell--sticky-start),
|
|
1961
|
+
:where(.ds-table__frame[data-pins-crowded='true'] .ds-table__cell--sticky-end) {
|
|
1962
|
+
--ds-interaction-position: relative;
|
|
1963
|
+
position: relative;
|
|
1964
|
+
inset-inline: auto;
|
|
1965
|
+
transform: none;
|
|
1966
|
+
animation: none;
|
|
1967
|
+
}
|
|
1968
|
+
:where(.ds-table__frame[data-pins-crowded='true'] .ds-table__sticky-edge)::after {
|
|
1969
|
+
display: none;
|
|
1970
|
+
}
|
|
1971
|
+
|
|
1972
|
+
/* A single semantic table and the same controls survive the layout switch. */
|
|
1973
|
+
:where(.ds-table--cards-active > .ds-table__caption-bar),
|
|
1974
|
+
:where(.ds-table--cards-active > .ds-table__footer),
|
|
1975
|
+
:where(.ds-table--cards-active .ds-table__frame),
|
|
1976
|
+
:where(.ds-table--cards-active .ds-table__viewport) {
|
|
1977
|
+
border-radius: 0;
|
|
1978
|
+
}
|
|
1979
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__table) {
|
|
1980
|
+
display: block;
|
|
1981
|
+
box-sizing: border-box;
|
|
1982
|
+
min-inline-size: 0;
|
|
1983
|
+
padding: var(--dimension-space-200) var(--dimension-space-200) 0;
|
|
1984
|
+
}
|
|
1985
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__head),
|
|
1986
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__body) {
|
|
1987
|
+
display: block;
|
|
1988
|
+
}
|
|
1989
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__head) {
|
|
1990
|
+
/* Keep static semantic column labels, but no visible or focusable header UI. */
|
|
1991
|
+
position: absolute;
|
|
1992
|
+
inline-size: var(--dimension-stroke-width-012);
|
|
1993
|
+
block-size: var(--dimension-stroke-width-012);
|
|
1994
|
+
overflow: hidden;
|
|
1995
|
+
clip-path: inset(50%);
|
|
1996
|
+
pointer-events: none;
|
|
1997
|
+
}
|
|
1998
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__row) {
|
|
1999
|
+
display: grid;
|
|
2000
|
+
position: relative;
|
|
2001
|
+
/* WebKit can retain the table-row intrinsic size after changing to a card,
|
|
2002
|
+
* clipping visible fields and skipping the absolutely positioned checkbox.
|
|
2003
|
+
* Bounded datasets still use the existing recycled row window. */
|
|
2004
|
+
content-visibility: visible;
|
|
2005
|
+
contain-intrinsic-block-size: none;
|
|
2006
|
+
box-sizing: border-box;
|
|
2007
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2008
|
+
margin-block-end: var(--dimension-space-200);
|
|
2009
|
+
padding: var(--dimension-space-100) var(--dimension-space-050);
|
|
2010
|
+
border: var(--dimension-stroke-width-012) solid var(--_table-column-border);
|
|
2011
|
+
border-radius: var(--ds-radius-card);
|
|
2012
|
+
isolation: isolate;
|
|
2013
|
+
}
|
|
2014
|
+
:where(.ds-table--cards-active .ds-table__row)::before,
|
|
2015
|
+
:where(.ds-table--cards-active .ds-table__row)::after {
|
|
2016
|
+
content: '';
|
|
2017
|
+
position: absolute;
|
|
2018
|
+
inset: 0;
|
|
2019
|
+
border-radius: inherit;
|
|
2020
|
+
pointer-events: none;
|
|
2021
|
+
}
|
|
2022
|
+
:where(.ds-table--cards-active .ds-table__row)::before {
|
|
2023
|
+
z-index: 0;
|
|
2024
|
+
}
|
|
2025
|
+
:where(.ds-table--cards-active .ds-table__row)::after {
|
|
2026
|
+
z-index: 3;
|
|
2027
|
+
}
|
|
2028
|
+
:where(.ds-table--cards-active .ds-table__row--selected)::before {
|
|
2029
|
+
background: var(--_table-row-selected);
|
|
2030
|
+
}
|
|
2031
|
+
:where(.ds-table--cards-active .ds-table__row[data-surface-open='true'])::before {
|
|
2032
|
+
background: var(--_table-row-pressed);
|
|
2033
|
+
}
|
|
2034
|
+
|
|
2035
|
+
@media (hover: hover) and (pointer: fine) {
|
|
2036
|
+
:where(.ds-table--cards-active .ds-table__row--interactive:hover)::after {
|
|
2037
|
+
background: var(--_table-row-hover);
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
:where(.ds-table--cards-active .ds-table__row--interactive:active)::after {
|
|
2041
|
+
background: var(--_table-row-pressed);
|
|
2042
|
+
}
|
|
2043
|
+
:where(.ds-table--cards-active .ds-table__cell)::before,
|
|
2044
|
+
:where(.ds-table--cards-active .ds-table__cell)::after {
|
|
2045
|
+
display: none;
|
|
2046
|
+
}
|
|
2047
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__cell),
|
|
2048
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__header-cell) {
|
|
2049
|
+
--ds-interaction-position: relative;
|
|
2050
|
+
display: block;
|
|
2051
|
+
position: relative;
|
|
2052
|
+
inset-inline: auto;
|
|
2053
|
+
inline-size: auto;
|
|
2054
|
+
max-inline-size: none;
|
|
2055
|
+
width: auto;
|
|
2056
|
+
max-width: none;
|
|
2057
|
+
block-size: auto;
|
|
2058
|
+
}
|
|
2059
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__card-label) {
|
|
2060
|
+
display: block;
|
|
2061
|
+
padding-inline: var(--_table-cell-track-padding-inline);
|
|
2062
|
+
margin-block-end: var(--dimension-space-100);
|
|
2063
|
+
}
|
|
2064
|
+
:where(.ds-table--cards-active .ds-table__selection-cell),
|
|
2065
|
+
:where(.ds-table--cards-active .ds-table__cell--card-action) {
|
|
2066
|
+
--ds-interaction-position: absolute;
|
|
2067
|
+
--ds-interaction-z-index: 3;
|
|
2068
|
+
--ds-interaction-group-divider-width: 0;
|
|
2069
|
+
position: absolute;
|
|
2070
|
+
z-index: 3;
|
|
2071
|
+
inset-block-start: var(--dimension-space-100);
|
|
2072
|
+
inline-size: var(--_table-selection-column-inline-size);
|
|
2073
|
+
border: 0;
|
|
2074
|
+
background: transparent;
|
|
2075
|
+
}
|
|
2076
|
+
:where(.ds-table--cards-active .ds-table__selection-cell) {
|
|
2077
|
+
inset-inline-end: calc(
|
|
2078
|
+
var(--dimension-space-100) + var(--_table-card-action-count, 0) *
|
|
2079
|
+
var(--_table-selection-column-inline-size)
|
|
2080
|
+
);
|
|
2081
|
+
}
|
|
2082
|
+
:where(.ds-table--cards-active .ds-table__cell--card-action) {
|
|
2083
|
+
inset-inline-end: calc(
|
|
2084
|
+
var(--dimension-space-100) +
|
|
2085
|
+
(var(--_table-card-action-count, 1) - var(--_table-card-action-index, 0) - 1) *
|
|
2086
|
+
var(--_table-selection-column-inline-size)
|
|
2087
|
+
);
|
|
2088
|
+
}
|
|
2089
|
+
:where(.ds-table--cards-active .ds-table__cell--card-first) {
|
|
2090
|
+
padding-inline-end: calc(
|
|
2091
|
+
var(--dimension-space-100) + var(--_table-card-control-count, 0) *
|
|
2092
|
+
var(--_table-selection-column-inline-size)
|
|
2093
|
+
);
|
|
2094
|
+
}
|
|
2095
|
+
:where(.ds-table--cards-active .ds-table__card-field-divider) {
|
|
2096
|
+
display: block;
|
|
2097
|
+
position: absolute;
|
|
2098
|
+
inset-block-start: 0;
|
|
2099
|
+
inset-inline: calc(var(--_table-cell-padding-inline) + var(--_table-cell-track-padding-inline));
|
|
2100
|
+
block-size: var(--dimension-stroke-width-012);
|
|
2101
|
+
background: var(--_table-column-border);
|
|
2102
|
+
pointer-events: none;
|
|
2103
|
+
}
|
|
2104
|
+
:where(.ds-table--cards-active .ds-table__card-action-divider) {
|
|
2105
|
+
display: block;
|
|
2106
|
+
position: absolute;
|
|
2107
|
+
inset-inline-start: 0;
|
|
2108
|
+
inset-block-start: calc(var(--dimension-space-100) + var(--dimension-space-025));
|
|
2109
|
+
block-size: var(--dimension-size-250);
|
|
2110
|
+
inline-size: var(--dimension-stroke-width-012);
|
|
2111
|
+
background: var(--_table-column-border);
|
|
2112
|
+
pointer-events: none;
|
|
2113
|
+
}
|
|
2114
|
+
:where(.ds-table--cards-active .ds-table__cell--tag > .ds-table__cell-content),
|
|
2115
|
+
:where(.ds-table--cards-active .ds-table__cell--tags > .ds-table__cell-content),
|
|
2116
|
+
:where(.ds-table--cards-active .ds-table__cell--icon > .ds-table__cell-content),
|
|
2117
|
+
:where(.ds-table--cards-active .ds-table__cell--image > .ds-table__cell-content) {
|
|
2118
|
+
padding-inline: var(--_table-cell-track-padding-inline);
|
|
2119
|
+
}
|
|
2120
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__cell) {
|
|
2121
|
+
--ds-interaction-group-divider-inline-start-width: 0;
|
|
2122
|
+
--ds-interaction-group-divider-width: 0;
|
|
2123
|
+
border: 0;
|
|
2124
|
+
background: transparent;
|
|
2125
|
+
}
|
|
2126
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] colgroup),
|
|
2127
|
+
:where(
|
|
2128
|
+
.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__elastic-spacer-cell
|
|
2129
|
+
),
|
|
2130
|
+
:where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__sticky-edge) {
|
|
2131
|
+
display: none;
|
|
2132
|
+
}
|
|
2133
|
+
:where(.ds-table__cell[role='gridcell']:not([aria-selected='true']):focus) {
|
|
2134
|
+
outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);
|
|
2135
|
+
outline-offset: calc(-1 * var(--dimension-stroke-width-025));
|
|
2136
|
+
}
|
|
2137
|
+
|
|
2138
|
+
@media (hover: hover) and (pointer: fine) {
|
|
2139
|
+
:where(
|
|
2140
|
+
.ds-table__cell[role='gridcell'][data-cell-editable='true']:not([aria-selected='true']):not(
|
|
2141
|
+
[data-cell-editing='true']
|
|
2142
|
+
):hover
|
|
2143
|
+
) {
|
|
2144
|
+
--ds-interaction-group-fill: var(--_table-row-hover);
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2147
|
+
:where(
|
|
2148
|
+
.ds-table__cell[role='gridcell'][data-cell-editable='true']:not([aria-selected='true']):not(
|
|
2149
|
+
[data-cell-editing='true']
|
|
2150
|
+
):active
|
|
2151
|
+
) {
|
|
2152
|
+
--ds-interaction-group-fill: var(--_table-row-pressed);
|
|
2153
|
+
}
|
|
2154
|
+
:where(.ds-table__cell[data-cell-editable='false']) {
|
|
2155
|
+
--ds-interaction-group-fill: transparent;
|
|
2156
|
+
}
|
|
2157
|
+
:where(.ds-table__edit-trigger) {
|
|
2158
|
+
position: absolute;
|
|
2159
|
+
inset-block-start: var(--dimension-space-100);
|
|
2160
|
+
inset-inline-end: var(--dimension-space-100);
|
|
2161
|
+
z-index: 4;
|
|
2162
|
+
background: var(--_table-surface);
|
|
2163
|
+
border-radius: var(--ds-radius-control);
|
|
2164
|
+
opacity: 0;
|
|
2165
|
+
pointer-events: none;
|
|
2166
|
+
}
|
|
2167
|
+
:where(.ds-table__cell:focus-within .ds-table__edit-trigger) {
|
|
2168
|
+
opacity: 1;
|
|
2169
|
+
pointer-events: auto;
|
|
2170
|
+
}
|
|
2171
|
+
|
|
2172
|
+
@media (hover: hover) and (pointer: fine) {
|
|
2173
|
+
:where(.ds-table__cell:hover .ds-table__edit-trigger) {
|
|
2174
|
+
opacity: 1;
|
|
2175
|
+
pointer-events: auto;
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
@media (hover: none) {
|
|
2180
|
+
:where(.ds-table__edit-trigger) {
|
|
2181
|
+
opacity: 1;
|
|
2182
|
+
pointer-events: auto;
|
|
2183
|
+
}
|
|
2184
|
+
}
|
|
2185
|
+
:where(.ds-table__cell-editor) {
|
|
2186
|
+
box-sizing: border-box;
|
|
2187
|
+
flex: 1 0 auto;
|
|
2188
|
+
inline-size: calc(100% + var(--dimension-space-100));
|
|
2189
|
+
min-inline-size: 0;
|
|
2190
|
+
/* md control text starts 8px in; cancel 4px to preserve the table's 4px track inset.
|
|
2191
|
+
Its 32px frame similarly occupies the existing 24px track without growing the row. */
|
|
2192
|
+
margin: calc(-1 * var(--dimension-space-050));
|
|
2193
|
+
}
|
|
2194
|
+
:where(.ds-table__select-indicator) {
|
|
2195
|
+
flex: 0 0 auto;
|
|
2196
|
+
align-self: center;
|
|
2197
|
+
margin-inline-start: var(--dimension-space-050);
|
|
2198
|
+
margin-inline-end: var(--dimension-space-025);
|
|
2199
|
+
}
|
|
2200
|
+
/* Paint above the cell's interaction layers so the outline cannot be covered by dividers. */
|
|
2201
|
+
:where(.ds-table__cell[aria-selected='true'])::after,
|
|
2202
|
+
:where(.ds-table__cell[data-cell-editing='true'])::after {
|
|
2203
|
+
outline: var(--dimension-stroke-width-018) solid var(--color-border-bold-brand);
|
|
2204
|
+
outline-offset: calc(-1 * var(--dimension-stroke-width-018));
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
@media (forced-colors: active) {
|
|
2208
|
+
:where(.ds-table__row--disabled .ds-table__cell-content),
|
|
2209
|
+
:where(.ds-table__cell[data-cell-editable='false'] .ds-table__cell-content) {
|
|
2210
|
+
opacity: 1;
|
|
2211
|
+
color: var(--ds-forced-color-disabled);
|
|
2212
|
+
}
|
|
2213
|
+
:where(.ds-table__card-field-divider) {
|
|
2214
|
+
border-block-start: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);
|
|
2215
|
+
}
|
|
2216
|
+
:where(.ds-table__card-action-divider) {
|
|
2217
|
+
border-inline-start: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);
|
|
2218
|
+
}
|
|
2219
|
+
:where(.ds-table__cell-highlight) {
|
|
2220
|
+
outline-color: var(--ds-forced-color-content);
|
|
2221
|
+
}
|
|
2222
|
+
:where(.ds-table__cell[role='gridcell']:focus) {
|
|
2223
|
+
outline-color: var(--ds-forced-color-selected);
|
|
2224
|
+
}
|
|
2225
|
+
:where(.ds-table__cell[aria-selected='true'])::after,
|
|
2226
|
+
:where(.ds-table__cell[data-cell-editing='true'])::after {
|
|
2227
|
+
outline: var(--dimension-stroke-width-018) solid var(--ds-forced-color-selected);
|
|
2228
|
+
outline-offset: calc(-1 * var(--dimension-stroke-width-018));
|
|
2229
|
+
}
|
|
2230
|
+
}
|
|
@@ -5,7 +5,7 @@ export declare class MapEntityMarker {
|
|
|
5
5
|
label: string;
|
|
6
6
|
/** Short visible identifier revealed on hover or keyboard focus. */
|
|
7
7
|
caption: string;
|
|
8
|
-
/** Canonical IcoMo icon name for the represented map entity. Immobilized
|
|
8
|
+
/** Canonical IcoMo icon name for the represented map entity. Immobilized vehicles use MapKey. */
|
|
9
9
|
icon: string;
|
|
10
10
|
/** Semantic operating state that selects the marker background. */
|
|
11
11
|
state: MapEntityMarkerState;
|
|
@@ -62,6 +62,8 @@ export declare class Select {
|
|
|
62
62
|
popupAlign: SelectPopupAlign;
|
|
63
63
|
/** Explicit collision owner; otherwise the nearest data-ds-overlay-boundary ancestor is used. */
|
|
64
64
|
boundary: HTMLElement | undefined;
|
|
65
|
+
/** Optional popup positioning anchor; the trigger still owns focus and accessibility. */
|
|
66
|
+
anchor: HTMLElement | undefined;
|
|
65
67
|
/** Shared inactive treatment; removes interaction and form submission. */
|
|
66
68
|
isInactive: boolean;
|
|
67
69
|
/** Replace the prefix with a loader and disable option interaction. */
|
|
@@ -79,6 +81,10 @@ export declare class Select {
|
|
|
79
81
|
iconOnly: boolean;
|
|
80
82
|
/** Show the surface-aware inset border, including focused and invalid strokes. */
|
|
81
83
|
hasBorder: boolean;
|
|
84
|
+
/** Disable only when a containing surface owns hover and press feedback. */
|
|
85
|
+
hasInteractionFill: boolean;
|
|
86
|
+
/** Disable only when a containing surface supplies a visible focus indicator. */
|
|
87
|
+
hasFocusRing: boolean;
|
|
82
88
|
/** Use a pill radius on the trigger. Popup chrome stays on the menu radius. */
|
|
83
89
|
rounded: boolean;
|
|
84
90
|
/** Optional trigger prefix icon name. */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import type { TableCellSpan, TableCellRange, TableCellsChangeDetail } from './table-types';
|
|
2
3
|
import type { PaginationChangeDetail } from '../Pagination/pagination-types';
|
|
3
4
|
import type { MenuItemData } from '../Menu/menu-types';
|
|
4
5
|
import type { TableCaptionVisibility, TableCellActionDetail, TableColumn, DataFieldsConfigChangeDetail, TableDataMode, TableDataModeChangeDetail, DataGroup, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, DataGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, DataSortChangeDetail, DataSortState } from './table-types';
|
|
@@ -6,6 +7,16 @@ export declare class Table {
|
|
|
6
7
|
el: HTMLElement;
|
|
7
8
|
/** Stable column definitions. Assign through JavaScript. */
|
|
8
9
|
columns: TableColumn[];
|
|
10
|
+
/** Opt-in native card presentation below the 768px table container breakpoint. */
|
|
11
|
+
responsiveLayout: 'scroll' | 'cards';
|
|
12
|
+
/** Explicit report merges; invalid combinations leave the original cells visible. */
|
|
13
|
+
cellSpans: TableCellSpan[];
|
|
14
|
+
/** Table is read-only; edit uses per-cell pencil buttons; grid adds cell selection and keyboard navigation. Grouped tables remain read-only. */
|
|
15
|
+
interactionMode: 'table' | 'edit' | 'grid';
|
|
16
|
+
/** Controlled rectangular cell selection, independent of row checkbox selection. */
|
|
17
|
+
cellRange: TableCellRange | null;
|
|
18
|
+
dsCellRangeChange: EventEmitter<TableCellRange>;
|
|
19
|
+
dsCellsChange: EventEmitter<TableCellsChangeDetail>;
|
|
9
20
|
/** Additional toggle options in the column customizer. */
|
|
10
21
|
customizeOptions: MenuItemData[];
|
|
11
22
|
dsCustomizeOptionChange: EventEmitter<string>;
|
|
@@ -150,6 +161,7 @@ export declare class Table {
|
|
|
150
161
|
private actionMenuSurface;
|
|
151
162
|
private truncateTooltipLabel;
|
|
152
163
|
private captionCompact;
|
|
164
|
+
private narrowViewport;
|
|
153
165
|
private columnCustomizerOpen;
|
|
154
166
|
private columnCustomizerSurfaceOpen;
|
|
155
167
|
private columnCustomizerInitialFocusVisible;
|
|
@@ -157,13 +169,35 @@ export declare class Table {
|
|
|
157
169
|
private dataModeSwitcherSurfaceOpen;
|
|
158
170
|
private dataModeSwitcherInitialFocusVisible;
|
|
159
171
|
private virtualWindow;
|
|
172
|
+
private activeCell;
|
|
173
|
+
private editingCell;
|
|
174
|
+
private editDraft;
|
|
175
|
+
private gridModelCache?;
|
|
176
|
+
private get gridEnabled();
|
|
177
|
+
private get editingEnabled();
|
|
178
|
+
private get gridModel();
|
|
179
|
+
private gridAddress;
|
|
180
|
+
private selectCell;
|
|
181
|
+
private focusCell;
|
|
182
|
+
private isEditableAddress;
|
|
183
|
+
private beginCellEdit;
|
|
184
|
+
private handleGridKeyDown;
|
|
185
|
+
private handleGridClipboard;
|
|
186
|
+
private renderCellEditor;
|
|
187
|
+
private renderCellEditTrigger;
|
|
188
|
+
private gridCellAttributes;
|
|
160
189
|
private readonly actionMenuElementId;
|
|
190
|
+
private structureCache?;
|
|
191
|
+
private get structure();
|
|
192
|
+
private headerId;
|
|
193
|
+
private columnBandId;
|
|
161
194
|
private readonly columnCustomizerElementId;
|
|
162
195
|
private readonly dataModeSwitcherElementId;
|
|
163
196
|
private truncateTooltipEl?;
|
|
164
197
|
private truncateAnchor;
|
|
165
198
|
private truncateTooltipBound;
|
|
166
199
|
private focusedRowId;
|
|
200
|
+
private virtualRenderFocus;
|
|
167
201
|
private virtualItems;
|
|
168
202
|
private visibleColumnsCache;
|
|
169
203
|
private renderModelCache;
|
|
@@ -200,6 +234,7 @@ export declare class Table {
|
|
|
200
234
|
private readonly viewportFitController;
|
|
201
235
|
componentWillLoad(): void;
|
|
202
236
|
componentDidLoad(): void;
|
|
237
|
+
componentWillRender(): void;
|
|
203
238
|
componentDidRender(): void;
|
|
204
239
|
/**
|
|
205
240
|
* Scroll the nearest vertical owner only enough to reveal a supplied row.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type { TableCaptionVisibility, TableCellAlign, TableCellAction, TableCellActionDetail, TableCellActionDivider, TableCellActionMenuEntry, TableCellActionMenuItem, TableCellBlank, TableCellEmpty, TableCellLinkTarget, TableCellIcon, TableCellIconText, TableCellScoreText, TableCellImage, TableCellImageTracks, TableCellPrimaryText, TableCellSkeleton, TableCellText, TableCellTextRun, TableCellTextTrack, TableCellTag, TableCellTagItem, TableCellTags, TableCellTagVariant, TableCellValue, TableSkeletonWidth, TableColumn, DataFieldsConfigChangeDetail, TableColumnSticky, TableColumnWidth, TableDataMode, TableDataModeChangeDetail, DataGroup, TableGroupAccessory, TableGroupHero, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupIntent, TableHeaderSegment, DataGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableLoadMoreReason, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, DataSortChangeDetail, DataSortDirection, DataSortState, } from './table-types';
|
|
1
|
+
export type { TableCellEditor, TableCellDecoration, TableCellSpan, TableCellAddress, TableCellRange, TableCellsChangeDetail, TableCaptionVisibility, TableCellAlign, TableCellAction, TableCellActionDetail, TableCellActionDivider, TableCellActionMenuEntry, TableCellActionMenuItem, TableCellBlank, TableCellEmpty, TableCellLinkTarget, TableCellIcon, TableCellIconText, TableCellScoreText, TableCellImage, TableCellImageTracks, TableCellPrimaryText, TableCellSkeleton, TableCellText, TableCellTextRun, TableCellTextTrack, TableCellTag, TableCellTagItem, TableCellTags, TableCellTagVariant, TableCellValue, TableSkeletonWidth, TableColumn, DataFieldsConfigChangeDetail, TableColumnSticky, TableColumnWidth, TableDataMode, TableDataModeChangeDetail, DataGroup, TableGroupAccessory, TableGroupHero, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupIntent, TableHeaderSegment, DataGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableLoadMoreReason, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, DataSortChangeDetail, DataSortDirection, DataSortState, } from './table-types';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TableCellEditor } from './table-types';
|
|
2
|
+
/** Shared controls own field behavior; Table owns the draft, cell chrome and commit boundary. */
|
|
3
|
+
export declare function renderTableCellEditor(editor: TableCellEditor, value: string, ariaLabel: string, anchor: HTMLElement | undefined, change: (value: string) => void): any;
|
|
4
|
+
//# sourceMappingURL=table-cell-editor.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TableCellAddress, TableCellRange, TableCellsChangeDetail, TableColumn, TableRow } from './table-types';
|
|
2
|
+
/** Snapshot-local index; arrow navigation and visible-cell range checks are constant time. */
|
|
3
|
+
export declare function tableGridModel(rows: TableRow[], columns: TableColumn[]): {
|
|
4
|
+
firstEditable: TableCellAddress | null;
|
|
5
|
+
rows: TableRow[];
|
|
6
|
+
columns: TableColumn[];
|
|
7
|
+
rowIndices: Map<string, number>;
|
|
8
|
+
columnIndices: Map<string, number>;
|
|
9
|
+
};
|
|
10
|
+
export type TableGridModel = ReturnType<typeof tableGridModel>;
|
|
11
|
+
/** Scan only on navigation, not render/scroll; read-only cells are never focus stops. */
|
|
12
|
+
export declare function tableNextEditable(model: TableGridModel, address: TableCellAddress, key: string, backwards?: boolean): TableCellAddress | null;
|
|
13
|
+
export declare function tableRangeBounds(model: TableGridModel, range: TableCellRange | null): {
|
|
14
|
+
firstRow: number;
|
|
15
|
+
lastRow: number;
|
|
16
|
+
firstColumn: number;
|
|
17
|
+
lastColumn: number;
|
|
18
|
+
} | null;
|
|
19
|
+
export declare function tableEditable(row: TableRow, column: TableColumn): boolean;
|
|
20
|
+
export declare function tableEditValue(text: string, column: TableColumn): string | number | null | undefined;
|
|
21
|
+
/** Plain TSV only, bounded and atomic: never partially apply invalid or read-only rectangles. */
|
|
22
|
+
export declare function tablePasteChanges(model: TableGridModel, address: TableCellAddress, text: string): TableCellsChangeDetail['changes'] | null;
|
|
23
|
+
//# sourceMappingURL=table-grid-model.d.ts.map
|
|
@@ -20,6 +20,7 @@ export interface TableLayoutControllerOptions {
|
|
|
20
20
|
elements: () => TableLayoutElements;
|
|
21
21
|
mode: () => TableLayoutMode;
|
|
22
22
|
overflowChanged: (state: TableOverflowState) => void;
|
|
23
|
+
narrowChanged?: (narrow: boolean) => void;
|
|
23
24
|
verticalEdgeWheel?: (deltaY: number) => boolean;
|
|
24
25
|
}
|
|
25
26
|
export interface TableLayoutMetricInput {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TableColumn, TableRow } from './table-types';
|
|
2
|
+
export declare const REVIEW_COLUMNS: TableColumn[];
|
|
3
|
+
export declare function tableReviewRows(count?: number): TableRow[];
|
|
4
|
+
export declare const EDIT_COLUMNS: TableColumn[];
|
|
5
|
+
export declare const EDIT_ROWS: TableRow[];
|
|
6
|
+
export declare const FIELD_COLUMNS: TableColumn[];
|
|
7
|
+
export declare const FIELD_ROWS: TableRow[];
|
|
8
|
+
export declare const MERGE_COLUMNS: TableColumn[];
|
|
9
|
+
export declare const MERGE_ROWS: TableRow[];
|
|
10
|
+
//# sourceMappingURL=table-review-fixtures.d.ts.map
|