@ni/nimble-components 19.4.4 → 19.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -3
- package/dist/all-components-bundle.js +185 -8
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +1702 -1688
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/all-components.d.ts +2 -0
- package/dist/esm/all-components.js +2 -0
- package/dist/esm/all-components.js.map +1 -1
- package/dist/esm/banner/template.js +2 -1
- package/dist/esm/banner/template.js.map +1 -1
- package/dist/esm/combobox/index.js +4 -0
- package/dist/esm/combobox/index.js.map +1 -1
- package/dist/esm/label-provider/base/index.d.ts +19 -0
- package/dist/esm/label-provider/base/index.js +55 -0
- package/dist/esm/label-provider/base/index.js.map +1 -0
- package/dist/esm/label-provider/core/index.d.ts +26 -0
- package/dist/esm/label-provider/core/index.js +36 -0
- package/dist/esm/label-provider/core/index.js.map +1 -0
- package/dist/esm/label-provider/core/label-token-defaults.d.ts +6 -0
- package/dist/esm/label-provider/core/label-token-defaults.js +6 -0
- package/dist/esm/label-provider/core/label-token-defaults.js.map +1 -0
- package/dist/esm/label-provider/core/label-tokens.d.ts +4 -0
- package/dist/esm/label-provider/core/label-tokens.js +15 -0
- package/dist/esm/label-provider/core/label-tokens.js.map +1 -0
- package/dist/esm/label-provider/table/index.d.ts +32 -0
- package/dist/esm/label-provider/table/index.js +44 -0
- package/dist/esm/label-provider/table/index.js.map +1 -0
- package/dist/esm/label-provider/table/label-token-defaults.d.ts +6 -0
- package/dist/esm/label-provider/table/label-token-defaults.js +8 -0
- package/dist/esm/label-provider/table/label-token-defaults.js.map +1 -0
- package/dist/esm/label-provider/table/label-tokens.d.ts +6 -0
- package/dist/esm/label-provider/table/label-tokens.js +23 -0
- package/dist/esm/label-provider/table/label-tokens.js.map +1 -0
- package/dist/esm/label-provider/table/name-utils.d.ts +6 -0
- package/dist/esm/label-provider/table/name-utils.js +10 -0
- package/dist/esm/label-provider/table/name-utils.js.map +1 -0
- package/dist/esm/number-field/index.js +3 -2
- package/dist/esm/number-field/index.js.map +1 -1
- package/dist/esm/src/all-components.d.ts +2 -0
- package/dist/esm/src/label-provider/base/index.d.ts +19 -0
- package/dist/esm/src/label-provider/core/index.d.ts +26 -0
- package/dist/esm/src/label-provider/core/label-token-defaults.d.ts +6 -0
- package/dist/esm/src/label-provider/core/label-tokens.d.ts +4 -0
- package/dist/esm/src/label-provider/table/index.d.ts +32 -0
- package/dist/esm/src/label-provider/table/label-token-defaults.d.ts +6 -0
- package/dist/esm/src/label-provider/table/label-tokens.d.ts +6 -0
- package/dist/esm/src/label-provider/table/name-utils.d.ts +6 -0
- package/dist/esm/table/components/cell/template.js +2 -1
- package/dist/esm/table/components/cell/template.js.map +1 -1
- package/dist/esm/table/components/group-row/template.js +2 -0
- package/dist/esm/table/components/group-row/template.js.map +1 -1
- package/dist/esm/table/components/header/template.js +3 -2
- package/dist/esm/table/components/header/template.js.map +1 -1
- package/dist/esm/table/template.js +3 -0
- package/dist/esm/table/template.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,8 +23,8 @@ If you have an existing application that incorporates a module bundler like [Web
|
|
|
23
23
|
|
|
24
24
|
1. Install the package from [the public NPM registry](https://www.npmjs.com/package/@ni/nimble-components) by running `npm install @ni/nimble-components`.
|
|
25
25
|
2. Import the component you want to use from the file you want to use it in. For example: `import '@ni/nimble-components/dist/esm/icons/succeeded';`
|
|
26
|
-
3. Add the HTML for the component to your page. You can see sample code for each component in the [Nimble Storybook](https://ni.
|
|
27
|
-
4. Nimble components are [standard web components (custom elements)](https://developer.mozilla.org/en-US/docs/Web/Web_Components) so you can configure them via normal DOM APIs like attributes, properties, events, and methods. The [Storybook documentation](https://ni.
|
|
26
|
+
3. Add the HTML for the component to your page. You can see sample code for each component in the [Nimble Storybook](https://nimble.ni.dev/storybook/) by going to the **Docs** page for the component and clicking **Show code**. For example: `<nimble-icon-succeeded></nimble-icon-succeeded>`.
|
|
27
|
+
4. Nimble components are [standard web components (custom elements)](https://developer.mozilla.org/en-US/docs/Web/Web_Components) so you can configure them via normal DOM APIs like attributes, properties, events, and methods. The [Storybook documentation](https://nimble.ni.dev/storybook/) for each component describes its custom API.
|
|
28
28
|
|
|
29
29
|
### Prototyping in a static webpage
|
|
30
30
|
|
|
@@ -96,9 +96,33 @@ The theming system is composed of:
|
|
|
96
96
|
|
|
97
97
|
The goal of the Nimble design system is to provide a consistent style for applications. If you find that Nimble does not expose colors, fonts, sizes, etc. that you need in an application get in touch with the Nimble squad.
|
|
98
98
|
|
|
99
|
+
## Localization
|
|
100
|
+
|
|
101
|
+
Most user-visible strings displayed by Nimble components are provided by the client application and are expected to be localized by the application if necessary. However, some strings are built into Nimble components and are provided only in English. An application can provide localized versions of these strings by using design tokens set on label provider elements.
|
|
102
|
+
|
|
103
|
+
There are currently 2 label providers:
|
|
104
|
+
|
|
105
|
+
- `nimble-label-provider-core`: Used for labels for all components besides the table
|
|
106
|
+
- `nimble-label-provider-table`: Used for labels for the table (and table sub-components / column types)
|
|
107
|
+
|
|
108
|
+
If a client is localized, it should:
|
|
109
|
+
|
|
110
|
+
- Add the `label-provider` element(s) as children of their root theme provider:
|
|
111
|
+
```html
|
|
112
|
+
<body>
|
|
113
|
+
<nimble-theme-provider theme="light">
|
|
114
|
+
<nimble-label-provider-core></nimble-label-provider-core>
|
|
115
|
+
<!-- if using nimble-table, include nimble-label-provider-table: -->
|
|
116
|
+
<nimble-label-provider-table></nimble-label-provider-table>
|
|
117
|
+
<!-- everything else -->
|
|
118
|
+
</nimble-theme-provider>
|
|
119
|
+
</body>
|
|
120
|
+
```
|
|
121
|
+
- For each label token on the label provider API, localize the English string, and set the corresponding HTML attribute or JS property on the label provider to the localized values. A list of all label tokens for each label provider (and their corresponding attribute/property names and English strings) can be found in the [Tokens/Label Providers section of Storybook](http://nimble.ni.dev/storybook/?path=/docs/tokens-label-providers--docs).
|
|
122
|
+
|
|
99
123
|
## Accessibility
|
|
100
124
|
|
|
101
|
-
For accessibility information related to nimble components, see [
|
|
125
|
+
For accessibility information related to nimble components, see [accessibility.md](/packages/nimble-components/docs/accessibility.md).
|
|
102
126
|
|
|
103
127
|
## Contributing
|
|
104
128
|
|
|
@@ -16232,7 +16232,7 @@
|
|
|
16232
16232
|
|
|
16233
16233
|
/**
|
|
16234
16234
|
* Do not edit directly
|
|
16235
|
-
* Generated on
|
|
16235
|
+
* Generated on Thu, 13 Jul 2023 23:25:35 GMT
|
|
16236
16236
|
*/
|
|
16237
16237
|
const Information100DarkUi = "#a46eff";
|
|
16238
16238
|
const Information100LightUi = "#804ad9";
|
|
@@ -16668,7 +16668,7 @@
|
|
|
16668
16668
|
DesignSystem.getOrCreate()
|
|
16669
16669
|
.withPrefix('nimble')
|
|
16670
16670
|
.register(nimbleDesignSystemProvider());
|
|
16671
|
-
DesignSystem.tagFor(ThemeProvider);
|
|
16671
|
+
const themeProviderTag = DesignSystem.tagFor(ThemeProvider);
|
|
16672
16672
|
|
|
16673
16673
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
16674
16674
|
const Headline1FallbackFontFamily = 'Noto Serif Fallback';
|
|
@@ -19438,6 +19438,25 @@
|
|
|
19438
19438
|
information: 'information'
|
|
19439
19439
|
};
|
|
19440
19440
|
|
|
19441
|
+
const coreLabelDefaults = {
|
|
19442
|
+
popupDismissLabel: 'Close',
|
|
19443
|
+
numericIncrementLabel: 'Increment',
|
|
19444
|
+
numericDecrementLabel: 'Decrement'
|
|
19445
|
+
};
|
|
19446
|
+
|
|
19447
|
+
const popupDismissLabel = DesignToken.create({
|
|
19448
|
+
name: 'popup-dismiss-label',
|
|
19449
|
+
cssCustomPropertyName: null
|
|
19450
|
+
}).withDefault(coreLabelDefaults.popupDismissLabel);
|
|
19451
|
+
const numericDecrementLabel = DesignToken.create({
|
|
19452
|
+
name: 'numeric-decrement-label',
|
|
19453
|
+
cssCustomPropertyName: null
|
|
19454
|
+
}).withDefault(coreLabelDefaults.numericDecrementLabel);
|
|
19455
|
+
const numericIncrementLabel = DesignToken.create({
|
|
19456
|
+
name: 'numeric-increment-label',
|
|
19457
|
+
cssCustomPropertyName: null
|
|
19458
|
+
}).withDefault(coreLabelDefaults.numericIncrementLabel);
|
|
19459
|
+
|
|
19441
19460
|
// prettier-ignore
|
|
19442
19461
|
const template$n = html `
|
|
19443
19462
|
<div class="container"
|
|
@@ -19484,7 +19503,7 @@
|
|
|
19484
19503
|
${when(x => !x.preventDismiss, html `
|
|
19485
19504
|
<${buttonTag} appearance="ghost" content-hidden @click="${x => x.dismissBanner()}">
|
|
19486
19505
|
<${iconXmarkTag} slot="start"></${iconXmarkTag}>
|
|
19487
|
-
${x => x.dismissButtonLabel ??
|
|
19506
|
+
${x => x.dismissButtonLabel ?? popupDismissLabel.getValueFor(x)}
|
|
19488
19507
|
</${buttonTag}>
|
|
19489
19508
|
`)}
|
|
19490
19509
|
</div>
|
|
@@ -20623,6 +20642,10 @@
|
|
|
20623
20642
|
this.valueBeforeTextUpdate = this.value;
|
|
20624
20643
|
}
|
|
20625
20644
|
this.valueUpdatedByInput = true;
|
|
20645
|
+
// This is a workaround for this FAST issue: https://github.com/microsoft/fast/issues/6776
|
|
20646
|
+
if (this.value !== this.control.value) {
|
|
20647
|
+
this.focusAndScrollOptionIntoView();
|
|
20648
|
+
}
|
|
20626
20649
|
this.value = this.control.value;
|
|
20627
20650
|
return returnValue;
|
|
20628
20651
|
}
|
|
@@ -23171,6 +23194,157 @@
|
|
|
23171
23194
|
registerIcon('icon-xmark-check', IconXmarkCheck);
|
|
23172
23195
|
DesignSystem.tagFor(IconXmarkCheck);
|
|
23173
23196
|
|
|
23197
|
+
/**
|
|
23198
|
+
* Base class for label providers
|
|
23199
|
+
*/
|
|
23200
|
+
class LabelProviderBase extends FoundationElement {
|
|
23201
|
+
constructor() {
|
|
23202
|
+
super(...arguments);
|
|
23203
|
+
this.propertyNotifier = Observable.getNotifier(this);
|
|
23204
|
+
}
|
|
23205
|
+
connectedCallback() {
|
|
23206
|
+
super.connectedCallback();
|
|
23207
|
+
this.initializeThemeProvider();
|
|
23208
|
+
this.propertyNotifier.subscribe(this);
|
|
23209
|
+
}
|
|
23210
|
+
disconnectedCallback() {
|
|
23211
|
+
this.propertyNotifier.unsubscribe(this);
|
|
23212
|
+
if (this.themeProvider) {
|
|
23213
|
+
for (const token of Object.values(this.supportedLabels)) {
|
|
23214
|
+
token.deleteValueFor(this.themeProvider);
|
|
23215
|
+
}
|
|
23216
|
+
this.themeProvider = undefined;
|
|
23217
|
+
}
|
|
23218
|
+
}
|
|
23219
|
+
handleChange(_element, property) {
|
|
23220
|
+
if (this.supportedLabels[property]) {
|
|
23221
|
+
const token = this.supportedLabels[property];
|
|
23222
|
+
const value = this[property];
|
|
23223
|
+
if (this.themeProvider) {
|
|
23224
|
+
if (value === null || value === undefined) {
|
|
23225
|
+
token.deleteValueFor(this.themeProvider);
|
|
23226
|
+
}
|
|
23227
|
+
else {
|
|
23228
|
+
token.setValueFor(this.themeProvider, value);
|
|
23229
|
+
}
|
|
23230
|
+
}
|
|
23231
|
+
}
|
|
23232
|
+
}
|
|
23233
|
+
initializeThemeProvider() {
|
|
23234
|
+
this.themeProvider = this.closest(themeProviderTag) ?? undefined;
|
|
23235
|
+
if (this.themeProvider) {
|
|
23236
|
+
for (const [property, token] of Object.entries(this.supportedLabels)) {
|
|
23237
|
+
const value = this[property];
|
|
23238
|
+
if (value === null || value === undefined) {
|
|
23239
|
+
token.deleteValueFor(this.themeProvider);
|
|
23240
|
+
}
|
|
23241
|
+
else {
|
|
23242
|
+
token.setValueFor(this.themeProvider, value);
|
|
23243
|
+
}
|
|
23244
|
+
}
|
|
23245
|
+
}
|
|
23246
|
+
}
|
|
23247
|
+
}
|
|
23248
|
+
|
|
23249
|
+
const supportedLabels$1 = {
|
|
23250
|
+
popupDismiss: popupDismissLabel,
|
|
23251
|
+
numericDecrement: numericDecrementLabel,
|
|
23252
|
+
numericIncrement: numericIncrementLabel
|
|
23253
|
+
};
|
|
23254
|
+
/**
|
|
23255
|
+
* Core label provider for Nimble
|
|
23256
|
+
*/
|
|
23257
|
+
class LabelProviderCore extends LabelProviderBase {
|
|
23258
|
+
constructor() {
|
|
23259
|
+
super(...arguments);
|
|
23260
|
+
this.supportedLabels = supportedLabels$1;
|
|
23261
|
+
}
|
|
23262
|
+
}
|
|
23263
|
+
__decorate$1([
|
|
23264
|
+
attr({ attribute: 'popup-dismiss' })
|
|
23265
|
+
], LabelProviderCore.prototype, "popupDismiss", void 0);
|
|
23266
|
+
__decorate$1([
|
|
23267
|
+
attr({ attribute: 'numeric-decrement' })
|
|
23268
|
+
], LabelProviderCore.prototype, "numericDecrement", void 0);
|
|
23269
|
+
__decorate$1([
|
|
23270
|
+
attr({ attribute: 'numeric-increment' })
|
|
23271
|
+
], LabelProviderCore.prototype, "numericIncrement", void 0);
|
|
23272
|
+
const nimbleLabelProviderCore = LabelProviderCore.compose({
|
|
23273
|
+
baseName: 'label-provider-core'
|
|
23274
|
+
});
|
|
23275
|
+
DesignSystem.getOrCreate()
|
|
23276
|
+
.withPrefix('nimble')
|
|
23277
|
+
.register(nimbleLabelProviderCore());
|
|
23278
|
+
DesignSystem.tagFor(LabelProviderCore);
|
|
23279
|
+
|
|
23280
|
+
const tableLabelDefaults = {
|
|
23281
|
+
tableGroupCollapseLabel: 'Collapse group',
|
|
23282
|
+
tableGroupExpandLabel: 'Expand group',
|
|
23283
|
+
tableGroupsCollapseAllLabel: 'Collapse all groups',
|
|
23284
|
+
tableCellActionMenuLabel: 'Options',
|
|
23285
|
+
tableColumnHeaderGroupedIndicatorLabel: 'Grouped'
|
|
23286
|
+
};
|
|
23287
|
+
|
|
23288
|
+
const tableGroupCollapseLabel = DesignToken.create({
|
|
23289
|
+
name: 'table-group-collapse-label',
|
|
23290
|
+
cssCustomPropertyName: null
|
|
23291
|
+
}).withDefault(tableLabelDefaults.tableGroupCollapseLabel);
|
|
23292
|
+
const tableGroupExpandLabel = DesignToken.create({
|
|
23293
|
+
name: 'table-group-expand-label',
|
|
23294
|
+
cssCustomPropertyName: null
|
|
23295
|
+
}).withDefault(tableLabelDefaults.tableGroupExpandLabel);
|
|
23296
|
+
const tableGroupsCollapseAllLabel = DesignToken.create({
|
|
23297
|
+
name: 'table-groups-collapse-all-label',
|
|
23298
|
+
cssCustomPropertyName: null
|
|
23299
|
+
}).withDefault(tableLabelDefaults.tableGroupsCollapseAllLabel);
|
|
23300
|
+
const tableCellActionMenuLabel = DesignToken.create({
|
|
23301
|
+
name: 'table-cell-action-menu-label',
|
|
23302
|
+
cssCustomPropertyName: null
|
|
23303
|
+
}).withDefault(tableLabelDefaults.tableCellActionMenuLabel);
|
|
23304
|
+
const tableColumnHeaderGroupedIndicatorLabel = DesignToken.create({
|
|
23305
|
+
name: 'table-column-header-grouped-indicator-label',
|
|
23306
|
+
cssCustomPropertyName: null
|
|
23307
|
+
}).withDefault(tableLabelDefaults.tableColumnHeaderGroupedIndicatorLabel);
|
|
23308
|
+
|
|
23309
|
+
const supportedLabels = {
|
|
23310
|
+
groupCollapse: tableGroupCollapseLabel,
|
|
23311
|
+
groupExpand: tableGroupExpandLabel,
|
|
23312
|
+
groupsCollapseAll: tableGroupsCollapseAllLabel,
|
|
23313
|
+
cellActionMenu: tableCellActionMenuLabel,
|
|
23314
|
+
columnHeaderGroupedIndicator: tableColumnHeaderGroupedIndicatorLabel
|
|
23315
|
+
};
|
|
23316
|
+
/**
|
|
23317
|
+
* Label provider for the Nimble table (and its sub-components and columns)
|
|
23318
|
+
*/
|
|
23319
|
+
class LabelProviderTable extends LabelProviderBase {
|
|
23320
|
+
constructor() {
|
|
23321
|
+
super(...arguments);
|
|
23322
|
+
this.supportedLabels = supportedLabels;
|
|
23323
|
+
}
|
|
23324
|
+
}
|
|
23325
|
+
__decorate$1([
|
|
23326
|
+
attr({ attribute: 'group-collapse' })
|
|
23327
|
+
], LabelProviderTable.prototype, "groupCollapse", void 0);
|
|
23328
|
+
__decorate$1([
|
|
23329
|
+
attr({ attribute: 'group-expand' })
|
|
23330
|
+
], LabelProviderTable.prototype, "groupExpand", void 0);
|
|
23331
|
+
__decorate$1([
|
|
23332
|
+
attr({ attribute: 'groups-collapse-all' })
|
|
23333
|
+
], LabelProviderTable.prototype, "groupsCollapseAll", void 0);
|
|
23334
|
+
__decorate$1([
|
|
23335
|
+
attr({ attribute: 'cell-action-menu' })
|
|
23336
|
+
], LabelProviderTable.prototype, "cellActionMenu", void 0);
|
|
23337
|
+
__decorate$1([
|
|
23338
|
+
attr({ attribute: 'column-header-grouped-indicator' })
|
|
23339
|
+
], LabelProviderTable.prototype, "columnHeaderGroupedIndicator", void 0);
|
|
23340
|
+
const nimbleLabelProviderTable = LabelProviderTable.compose({
|
|
23341
|
+
baseName: 'label-provider-table'
|
|
23342
|
+
});
|
|
23343
|
+
DesignSystem.getOrCreate()
|
|
23344
|
+
.withPrefix('nimble')
|
|
23345
|
+
.register(nimbleLabelProviderTable());
|
|
23346
|
+
DesignSystem.tagFor(LabelProviderTable);
|
|
23347
|
+
|
|
23174
23348
|
const styles$t = css `
|
|
23175
23349
|
${display('flex')}
|
|
23176
23350
|
|
|
@@ -23951,7 +24125,7 @@
|
|
|
23951
24125
|
content-hidden
|
|
23952
24126
|
tabindex="-1"
|
|
23953
24127
|
>
|
|
23954
|
-
|
|
24128
|
+
${x => numericDecrementLabel.getValueFor(x)}
|
|
23955
24129
|
<${iconMinusWideTag}
|
|
23956
24130
|
slot="start"
|
|
23957
24131
|
>
|
|
@@ -23965,7 +24139,7 @@
|
|
|
23965
24139
|
content-hidden
|
|
23966
24140
|
tabindex="-1"
|
|
23967
24141
|
>
|
|
23968
|
-
|
|
24142
|
+
${x => numericIncrementLabel.getValueFor(x)}
|
|
23969
24143
|
<${iconAddTag}
|
|
23970
24144
|
slot="start">
|
|
23971
24145
|
</${iconAddTag}>
|
|
@@ -28571,7 +28745,7 @@
|
|
|
28571
28745
|
@mousedown="${(_x, c) => !(c.event.detail > 1)}"
|
|
28572
28746
|
>
|
|
28573
28747
|
<slot></slot>
|
|
28574
|
-
|
|
28748
|
+
${'' /* Omit title attribute for sort indicators because aria-sort is set on the 1st sorted column */}
|
|
28575
28749
|
${when(x => x.sortDirection === TableColumnSortDirection.ascending, html `
|
|
28576
28750
|
<${iconArrowUpTag} class="sort-indicator" aria-hidden="true"></${iconArrowUpTag}>
|
|
28577
28751
|
`)}
|
|
@@ -28579,7 +28753,7 @@
|
|
|
28579
28753
|
<${iconArrowDownTag} class="sort-indicator" aria-hidden="true"></${iconArrowDownTag}>
|
|
28580
28754
|
`)}
|
|
28581
28755
|
${when(x => x.isGrouped, html `
|
|
28582
|
-
<${iconTwoSquaresInBracketsTag} class="grouped-indicator"></${iconTwoSquaresInBracketsTag}>
|
|
28756
|
+
<${iconTwoSquaresInBracketsTag} class="grouped-indicator" title="${x => tableColumnHeaderGroupedIndicatorLabel.getValueFor(x)}"></${iconTwoSquaresInBracketsTag}>
|
|
28583
28757
|
`)}
|
|
28584
28758
|
</template>
|
|
28585
28759
|
`;
|
|
@@ -28766,7 +28940,7 @@
|
|
|
28766
28940
|
class="action-menu"
|
|
28767
28941
|
>
|
|
28768
28942
|
<${iconThreeDotsLineTag} slot="start"></${iconThreeDotsLineTag}>
|
|
28769
|
-
${x => x.actionMenuLabel}
|
|
28943
|
+
${x => x.actionMenuLabel ?? tableCellActionMenuLabel.getValueFor(x)}
|
|
28770
28944
|
<slot name="cellActionMenu" slot="menu"></slot>
|
|
28771
28945
|
</${menuButtonTag}>
|
|
28772
28946
|
`)}
|
|
@@ -29152,6 +29326,7 @@
|
|
|
29152
29326
|
tabindex="-1"
|
|
29153
29327
|
>
|
|
29154
29328
|
<${iconArrowExpanderRightTag} ${ref('expandIcon')} slot="start" class="expander-icon ${x => x.animationClass}"></${iconArrowExpanderRightTag}>
|
|
29329
|
+
${x => (x.expanded ? tableGroupCollapseLabel.getValueFor(x) : tableGroupExpandLabel.getValueFor(x))}
|
|
29155
29330
|
</${buttonTag}>
|
|
29156
29331
|
</span>
|
|
29157
29332
|
|
|
@@ -29297,9 +29472,11 @@
|
|
|
29297
29472
|
class="collapse-all-button ${x => `${x.showCollapseAll ? 'visible' : ''}`}"
|
|
29298
29473
|
content-hidden
|
|
29299
29474
|
appearance="${ButtonAppearance.ghost}"
|
|
29475
|
+
title="${x => tableGroupsCollapseAllLabel.getValueFor(x)}"
|
|
29300
29476
|
@click="${x => x.handleCollapseAllGroupRows()}"
|
|
29301
29477
|
>
|
|
29302
29478
|
<${iconTriangleTwoLinesHorizontalTag} slot="start"></${iconTriangleTwoLinesHorizontalTag}>
|
|
29479
|
+
${x => tableGroupsCollapseAllLabel.getValueFor(x)}
|
|
29303
29480
|
</${buttonTag}>
|
|
29304
29481
|
</span>
|
|
29305
29482
|
<span class="column-header-container">
|