apex-grid 3.3.0 → 3.4.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/CHANGELOG.md +42 -0
- package/README.md +29 -0
- package/components/cell.d.ts +2 -2
- package/components/cell.js +30 -2
- package/components/cell.js.map +1 -1
- package/components/filter-row.js +65 -6
- package/components/filter-row.js.map +1 -1
- package/components/grid.d.ts +5 -0
- package/components/grid.js +34 -2
- package/components/grid.js.map +1 -1
- package/components/header.js +80 -9
- package/components/header.js.map +1 -1
- package/controllers/expansion.js +4 -4
- package/controllers/expansion.js.map +1 -1
- package/controllers/filter.js +11 -0
- package/controllers/filter.js.map +1 -1
- package/controllers/history.js +11 -4
- package/controllers/history.js.map +1 -1
- package/controllers/navigation.d.ts +34 -2
- package/controllers/navigation.js +92 -3
- package/controllers/navigation.js.map +1 -1
- package/controllers/pagination.js +1 -1
- package/controllers/pagination.js.map +1 -1
- package/controllers/row-pin.js +2 -2
- package/controllers/row-pin.js.map +1 -1
- package/controllers/row-reorder.js +6 -6
- package/controllers/row-reorder.js.map +1 -1
- package/controllers/selection.js +3 -3
- package/controllers/selection.js.map +1 -1
- package/controllers/sort.js +4 -2
- package/controllers/sort.js.map +1 -1
- package/custom-elements.json +223 -7
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/functions/localize.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +62 -1
- package/docs/interfaces/BaseApexCellContext.html +1 -1
- package/docs/interfaces/BaseApexEditorContext.html +1 -1
- package/docs/interfaces/CSVExportOptions.html +1 -1
- package/docs/interfaces/ExportOptions.html +1 -1
- package/docs/interfaces/PaginationState.html +1 -1
- package/docs/media/package.json +2 -2
- package/docs/variables/EN_LOCALE.html +2 -2
- package/i18n/en.d.ts +95 -1
- package/i18n/en.js +95 -1
- package/i18n/en.js.map +1 -1
- package/i18n/es.js +95 -1
- package/i18n/es.js.map +1 -1
- package/internal/column-types.js +1 -1
- package/internal/column-types.js.map +1 -1
- package/package.json +1 -1
- package/styles/body-cell/body-cell.css.js +1 -1
- package/styles/body-cell/body-cell.css.js.map +1 -1
package/components/grid.js
CHANGED
|
@@ -12,7 +12,7 @@ import { DataOperationsController } from '../controllers/data-operation.js';
|
|
|
12
12
|
import { GridDOMController } from '../controllers/dom.js';
|
|
13
13
|
import { gridStateContext, StateController } from '../controllers/state.js';
|
|
14
14
|
import { localize as resolveLocaleText, } from '../i18n/index.js';
|
|
15
|
-
import { DEFAULT_COLUMN_CONFIG, PIPELINE } from '../internal/constants.js';
|
|
15
|
+
import { DEFAULT_COLUMN_CONFIG, PIPELINE, SENTINEL_NODE } from '../internal/constants.js';
|
|
16
16
|
import { buildCSV, downloadBlob, } from '../internal/export.js';
|
|
17
17
|
import { EventEmitterBase } from '../internal/mixins/event-emitter.js';
|
|
18
18
|
import { registerComponent } from '../internal/register.js';
|
|
@@ -68,6 +68,7 @@ export class ApexGrid extends EventEmitterBase {
|
|
|
68
68
|
this.columnSeparator = true;
|
|
69
69
|
this.coordinateHints = false;
|
|
70
70
|
this.columnMenu = true;
|
|
71
|
+
this.#autoAriaLabel = null;
|
|
71
72
|
this.#stateChangedListeners = 0;
|
|
72
73
|
this.#lastStateJson = null;
|
|
73
74
|
}
|
|
@@ -271,8 +272,28 @@ export class ApexGrid extends EventEmitterBase {
|
|
|
271
272
|
const extras = (this.stateController.selection.showCheckboxColumn ? 1 : 0) +
|
|
272
273
|
(this.stateController.expansion.showToggleColumn ? 1 : 0);
|
|
273
274
|
this.setAttribute('aria-colcount', String(visibleColumns + extras));
|
|
275
|
+
const selection = this.stateController.selection;
|
|
276
|
+
if (selection.enabled && selection.mode === 'multiple') {
|
|
277
|
+
this.setAttribute('aria-multiselectable', 'true');
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
this.removeAttribute('aria-multiselectable');
|
|
281
|
+
}
|
|
282
|
+
if (this.scrollContainer) {
|
|
283
|
+
this.scrollContainer.tabIndex = this.stateController.active === SENTINEL_NODE ? 0 : -1;
|
|
284
|
+
}
|
|
285
|
+
const currentLabel = this.getAttribute('aria-label');
|
|
286
|
+
const authorLabeled = this.hasAttribute('aria-labelledby') ||
|
|
287
|
+
(currentLabel !== null && currentLabel !== this.#autoAriaLabel);
|
|
288
|
+
if (!authorLabeled) {
|
|
289
|
+
const label = this.localize('grid.label');
|
|
290
|
+
if (currentLabel !== label)
|
|
291
|
+
this.setAttribute('aria-label', label);
|
|
292
|
+
this.#autoAriaLabel = label;
|
|
293
|
+
}
|
|
274
294
|
this.#emitStateChangedIfNeeded();
|
|
275
295
|
}
|
|
296
|
+
#autoAriaLabel;
|
|
276
297
|
#stateChangedListeners;
|
|
277
298
|
#lastStateJson;
|
|
278
299
|
addEventListener(type, listener, options) {
|
|
@@ -716,13 +737,23 @@ export class ApexGrid extends EventEmitterBase {
|
|
|
716
737
|
column: target.column.key,
|
|
717
738
|
row: target.row.index,
|
|
718
739
|
};
|
|
740
|
+
if (!target.editing)
|
|
741
|
+
target.focus({ preventScroll: true });
|
|
719
742
|
}
|
|
720
743
|
}
|
|
721
744
|
bodyKeydownHandler(event) {
|
|
722
|
-
|
|
745
|
+
const origin = event.composedPath()[0];
|
|
746
|
+
const fromBody = this.scrollContainer.isSameNode(event.target);
|
|
747
|
+
const fromCell = origin instanceof ApexGridCell && !origin.editing;
|
|
748
|
+
if (fromBody || fromCell) {
|
|
723
749
|
this.stateController.navigation.navigate(event);
|
|
724
750
|
}
|
|
725
751
|
}
|
|
752
|
+
bodyFocusHandler(event) {
|
|
753
|
+
if (this.scrollContainer.isSameNode(event.target)) {
|
|
754
|
+
this.stateController.navigation.focusActiveCell();
|
|
755
|
+
}
|
|
756
|
+
}
|
|
726
757
|
bodyPointerHandler(event) {
|
|
727
758
|
if (this.stateController.modules.size === 0)
|
|
728
759
|
return;
|
|
@@ -772,6 +803,7 @@ export class ApexGrid extends EventEmitterBase {
|
|
|
772
803
|
.renderItem=${this.DOM.rowRenderer}
|
|
773
804
|
@click=${this.bodyClickHandler}
|
|
774
805
|
@keydown=${this.bodyKeydownHandler}
|
|
806
|
+
@focusin=${this.bodyFocusHandler}
|
|
775
807
|
@pointerdown=${this.bodyPointerHandler}
|
|
776
808
|
@pointermove=${this.bodyPointerHandler}
|
|
777
809
|
@pointerup=${this.bodyPointerHandler}
|