dimsum-e2e-tests 3.70.0-next.46 → 3.70.0-next.48
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 +12 -0
- package/ds-data-table-async/DSDataTableCO.js +6 -0
- package/ds-data-table-async/components/FilterBarCO.js +7 -0
- package/ds-data-table-async/components/HeaderCO.js +10 -0
- package/ds-data-table-async/filtersV2/DSDataTable.filtersV2.axe-core.func.spec.js +45 -29
- package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.axe-core.func.spec.js +23 -0
- package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.func.spec.js +50 -0
- package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.visual.spec.js +21 -0
- package/ds-data-table-async/resizable/DSDataTable.resizerA11y.axe-core.func.spec.js +46 -0
- package/ds-data-table-async/resizable/DSDataTable.resizerA11y.func.spec.js +108 -0
- package/package.json +150 -150
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 3.70.0-next.48 (2026-07-20)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- ds-form-radio:: fixed and expanded radio documentation [PUI-17897](https://jira.elliemae.io/browse/PUI-17897) ([#8191](https://git.elliemae.io/platform-ui/dimsum/issues/8191)) ([e7c892a](https://git.elliemae.io/platform-ui/dimsum/commit/e7c892a9aad4c068e352c00e589253c0c96e5986))
|
|
11
|
+
|
|
12
|
+
## 3.70.0-next.47 (2026-07-17)
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
- ds-data-table:: e2e a11y for filter pill customization & resizer roles [PUI-8318](https://jira.elliemae.io/browse/PUI-8318) [PUI-17786](https://jira.elliemae.io/browse/PUI-17786) ([#8189](https://git.elliemae.io/platform-ui/dimsum/issues/8189)) ([f122016](https://git.elliemae.io/platform-ui/dimsum/commit/f122016eb880daec1486bea8e511356658856da7))
|
|
17
|
+
|
|
6
18
|
## 3.70.0-next.46 (2026-07-17)
|
|
7
19
|
|
|
8
20
|
### Bug Fixes
|
|
@@ -135,6 +135,8 @@ export default class DataTableCO extends PageObject {
|
|
|
135
135
|
|
|
136
136
|
static allFiltersV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'all-filters-v-2');
|
|
137
137
|
|
|
138
|
+
static pillLabelCustomization = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'pill-label-customization-test');
|
|
139
|
+
|
|
138
140
|
// ADVANCED
|
|
139
141
|
|
|
140
142
|
static groupByCol = new Urlbuilder(PATH_E2E_DATATABLE_ADVANCED, 'group-by-column');
|
|
@@ -198,6 +200,10 @@ export default class DataTableCO extends PageObject {
|
|
|
198
200
|
'grouping-with-hidden-and-resizable-columns',
|
|
199
201
|
);
|
|
200
202
|
|
|
203
|
+
static resizerSeparatorMode = new Urlbuilder(PATH_E2E_DATATABLE_COLUMN, 'resizer-separator-mode-test');
|
|
204
|
+
|
|
205
|
+
static resizerSliderMode = new Urlbuilder(PATH_E2E_DATATABLE_COLUMN, 'resizer-slider-mode-test');
|
|
206
|
+
|
|
201
207
|
// Text Wrapping
|
|
202
208
|
|
|
203
209
|
static textWrapTruncColumn = new Urlbuilder(PATH_E2E_DATATABLE_TEXT_WRAPPING, 'text-wrap-truncate-column');
|
|
@@ -70,6 +70,13 @@ export default class FilterBarCO extends PageObject {
|
|
|
70
70
|
|
|
71
71
|
static getPillCloseButtonByIndex = async (index) => getElementByIndex(this.getAllPillCloseButtons, index);
|
|
72
72
|
|
|
73
|
+
// Label pill wrapper exposes role="group" + aria-label = the pill label text (pillLabel || Header).
|
|
74
|
+
static getLabelPillByName = async (name) => $(`[role="group"][aria-label="${name}"]`);
|
|
75
|
+
|
|
76
|
+
// SVG icon inside a label pill (found by its accessible name) — asserts a custom pill renderer drew
|
|
77
|
+
// its own icon. The label pill wrapper is the role="group" element; its descendant <svg> is the icon.
|
|
78
|
+
static getPillIconByName = async (name) => $(`[role="group"][aria-label="${name}"] svg`);
|
|
79
|
+
|
|
73
80
|
static async getFilterBarDropDownOption(label) {
|
|
74
81
|
return $(`[role=option][label="${label}"]`);
|
|
75
82
|
}
|
|
@@ -64,6 +64,16 @@ export default class HeaderCO extends PageObject {
|
|
|
64
64
|
return headerCell.$('[data-testid="data-table-sort-button"]');
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
+
// PUI-17786: a11y accessors for the resize handle. Targets the same [data-testid="ds-datatable-resizer"]
|
|
68
|
+
// as the getResizeHandler selector fix (separate PR); kept distinct so these a11y specs run standalone.
|
|
69
|
+
static getResizer = async (index) => $$('[data-testid="ds-datatable-resizer"]')[index];
|
|
70
|
+
|
|
71
|
+
static getResizerAccessibleName = async (resizer) => {
|
|
72
|
+
const labelledById = await resizer.getAttribute('aria-labelledby');
|
|
73
|
+
if (!labelledById) return null;
|
|
74
|
+
return (await $(`#${labelledById}`)).getProperty('textContent');
|
|
75
|
+
};
|
|
76
|
+
|
|
67
77
|
// Snapshots
|
|
68
78
|
static snapshotPath(example = 'basic') {
|
|
69
79
|
return PageObject.getSnapshotPathBuilder('DataTable', example, 'ds-data-table');
|
|
@@ -1,37 +1,53 @@
|
|
|
1
1
|
import DSDataTableCO from '../DSDataTableCO';
|
|
2
|
-
import { FiltersCO } from '../components';
|
|
2
|
+
import { FilterBarCO, FiltersCO } from '../components';
|
|
3
3
|
import { axeCoreCheck } from '../../helpers';
|
|
4
4
|
|
|
5
|
-
if (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'Chrome'
|
|
10
|
+
) {
|
|
11
|
+
describe('PUI-18108 - DataTable:: Filters V2 - All Filter Types - Axe-Core', () => {
|
|
12
|
+
before(async () => {
|
|
13
|
+
const errorOnGo = await DSDataTableCO.allFiltersV2.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
await DSDataTableCO.waitForDataTable();
|
|
16
|
+
});
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
it('01: should have no accessibility violations in default state', async () => {
|
|
19
|
+
const result = await axeCoreCheck();
|
|
20
|
+
expect(result.length).toBe(0);
|
|
21
|
+
});
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
it('02: should have no accessibility violations with filter popper open', async () => {
|
|
24
|
+
await FiltersCO.openFilterPopperByColumnName('id');
|
|
25
|
+
const footer = await FiltersCO.getFilterFooter();
|
|
26
|
+
await footer.waitForDisplayed();
|
|
27
|
+
// `scrollable-region-focusable` is a documented axe-core false positive for the filter
|
|
28
|
+
// popper option list: it reuses the DS combobox listbox (TanStack Virtual + container
|
|
29
|
+
// tabindex=-1 Firefox scroll workaround), leaving a residual scrollHeight. The options are
|
|
30
|
+
// fully keyboard-operable through the combobox widget model, so WCAG 2.1.1 is satisfied.
|
|
31
|
+
// Same disposition as the ds-combobox axe specs; dev team confirmed no real a11y issue.
|
|
32
|
+
const result = await axeCoreCheck({ extraDisabledRules: ['scrollable-region-focusable'] });
|
|
33
|
+
expect(result.length).toBe(0);
|
|
34
|
+
});
|
|
26
35
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
it('03: should have no accessibility violations with applied filter and pills', async () => {
|
|
37
|
+
// Self-contained: re-open the single-select ('id') popper (openFilterPopperByColumnName
|
|
38
|
+
// clicks the header cell first, resetting any leftover popper state), pick an option and
|
|
39
|
+
// apply so a pill renders, then scan.
|
|
40
|
+
await FiltersCO.openFilterPopperByColumnName('id');
|
|
41
|
+
const footer = await FiltersCO.getFilterFooter();
|
|
42
|
+
await footer.waitForDisplayed();
|
|
43
|
+
const menuItem = await FiltersCO.getFilterSingleSelectMenuItem(0);
|
|
44
|
+
await menuItem.click();
|
|
45
|
+
const applyBtn = await FiltersCO.getFilterApplyButton();
|
|
46
|
+
await applyBtn.click();
|
|
47
|
+
const pills = await FilterBarCO.getAllPills();
|
|
48
|
+
await expect(pills.length).toBeGreaterThan(0);
|
|
49
|
+
const result = await axeCoreCheck({ extraDisabledRules: ['scrollable-region-focusable'] });
|
|
50
|
+
expect(result.length).toBe(0);
|
|
35
51
|
});
|
|
36
|
-
}
|
|
52
|
+
});
|
|
37
53
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import DSDataTableCO from '../../DSDataTableCO';
|
|
2
|
+
import { axeCoreCheck } from '../../../helpers';
|
|
3
|
+
|
|
4
|
+
// Tests for column.pillLabel added in PUI-8318 (custom pill labels must not introduce a11y violations)
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'Chrome'
|
|
10
|
+
) {
|
|
11
|
+
describe('PUI-18727 - DSDataTable:: custom filter pill label - Axe-Core', () => {
|
|
12
|
+
before(async () => {
|
|
13
|
+
const errorOnGo = await DSDataTableCO.pillLabelCustomization.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
await DSDataTableCO.waitForDataTable();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('01: should have no accessibility violations with custom and default pill labels', async () => {
|
|
19
|
+
const result = await axeCoreCheck();
|
|
20
|
+
expect(result.length).toBe(0);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import DSDataTableCO from '../../DSDataTableCO';
|
|
2
|
+
import { FilterBarCO } from '../../components';
|
|
3
|
+
|
|
4
|
+
// Tests for column.pillLabel added in PUI-8318 (overrides Header as filter pill label + remove aria-label)
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'Chrome'
|
|
10
|
+
) {
|
|
11
|
+
describe('PUI-18726 - DSDataTable:: custom filter pill label - Func', () => {
|
|
12
|
+
before(async () => {
|
|
13
|
+
const errorOnGo = await DSDataTableCO.pillLabelCustomization.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
await DSDataTableCO.waitForDataTable();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('01: should use pillLabel over Header on the OOTB pill label and remove aria-labels', async () => {
|
|
19
|
+
const roleLabel = await FilterBarCO.getLabelPillByName('Role');
|
|
20
|
+
await expect(roleLabel).toBeDisplayed();
|
|
21
|
+
|
|
22
|
+
const removeReact = await FilterBarCO.getPillCloseButtonByName('Remove React dev from Role');
|
|
23
|
+
await expect(removeReact).toBeExisting();
|
|
24
|
+
|
|
25
|
+
const removeFullstack = await FilterBarCO.getPillCloseButtonByName('Remove Fullstack dev from Role');
|
|
26
|
+
await expect(removeFullstack).toBeExisting();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('02: should fall back to Header when the column has no pillLabel', async () => {
|
|
30
|
+
const nameLabel = await FilterBarCO.getLabelPillByName('Name');
|
|
31
|
+
await expect(nameLabel).toBeDisplayed();
|
|
32
|
+
|
|
33
|
+
const removeAlice = await FilterBarCO.getPillCloseButtonByName('Remove Alice from Name');
|
|
34
|
+
await expect(removeAlice).toBeExisting();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('03: should render a fully custom pill (columnHeader + icon) via customPillRenderers', async () => {
|
|
38
|
+
const compensationLabel = await FilterBarCO.getLabelPillByName('Compensation');
|
|
39
|
+
await expect(compensationLabel).toBeDisplayed();
|
|
40
|
+
|
|
41
|
+
// Custom renderer draws its own icon — proves customPillRenderers replaces the OOTB pill content.
|
|
42
|
+
const customIcon = await FilterBarCO.getPillIconByName('Compensation');
|
|
43
|
+
await expect(customIcon).toBeExisting();
|
|
44
|
+
|
|
45
|
+
const removeAriaLabel = 'Remove 10000.00 - 90000.00 from Compensation';
|
|
46
|
+
const removeCompensation = await FilterBarCO.getPillCloseButtonByName(removeAriaLabel);
|
|
47
|
+
await expect(removeCompensation).toBeExisting();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* eslint-disable wdio/no-pause */
|
|
2
|
+
import DSDataTableCO from '../../DSDataTableCO';
|
|
3
|
+
|
|
4
|
+
// Visual coverage for PUI-8318 filter pill customizations: the composable filter bar renders the
|
|
5
|
+
// OOTB pills (Role via pillLabel, Name via Header fallback) alongside a fully custom pill
|
|
6
|
+
// (Compensation) with a custom icon and a custom color, produced through customPillRenderers.
|
|
7
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
+
describe('PUI-18747 - DSDataTable:: custom filter pill rendering - Visual', () => {
|
|
9
|
+
before(async () => {
|
|
10
|
+
const errorOnGo = await DSDataTableCO.pillLabelCustomization.go();
|
|
11
|
+
if (errorOnGo) throw errorOnGo;
|
|
12
|
+
await DSDataTableCO.waitForDataTable();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('01: should render OOTB and custom pills (icon + color) in the composable filter bar', async () => {
|
|
16
|
+
await browser.pause(300);
|
|
17
|
+
const snapshot = await browser.percyCheckScreenshot(DSDataTableCO.snapshotPath('pill-label-custom-pills'));
|
|
18
|
+
await expect(snapshot).toEqual(0);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import DSDataTableCO from '../DSDataTableCO';
|
|
3
|
+
import { HeaderCO } from '../components';
|
|
4
|
+
import { axeCoreCheck } from '../../helpers';
|
|
5
|
+
|
|
6
|
+
// Axe-core for the resizable-column a11y modes (PUI-17786 / PUI-17784). The resize handle is
|
|
7
|
+
// aria-hidden until its header is "entered" (child-navigation mode), so each test enters the header
|
|
8
|
+
// first to expose the resizer to the accessibility tree before scanning.
|
|
9
|
+
if (
|
|
10
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
11
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
12
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
13
|
+
browser.capabilities.browserName === 'Chrome'
|
|
14
|
+
) {
|
|
15
|
+
describe('PUI-18750 - DSDataTable:: resizer separator role a11y - Axe-Core', () => {
|
|
16
|
+
before(async () => {
|
|
17
|
+
const errorOnGo = await DSDataTableCO.resizerSeparatorMode.go();
|
|
18
|
+
if (errorOnGo) throw errorOnGo;
|
|
19
|
+
await DSDataTableCO.waitForDataTable();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('01: should have no accessibility violations with the separator resizer exposed', async () => {
|
|
23
|
+
const header = await HeaderCO.getHeaderCellByIndex(1);
|
|
24
|
+
await header.click();
|
|
25
|
+
await browser.keys(Key.Return);
|
|
26
|
+
const result = await axeCoreCheck();
|
|
27
|
+
expect(result.length).toBe(0);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
describe('PUI-18751 - DSDataTable:: resizer slider role a11y - Axe-Core', () => {
|
|
32
|
+
before(async () => {
|
|
33
|
+
const errorOnGo = await DSDataTableCO.resizerSliderMode.go();
|
|
34
|
+
if (errorOnGo) throw errorOnGo;
|
|
35
|
+
await DSDataTableCO.waitForDataTable();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('01: should have no accessibility violations with the slider resizer exposed', async () => {
|
|
39
|
+
const header = await HeaderCO.getHeaderCellByIndex(1);
|
|
40
|
+
await header.click();
|
|
41
|
+
await browser.keys(Key.Return);
|
|
42
|
+
const result = await axeCoreCheck();
|
|
43
|
+
expect(result.length).toBe(0);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import DSDataTableCO from '../DSDataTableCO';
|
|
3
|
+
import { HeaderCO } from '../components';
|
|
4
|
+
|
|
5
|
+
// Tests for the resizable-column a11y contract from PUI-17786 / PUI-17784.
|
|
6
|
+
// The "50" bug (PUI-15786): the resizer was an <input type="range"> whose default value (50) was
|
|
7
|
+
// announced next to the column name. The fix exposes the handle as role="separator" (default) or
|
|
8
|
+
// role="slider" with a bounded aria-value* set and an accessible name "Resize {Header} column".
|
|
9
|
+
if (
|
|
10
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
11
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
12
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
13
|
+
browser.capabilities.browserName === 'Chrome'
|
|
14
|
+
) {
|
|
15
|
+
describe('PUI-18748 - DSDataTable:: resizer separator role a11y - Func', () => {
|
|
16
|
+
before(async () => {
|
|
17
|
+
const errorOnGo = await DSDataTableCO.resizerSeparatorMode.go();
|
|
18
|
+
if (errorOnGo) throw errorOnGo;
|
|
19
|
+
await DSDataTableCO.waitForDataTable();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('01: should expose separator role, bounded value and accessible name (no range/"50")', async () => {
|
|
23
|
+
const resizer = await HeaderCO.getResizer(1);
|
|
24
|
+
await expect(resizer).toBeExisting();
|
|
25
|
+
await expect(resizer).toHaveAttribute('role', 'separator');
|
|
26
|
+
await expect(resizer).toHaveAttribute('aria-orientation', 'vertical');
|
|
27
|
+
await expect(resizer).toHaveAttribute('aria-valuemin', '70');
|
|
28
|
+
await expect(resizer).toHaveAttribute('aria-valuemax', '600');
|
|
29
|
+
|
|
30
|
+
// Validate the value by SHAPE, not a fixed number: the width is not deterministic across
|
|
31
|
+
// layouts. The point is that it is a real, bounded width (the fix) and NOT the stray "50"
|
|
32
|
+
// the old <input type="range"> announced.
|
|
33
|
+
const valueNow = await resizer.getAttribute('aria-valuenow'); // current width as string, e.g. "150"
|
|
34
|
+
expect(/^\d+$/.test(valueNow)).toBe(true); // digits only: a real value, not empty/null/"150px"
|
|
35
|
+
expect(Number(valueNow)).toBeGreaterThanOrEqual(70); // >= aria-valuemin (70): the "50" guard
|
|
36
|
+
const valueText = await resizer.getAttribute('aria-valuetext'); // SR text, e.g. "150 pixels"
|
|
37
|
+
expect(/^\d+ pixels$/.test(valueText)).toBe(true); // must read "<width> pixels"
|
|
38
|
+
|
|
39
|
+
// Accessible name comes from aria-labelledby, not aria-label (regression guard).
|
|
40
|
+
expect(await resizer.getAttribute('aria-label')).toBe(null);
|
|
41
|
+
const name = await HeaderCO.getResizerAccessibleName(resizer);
|
|
42
|
+
expect(name).toContain('Resize Name column');
|
|
43
|
+
|
|
44
|
+
// "50" regression: the handle must not be a native range input.
|
|
45
|
+
expect((await resizer.getTagName()).toLowerCase()).not.toBe('input');
|
|
46
|
+
expect(await resizer.getAttribute('type')).not.toBe('range');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('02: should update aria-valuenow when resizing with the keyboard', async () => {
|
|
50
|
+
const nameHeader = await HeaderCO.getHeaderCellByIndex(1);
|
|
51
|
+
await nameHeader.click();
|
|
52
|
+
// Enter on the header focuses its resize handle directly (no drag/filter/sort child to precede it).
|
|
53
|
+
await browser.keys(Key.Return);
|
|
54
|
+
const resizer = await HeaderCO.getResizer(1);
|
|
55
|
+
await expect(resizer).toBeFocused();
|
|
56
|
+
|
|
57
|
+
const before = Number(await resizer.getAttribute('aria-valuenow'));
|
|
58
|
+
await browser.keys(Key.ArrowRight);
|
|
59
|
+
await browser.waitUntil(async () => Number(await resizer.getAttribute('aria-valuenow')) > before, {
|
|
60
|
+
timeout: 5000,
|
|
61
|
+
timeoutMsg: 'aria-valuenow did not increase after ArrowRight',
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
describe('PUI-18749 - DSDataTable:: resizer slider role a11y - Func', () => {
|
|
67
|
+
before(async () => {
|
|
68
|
+
const errorOnGo = await DSDataTableCO.resizerSliderMode.go();
|
|
69
|
+
if (errorOnGo) throw errorOnGo;
|
|
70
|
+
await DSDataTableCO.waitForDataTable();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('01: should expose slider role, horizontal orientation and bounded value', async () => {
|
|
74
|
+
const resizer = await HeaderCO.getResizer(1);
|
|
75
|
+
await expect(resizer).toBeExisting();
|
|
76
|
+
await expect(resizer).toHaveAttribute('role', 'slider');
|
|
77
|
+
await expect(resizer).toHaveAttribute('aria-orientation', 'horizontal');
|
|
78
|
+
await expect(resizer).toHaveAttribute('aria-valuemin', '70');
|
|
79
|
+
await expect(resizer).toHaveAttribute('aria-valuemax', '600');
|
|
80
|
+
|
|
81
|
+
// Validate the value by SHAPE, not a fixed number (see separator spec above).
|
|
82
|
+
const valueNow = await resizer.getAttribute('aria-valuenow'); // current width as string, e.g. "150"
|
|
83
|
+
expect(/^\d+$/.test(valueNow)).toBe(true); // digits only: a real value, not empty/null/"150px"
|
|
84
|
+
expect(Number(valueNow)).toBeGreaterThanOrEqual(70); // >= aria-valuemin (70): the "50" guard
|
|
85
|
+
|
|
86
|
+
// Accessible name comes from aria-labelledby, not aria-label (regression guard).
|
|
87
|
+
expect(await resizer.getAttribute('aria-label')).toBe(null);
|
|
88
|
+
const name = await HeaderCO.getResizerAccessibleName(resizer);
|
|
89
|
+
expect(name).toContain('Resize Name column');
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it('02: should update aria-valuenow when resizing with the keyboard', async () => {
|
|
93
|
+
const nameHeader = await HeaderCO.getHeaderCellByIndex(1);
|
|
94
|
+
await nameHeader.click();
|
|
95
|
+
// Enter on the header focuses its resize handle directly (no drag/filter/sort child to precede it).
|
|
96
|
+
await browser.keys(Key.Return);
|
|
97
|
+
const resizer = await HeaderCO.getResizer(1);
|
|
98
|
+
await expect(resizer).toBeFocused();
|
|
99
|
+
|
|
100
|
+
const before = Number(await resizer.getAttribute('aria-valuenow'));
|
|
101
|
+
await browser.keys(Key.ArrowRight);
|
|
102
|
+
await browser.waitUntil(async () => Number(await resizer.getAttribute('aria-valuenow')) > before, {
|
|
103
|
+
timeout: 5000,
|
|
104
|
+
timeoutMsg: 'aria-valuenow did not increase after ArrowRight',
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "dimsum-e2e-tests",
|
|
4
|
-
"version": "3.70.0-next.
|
|
4
|
+
"version": "3.70.0-next.48",
|
|
5
5
|
"description": "End-to-end tests for dimsum library",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@elliemae/ds-legacy-button": "1.0.16",
|
|
@@ -38,155 +38,155 @@
|
|
|
38
38
|
"@elliemae/ds-legacy-wysiwygeditor": "1.0.16",
|
|
39
39
|
"@elliemae/ds-legacy-zipcode-search": "1.0.16",
|
|
40
40
|
"@elliemae/ds-legacy-zoom": "1.0.16",
|
|
41
|
-
"@elliemae/ds-accessibility": "3.70.0-next.
|
|
42
|
-
"@elliemae/ds-accordion": "3.70.0-next.
|
|
43
|
-
"@elliemae/ds-
|
|
44
|
-
"@elliemae/ds-
|
|
45
|
-
"@elliemae/ds-
|
|
46
|
-
"@elliemae/ds-
|
|
47
|
-
"@elliemae/ds-
|
|
48
|
-
"@elliemae/ds-
|
|
49
|
-
"@elliemae/ds-
|
|
50
|
-
"@elliemae/ds-
|
|
51
|
-
"@elliemae/ds-card-navigation": "3.70.0-next.
|
|
52
|
-
"@elliemae/ds-card-v1": "3.70.0-next.
|
|
53
|
-
"@elliemae/ds-card-
|
|
54
|
-
"@elliemae/ds-card-
|
|
55
|
-
"@elliemae/ds-card-v2-
|
|
56
|
-
"@elliemae/ds-card-
|
|
57
|
-
"@elliemae/ds-
|
|
58
|
-
"@elliemae/ds-card-
|
|
59
|
-
"@elliemae/ds-chat": "3.70.0-next.
|
|
60
|
-
"@elliemae/ds-
|
|
61
|
-
"@elliemae/ds-chat-
|
|
62
|
-
"@elliemae/ds-chat-
|
|
63
|
-
"@elliemae/ds-chat-container-header": "3.70.0-next.
|
|
64
|
-
"@elliemae/ds-chat-
|
|
65
|
-
"@elliemae/ds-chat-
|
|
66
|
-
"@elliemae/ds-chat-
|
|
67
|
-
"@elliemae/ds-chat-
|
|
68
|
-
"@elliemae/ds-chat-message
|
|
69
|
-
"@elliemae/ds-chat-tile": "3.70.0-next.
|
|
70
|
-
"@elliemae/ds-chip": "3.70.0-next.
|
|
71
|
-
"@elliemae/ds-
|
|
72
|
-
"@elliemae/ds-
|
|
73
|
-
"@elliemae/ds-
|
|
74
|
-
"@elliemae/ds-comments": "3.70.0-next.
|
|
75
|
-
"@elliemae/ds-
|
|
76
|
-
"@elliemae/ds-data-table": "3.70.0-next.
|
|
77
|
-
"@elliemae/ds-
|
|
78
|
-
"@elliemae/ds-data-table
|
|
79
|
-
"@elliemae/ds-
|
|
80
|
-
"@elliemae/ds-data-table-cell
|
|
81
|
-
"@elliemae/ds-data-table-
|
|
82
|
-
"@elliemae/ds-data-table-
|
|
83
|
-
"@elliemae/ds-data-table-multi-select-cell": "3.70.0-next.
|
|
84
|
-
"@elliemae/ds-data-table-
|
|
85
|
-
"@elliemae/ds-
|
|
86
|
-
"@elliemae/ds-
|
|
87
|
-
"@elliemae/ds-dataviz": "3.70.0-next.
|
|
88
|
-
"@elliemae/ds-date-time-picker": "3.70.0-next.
|
|
89
|
-
"@elliemae/ds-
|
|
90
|
-
"@elliemae/ds-
|
|
91
|
-
"@elliemae/ds-drag-and-drop": "3.70.0-next.
|
|
92
|
-
"@elliemae/ds-dropdownmenu-v2": "3.70.0-next.
|
|
93
|
-
"@elliemae/ds-
|
|
94
|
-
"@elliemae/ds-fast-list": "3.70.0-next.
|
|
95
|
-
"@elliemae/ds-
|
|
96
|
-
"@elliemae/ds-
|
|
97
|
-
"@elliemae/ds-
|
|
98
|
-
"@elliemae/ds-form-
|
|
99
|
-
"@elliemae/ds-
|
|
100
|
-
"@elliemae/ds-form-
|
|
101
|
-
"@elliemae/ds-form-helpers-mask-hooks": "3.70.0-next.
|
|
102
|
-
"@elliemae/ds-form-input-textarea": "3.70.0-next.
|
|
103
|
-
"@elliemae/ds-form-
|
|
104
|
-
"@elliemae/ds-form-layout-
|
|
105
|
-
"@elliemae/ds-form-
|
|
106
|
-
"@elliemae/ds-form-layout-
|
|
107
|
-
"@elliemae/ds-form-
|
|
108
|
-
"@elliemae/ds-form-
|
|
109
|
-
"@elliemae/ds-form-
|
|
110
|
-
"@elliemae/ds-form-
|
|
111
|
-
"@elliemae/ds-form-single-combobox": "3.70.0-next.
|
|
112
|
-
"@elliemae/ds-form-
|
|
113
|
-
"@elliemae/ds-
|
|
114
|
-
"@elliemae/ds-
|
|
115
|
-
"@elliemae/ds-
|
|
116
|
-
"@elliemae/ds-
|
|
117
|
-
"@elliemae/ds-hooks-focus-stack": "3.70.0-next.
|
|
118
|
-
"@elliemae/ds-
|
|
119
|
-
"@elliemae/ds-hooks-
|
|
120
|
-
"@elliemae/ds-hooks-
|
|
121
|
-
"@elliemae/ds-hooks-
|
|
122
|
-
"@elliemae/ds-hooks-
|
|
123
|
-
"@elliemae/ds-hooks-
|
|
124
|
-
"@elliemae/ds-hooks-on-
|
|
125
|
-
"@elliemae/ds-hooks-
|
|
126
|
-
"@elliemae/ds-icons": "3.70.0-next.
|
|
127
|
-
"@elliemae/ds-
|
|
128
|
-
"@elliemae/ds-
|
|
129
|
-
"@elliemae/ds-
|
|
130
|
-
"@elliemae/ds-layout-provider": "3.70.0-next.
|
|
131
|
-
"@elliemae/ds-
|
|
132
|
-
"@elliemae/ds-
|
|
133
|
-
"@elliemae/ds-
|
|
134
|
-
"@elliemae/ds-menu-button": "3.70.0-next.
|
|
135
|
-
"@elliemae/ds-menu-items": "3.70.0-next.
|
|
136
|
-
"@elliemae/ds-menu-items-commons": "3.70.0-next.
|
|
137
|
-
"@elliemae/ds-menu-items-
|
|
138
|
-
"@elliemae/ds-menu-items-
|
|
139
|
-
"@elliemae/ds-menu-items-
|
|
140
|
-
"@elliemae/ds-menu-items-
|
|
141
|
-
"@elliemae/ds-menu-items-single": "3.70.0-next.
|
|
142
|
-
"@elliemae/ds-menu-items-
|
|
143
|
-
"@elliemae/ds-menu-items-
|
|
144
|
-
"@elliemae/ds-menu-items-
|
|
145
|
-
"@elliemae/ds-menu-tree-item": "3.70.0-next.
|
|
146
|
-
"@elliemae/ds-mobile": "3.70.0-next.
|
|
147
|
-
"@elliemae/ds-
|
|
148
|
-
"@elliemae/ds-
|
|
149
|
-
"@elliemae/ds-
|
|
150
|
-
"@elliemae/ds-
|
|
151
|
-
"@elliemae/ds-
|
|
152
|
-
"@elliemae/ds-page-header-v2": "3.70.0-next.
|
|
153
|
-
"@elliemae/ds-
|
|
154
|
-
"@elliemae/ds-
|
|
155
|
-
"@elliemae/ds-
|
|
156
|
-
"@elliemae/ds-
|
|
157
|
-
"@elliemae/ds-
|
|
158
|
-
"@elliemae/ds-
|
|
159
|
-
"@elliemae/ds-read-more": "3.70.0-next.
|
|
160
|
-
"@elliemae/ds-
|
|
161
|
-
"@elliemae/ds-
|
|
162
|
-
"@elliemae/ds-
|
|
163
|
-
"@elliemae/ds-
|
|
164
|
-
"@elliemae/ds-
|
|
165
|
-
"@elliemae/ds-
|
|
166
|
-
"@elliemae/ds-
|
|
167
|
-
"@elliemae/ds-side-panel
|
|
168
|
-
"@elliemae/ds-
|
|
169
|
-
"@elliemae/ds-skeleton": "3.70.0-next.
|
|
170
|
-
"@elliemae/ds-
|
|
171
|
-
"@elliemae/ds-
|
|
172
|
-
"@elliemae/ds-
|
|
173
|
-
"@elliemae/ds-system": "3.70.0-next.
|
|
174
|
-
"@elliemae/ds-
|
|
175
|
-
"@elliemae/ds-
|
|
176
|
-
"@elliemae/ds-toast": "3.70.0-next.
|
|
177
|
-
"@elliemae/ds-toolbar-
|
|
178
|
-
"@elliemae/ds-toolbar-
|
|
179
|
-
"@elliemae/ds-
|
|
180
|
-
"@elliemae/ds-
|
|
181
|
-
"@elliemae/ds-
|
|
182
|
-
"@elliemae/ds-
|
|
183
|
-
"@elliemae/ds-
|
|
184
|
-
"@elliemae/ds-
|
|
185
|
-
"@elliemae/ds-
|
|
186
|
-
"@elliemae/ds-
|
|
187
|
-
"@elliemae/ds-
|
|
188
|
-
"@elliemae/ds-
|
|
189
|
-
"@elliemae/ds-
|
|
41
|
+
"@elliemae/ds-accessibility": "3.70.0-next.48",
|
|
42
|
+
"@elliemae/ds-accordion": "3.70.0-next.48",
|
|
43
|
+
"@elliemae/ds-backdrop": "3.70.0-next.48",
|
|
44
|
+
"@elliemae/ds-banner": "3.70.0-next.48",
|
|
45
|
+
"@elliemae/ds-breadcrumb": "3.70.0-next.48",
|
|
46
|
+
"@elliemae/ds-basic": "3.70.0-next.48",
|
|
47
|
+
"@elliemae/ds-button-v2": "3.70.0-next.48",
|
|
48
|
+
"@elliemae/ds-app-picker": "3.70.0-next.48",
|
|
49
|
+
"@elliemae/ds-accordion-native": "3.70.0-next.48",
|
|
50
|
+
"@elliemae/ds-card": "3.70.0-next.48",
|
|
51
|
+
"@elliemae/ds-card-navigation": "3.70.0-next.48",
|
|
52
|
+
"@elliemae/ds-card-v1": "3.70.0-next.48",
|
|
53
|
+
"@elliemae/ds-card-v2": "3.70.0-next.48",
|
|
54
|
+
"@elliemae/ds-card-v1-detail": "3.70.0-next.48",
|
|
55
|
+
"@elliemae/ds-card-v2-action-addon": "3.70.0-next.48",
|
|
56
|
+
"@elliemae/ds-card-v2-group": "3.70.0-next.48",
|
|
57
|
+
"@elliemae/ds-chat": "3.70.0-next.48",
|
|
58
|
+
"@elliemae/ds-card-v3-poc": "3.70.0-next.48",
|
|
59
|
+
"@elliemae/ds-chat-bubble": "3.70.0-next.48",
|
|
60
|
+
"@elliemae/ds-card-v3": "3.70.0-next.48",
|
|
61
|
+
"@elliemae/ds-chat-container": "3.70.0-next.48",
|
|
62
|
+
"@elliemae/ds-chat-card": "3.70.0-next.48",
|
|
63
|
+
"@elliemae/ds-chat-container-header": "3.70.0-next.48",
|
|
64
|
+
"@elliemae/ds-chat-empty-state": "3.70.0-next.48",
|
|
65
|
+
"@elliemae/ds-chat-message-delimeter": "3.70.0-next.48",
|
|
66
|
+
"@elliemae/ds-chat-sidebar": "3.70.0-next.48",
|
|
67
|
+
"@elliemae/ds-chat-floating-button": "3.70.0-next.48",
|
|
68
|
+
"@elliemae/ds-chat-system-message": "3.70.0-next.48",
|
|
69
|
+
"@elliemae/ds-chat-tile": "3.70.0-next.48",
|
|
70
|
+
"@elliemae/ds-chip": "3.70.0-next.48",
|
|
71
|
+
"@elliemae/ds-classnames": "3.70.0-next.48",
|
|
72
|
+
"@elliemae/ds-codeeditor": "3.70.0-next.48",
|
|
73
|
+
"@elliemae/ds-circular-progress-indicator": "3.70.0-next.48",
|
|
74
|
+
"@elliemae/ds-comments": "3.70.0-next.48",
|
|
75
|
+
"@elliemae/ds-controlled-form": "3.70.0-next.48",
|
|
76
|
+
"@elliemae/ds-data-table-action-cell": "3.70.0-next.48",
|
|
77
|
+
"@elliemae/ds-csv-converter": "3.70.0-next.48",
|
|
78
|
+
"@elliemae/ds-data-table": "3.70.0-next.48",
|
|
79
|
+
"@elliemae/ds-data-table-cell": "3.70.0-next.48",
|
|
80
|
+
"@elliemae/ds-data-table-expand-cell": "3.70.0-next.48",
|
|
81
|
+
"@elliemae/ds-data-table-cell-header": "3.70.0-next.48",
|
|
82
|
+
"@elliemae/ds-data-table-drag-and-drop-cell": "3.70.0-next.48",
|
|
83
|
+
"@elliemae/ds-data-table-multi-select-cell": "3.70.0-next.48",
|
|
84
|
+
"@elliemae/ds-data-table-filters": "3.70.0-next.48",
|
|
85
|
+
"@elliemae/ds-data-table-single-select-cell": "3.70.0-next.48",
|
|
86
|
+
"@elliemae/ds-dataviz-pie": "3.70.0-next.48",
|
|
87
|
+
"@elliemae/ds-dataviz": "3.70.0-next.48",
|
|
88
|
+
"@elliemae/ds-date-time-picker": "3.70.0-next.48",
|
|
89
|
+
"@elliemae/ds-decision-graph": "3.70.0-next.48",
|
|
90
|
+
"@elliemae/ds-dialog": "3.70.0-next.48",
|
|
91
|
+
"@elliemae/ds-drag-and-drop": "3.70.0-next.48",
|
|
92
|
+
"@elliemae/ds-dropdownmenu-v2": "3.70.0-next.48",
|
|
93
|
+
"@elliemae/ds-filter-bar": "3.70.0-next.48",
|
|
94
|
+
"@elliemae/ds-fast-list": "3.70.0-next.48",
|
|
95
|
+
"@elliemae/ds-form-checkbox": "3.70.0-next.48",
|
|
96
|
+
"@elliemae/ds-form-combobox": "3.70.0-next.48",
|
|
97
|
+
"@elliemae/ds-floating-context": "3.70.0-next.48",
|
|
98
|
+
"@elliemae/ds-form-date-range-picker": "3.70.0-next.48",
|
|
99
|
+
"@elliemae/ds-dropzone": "3.70.0-next.48",
|
|
100
|
+
"@elliemae/ds-form-date-time-picker": "3.70.0-next.48",
|
|
101
|
+
"@elliemae/ds-form-helpers-mask-hooks": "3.70.0-next.48",
|
|
102
|
+
"@elliemae/ds-form-input-textarea": "3.70.0-next.48",
|
|
103
|
+
"@elliemae/ds-form-input-text": "3.70.0-next.48",
|
|
104
|
+
"@elliemae/ds-form-layout-blocks": "3.70.0-next.48",
|
|
105
|
+
"@elliemae/ds-form-layout-autocomplete": "3.70.0-next.48",
|
|
106
|
+
"@elliemae/ds-form-layout-input-group": "3.70.0-next.48",
|
|
107
|
+
"@elliemae/ds-form-layout-label": "3.70.0-next.48",
|
|
108
|
+
"@elliemae/ds-form-radio": "3.70.0-next.48",
|
|
109
|
+
"@elliemae/ds-form-native-select": "3.70.0-next.48",
|
|
110
|
+
"@elliemae/ds-form-multi-combobox": "3.70.0-next.48",
|
|
111
|
+
"@elliemae/ds-form-single-combobox": "3.70.0-next.48",
|
|
112
|
+
"@elliemae/ds-form-select": "3.70.0-next.48",
|
|
113
|
+
"@elliemae/ds-global-header": "3.70.0-next.48",
|
|
114
|
+
"@elliemae/ds-form-toggle": "3.70.0-next.48",
|
|
115
|
+
"@elliemae/ds-hooks-focus-trap": "3.70.0-next.48",
|
|
116
|
+
"@elliemae/ds-hooks-fontsize-media": "3.70.0-next.48",
|
|
117
|
+
"@elliemae/ds-hooks-focus-stack": "3.70.0-next.48",
|
|
118
|
+
"@elliemae/ds-grid": "3.70.0-next.48",
|
|
119
|
+
"@elliemae/ds-hooks-headless-tooltip": "3.70.0-next.48",
|
|
120
|
+
"@elliemae/ds-hooks-is-mobile": "3.70.0-next.48",
|
|
121
|
+
"@elliemae/ds-hooks-on-blur-out": "3.70.0-next.48",
|
|
122
|
+
"@elliemae/ds-hooks-fontsize-detector": "3.70.0-next.48",
|
|
123
|
+
"@elliemae/ds-hooks-is-showing-ellipsis": "3.70.0-next.48",
|
|
124
|
+
"@elliemae/ds-hooks-on-first-focus-in": "3.70.0-next.48",
|
|
125
|
+
"@elliemae/ds-hooks-keyboard-navigation": "3.70.0-next.48",
|
|
126
|
+
"@elliemae/ds-icons": "3.70.0-next.48",
|
|
127
|
+
"@elliemae/ds-imagelibrarymodal": "3.70.0-next.48",
|
|
128
|
+
"@elliemae/ds-image": "3.70.0-next.48",
|
|
129
|
+
"@elliemae/ds-icon": "3.70.0-next.48",
|
|
130
|
+
"@elliemae/ds-layout-provider": "3.70.0-next.48",
|
|
131
|
+
"@elliemae/ds-indeterminate-progress-indicator": "3.70.0-next.48",
|
|
132
|
+
"@elliemae/ds-left-navigation": "3.70.0-next.48",
|
|
133
|
+
"@elliemae/ds-loading-indicator": "3.70.0-next.48",
|
|
134
|
+
"@elliemae/ds-menu-button": "3.70.0-next.48",
|
|
135
|
+
"@elliemae/ds-menu-items": "3.70.0-next.48",
|
|
136
|
+
"@elliemae/ds-menu-items-commons": "3.70.0-next.48",
|
|
137
|
+
"@elliemae/ds-menu-items-multi": "3.70.0-next.48",
|
|
138
|
+
"@elliemae/ds-menu-items-action": "3.70.0-next.48",
|
|
139
|
+
"@elliemae/ds-menu-items-section": "3.70.0-next.48",
|
|
140
|
+
"@elliemae/ds-menu-items-single": "3.70.0-next.48",
|
|
141
|
+
"@elliemae/ds-menu-items-single-with-submenu": "3.70.0-next.48",
|
|
142
|
+
"@elliemae/ds-menu-items-separator": "3.70.0-next.48",
|
|
143
|
+
"@elliemae/ds-menu-items-submenu": "3.70.0-next.48",
|
|
144
|
+
"@elliemae/ds-menu-items-skeleton": "3.70.0-next.48",
|
|
145
|
+
"@elliemae/ds-menu-tree-item": "3.70.0-next.48",
|
|
146
|
+
"@elliemae/ds-mobile": "3.70.0-next.48",
|
|
147
|
+
"@elliemae/ds-notification-badge": "3.70.0-next.48",
|
|
148
|
+
"@elliemae/ds-modal-slide": "3.70.0-next.48",
|
|
149
|
+
"@elliemae/ds-page-header": "3.70.0-next.48",
|
|
150
|
+
"@elliemae/ds-overlay": "3.70.0-next.48",
|
|
151
|
+
"@elliemae/ds-page-header-v1": "3.70.0-next.48",
|
|
152
|
+
"@elliemae/ds-page-header-v2": "3.70.0-next.48",
|
|
153
|
+
"@elliemae/ds-page-layout": "3.70.0-next.48",
|
|
154
|
+
"@elliemae/ds-pills-v2": "3.70.0-next.48",
|
|
155
|
+
"@elliemae/ds-pagination": "3.70.0-next.48",
|
|
156
|
+
"@elliemae/ds-progress-indicator": "3.70.0-next.48",
|
|
157
|
+
"@elliemae/ds-props-helpers": "3.70.0-next.48",
|
|
158
|
+
"@elliemae/ds-portal": "3.70.0-next.48",
|
|
159
|
+
"@elliemae/ds-read-more": "3.70.0-next.48",
|
|
160
|
+
"@elliemae/ds-resizeable-container": "3.70.0-next.48",
|
|
161
|
+
"@elliemae/ds-query-builder": "3.70.0-next.48",
|
|
162
|
+
"@elliemae/ds-ribbon": "3.70.0-next.48",
|
|
163
|
+
"@elliemae/ds-scrollable-container": "3.70.0-next.48",
|
|
164
|
+
"@elliemae/ds-separator": "3.70.0-next.48",
|
|
165
|
+
"@elliemae/ds-shuttle-v2": "3.70.0-next.48",
|
|
166
|
+
"@elliemae/ds-shared": "3.70.0-next.48",
|
|
167
|
+
"@elliemae/ds-side-panel": "3.70.0-next.48",
|
|
168
|
+
"@elliemae/ds-slider-v2": "3.70.0-next.48",
|
|
169
|
+
"@elliemae/ds-skeleton": "3.70.0-next.48",
|
|
170
|
+
"@elliemae/ds-square-indicator": "3.70.0-next.48",
|
|
171
|
+
"@elliemae/ds-svg": "3.70.0-next.48",
|
|
172
|
+
"@elliemae/ds-stepper": "3.70.0-next.48",
|
|
173
|
+
"@elliemae/ds-system": "3.70.0-next.48",
|
|
174
|
+
"@elliemae/ds-side-panel-header": "3.70.0-next.48",
|
|
175
|
+
"@elliemae/ds-tabs": "3.70.0-next.48",
|
|
176
|
+
"@elliemae/ds-toast": "3.70.0-next.48",
|
|
177
|
+
"@elliemae/ds-toolbar-v1": "3.70.0-next.48",
|
|
178
|
+
"@elliemae/ds-toolbar-v2": "3.70.0-next.48",
|
|
179
|
+
"@elliemae/ds-transition": "3.70.0-next.48",
|
|
180
|
+
"@elliemae/ds-test-utils": "3.70.0-next.48",
|
|
181
|
+
"@elliemae/ds-tooltip-v3": "3.70.0-next.48",
|
|
182
|
+
"@elliemae/ds-tree-model": "3.70.0-next.48",
|
|
183
|
+
"@elliemae/ds-treeview": "3.70.0-next.48",
|
|
184
|
+
"@elliemae/ds-typescript-helpers": "3.70.0-next.48",
|
|
185
|
+
"@elliemae/ds-truncated-expandable-text": "3.70.0-next.48",
|
|
186
|
+
"@elliemae/ds-virtual-list": "3.70.0-next.48",
|
|
187
|
+
"@elliemae/ds-zustand-helpers": "3.70.0-next.48",
|
|
188
|
+
"@elliemae/ds-wizard": "3.70.0-next.48",
|
|
189
|
+
"@elliemae/ds-typography": "3.70.0-next.48"
|
|
190
190
|
},
|
|
191
191
|
"publishConfig": {
|
|
192
192
|
"access": "public"
|