@vonage/vivid 4.30.1 → 5.0.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/custom-elements.json +129 -172
- package/lib/accordion-item/accordion-item.d.ts +42 -1
- package/lib/action-group/action-group.d.ts +42 -1
- package/lib/alert/alert.d.ts +84 -2
- package/lib/audio-player/audio-player.d.ts +42 -1
- package/lib/avatar/avatar.d.ts +42 -1
- package/lib/badge/badge.d.ts +42 -1
- package/lib/banner/banner.d.ts +126 -3
- package/lib/breadcrumb/breadcrumb.d.ts +42 -1
- package/lib/breadcrumb-item/breadcrumb-item.d.ts +42 -1
- package/lib/button/button.d.ts +126 -3
- package/lib/calendar-event/calendar-event.d.ts +42 -1
- package/lib/card/card.d.ts +42 -1
- package/lib/checkbox/checkbox.d.ts +252 -7
- package/lib/combobox/combobox.d.ts +252 -6
- package/lib/data-grid/data-grid-cell.d.ts +419 -2
- package/lib/data-grid/data-grid-row.d.ts +380 -1
- package/lib/date-picker/date-picker.d.ts +336 -8
- package/lib/date-range-picker/date-range-picker.d.ts +168 -4
- package/lib/date-time-picker/date-time-picker.d.ts +336 -8
- package/lib/dial-pad/dial-pad.d.ts +42 -1
- package/lib/dialog/dialog.d.ts +84 -2
- package/lib/divider/divider.d.ts +42 -1
- package/lib/fab/fab.d.ts +42 -1
- package/lib/file-picker/file-picker.d.ts +252 -6
- package/lib/file-picker/locale.d.ts +1 -0
- package/lib/header/header.d.ts +42 -1
- package/lib/menu/menu.d.ts +84 -2
- package/lib/menu-item/menu-item.d.ts +84 -2
- package/lib/nav/nav.d.ts +42 -1
- package/lib/nav-disclosure/nav-disclosure.d.ts +84 -2
- package/lib/nav-item/nav-item.d.ts +84 -2
- package/lib/note/note.d.ts +42 -1
- package/lib/number-field/number-field.d.ts +336 -8
- package/lib/option/option.d.ts +84 -2
- package/lib/pagination/pagination.d.ts +42 -1
- package/lib/progress/progress.d.ts +42 -1
- package/lib/progress-ring/progress-ring.d.ts +42 -1
- package/lib/radio/radio.d.ts +126 -4
- package/lib/radio-group/radio-group.d.ts +42 -1
- package/lib/range-slider/range-slider.d.ts +126 -3
- package/lib/rich-text-editor/menubar/menubar.d.ts +42 -1
- package/lib/rich-text-editor/rich-text-editor.d.ts +42 -1
- package/lib/searchable-select/option-tag.d.ts +42 -1
- package/lib/searchable-select/searchable-select.d.ts +336 -8
- package/lib/select/select.d.ts +294 -7
- package/lib/selectable-box/selectable-box.d.ts +42 -2
- package/lib/slider/slider.d.ts +126 -3
- package/lib/split-button/split-button.d.ts +126 -3
- package/lib/switch/switch.d.ts +84 -2
- package/lib/tab/tab.d.ts +126 -3
- package/lib/tab-panel/tab-panel.d.ts +42 -1
- package/lib/tag/tag.d.ts +126 -3
- package/lib/tag-group/tag-group.d.ts +42 -1
- package/lib/text-area/text-area.d.ts +294 -7
- package/lib/text-field/text-field.d.ts +336 -8
- package/lib/time-picker/time-picker.d.ts +168 -4
- package/lib/toggletip/locale.d.ts +3 -0
- package/lib/toggletip/toggletip.d.ts +430 -11
- package/lib/tooltip/tooltip.d.ts +42 -1
- package/lib/tree-item/tree-item.d.ts +84 -2
- package/lib/tree-view/tree-view.d.ts +42 -1
- package/lib/video-player/video-player.d.ts +42 -1
- package/locales/de-DE.cjs +8 -1
- package/locales/de-DE.js +8 -1
- package/locales/en-GB.cjs +8 -1
- package/locales/en-GB.js +8 -1
- package/locales/en-US.cjs +8 -1
- package/locales/en-US.js +8 -1
- package/locales/ja-JP.cjs +8 -1
- package/locales/ja-JP.js +8 -1
- package/locales/zh-CN.cjs +8 -1
- package/locales/zh-CN.js +8 -1
- package/package.json +1 -1
- package/shared/anchored.js +1 -1
- package/shared/aria/aria-mixin.d.ts +43 -2
- package/shared/aria/attribute-removal.d.ts +3 -0
- package/shared/aria/delegate-aria-behavior.d.ts +0 -3
- package/shared/aria/delegates-aria.d.ts +42 -1
- package/shared/aria/host-semantics.d.ts +42 -1
- package/shared/definition13.cjs +1 -1
- package/shared/definition13.js +1 -1
- package/shared/definition15.cjs +6 -2
- package/shared/definition15.js +6 -2
- package/shared/definition17.cjs +61 -78
- package/shared/definition17.js +61 -78
- package/shared/definition26.cjs +37 -2
- package/shared/definition26.js +37 -2
- package/shared/definition30.cjs +8 -4
- package/shared/definition30.js +8 -4
- package/shared/definition31.cjs +7 -7
- package/shared/definition31.js +7 -7
- package/shared/definition42.cjs +0 -4
- package/shared/definition42.js +0 -4
- package/shared/definition47.cjs +0 -8
- package/shared/definition47.js +1 -9
- package/shared/definition5.cjs +1 -1
- package/shared/definition5.js +1 -1
- package/shared/definition54.cjs +1 -1
- package/shared/definition54.js +1 -1
- package/shared/definition60.cjs +7 -6
- package/shared/definition60.js +7 -6
- package/shared/definition62.cjs +1 -1
- package/shared/definition62.js +1 -1
- package/shared/definition63.cjs +1 -2
- package/shared/definition63.js +1 -2
- package/shared/delegates-aria.cjs +4 -25
- package/shared/delegates-aria.js +4 -25
- package/shared/divider.cjs +8 -3
- package/shared/divider.js +8 -3
- package/shared/feedback/feedback-message.d.ts +42 -1
- package/shared/feedback/mixins.d.ts +84 -2
- package/shared/foundation/button/button.d.ts +84 -2
- package/shared/foundation/form-associated/form-associated.d.ts +84 -2
- package/shared/foundation/vivid-element/vivid-element.d.ts +43 -2
- package/shared/listbox.cjs +1 -1
- package/shared/listbox.js +1 -1
- package/shared/localization/Locale.d.ts +2 -0
- package/shared/option.cjs +15 -2
- package/shared/option.js +16 -3
- package/shared/patterns/affix.d.ts +84 -2
- package/shared/patterns/anchored.d.ts +84 -2
- package/shared/patterns/char-count/char-count.d.ts +42 -1
- package/shared/patterns/form-elements/form-element.d.ts +84 -2
- package/shared/patterns/form-elements/with-error-text.d.ts +126 -3
- package/shared/patterns/form-elements/with-success-text.d.ts +42 -1
- package/shared/patterns/linkable.d.ts +42 -1
- package/shared/patterns/localized.d.ts +42 -1
- package/shared/patterns/trapped-focus.d.ts +42 -1
- package/shared/picker-field/mixins/calendar-picker.d.ts +84 -2
- package/shared/picker-field/mixins/calendar-picker.template.d.ts +84 -2
- package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +42 -1
- package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +168 -4
- package/shared/picker-field/mixins/single-date-picker.d.ts +252 -6
- package/shared/picker-field/mixins/single-value-picker.d.ts +84 -2
- package/shared/picker-field/mixins/time-selection-picker.d.ts +168 -4
- package/shared/picker-field/mixins/time-selection-picker.template.d.ts +168 -4
- package/shared/picker-field/picker-field.d.ts +252 -6
- package/shared/vivid-element.cjs +56 -5
- package/shared/vivid-element.js +56 -5
- package/vivid.api.json +2 -93
package/shared/definition17.cjs
CHANGED
|
@@ -5,6 +5,7 @@ const vividElement = require('./vivid-element.cjs');
|
|
|
5
5
|
const definition = require('./definition66.cjs');
|
|
6
6
|
const keyCodes = require('./key-codes.cjs');
|
|
7
7
|
const repeat = require('./repeat.cjs');
|
|
8
|
+
const hostSemantics = require('./host-semantics.cjs');
|
|
8
9
|
const children = require('./children.cjs');
|
|
9
10
|
const slotted = require('./slotted.cjs');
|
|
10
11
|
const localized = require('./localized.cjs');
|
|
@@ -72,7 +73,7 @@ const defaultHeaderCellContentsTemplate = vividElement.html`
|
|
|
72
73
|
${(x) => x.columnDefinition.title === void 0 ? x.columnDefinition.columnDataKey : x.columnDefinition.title}
|
|
73
74
|
</template>
|
|
74
75
|
`;
|
|
75
|
-
class DataGridCell extends localized.Localized(vividElement.VividElement) {
|
|
76
|
+
class DataGridCell extends localized.Localized(hostSemantics.HostSemantics(vividElement.VividElement)) {
|
|
76
77
|
constructor() {
|
|
77
78
|
super(...arguments);
|
|
78
79
|
// eslint-disable-next-line @repo/repo/no-attribute-default-value
|
|
@@ -90,7 +91,21 @@ class DataGridCell extends localized.Localized(vividElement.VividElement) {
|
|
|
90
91
|
};
|
|
91
92
|
this._selectable = false;
|
|
92
93
|
this.selected = false;
|
|
94
|
+
/**
|
|
95
|
+
* Indicates the selected status.
|
|
96
|
+
*
|
|
97
|
+
* @deprecated For setting selected state, please use `selected` property instead.
|
|
98
|
+
* @public
|
|
99
|
+
* HTML Attribute: aria-selected
|
|
100
|
+
*/
|
|
93
101
|
this.ariaSelected = null;
|
|
102
|
+
/**
|
|
103
|
+
* Indicates the sort status.
|
|
104
|
+
*
|
|
105
|
+
* @deprecated To set the sorting visual style please use `sortDirection` property.
|
|
106
|
+
* @public
|
|
107
|
+
* HTML Attribute: aria-sort
|
|
108
|
+
*/
|
|
94
109
|
this.ariaSort = null;
|
|
95
110
|
}
|
|
96
111
|
/**
|
|
@@ -280,54 +295,25 @@ class DataGridCell extends localized.Localized(vividElement.VividElement) {
|
|
|
280
295
|
this.customCellView = null;
|
|
281
296
|
}
|
|
282
297
|
}
|
|
283
|
-
/**
|
|
284
|
-
*
|
|
285
|
-
* @private
|
|
286
|
-
*/
|
|
287
|
-
calculateAriaSelectedValue() {
|
|
288
|
-
if (this._selectable && this.selected) return "true";
|
|
289
|
-
if (this._selectable && !this.selected) return "false";
|
|
290
|
-
return null;
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* @internal
|
|
294
|
-
*/
|
|
295
|
-
_selectableChanged() {
|
|
296
|
-
this.ariaSelected = this.calculateAriaSelectedValue();
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* @internal
|
|
300
|
-
*/
|
|
301
|
-
selectedChanged() {
|
|
302
|
-
this.ariaSelected = this.calculateAriaSelectedValue();
|
|
303
|
-
}
|
|
304
298
|
/**
|
|
305
299
|
* @internal
|
|
306
300
|
*/
|
|
307
|
-
ariaSelectedChanged(
|
|
301
|
+
ariaSelectedChanged(prevValue, newValue) {
|
|
302
|
+
super.ariaSelectedChanged(prevValue, newValue);
|
|
308
303
|
this._selectable = newValue !== null;
|
|
309
304
|
this.selected = newValue === "true";
|
|
310
305
|
}
|
|
311
306
|
/**
|
|
312
307
|
* @internal
|
|
313
308
|
*/
|
|
314
|
-
ariaSortChanged(
|
|
309
|
+
ariaSortChanged(oldValue, newValue) {
|
|
310
|
+
super.ariaSortChanged(oldValue, newValue);
|
|
315
311
|
if (newValue === null) {
|
|
316
312
|
this.sortDirection = void 0;
|
|
317
313
|
return;
|
|
318
314
|
}
|
|
319
315
|
this.sortDirection = newValue;
|
|
320
316
|
}
|
|
321
|
-
/**
|
|
322
|
-
* @internal
|
|
323
|
-
*/
|
|
324
|
-
sortDirectionChanged(_oldValue, newValue) {
|
|
325
|
-
if (newValue === void 0) {
|
|
326
|
-
this.ariaSort = null;
|
|
327
|
-
return;
|
|
328
|
-
}
|
|
329
|
-
this.ariaSort = newValue;
|
|
330
|
-
}
|
|
331
317
|
#getColumnDataKey() {
|
|
332
318
|
return this.columnDefinition && this.columnDefinition.columnDataKey ? this.columnDefinition.columnDataKey : this.textContent.trim();
|
|
333
319
|
}
|
|
@@ -373,12 +359,6 @@ __decorateClass$2([
|
|
|
373
359
|
__decorateClass$2([
|
|
374
360
|
vividElement.attr({ mode: "boolean" })
|
|
375
361
|
], DataGridCell.prototype, "selected");
|
|
376
|
-
__decorateClass$2([
|
|
377
|
-
vividElement.attr({ attribute: "aria-selected", mode: "fromView" })
|
|
378
|
-
], DataGridCell.prototype, "ariaSelected");
|
|
379
|
-
__decorateClass$2([
|
|
380
|
-
vividElement.attr({ attribute: "aria-sort" })
|
|
381
|
-
], DataGridCell.prototype, "ariaSort");
|
|
382
362
|
__decorateClass$2([
|
|
383
363
|
vividElement.attr({ attribute: "sort-direction" })
|
|
384
364
|
], DataGridCell.prototype, "sortDirection");
|
|
@@ -392,7 +372,7 @@ var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
|
392
372
|
if (result) __defProp$1(target, key, result);
|
|
393
373
|
return result;
|
|
394
374
|
};
|
|
395
|
-
class DataGridRow extends vividElement.VividElement {
|
|
375
|
+
class DataGridRow extends hostSemantics.HostSemantics(vividElement.VividElement) {
|
|
396
376
|
constructor() {
|
|
397
377
|
super(...arguments);
|
|
398
378
|
// eslint-disable-next-line @repo/repo/no-attribute-default-value
|
|
@@ -408,6 +388,13 @@ class DataGridRow extends vividElement.VividElement {
|
|
|
408
388
|
this.updateRowStyle = () => {
|
|
409
389
|
this.style.gridTemplateColumns = this.gridTemplateColumns;
|
|
410
390
|
};
|
|
391
|
+
/**
|
|
392
|
+
* Indicates the selected status.
|
|
393
|
+
*
|
|
394
|
+
* @deprecated
|
|
395
|
+
* @public
|
|
396
|
+
* HTML Attribute: aria-selected
|
|
397
|
+
*/
|
|
411
398
|
this.ariaSelected = null;
|
|
412
399
|
this._selectable = false;
|
|
413
400
|
this.selected = false;
|
|
@@ -521,30 +508,11 @@ class DataGridRow extends vividElement.VividElement {
|
|
|
521
508
|
/**
|
|
522
509
|
* @internal
|
|
523
510
|
*/
|
|
524
|
-
ariaSelectedChanged(
|
|
511
|
+
ariaSelectedChanged(oldValue, newValue) {
|
|
512
|
+
super.ariaSelectedChanged(oldValue, newValue);
|
|
525
513
|
this._selectable = newValue !== null;
|
|
526
514
|
this.selected = newValue === "true";
|
|
527
515
|
}
|
|
528
|
-
/**
|
|
529
|
-
* @internal
|
|
530
|
-
*/
|
|
531
|
-
_calculateAriaSelectedValue() {
|
|
532
|
-
if (this._selectable && this.selected) return "true";
|
|
533
|
-
if (this._selectable && !this.selected) return "false";
|
|
534
|
-
return null;
|
|
535
|
-
}
|
|
536
|
-
/**
|
|
537
|
-
* @internal
|
|
538
|
-
*/
|
|
539
|
-
_selectableChanged() {
|
|
540
|
-
this.ariaSelected = this._calculateAriaSelectedValue();
|
|
541
|
-
}
|
|
542
|
-
/**
|
|
543
|
-
* @internal
|
|
544
|
-
*/
|
|
545
|
-
selectedChanged() {
|
|
546
|
-
this.ariaSelected = this._calculateAriaSelectedValue();
|
|
547
|
-
}
|
|
548
516
|
}
|
|
549
517
|
// @ts-expect-error Type is incorrectly non-optional
|
|
550
518
|
__decorateClass$1([
|
|
@@ -580,9 +548,6 @@ __decorateClass$1([
|
|
|
580
548
|
__decorateClass$1([
|
|
581
549
|
vividElement.observable
|
|
582
550
|
], DataGridRow.prototype, "cellElements");
|
|
583
|
-
__decorateClass$1([
|
|
584
|
-
vividElement.attr({ attribute: "aria-selected" })
|
|
585
|
-
], DataGridRow.prototype, "ariaSelected");
|
|
586
551
|
__decorateClass$1([
|
|
587
552
|
vividElement.observable
|
|
588
553
|
], DataGridRow.prototype, "_selectable");
|
|
@@ -640,7 +605,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
640
605
|
);
|
|
641
606
|
const focusRow = this.rowElements[focusRowIndex];
|
|
642
607
|
const cells = focusRow.querySelectorAll(
|
|
643
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"], [cell
|
|
608
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"], [data-vvd-component="data-grid-cell"]'
|
|
644
609
|
);
|
|
645
610
|
const focusColumnIndex = Math.max(
|
|
646
611
|
0,
|
|
@@ -656,7 +621,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
656
621
|
if (mutations && mutations.length) {
|
|
657
622
|
mutations.forEach((mutation) => {
|
|
658
623
|
mutation.addedNodes.forEach((newNode) => {
|
|
659
|
-
if (newNode.nodeType === 1 && newNode.getAttribute("role") === "row") {
|
|
624
|
+
if (newNode.nodeType === 1 && (newNode.getAttribute("role") === "row" || newNode.getAttribute("row-type") === "default")) {
|
|
660
625
|
newNode.columnDefinitions = this.columnDefinitions;
|
|
661
626
|
}
|
|
662
627
|
});
|
|
@@ -698,7 +663,8 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
698
663
|
}
|
|
699
664
|
};
|
|
700
665
|
this.#handleClick = ({ target, ctrlKey, shiftKey, metaKey }) => {
|
|
701
|
-
if (target.getAttribute("role") !== "gridcell")
|
|
666
|
+
if (target.getAttribute("role") !== "gridcell" || target.getAttribute("cell-type") !== "default")
|
|
667
|
+
return;
|
|
702
668
|
if (this.selectionMode === DataGridSelectionMode.singleCell || this.selectionMode === DataGridSelectionMode.multiCell) {
|
|
703
669
|
this.#handleCellSelection({ target, ctrlKey, shiftKey, metaKey });
|
|
704
670
|
return;
|
|
@@ -751,10 +717,10 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
751
717
|
*/
|
|
752
718
|
this._resetSelection = (clear = false) => {
|
|
753
719
|
const cells = Array.from(
|
|
754
|
-
this.querySelectorAll('[role="gridcell"], [cell-type]')
|
|
720
|
+
this.querySelectorAll('[role="gridcell"], [cell-type="default"]')
|
|
755
721
|
);
|
|
756
722
|
const rows = Array.from(
|
|
757
|
-
this.querySelectorAll('[role="row"], [row-type]')
|
|
723
|
+
this.querySelectorAll('[role="row"], [row-type="default"]')
|
|
758
724
|
);
|
|
759
725
|
if (this.selectionMode === DataGridSelectionMode.singleCell || this.selectionMode === DataGridSelectionMode.multiCell) {
|
|
760
726
|
for (const cell of cells) {
|
|
@@ -1158,7 +1124,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
1158
1124
|
applyFixedColumnStyling() {
|
|
1159
1125
|
this.rowElements.forEach((row) => {
|
|
1160
1126
|
const cells = row.querySelectorAll(
|
|
1161
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1127
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
|
|
1162
1128
|
);
|
|
1163
1129
|
this.fixedColumnsPositions.forEach((position, index) => {
|
|
1164
1130
|
if (index < cells.length) {
|
|
@@ -1178,7 +1144,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
1178
1144
|
this.fixedColumnsPositions = [];
|
|
1179
1145
|
if (this.rowElements.length === 0) return;
|
|
1180
1146
|
const cells = this.rowElements[0].querySelectorAll(
|
|
1181
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1147
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
|
|
1182
1148
|
);
|
|
1183
1149
|
let accumulator = 0;
|
|
1184
1150
|
for (let i = 0; i < Math.min(this.fixedColumns, cells.length); i++) {
|
|
@@ -1197,7 +1163,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
1197
1163
|
}
|
|
1198
1164
|
this.rowElements.forEach((row) => {
|
|
1199
1165
|
const cells = row.querySelectorAll(
|
|
1200
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1166
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
|
|
1201
1167
|
);
|
|
1202
1168
|
this.fixedColumnsPositions.forEach((_, index) => {
|
|
1203
1169
|
if (index < cells.length) {
|
|
@@ -1305,7 +1271,7 @@ const DataGridTemplate = (context) => {
|
|
|
1305
1271
|
:defaultRowItemTemplate="${rowItemTemplate}"
|
|
1306
1272
|
${children.children({
|
|
1307
1273
|
property: "rowElements",
|
|
1308
|
-
filter: slotted.elements("[role=row]")
|
|
1274
|
+
filter: slotted.elements("[role=row],[data-vvd-component=data-grid-row]")
|
|
1309
1275
|
})}
|
|
1310
1276
|
>
|
|
1311
1277
|
<div class="base">
|
|
@@ -1316,6 +1282,11 @@ const DataGridTemplate = (context) => {
|
|
|
1316
1282
|
`;
|
|
1317
1283
|
};
|
|
1318
1284
|
|
|
1285
|
+
function calculateAriaSelectedValue$1(x) {
|
|
1286
|
+
if (x._selectable && x.selected) return "true";
|
|
1287
|
+
if (x._selectable && !x.selected) return "false";
|
|
1288
|
+
return null;
|
|
1289
|
+
}
|
|
1319
1290
|
function createCellItemTemplate(context) {
|
|
1320
1291
|
const cellTag = context.tagFor(DataGridCell);
|
|
1321
1292
|
return vividElement.html`
|
|
@@ -1344,14 +1315,17 @@ const DataGridRowTemplate = (context) => {
|
|
|
1344
1315
|
const getBaseClasses = (x) => classNames.classNames("base", ["selected", !!x.selected]);
|
|
1345
1316
|
return vividElement.html`
|
|
1346
1317
|
<template
|
|
1347
|
-
|
|
1318
|
+
${hostSemantics.applyHostSemantics({
|
|
1319
|
+
role: "row",
|
|
1320
|
+
ariaSelected: calculateAriaSelectedValue$1
|
|
1321
|
+
})}
|
|
1348
1322
|
class="${(x) => x.rowType !== "default" ? x.rowType : ""}"
|
|
1349
1323
|
:defaultCellItemTemplate="${cellItemTemplate}"
|
|
1350
1324
|
:defaultHeaderCellItemTemplate="${headerCellItemTemplate}"
|
|
1351
1325
|
${children.children({
|
|
1352
1326
|
property: "cellElements",
|
|
1353
1327
|
filter: slotted.elements(
|
|
1354
|
-
'[role="cell"],[role="gridcell"],[role="columnheader"],[role="rowheader"],[cell
|
|
1328
|
+
'[role="cell"],[role="gridcell"],[role="columnheader"],[role="rowheader"],[data-vvd-component="data-grid-cell"]'
|
|
1355
1329
|
)
|
|
1356
1330
|
})}
|
|
1357
1331
|
>
|
|
@@ -1377,6 +1351,11 @@ function getSortIcon(x) {
|
|
|
1377
1351
|
}
|
|
1378
1352
|
return "sort-solid";
|
|
1379
1353
|
}
|
|
1354
|
+
function calculateAriaSelectedValue(x) {
|
|
1355
|
+
if (x._selectable && x.selected) return "true";
|
|
1356
|
+
if (x._selectable && !x.selected) return "false";
|
|
1357
|
+
return null;
|
|
1358
|
+
}
|
|
1380
1359
|
function renderSortIcons(c) {
|
|
1381
1360
|
const iconTag = c.tagFor(definition$1.Icon);
|
|
1382
1361
|
return vividElement.html`
|
|
@@ -1400,7 +1379,11 @@ const DataGridCellTemplate = (context) => {
|
|
|
1400
1379
|
return vividElement.html`
|
|
1401
1380
|
<template
|
|
1402
1381
|
tabindex="-1"
|
|
1403
|
-
|
|
1382
|
+
${hostSemantics.applyHostSemantics({
|
|
1383
|
+
role: (x) => DataGridCellRole[x.cellType] ?? DataGridCellRole.default,
|
|
1384
|
+
ariaSelected: calculateAriaSelectedValue,
|
|
1385
|
+
ariaSort: (x) => x.sortDirection ?? null
|
|
1386
|
+
})}
|
|
1404
1387
|
@click="${(x) => x._handleInteraction()}"
|
|
1405
1388
|
@keydown="${(x, c) => handleKeyDown(x, c.event)}"
|
|
1406
1389
|
>
|
|
@@ -1408,7 +1391,7 @@ const DataGridCellTemplate = (context) => {
|
|
|
1408
1391
|
class="${getBaseClasses}"
|
|
1409
1392
|
role="${(x) => shouldShowSortIcons(x) ? "button" : void 0}"
|
|
1410
1393
|
>
|
|
1411
|
-
${(x) => x.
|
|
1394
|
+
${(x) => x.selected ? vividElement.html`<${visuallyHiddenTagName}>${(x2) => x2.locale.dataGrid.cell.selected}</${visuallyHiddenTagName}>` : null}
|
|
1412
1395
|
<slot></slot>
|
|
1413
1396
|
${when.when(
|
|
1414
1397
|
shouldShowSortIcons,
|
package/shared/definition17.js
CHANGED
|
@@ -3,6 +3,7 @@ import { h as html, V as VividElement, a as attr, o as observable, D as DOM, O a
|
|
|
3
3
|
import { V as VisuallyHidden, v as visuallyHiddenDefinition } from './definition66.js';
|
|
4
4
|
import { b as keyEscape, j as keyFunction2, k as keyEnter, d as keyEnd, g as keyHome, h as keyArrowRight, i as keyArrowLeft, l as keyPageDown, m as keyPageUp, f as keyArrowDown, e as keyArrowUp, a as keySpace } from './key-codes.js';
|
|
5
5
|
import { R as RepeatDirective } from './repeat.js';
|
|
6
|
+
import { H as HostSemantics, a as applyHostSemantics } from './host-semantics.js';
|
|
6
7
|
import { c as children } from './children.js';
|
|
7
8
|
import { s as slotted, e as elements } from './slotted.js';
|
|
8
9
|
import { L as Localized } from './localized.js';
|
|
@@ -70,7 +71,7 @@ const defaultHeaderCellContentsTemplate = html`
|
|
|
70
71
|
${(x) => x.columnDefinition.title === void 0 ? x.columnDefinition.columnDataKey : x.columnDefinition.title}
|
|
71
72
|
</template>
|
|
72
73
|
`;
|
|
73
|
-
class DataGridCell extends Localized(VividElement) {
|
|
74
|
+
class DataGridCell extends Localized(HostSemantics(VividElement)) {
|
|
74
75
|
constructor() {
|
|
75
76
|
super(...arguments);
|
|
76
77
|
// eslint-disable-next-line @repo/repo/no-attribute-default-value
|
|
@@ -88,7 +89,21 @@ class DataGridCell extends Localized(VividElement) {
|
|
|
88
89
|
};
|
|
89
90
|
this._selectable = false;
|
|
90
91
|
this.selected = false;
|
|
92
|
+
/**
|
|
93
|
+
* Indicates the selected status.
|
|
94
|
+
*
|
|
95
|
+
* @deprecated For setting selected state, please use `selected` property instead.
|
|
96
|
+
* @public
|
|
97
|
+
* HTML Attribute: aria-selected
|
|
98
|
+
*/
|
|
91
99
|
this.ariaSelected = null;
|
|
100
|
+
/**
|
|
101
|
+
* Indicates the sort status.
|
|
102
|
+
*
|
|
103
|
+
* @deprecated To set the sorting visual style please use `sortDirection` property.
|
|
104
|
+
* @public
|
|
105
|
+
* HTML Attribute: aria-sort
|
|
106
|
+
*/
|
|
92
107
|
this.ariaSort = null;
|
|
93
108
|
}
|
|
94
109
|
/**
|
|
@@ -278,54 +293,25 @@ class DataGridCell extends Localized(VividElement) {
|
|
|
278
293
|
this.customCellView = null;
|
|
279
294
|
}
|
|
280
295
|
}
|
|
281
|
-
/**
|
|
282
|
-
*
|
|
283
|
-
* @private
|
|
284
|
-
*/
|
|
285
|
-
calculateAriaSelectedValue() {
|
|
286
|
-
if (this._selectable && this.selected) return "true";
|
|
287
|
-
if (this._selectable && !this.selected) return "false";
|
|
288
|
-
return null;
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* @internal
|
|
292
|
-
*/
|
|
293
|
-
_selectableChanged() {
|
|
294
|
-
this.ariaSelected = this.calculateAriaSelectedValue();
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* @internal
|
|
298
|
-
*/
|
|
299
|
-
selectedChanged() {
|
|
300
|
-
this.ariaSelected = this.calculateAriaSelectedValue();
|
|
301
|
-
}
|
|
302
296
|
/**
|
|
303
297
|
* @internal
|
|
304
298
|
*/
|
|
305
|
-
ariaSelectedChanged(
|
|
299
|
+
ariaSelectedChanged(prevValue, newValue) {
|
|
300
|
+
super.ariaSelectedChanged(prevValue, newValue);
|
|
306
301
|
this._selectable = newValue !== null;
|
|
307
302
|
this.selected = newValue === "true";
|
|
308
303
|
}
|
|
309
304
|
/**
|
|
310
305
|
* @internal
|
|
311
306
|
*/
|
|
312
|
-
ariaSortChanged(
|
|
307
|
+
ariaSortChanged(oldValue, newValue) {
|
|
308
|
+
super.ariaSortChanged(oldValue, newValue);
|
|
313
309
|
if (newValue === null) {
|
|
314
310
|
this.sortDirection = void 0;
|
|
315
311
|
return;
|
|
316
312
|
}
|
|
317
313
|
this.sortDirection = newValue;
|
|
318
314
|
}
|
|
319
|
-
/**
|
|
320
|
-
* @internal
|
|
321
|
-
*/
|
|
322
|
-
sortDirectionChanged(_oldValue, newValue) {
|
|
323
|
-
if (newValue === void 0) {
|
|
324
|
-
this.ariaSort = null;
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
this.ariaSort = newValue;
|
|
328
|
-
}
|
|
329
315
|
#getColumnDataKey() {
|
|
330
316
|
return this.columnDefinition && this.columnDefinition.columnDataKey ? this.columnDefinition.columnDataKey : this.textContent.trim();
|
|
331
317
|
}
|
|
@@ -371,12 +357,6 @@ __decorateClass$2([
|
|
|
371
357
|
__decorateClass$2([
|
|
372
358
|
attr({ mode: "boolean" })
|
|
373
359
|
], DataGridCell.prototype, "selected");
|
|
374
|
-
__decorateClass$2([
|
|
375
|
-
attr({ attribute: "aria-selected", mode: "fromView" })
|
|
376
|
-
], DataGridCell.prototype, "ariaSelected");
|
|
377
|
-
__decorateClass$2([
|
|
378
|
-
attr({ attribute: "aria-sort" })
|
|
379
|
-
], DataGridCell.prototype, "ariaSort");
|
|
380
360
|
__decorateClass$2([
|
|
381
361
|
attr({ attribute: "sort-direction" })
|
|
382
362
|
], DataGridCell.prototype, "sortDirection");
|
|
@@ -390,7 +370,7 @@ var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
|
390
370
|
if (result) __defProp$1(target, key, result);
|
|
391
371
|
return result;
|
|
392
372
|
};
|
|
393
|
-
class DataGridRow extends VividElement {
|
|
373
|
+
class DataGridRow extends HostSemantics(VividElement) {
|
|
394
374
|
constructor() {
|
|
395
375
|
super(...arguments);
|
|
396
376
|
// eslint-disable-next-line @repo/repo/no-attribute-default-value
|
|
@@ -406,6 +386,13 @@ class DataGridRow extends VividElement {
|
|
|
406
386
|
this.updateRowStyle = () => {
|
|
407
387
|
this.style.gridTemplateColumns = this.gridTemplateColumns;
|
|
408
388
|
};
|
|
389
|
+
/**
|
|
390
|
+
* Indicates the selected status.
|
|
391
|
+
*
|
|
392
|
+
* @deprecated
|
|
393
|
+
* @public
|
|
394
|
+
* HTML Attribute: aria-selected
|
|
395
|
+
*/
|
|
409
396
|
this.ariaSelected = null;
|
|
410
397
|
this._selectable = false;
|
|
411
398
|
this.selected = false;
|
|
@@ -519,30 +506,11 @@ class DataGridRow extends VividElement {
|
|
|
519
506
|
/**
|
|
520
507
|
* @internal
|
|
521
508
|
*/
|
|
522
|
-
ariaSelectedChanged(
|
|
509
|
+
ariaSelectedChanged(oldValue, newValue) {
|
|
510
|
+
super.ariaSelectedChanged(oldValue, newValue);
|
|
523
511
|
this._selectable = newValue !== null;
|
|
524
512
|
this.selected = newValue === "true";
|
|
525
513
|
}
|
|
526
|
-
/**
|
|
527
|
-
* @internal
|
|
528
|
-
*/
|
|
529
|
-
_calculateAriaSelectedValue() {
|
|
530
|
-
if (this._selectable && this.selected) return "true";
|
|
531
|
-
if (this._selectable && !this.selected) return "false";
|
|
532
|
-
return null;
|
|
533
|
-
}
|
|
534
|
-
/**
|
|
535
|
-
* @internal
|
|
536
|
-
*/
|
|
537
|
-
_selectableChanged() {
|
|
538
|
-
this.ariaSelected = this._calculateAriaSelectedValue();
|
|
539
|
-
}
|
|
540
|
-
/**
|
|
541
|
-
* @internal
|
|
542
|
-
*/
|
|
543
|
-
selectedChanged() {
|
|
544
|
-
this.ariaSelected = this._calculateAriaSelectedValue();
|
|
545
|
-
}
|
|
546
514
|
}
|
|
547
515
|
// @ts-expect-error Type is incorrectly non-optional
|
|
548
516
|
__decorateClass$1([
|
|
@@ -578,9 +546,6 @@ __decorateClass$1([
|
|
|
578
546
|
__decorateClass$1([
|
|
579
547
|
observable
|
|
580
548
|
], DataGridRow.prototype, "cellElements");
|
|
581
|
-
__decorateClass$1([
|
|
582
|
-
attr({ attribute: "aria-selected" })
|
|
583
|
-
], DataGridRow.prototype, "ariaSelected");
|
|
584
549
|
__decorateClass$1([
|
|
585
550
|
observable
|
|
586
551
|
], DataGridRow.prototype, "_selectable");
|
|
@@ -638,7 +603,7 @@ const _DataGrid = class _DataGrid extends VividElement {
|
|
|
638
603
|
);
|
|
639
604
|
const focusRow = this.rowElements[focusRowIndex];
|
|
640
605
|
const cells = focusRow.querySelectorAll(
|
|
641
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"], [cell
|
|
606
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"], [data-vvd-component="data-grid-cell"]'
|
|
642
607
|
);
|
|
643
608
|
const focusColumnIndex = Math.max(
|
|
644
609
|
0,
|
|
@@ -654,7 +619,7 @@ const _DataGrid = class _DataGrid extends VividElement {
|
|
|
654
619
|
if (mutations && mutations.length) {
|
|
655
620
|
mutations.forEach((mutation) => {
|
|
656
621
|
mutation.addedNodes.forEach((newNode) => {
|
|
657
|
-
if (newNode.nodeType === 1 && newNode.getAttribute("role") === "row") {
|
|
622
|
+
if (newNode.nodeType === 1 && (newNode.getAttribute("role") === "row" || newNode.getAttribute("row-type") === "default")) {
|
|
658
623
|
newNode.columnDefinitions = this.columnDefinitions;
|
|
659
624
|
}
|
|
660
625
|
});
|
|
@@ -696,7 +661,8 @@ const _DataGrid = class _DataGrid extends VividElement {
|
|
|
696
661
|
}
|
|
697
662
|
};
|
|
698
663
|
this.#handleClick = ({ target, ctrlKey, shiftKey, metaKey }) => {
|
|
699
|
-
if (target.getAttribute("role") !== "gridcell")
|
|
664
|
+
if (target.getAttribute("role") !== "gridcell" || target.getAttribute("cell-type") !== "default")
|
|
665
|
+
return;
|
|
700
666
|
if (this.selectionMode === DataGridSelectionMode.singleCell || this.selectionMode === DataGridSelectionMode.multiCell) {
|
|
701
667
|
this.#handleCellSelection({ target, ctrlKey, shiftKey, metaKey });
|
|
702
668
|
return;
|
|
@@ -749,10 +715,10 @@ const _DataGrid = class _DataGrid extends VividElement {
|
|
|
749
715
|
*/
|
|
750
716
|
this._resetSelection = (clear = false) => {
|
|
751
717
|
const cells = Array.from(
|
|
752
|
-
this.querySelectorAll('[role="gridcell"], [cell-type]')
|
|
718
|
+
this.querySelectorAll('[role="gridcell"], [cell-type="default"]')
|
|
753
719
|
);
|
|
754
720
|
const rows = Array.from(
|
|
755
|
-
this.querySelectorAll('[role="row"], [row-type]')
|
|
721
|
+
this.querySelectorAll('[role="row"], [row-type="default"]')
|
|
756
722
|
);
|
|
757
723
|
if (this.selectionMode === DataGridSelectionMode.singleCell || this.selectionMode === DataGridSelectionMode.multiCell) {
|
|
758
724
|
for (const cell of cells) {
|
|
@@ -1156,7 +1122,7 @@ const _DataGrid = class _DataGrid extends VividElement {
|
|
|
1156
1122
|
applyFixedColumnStyling() {
|
|
1157
1123
|
this.rowElements.forEach((row) => {
|
|
1158
1124
|
const cells = row.querySelectorAll(
|
|
1159
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1125
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
|
|
1160
1126
|
);
|
|
1161
1127
|
this.fixedColumnsPositions.forEach((position, index) => {
|
|
1162
1128
|
if (index < cells.length) {
|
|
@@ -1176,7 +1142,7 @@ const _DataGrid = class _DataGrid extends VividElement {
|
|
|
1176
1142
|
this.fixedColumnsPositions = [];
|
|
1177
1143
|
if (this.rowElements.length === 0) return;
|
|
1178
1144
|
const cells = this.rowElements[0].querySelectorAll(
|
|
1179
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1145
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
|
|
1180
1146
|
);
|
|
1181
1147
|
let accumulator = 0;
|
|
1182
1148
|
for (let i = 0; i < Math.min(this.fixedColumns, cells.length); i++) {
|
|
@@ -1195,7 +1161,7 @@ const _DataGrid = class _DataGrid extends VividElement {
|
|
|
1195
1161
|
}
|
|
1196
1162
|
this.rowElements.forEach((row) => {
|
|
1197
1163
|
const cells = row.querySelectorAll(
|
|
1198
|
-
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1164
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
|
|
1199
1165
|
);
|
|
1200
1166
|
this.fixedColumnsPositions.forEach((_, index) => {
|
|
1201
1167
|
if (index < cells.length) {
|
|
@@ -1303,7 +1269,7 @@ const DataGridTemplate = (context) => {
|
|
|
1303
1269
|
:defaultRowItemTemplate="${rowItemTemplate}"
|
|
1304
1270
|
${children({
|
|
1305
1271
|
property: "rowElements",
|
|
1306
|
-
filter: elements("[role=row]")
|
|
1272
|
+
filter: elements("[role=row],[data-vvd-component=data-grid-row]")
|
|
1307
1273
|
})}
|
|
1308
1274
|
>
|
|
1309
1275
|
<div class="base">
|
|
@@ -1314,6 +1280,11 @@ const DataGridTemplate = (context) => {
|
|
|
1314
1280
|
`;
|
|
1315
1281
|
};
|
|
1316
1282
|
|
|
1283
|
+
function calculateAriaSelectedValue$1(x) {
|
|
1284
|
+
if (x._selectable && x.selected) return "true";
|
|
1285
|
+
if (x._selectable && !x.selected) return "false";
|
|
1286
|
+
return null;
|
|
1287
|
+
}
|
|
1317
1288
|
function createCellItemTemplate(context) {
|
|
1318
1289
|
const cellTag = context.tagFor(DataGridCell);
|
|
1319
1290
|
return html`
|
|
@@ -1342,14 +1313,17 @@ const DataGridRowTemplate = (context) => {
|
|
|
1342
1313
|
const getBaseClasses = (x) => classNames("base", ["selected", !!x.selected]);
|
|
1343
1314
|
return html`
|
|
1344
1315
|
<template
|
|
1345
|
-
|
|
1316
|
+
${applyHostSemantics({
|
|
1317
|
+
role: "row",
|
|
1318
|
+
ariaSelected: calculateAriaSelectedValue$1
|
|
1319
|
+
})}
|
|
1346
1320
|
class="${(x) => x.rowType !== "default" ? x.rowType : ""}"
|
|
1347
1321
|
:defaultCellItemTemplate="${cellItemTemplate}"
|
|
1348
1322
|
:defaultHeaderCellItemTemplate="${headerCellItemTemplate}"
|
|
1349
1323
|
${children({
|
|
1350
1324
|
property: "cellElements",
|
|
1351
1325
|
filter: elements(
|
|
1352
|
-
'[role="cell"],[role="gridcell"],[role="columnheader"],[role="rowheader"],[cell
|
|
1326
|
+
'[role="cell"],[role="gridcell"],[role="columnheader"],[role="rowheader"],[data-vvd-component="data-grid-cell"]'
|
|
1353
1327
|
)
|
|
1354
1328
|
})}
|
|
1355
1329
|
>
|
|
@@ -1375,6 +1349,11 @@ function getSortIcon(x) {
|
|
|
1375
1349
|
}
|
|
1376
1350
|
return "sort-solid";
|
|
1377
1351
|
}
|
|
1352
|
+
function calculateAriaSelectedValue(x) {
|
|
1353
|
+
if (x._selectable && x.selected) return "true";
|
|
1354
|
+
if (x._selectable && !x.selected) return "false";
|
|
1355
|
+
return null;
|
|
1356
|
+
}
|
|
1378
1357
|
function renderSortIcons(c) {
|
|
1379
1358
|
const iconTag = c.tagFor(Icon);
|
|
1380
1359
|
return html`
|
|
@@ -1398,7 +1377,11 @@ const DataGridCellTemplate = (context) => {
|
|
|
1398
1377
|
return html`
|
|
1399
1378
|
<template
|
|
1400
1379
|
tabindex="-1"
|
|
1401
|
-
|
|
1380
|
+
${applyHostSemantics({
|
|
1381
|
+
role: (x) => DataGridCellRole[x.cellType] ?? DataGridCellRole.default,
|
|
1382
|
+
ariaSelected: calculateAriaSelectedValue,
|
|
1383
|
+
ariaSort: (x) => x.sortDirection ?? null
|
|
1384
|
+
})}
|
|
1402
1385
|
@click="${(x) => x._handleInteraction()}"
|
|
1403
1386
|
@keydown="${(x, c) => handleKeyDown(x, c.event)}"
|
|
1404
1387
|
>
|
|
@@ -1406,7 +1389,7 @@ const DataGridCellTemplate = (context) => {
|
|
|
1406
1389
|
class="${getBaseClasses}"
|
|
1407
1390
|
role="${(x) => shouldShowSortIcons(x) ? "button" : void 0}"
|
|
1408
1391
|
>
|
|
1409
|
-
${(x) => x.
|
|
1392
|
+
${(x) => x.selected ? html`<${visuallyHiddenTagName}>${(x2) => x2.locale.dataGrid.cell.selected}</${visuallyHiddenTagName}>` : null}
|
|
1410
1393
|
<slot></slot>
|
|
1411
1394
|
${when(
|
|
1412
1395
|
shouldShowSortIcons,
|