dimsum-e2e-tests 3.25.0-next.3 → 3.25.0-next.5

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/ds-circular-indeterminate-indicator/DSCircularIndicator.func.spec.js +15 -0
  3. package/ds-circular-indeterminate-indicator/DSCircularIndicatorCO.js +4 -0
  4. package/ds-comments-card/DSComments.axe-core.func.spec.js +1 -2
  5. package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.keyboard-nav.func.spec.js +4 -4
  6. package/ds-controlled-form/ds-controlled-radio/DSControlledRadio.func.spec.js +43 -1
  7. package/ds-controlled-form/ds-input-text/DSInputText.visual.spec.js +21 -0
  8. package/ds-controlled-form/ds-input-text/DSInputTextCO.js +2 -0
  9. package/ds-data-table-async/DSDataTableCO.js +2 -0
  10. package/ds-data-table-async/basic/DSDataTable.global-attributes.func.spec.js +33 -0
  11. package/ds-data-table-async/basic/DSDataTable.usecases.func.spec.js +0 -11
  12. package/ds-data-table-async/components/PaginationNavCO.js +1 -1
  13. package/ds-data-table-async/filters/DSDataTable.filteredMultipleTables.visual.spec.js +16 -3
  14. package/ds-dropdownmenu-v2/basic/DSDDMenuV2.basic.func.spec.js +15 -15
  15. package/ds-dropdownmenu-v2/mandatory-single/DSDDMenuV2.mandatory-single.func.spec.js +4 -4
  16. package/ds-eol/ds-filterbar/DSFilterBar-basic.axe-core.func.spec.js +2 -2
  17. package/ds-eol/ds-number-range-field/NumberRangeField.visual.spec.js +30 -0
  18. package/{ds-number-range-field → ds-eol/ds-number-range-field}/NumberRangeFieldCO.js +9 -3
  19. package/ds-eol/ds-page-number/DSPageNumber.visual.spec.js +39 -0
  20. package/{ds-page-number → ds-eol/ds-page-number}/DSPageNumberCO.js +9 -3
  21. package/ds-eol/ds-search-field/SearchField.visual.spec.js +86 -0
  22. package/{ds-search-field → ds-eol/ds-search-field}/SearchFieldCO.js +16 -2
  23. package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.visual.spec.js +26 -0
  24. package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +2 -0
  25. package/ds-hooks/DSHookCO.js +1 -1
  26. package/ds-pagination/DSPaginationCO.js +1 -1
  27. package/package.json +119 -119
  28. /package/{ds-number-range-field → ds-eol/ds-number-range-field}/NumberRangeField.func.spec.js +0 -0
  29. /package/{ds-page-number → ds-eol/ds-page-number}/DSPageNumber.func.spec.js +0 -0
  30. /package/{ds-search-field → ds-eol/ds-search-field}/SearchField.func.spec.js +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
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.25.0-next.5](https://git.elliemae.io/platform-ui/dimsum/compare/v3.25.0-next.4...v3.25.0-next.5) (2023-12-01)
7
+
8
+ **Note:** Version bump only for package dimsum-e2e-tests
9
+
10
+ ## [3.25.0-next.4](https://git.elliemae.io/platform-ui/dimsum/compare/v3.25.0-next.3...v3.25.0-next.4) (2023-11-29)
11
+
12
+ **Note:** Version bump only for package dimsum-e2e-tests
13
+
6
14
  ## [3.25.0-next.3](https://git.elliemae.io/platform-ui/dimsum/compare/v3.25.0-next.2...v3.25.0-next.3) (2023-11-28)
7
15
 
8
16
  **Note:** Version bump only for package dimsum-e2e-tests
@@ -1,3 +1,4 @@
1
+ import { Key } from 'webdriverio';
1
2
  import DSCircularIndicatorCO from './DSCircularIndicatorCO';
2
3
  import { mouseOver } from '../helpers';
3
4
 
@@ -14,4 +15,18 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
14
15
  await expect(tooltip).toBeDisplayed();
15
16
  });
16
17
  });
18
+
19
+ describe('PUI-11972 - Circular Indeterminate Indicator - Backdropp prevent interactive background -Func', () => {
20
+ before('loading page', async () => {
21
+ const errorOnGo = await DSCircularIndicatorCO.fullScreenURL.go();
22
+ if (errorOnGo) throw errorOnGo;
23
+ });
24
+ it('should NOT focus interactive elements on the background', async () => {
25
+ const tooltipWrapper = await DSCircularIndicatorCO.getCircularIndicator(0);
26
+ await tooltipWrapper.waitForDisplayed();
27
+ await browser.keys(Key.Tab);
28
+ const skipToButton = await DSCircularIndicatorCO.getSkipToButton();
29
+ await expect(skipToButton).not.toBeFocused();
30
+ });
31
+ });
17
32
  }
@@ -13,6 +13,10 @@ export default class DSSquareIndicator extends PageObject {
13
13
  return PageObject.getSnapshotPathBuilder('CircularIndeterminateIndicator', example, 'ds-circularindicator');
14
14
  }
15
15
 
16
+ static async getSkipToButton() {
17
+ return $(`[id="ds-sb-main"] button`);
18
+ }
19
+
16
20
  static async getCircularIndicator() {
17
21
  return $('[data-testid="ds-circular-indeterminate-indicator-root"]');
18
22
  }
@@ -5,8 +5,7 @@ if (
5
5
  (!browser.capabilities['ice:options'].isPhone && browser.capabilities.browserName === 'chrome') ||
6
6
  browser.capabilities.browserName === 'Chrome'
7
7
  ) {
8
- describe.skip('PUI-10808 - DSCommentsCard, Basic -AxeCore test', () => {
9
- // unskip after PUI-11706 is fixed
8
+ describe('PUI-10808 - DSCommentsCard, Basic -AxeCore test', () => {
10
9
  before('loading page', async () => {
11
10
  const errorOnGo = await DSCommentsCO.basicURL.go();
12
11
  if (errorOnGo) throw errorOnGo;
@@ -80,10 +80,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
80
80
  await expect(pickerBtn).toBeFocused();
81
81
  });
82
82
  it('05: should complete with current date - Ctrl + ;', async () => {
83
- const currentDate = new Date();
84
- const currentMonth = String(currentDate.getMonth() + 1).padStart(2, '0');
85
- const currentDay = String(currentDate.getDate()).padStart(2, '0');
86
- const currentYear = String(currentDate.getFullYear());
87
83
  const month = await DateTimePickerCO.getMonthInput('date-full-clearable');
88
84
  const day = await DateTimePickerCO.getDayInput('date-full-clearable');
89
85
  const year = await DateTimePickerCO.getYearInput('date-full-clearable');
@@ -91,6 +87,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
91
87
 
92
88
  await month.click();
93
89
  await browser.keys([Key.Control, ';']);
90
+ const currentDate = new Date();
91
+ const currentMonth = String(currentDate.getMonth() + 1).padStart(2, '0');
92
+ const currentDay = String(currentDate.getDate()).padStart(2, '0');
93
+ const currentYear = String(currentDate.getFullYear());
94
94
  await expect(month).toHaveValueContaining(currentMonth);
95
95
  await expect(day).toHaveValueContaining(currentDay);
96
96
  await expect(year).toHaveValueContaining(currentYear);
@@ -1,7 +1,8 @@
1
+ import { Key } from 'webdriverio';
1
2
  import DSControlledRadioCO from './DSControlledRadioCO';
2
3
 
3
4
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
- describe('PUI-11697 - DSControlledRadio - Visual Test - Basic styles', () => {
5
+ describe('PUI-11697 - DSControlledRadio - Basic selection -Func.', () => {
5
6
  before('loading page', async () => {
6
7
  const errorOnGo = await DSControlledRadioCO.formLayoutBlockItem.go();
7
8
  if (errorOnGo) throw errorOnGo;
@@ -19,4 +20,45 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
19
20
  await expect(await DSControlledRadioCO.isChecked(radio)).toBe(true);
20
21
  });
21
22
  });
23
+
24
+ describe('PUI-11976 - DSControlledRadio - Basic keyboard selection -Func.', () => {
25
+ before('loading page', async () => {
26
+ const errorOnGo = await DSControlledRadioCO.formLayoutBlockItem.go();
27
+ if (errorOnGo) throw errorOnGo;
28
+ });
29
+ it('01: should have bottom radio selected by default', async () => {
30
+ const radioTop = await DSControlledRadioCO.getRadioByIndex(0);
31
+ const radioBottom = await DSControlledRadioCO.getRadioByIndex(1);
32
+ await browser.keys(Key.Tab);
33
+ await expect(await DSControlledRadioCO.isChecked(radioTop)).toBe(false);
34
+ await expect(await DSControlledRadioCO.isChecked(radioBottom)).toBe(true);
35
+ });
36
+ // Safari has specific behavior agains focus trap in this scenario
37
+ it('02: should move the pseudo focus and selection to upper radio using the focus trap', async () => {
38
+ const radioTop = await DSControlledRadioCO.getRadioByIndex(0);
39
+ const radioBottom = await DSControlledRadioCO.getRadioByIndex(1);
40
+ if (browser.capabilities.browserName !== 'Safari') {
41
+ await browser.keys(Key.ArrowDown);
42
+ } else {
43
+ await browser.keys(Key.ArrowUp);
44
+ }
45
+ await expect(await DSControlledRadioCO.isChecked(radioTop)).toBe(true);
46
+ await expect(await DSControlledRadioCO.isChecked(radioBottom)).toBe(false);
47
+ });
48
+
49
+ it('03: should use arrowDown to move pseudo focus and selection to bottom radio', async () => {
50
+ const radioTop = await DSControlledRadioCO.getRadioByIndex(0);
51
+ const radioBottom = await DSControlledRadioCO.getRadioByIndex(1);
52
+ await browser.keys(Key.ArrowDown);
53
+ await expect(await DSControlledRadioCO.isChecked(radioTop)).toBe(false);
54
+ await expect(await DSControlledRadioCO.isChecked(radioBottom)).toBe(true);
55
+ });
56
+ it('04: should use arrowUp to move pseudo focus and selection to top radio', async () => {
57
+ const radioTop = await DSControlledRadioCO.getRadioByIndex(0);
58
+ const radioBottom = await DSControlledRadioCO.getRadioByIndex(1);
59
+ await browser.keys(Key.ArrowUp);
60
+ await expect(await DSControlledRadioCO.isChecked(radioTop)).toBe(true);
61
+ await expect(await DSControlledRadioCO.isChecked(radioBottom)).toBe(false);
62
+ });
63
+ });
22
64
  }
@@ -124,4 +124,25 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
124
124
  await expect(snapshot).toEqual(0);
125
125
  });
126
126
  });
127
+
128
+ describe('PUI-11984 - DSControlledInputText - HasError -Visual', () => {
129
+ before('loading page', async () => {
130
+ const errorOnGo = await DSInputTextCO.hasError.go();
131
+ if (errorOnGo) throw errorOnGo;
132
+ });
133
+ it('should display errored input uninteracted and with hover (no hover style)', async () => {
134
+ await browser.eyesOpen();
135
+ const input1 = await DSInputTextCO.getInputTextByIndex(0);
136
+ await mouseOver(input1);
137
+ const snapshot = await browser.eyesCheckSnapshot(DSInputTextCO.snapshotPath('input-haserror-default'));
138
+ await expect(snapshot).toEqual(0);
139
+ });
140
+ it('should display errored input focused (style overriden)', async () => {
141
+ await browser.eyesOpen();
142
+ const input1 = await DSInputTextCO.getInputTextByIndex(0);
143
+ await input1.click();
144
+ const snapshot = await browser.eyesCheckSnapshot(DSInputTextCO.snapshotPath('input-haserror-focused'));
145
+ await expect(snapshot).toEqual(0);
146
+ });
147
+ });
127
148
  }
@@ -15,6 +15,8 @@ export default class DSLargeInputCO extends PageObject {
15
15
 
16
16
  static basicURL = new Urlbuilder(PATH_E2E_CONTROLLEDINPUT, 'basic-E-2-e');
17
17
 
18
+ static hasError = new Urlbuilder(PATH_E2E_CONTROLLEDINPUT, 'has-error-test');
19
+
18
20
  static autocompleteURL = new Urlbuilder(PATH_E2E_CONTROLLEDINPUT, 'with-autocomplete');
19
21
 
20
22
  static async getAutocompleteMenuList() {
@@ -163,6 +163,8 @@ export default class DataTableCO extends PageObject {
163
163
 
164
164
  static requiredColumnsMulti = new Urlbuilder(PATH_E2E_DATATABLE, 'required-columns-multi');
165
165
 
166
+ static configurableAriaLabelTest = new Urlbuilder(PATH_E2E_DATATABLE, 'configurable-aria-label-test');
167
+
166
168
  // SELECTORS
167
169
 
168
170
  static getTable = async () => $('[data-testid="data-table-table"]');
@@ -0,0 +1,33 @@
1
+ /* eslint-disable wdio/no-pause */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable prettier/prettier */
4
+ import DSDataTableCO from '../DSDataTableCO';
5
+ import { FilterBarCO, RowCO } from '../components';
6
+
7
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
8
+ describe('PUI-9986 - DataTable, filterbar button aria-label', async () => {
9
+ before('loading page', async () => {
10
+ const errorOnGo = await DSDataTableCO.filteredColumnWithControlledFilterbar.go();
11
+ if (errorOnGo) throw errorOnGo;
12
+ await DSDataTableCO.waitForDataTable();
13
+ });
14
+ it('01: aria-label should be present', async () => {
15
+ const filterbarButton = await FilterBarCO.getFilterBarDropdownMenuButton();
16
+ await expect(filterbarButton).toHaveAttribute('aria-label', 'Filter bar addon');
17
+ });
18
+ });
19
+ describe('PUI-12019 - DataTable, configurable aria-label in the row', async () => {
20
+ before('loading page', async () => {
21
+ const errorOnGo = await DSDataTableCO.configurableAriaLabelTest.go();
22
+ if (errorOnGo) throw errorOnGo;
23
+ await DSDataTableCO.waitForDataTable();
24
+ });
25
+ it('01: custom aria-label should be present in the row', async () => {
26
+ const firstRow = await RowCO.getRowFocuseableByIndex(0);
27
+ await expect(firstRow).toHaveAttribute(
28
+ 'aria-label',
29
+ 'This is a custom aria-label for the row with id 0 with index 0',
30
+ );
31
+ });
32
+ });
33
+ }
@@ -274,17 +274,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
274
274
  await expect(tooltipCount).toBe(1);
275
275
  });
276
276
  });
277
- describe('PUI-9986 - DataTable, filterbar button aria-label', async () => {
278
- before('loading page', async () => {
279
- const errorOnGo = await DSDataTableCO.filteredColumnWithControlledFilterbar.go();
280
- if (errorOnGo) throw errorOnGo;
281
- await DSDataTableCO.waitForDataTable();
282
- });
283
- it('01: aria-label should be present', async () => {
284
- const filterbarButton = await FilterBarCO.getFilterBarDropdownMenuButton();
285
- await expect(filterbarButton).toHaveAttribute('aria-label', 'Filter bar addon');
286
- });
287
- });
288
277
 
289
278
  describe('PUI-10204 - DataTable:: SkipTo', () => {
290
279
  before('loading page', async () => {
@@ -27,5 +27,5 @@ export default class PaginationNavCO extends PageObject {
27
27
 
28
28
  static getSegPagSpans = async () => (await this.getPagesMenu()).$$(' div > span');
29
29
 
30
- static getSegPagContent = async () => $$('button div [data-testid="ds-typography-element"]')[1];
30
+ static getSegPagContent = async () => $$('[data-testid="ds-pagination-paginator"] > div > span')[1];
31
31
  }
@@ -5,17 +5,30 @@ import { FiltersCO } from '../components';
5
5
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
6
  describe('PUI-7370 - DataTable, filtered multiple tables - Visual Test', () => {
7
7
  before('loading page', async () => {
8
- const errorOnGo = await DSDataTableCO.filteredMultipleTables.go();
8
+ const errorOnGo = await DSDataTableCO.filterableTablesE2e.go();
9
9
  if (errorOnGo) throw errorOnGo;
10
10
  await DSDataTableCO.waitForDataTable();
11
11
  });
12
- it('should display the date picker correctly', async () => {
12
+ it('01: should display the date picker correctly of first table', async () => {
13
13
  await FiltersCO.openFilterPopperByColumnName('single date', 0);
14
14
  await DSDataTableCO.type('1');
15
15
  await browser.keys(Key.Tab);
16
16
  await DSDataTableCO.type('10');
17
17
  await DSDataTableCO.type('2020');
18
- const snapshot = await browser.checkSnapshot(DSDataTableCO.snapshotPath('multiple-tables-single-date-opened'));
18
+ const snapshot = await browser.checkSnapshot(
19
+ DSDataTableCO.snapshotPath('multiple-tables-single-date-opened-first-table'),
20
+ );
21
+ await expect(snapshot).toEqual(0);
22
+ });
23
+ it('02: should display the date picker correctly of last table', async () => {
24
+ await FiltersCO.openFilterPopperByColumnName('single date', 3);
25
+ await DSDataTableCO.type('1');
26
+ await browser.keys(Key.Tab);
27
+ await DSDataTableCO.type('10');
28
+ await DSDataTableCO.type('2020');
29
+ const snapshot = await browser.checkSnapshot(
30
+ DSDataTableCO.snapshotPath('multiple-tables-single-date-opened-last-table'),
31
+ );
19
32
  await expect(snapshot).toEqual(0);
20
33
  });
21
34
  });
@@ -12,13 +12,13 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
12
12
  const ddMenuTrigger = await DSDDMenuV2CO.getDropDownTrigger();
13
13
  await ddMenuTrigger.click();
14
14
  const optionsPresent = (await DSDDMenuV2CO.getOptions()).length;
15
- await expect(optionsPresent).toEqual(6);
15
+ await expect(optionsPresent).toEqual(9);
16
16
  });
17
17
  it('02: should open also a submenu and have 5 more options', async () => {
18
18
  const submenuIcon = await DSDDMenuV2CO.getSubmenuIconByIndex(0);
19
19
  await submenuIcon.click();
20
20
  const optionsPresent = (await DSDDMenuV2CO.getOptions()).length;
21
- await expect(optionsPresent).toEqual(11);
21
+ await expect(optionsPresent).toEqual(16);
22
22
  });
23
23
  });
24
24
  describe('PUI-11827 - DropdownMenuV2 - onOptionClick - mouse functional test', () => {
@@ -30,56 +30,56 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
30
30
  const ddMenuTrigger = await DSDDMenuV2CO.getDropDownTrigger();
31
31
  await ddMenuTrigger.click();
32
32
  // option label: Standard
33
- const firstOption = await DSDDMenuV2CO.getOptionByIndex(0);
33
+ const firstOption = await DSDDMenuV2CO.getOptionByIndex(1);
34
34
  await firstOption.click();
35
35
  const counterValue = await DSDDMenuV2CO.getCounterValue();
36
36
  await expect(counterValue).toHaveTextContaining('Clicks: 1');
37
37
  });
38
38
  it('02: should increase the counter by clicking option type single', async () => {
39
39
  // option label: View names are sentence case
40
- const secondOption = await DSDDMenuV2CO.getOptionByIndex(1);
40
+ const secondOption = await DSDDMenuV2CO.getOptionByIndex(2);
41
41
  await secondOption.click();
42
42
  const counterValue = await DSDDMenuV2CO.getCounterValue();
43
43
  await expect(counterValue).toHaveTextContaining('Clicks: 2');
44
44
  });
45
45
  it('03: should not increase the counter by clicking option type singleWithSubmenu - disabled', async () => {
46
46
  // option label: View names can be long
47
- const thirdOption = await DSDDMenuV2CO.getOptionByIndex(2);
47
+ const thirdOption = await DSDDMenuV2CO.getOptionByIndex(3);
48
48
  await thirdOption.click();
49
49
  const counterValue = await DSDDMenuV2CO.getCounterValue();
50
50
  await expect(counterValue).toHaveTextContaining('Clicks: 2');
51
51
  });
52
52
  it('04: should increase the counter by clicking option type singleWithSubmenu', async () => {
53
53
  // option label: Monthly views
54
- const fourthOption = await DSDDMenuV2CO.getOptionByIndex(3);
54
+ const fourthOption = await DSDDMenuV2CO.getOptionByIndex(4);
55
55
  await fourthOption.click();
56
56
  const counterValue = await DSDDMenuV2CO.getCounterValue();
57
57
  await expect(counterValue).toHaveTextContaining('Clicks: 3');
58
58
  });
59
59
  it('05: should not increase the counter by clicking option type submenu', async () => {
60
60
  // option label: Other views
61
- const fifthOption = await DSDDMenuV2CO.getOptionByIndex(4);
61
+ const fifthOption = await DSDDMenuV2CO.getOptionByIndex(5);
62
62
  await fifthOption.click();
63
63
  const counterValue = await DSDDMenuV2CO.getCounterValue();
64
64
  await expect(counterValue).toHaveTextContaining('Clicks: 3');
65
65
  });
66
66
  it('06: should not increase the counter by clicking option type single - disabled', async () => {
67
67
  // option label: Random view
68
- const ninthOption = await DSDDMenuV2CO.getOptionByIndex(8);
68
+ const ninthOption = await DSDDMenuV2CO.getOptionByIndex(11);
69
69
  await ninthOption.click();
70
70
  const counterValue = await DSDDMenuV2CO.getCounterValue();
71
71
  await expect(counterValue).toHaveTextContaining('Clicks: 3');
72
72
  });
73
73
  it('07: should not increase the counter by clicking option type action - disabled', async () => {
74
74
  // option label: Rename
75
- const tenthOption = await DSDDMenuV2CO.getOptionByIndex(9);
75
+ const tenthOption = await DSDDMenuV2CO.getOptionByIndex(13);
76
76
  await tenthOption.click();
77
77
  const counterValue = await DSDDMenuV2CO.getCounterValue();
78
78
  await expect(counterValue).toHaveTextContaining('Clicks: 3');
79
79
  });
80
80
  it('08: should increase the counter by clicking option type action', async () => {
81
81
  // Create new view
82
- const sixthOption = await DSDDMenuV2CO.getOptionByIndex(5);
82
+ const sixthOption = await DSDDMenuV2CO.getOptionByIndex(8);
83
83
  await sixthOption.click();
84
84
  const counterValue = await DSDDMenuV2CO.getCounterValue();
85
85
  await expect(counterValue).toHaveTextContaining('Clicks: 4');
@@ -129,27 +129,27 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
129
129
  it('01: type singleWithSubmenu: check global attributes', async () => {
130
130
  const ddMenuTrigger = await DSDDMenuV2CO.getDropDownTrigger();
131
131
  await ddMenuTrigger.click();
132
- const firstOption = await DSDDMenuV2CO.getOptionByIndex(0);
132
+ const firstOption = await DSDDMenuV2CO.getOptionByIndex(1);
133
133
  await expect(firstOption).toHaveAttribute('aria-label', 'Standard case aria label');
134
134
  await expect(firstOption).toHaveAttribute('aria-describedby', 'mycustomID');
135
135
  await expect(firstOption).toHaveAttribute('data-testid', 'single-with-submenu-item-id1');
136
136
  });
137
137
  it('02: type single: check global attributes', async () => {
138
- const secondOption = await DSDDMenuV2CO.getOptionByIndex(1);
138
+ const secondOption = await DSDDMenuV2CO.getOptionByIndex(2);
139
139
  await expect(secondOption).toHaveAttribute('aria-label', 'View names are sentence case aria label');
140
140
  await expect(secondOption).toHaveAttribute('aria-describedby', 'mycustomID2');
141
141
  await expect(secondOption).toHaveAttribute('data-testid', 'single-item-id2');
142
142
  });
143
143
  it('03: type submenu: check global attributes', async () => {
144
- const fifthOption = await DSDDMenuV2CO.getOptionByIndex(4);
144
+ const fifthOption = await DSDDMenuV2CO.getOptionByIndex(5);
145
145
  await expect(fifthOption).toHaveAttribute('aria-label', 'Other views aria label');
146
146
  await expect(fifthOption).toHaveAttribute('aria-describedby', 'mycustomID3');
147
147
  await expect(fifthOption).toHaveAttribute('data-testid', 'submenu-item-id5');
148
148
  });
149
149
  it('04: type singleWithSubmenu (2nd level): check global attributes', async () => {
150
- const fifthOption = await DSDDMenuV2CO.getOptionByIndex(4);
150
+ const fifthOption = await DSDDMenuV2CO.getOptionByIndex(5);
151
151
  await fifthOption.click();
152
- const yearlyViewsOption = await DSDDMenuV2CO.getOptionByIndex(6);
152
+ const yearlyViewsOption = await DSDDMenuV2CO.getOptionByIndex(9);
153
153
  await yearlyViewsOption.waitForDisplayed();
154
154
  await expect(yearlyViewsOption).toHaveAttribute('aria-label', 'Yearly views aria label');
155
155
  await expect(yearlyViewsOption).toHaveAttribute('aria-describedby', 'mycustomID4');
@@ -9,13 +9,13 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
9
9
  it('01: should open ddmenu and have option 1 automatically checked', async () => {
10
10
  const ddMenuTrigger = await DSDDMenuV2CO.getDropDownTrigger();
11
11
  await ddMenuTrigger.click();
12
- const opt1 = await DSDDMenuV2CO.getOptionByIndex(0);
12
+ const opt1 = await DSDDMenuV2CO.getOptionByIndex(1);
13
13
  const isOpt1Checked = await opt1.getAttribute('aria-selected');
14
14
  await expect(isOpt1Checked).toEqual('true');
15
15
  });
16
16
  it('02: should click option 2 and have this option checked and option 1 unchecked', async () => {
17
- const opt1 = await DSDDMenuV2CO.getOptionByIndex(0);
18
- const opt2 = await DSDDMenuV2CO.getOptionByIndex(2);
17
+ const opt1 = await DSDDMenuV2CO.getOptionByIndex(1);
18
+ const opt2 = await DSDDMenuV2CO.getOptionByIndex(3);
19
19
  await opt2.click();
20
20
  const isOpt1Checked = await opt1.getAttribute('aria-selected');
21
21
  await expect(isOpt1Checked).toEqual('false');
@@ -23,7 +23,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
23
23
  await expect(isOpt2Checked).toEqual('true');
24
24
  });
25
25
  it('03: should not deselect the only option selected with click (mandatory select)', async () => {
26
- const opt2 = await DSDDMenuV2CO.getOptionByIndex(2);
26
+ const opt2 = await DSDDMenuV2CO.getOptionByIndex(3);
27
27
  await opt2.click();
28
28
  const isOpt2Checked = await opt2.getAttribute('aria-selected');
29
29
  await expect(isOpt2Checked).toEqual('true');
@@ -26,8 +26,8 @@ if (
26
26
  expect(result.length).toBe(0);
27
27
  });
28
28
  });
29
- // Unskip after PUI11487 is fixed
30
- describe.skip('PUI-11877: FilterBar Multi migrated -AxeCore', () => {
29
+
30
+ describe('PUI-11877: FilterBar Multi migrated -AxeCore', () => {
31
31
  before(async () => {
32
32
  const errorOnGo = await FilterbarCO.migratedMulti.go();
33
33
  if (errorOnGo) throw errorOnGo;
@@ -0,0 +1,30 @@
1
+ import { Key } from 'webdriverio';
2
+ import NumberRangeFieldCO from './NumberRangeFieldCO';
3
+ import { type } from '../../helpers';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ describe('PUI-11994 - NumberRangeField: after migration -Visual', () => {
7
+ before(async () => {
8
+ const errorOnGo = await NumberRangeFieldCO.migratedURL.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: should display empty number range field by default', async () => {
12
+ await browser.eyesOpen();
13
+ const input = await NumberRangeFieldCO.getInput(0);
14
+ await input.waitForDisplayed();
15
+ const snapshot = await browser.eyesCheckSnapshot(NumberRangeFieldCO.snapshotPath('numberrange-migrated-default'));
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+ it('02: should display populated number range field, one focused', async () => {
19
+ await browser.eyesOpen();
20
+ await browser.keys(Key.Tab);
21
+ await type('3');
22
+ await browser.keys(Key.Tab);
23
+ await type('9');
24
+ const snapshot = await browser.eyesCheckSnapshot(
25
+ NumberRangeFieldCO.snapshotPath('numberrange-migrated-populated'),
26
+ );
27
+ await expect(snapshot).toEqual(0);
28
+ });
29
+ });
30
+ }
@@ -1,5 +1,5 @@
1
- import { PATH_NUMBER_RANGE_FIELD } from '../../environments/storybook/paths';
2
- import { PageObject, Urlbuilder } from '../helpers';
1
+ import { PATH_NUMBER_RANGE_FIELD, PATH_E2E_NUMBERRANGEFIELD } from '../../../environments/storybook/paths';
2
+ import { PageObject, Urlbuilder } from '../../helpers';
3
3
 
4
4
  export const knobs = {
5
5
  minFrom: 'knob-minFrom',
@@ -8,7 +8,9 @@ export const knobs = {
8
8
  maxTo: 'knob-maxTo',
9
9
  };
10
10
  export default class NumberRangeField extends PageObject {
11
- static basicURL = new Urlbuilder(PATH_NUMBER_RANGE_FIELD, 'basic');
11
+ static basicURL = new Urlbuilder(PATH_NUMBER_RANGE_FIELD, 'widget-usage');
12
+
13
+ static migratedURL = new Urlbuilder(PATH_E2E_NUMBERRANGEFIELD, 'migrated-test');
12
14
 
13
15
  static async getFromInput() {
14
16
  return $('[data-testid="ds-number-range-field__from-input"]');
@@ -18,6 +20,10 @@ export default class NumberRangeField extends PageObject {
18
20
  return $('[data-testid="ds-number-range-field__to-input"]');
19
21
  }
20
22
 
23
+ static async getInput(index = 0) {
24
+ return $$('[data-testid="ds-input-text-input"]')[index];
25
+ }
26
+
21
27
  // Snapshots
22
28
  static snapshotPath(example = 'basic') {
23
29
  return PageObject.getSnapshotPathBuilder('DSNumberRangeField', example, 'ds-number-range-field');
@@ -0,0 +1,39 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSPageNumberCO from './DSPageNumberCO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-11995 - Page Number: After migration - Visual', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSPageNumberCO.migratedURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+ it('01: should display pageNumber marking "1" by default', async () => {
11
+ await browser.eyesOpen();
12
+ const currentPageInput = await DSPageNumberCO.getMigCurrPage();
13
+ await currentPageInput.waitForDisplayed();
14
+ const snapshot = await browser.eyesCheckSnapshot(DSPageNumberCO.snapshotPath('pagenumber-migrated-default'));
15
+ await expect(snapshot).toEqual(0);
16
+ });
17
+ it('02: should display pageNumber marking "3" after using upArrow button twice', async () => {
18
+ await browser.eyesOpen();
19
+ const currentPageInput = await DSPageNumberCO.getMigCurrPage();
20
+ await currentPageInput.waitForDisplayed();
21
+ await browser.keys(Key.Tab);
22
+ await browser.keys(Key.Tab);
23
+ await browser.keys(Key.Enter);
24
+ await browser.keys(Key.Enter);
25
+ const snapshot = await browser.eyesCheckSnapshot(DSPageNumberCO.snapshotPath('pagenumber-migrated-increased'));
26
+ await expect(snapshot).toEqual(0);
27
+ });
28
+ it('03: should display pageNumber empty', async () => {
29
+ await browser.eyesOpen();
30
+ const currentPageInput = await DSPageNumberCO.getMigCurrPage();
31
+ await currentPageInput.click();
32
+ await browser.keys(Key.ArrowRight);
33
+ await browser.keys(Key.Backspace);
34
+ await browser.keys(Key.Tab);
35
+ const snapshot = await browser.eyesCheckSnapshot(DSPageNumberCO.snapshotPath('pagenumber-migrated-empty'));
36
+ await expect(snapshot).toEqual(0);
37
+ });
38
+ });
39
+ }
@@ -1,9 +1,11 @@
1
- import { PATH_PAGE_NUMBER } from '../../environments/storybook/paths';
2
- import { PageObject, Urlbuilder } from '../helpers';
1
+ import { PATH_PAGE_NUMBER, PATH_E2E_PAGENUMBER } from '../../../environments/storybook/paths';
2
+ import { PageObject, Urlbuilder } from '../../helpers';
3
3
 
4
4
  export default class DSPageNumberCO extends PageObject {
5
5
  // Desktop
6
- static basicURL = new Urlbuilder(PATH_PAGE_NUMBER, 'basic');
6
+ static basicURL = new Urlbuilder(PATH_PAGE_NUMBER, 'widget-usage');
7
+
8
+ static migratedURL = new Urlbuilder(PATH_E2E_PAGENUMBER, 'migrated-test');
7
9
 
8
10
  static getUrl(component = 'basic') {
9
11
  return PageObject.getUrl(PATH_PAGE_NUMBER, component);
@@ -18,6 +20,10 @@ export default class DSPageNumberCO extends PageObject {
18
20
  return $('//input[@data-testid="page-number__current-page"]');
19
21
  }
20
22
 
23
+ static async getMigCurrPage() {
24
+ return $('[aria-label="Current Page"]');
25
+ }
26
+
21
27
  static async getTotalPages() {
22
28
  return $('[data-testid="page-number__total-pages"]');
23
29
  }
@@ -0,0 +1,86 @@
1
+ import { Key } from 'webdriverio';
2
+ import SearchFieldCO from './SearchFieldCO';
3
+ import { type } from '../../helpers';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ describe('PUI-11996 - SearchField: After migration -Visual', () => {
7
+ before(async () => {
8
+ const errorOnGo = await SearchFieldCO.migratedURL.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: searchField should be displayed', async () => {
12
+ await browser.eyesOpen();
13
+ const comboBoxField = await SearchFieldCO.getComboInputByIndex(0);
14
+ await comboBoxField.waitForDisplayed();
15
+ const snapshot = await browser.eyesCheckSnapshot(SearchFieldCO.snapshotPath('searchfield-migrated-default'));
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+ it('02: searchField should be expanded', async () => {
19
+ await browser.eyesOpen();
20
+ const comboBoxField = await SearchFieldCO.getComboInputByIndex(0);
21
+ await comboBoxField.click();
22
+ const snapshot = await browser.eyesCheckSnapshot(SearchFieldCO.snapshotPath('searchfield-migrated-expanded'));
23
+ await expect(snapshot).toEqual(0);
24
+ });
25
+ it('03: searchField should be populated', async () => {
26
+ await browser.eyesOpen();
27
+ const comboBoxField = await SearchFieldCO.getComboInputByIndex(0);
28
+ await comboBoxField.waitForDisplayed();
29
+ await browser.keys(Key.Enter);
30
+ const snapshot = await browser.eyesCheckSnapshot(SearchFieldCO.snapshotPath('searchfield-migrated-populated'));
31
+ await expect(snapshot).toEqual(0);
32
+ });
33
+ it('04: searchField should have advanced configuration modal expanded', async () => {
34
+ await browser.eyesOpen();
35
+ const advancedButton = await SearchFieldCO.getButtonByindex(0);
36
+ await advancedButton.click();
37
+ const snapshot = await browser.eyesCheckSnapshot(SearchFieldCO.snapshotPath('searchfield-migrated-advanced'));
38
+ await expect(snapshot).toEqual(0);
39
+ });
40
+ });
41
+
42
+ describe('PUI-1997 - SearchField: After migration: queryBuilder example -Visual', () => {
43
+ before(async () => {
44
+ const errorOnGo = await SearchFieldCO.migratedURL.go();
45
+ if (errorOnGo) throw errorOnGo;
46
+ });
47
+ it('01: searchField should be displayed (expanded output)', async () => {
48
+ await browser.eyesOpen();
49
+ const comboBoxField = await SearchFieldCO.getOutputAccordion();
50
+ await comboBoxField.click();
51
+ const snapshot = await browser.eyesCheckSnapshot(
52
+ SearchFieldCO.snapshotPath('searchfield-migrated-queryb-default'),
53
+ );
54
+ await expect(snapshot).toEqual(0);
55
+ });
56
+ it('02: searchField should be expanded', async () => {
57
+ await browser.eyesOpen();
58
+ const comboBoxField = await SearchFieldCO.getComboInputByIndex(1);
59
+ await comboBoxField.click();
60
+ const snapshot = await browser.eyesCheckSnapshot(
61
+ SearchFieldCO.snapshotPath('searchfield-migrated-queryb-expanded'),
62
+ );
63
+ await expect(snapshot).toEqual(0);
64
+ });
65
+ it('03: searchField should be populated', async () => {
66
+ await browser.eyesOpen();
67
+ await browser.keys(Key.Enter);
68
+ await browser.keys(Key.Tab);
69
+ await browser.keys(Key.Tab);
70
+ await type('10');
71
+ const snapshot = await browser.eyesCheckSnapshot(
72
+ SearchFieldCO.snapshotPath('searchfield-migrated-queryb-populated'),
73
+ );
74
+ await expect(snapshot).toEqual(0);
75
+ });
76
+ it('04: searchField should be advanced expanded', async () => {
77
+ await browser.eyesOpen();
78
+ const advancedButton = await SearchFieldCO.getButtonByindex(1);
79
+ await advancedButton.click();
80
+ const snapshot = await browser.eyesCheckSnapshot(
81
+ SearchFieldCO.snapshotPath('searchfield-migrated-queryb-advanced'),
82
+ );
83
+ await expect(snapshot).toEqual(0);
84
+ });
85
+ });
86
+ }
@@ -1,10 +1,12 @@
1
1
  import { Key } from 'webdriverio';
2
- import { PATH_SEARCH_FIELD } from '../../environments/storybook/paths';
3
- import { PageObject, Urlbuilder, type } from '../helpers';
2
+ import { PATH_SEARCH_FIELD, PATH_E2E_SEARCHFIELD } from '../../../environments/storybook/paths';
3
+ import { PageObject, Urlbuilder, type } from '../../helpers';
4
4
 
5
5
  export default class QueryBuilderCO extends PageObject {
6
6
  static withoutLookupIndicator = new Urlbuilder(PATH_SEARCH_FIELD, 'without-lookup-indicator');
7
7
 
8
+ static migratedURL = new Urlbuilder(PATH_E2E_SEARCHFIELD, 'migrated-test');
9
+
8
10
  static modalStandaloneURL = new Urlbuilder(PATH_SEARCH_FIELD, 'modal-search-field-standalone');
9
11
 
10
12
  static tabsCallbackInSearchFieldURL = new Urlbuilder(PATH_SEARCH_FIELD, 'tabs-callback-in-search-field');
@@ -21,6 +23,14 @@ export default class QueryBuilderCO extends PageObject {
21
23
  return $$('[data-testid="combobox-option"]');
22
24
  }
23
25
 
26
+ static async getButtonByindex(index = 0) {
27
+ return $$('[data-testid="ds-button"]')[index];
28
+ }
29
+
30
+ static async getComboInputByIndex(index = 0) {
31
+ return $$('[data-testid="combobox-input"]')[index];
32
+ }
33
+
24
34
  static async getCombobox(index) {
25
35
  return $$('[data-testid="combobox"]')[index];
26
36
  }
@@ -41,6 +51,10 @@ export default class QueryBuilderCO extends PageObject {
41
51
  return $('[data-testid="combobox"]').$('input');
42
52
  }
43
53
 
54
+ static async getOutputAccordion() {
55
+ return $('[data-testid="ds-accordion-item-header-addon"]');
56
+ }
57
+
44
58
  static async getPillsText() {
45
59
  const pillsText = [];
46
60
  // eslint-disable-next-line no-restricted-syntax, no-unused-vars
@@ -152,4 +152,30 @@ if (!browser.capabilities['ice:options'].isPhone) {
152
152
  });
153
153
  });
154
154
  }
155
+
156
+ describe('PUI-11980 - DSFormLayoutBlockItem: Customization, Highlight - visual test', () => {
157
+ before('loading page', async () => {
158
+ const errorOnGo = await DSFormLayoutBlockItemCO.withCustomHighlight.go();
159
+ if (errorOnGo) throw errorOnGo;
160
+ });
161
+ it('should display form layout block item with custom highlight: default state', async () => {
162
+ await (await DSFormLayoutBlockItemCO.firstNameLabel()).waitForDisplayed();
163
+ const snapshot = await browser.checkSnapshot(DSFormLayoutBlockItemCO.snapshotPath('custom-highlight-default'));
164
+ await expect(snapshot).toEqual(0);
165
+ });
166
+ if (!browser.capabilities['ice:options'].isTablet) {
167
+ it('should display form layout block item with custom highlight: hover state', async () => {
168
+ await mouseOver(await DSFormLayoutBlockItemCO.middleNameLabel());
169
+ const snapshot = await browser.checkSnapshot(DSFormLayoutBlockItemCO.snapshotPath('custom-highlight-hovered'));
170
+ await expect(snapshot).toEqual(0);
171
+ });
172
+ it('should display form layout block item with custom highlight: keyboard focus', async () => {
173
+ await browser.keys(Key.Tab);
174
+ const snapshot = await browser.checkSnapshot(
175
+ DSFormLayoutBlockItemCO.snapshotPath('custom-highlight-keyboard-focus'),
176
+ );
177
+ await expect(snapshot).toEqual(0);
178
+ });
179
+ }
180
+ });
155
181
  }
@@ -12,6 +12,8 @@ export default class DSFormLayoutBlockItemCO extends PageObject {
12
12
 
13
13
  static withHighlight = new Urlbuilder(PATH_E2E_FORM_LAYOUT_BLOCK_ITEM, 'with-highlight');
14
14
 
15
+ static withCustomHighlight = new Urlbuilder(PATH_E2E_FORM_LAYOUT_BLOCK_ITEM, 'custom-highlight-test');
16
+
15
17
  static withWrapping = new Urlbuilder(PATH_E2E_FORM_LAYOUT_BLOCK_ITEM, 'wrapping-e-2-e');
16
18
 
17
19
  static optionalAndRequired = new Urlbuilder(PATH_E2E_FORM_LAYOUT_BLOCK_ITEM, 'optional-and-required');
@@ -71,7 +71,7 @@ export default class DSHookCO extends PageObject {
71
71
  static getAddChildBtnByIndex = async (index) => getElementByIndex(this.getAddChildButtons, index);
72
72
 
73
73
  static async getBreadCrumbItems() {
74
- return $$('[data-testid="ds-typography-element"]');
74
+ return $$('[data-testid="ds-breadcrumb-item"]');
75
75
  }
76
76
 
77
77
  static getBreadCrumbItemByIndex = async (index) => getElementByIndex(this.getBreadCrumbItems, index);
@@ -31,7 +31,7 @@ export default class DSPaginationCO extends PageObject {
31
31
 
32
32
  static getCustomButton = async () => $('[data-testid="ds-button"]');
33
33
 
34
- static getCustomLegend = async () => $('[data-testid="ds-typography-element"]');
34
+ static getCustomLegend = async () => $('[data-testid="custom-legend"]');
35
35
 
36
36
  // Snapshots
37
37
  static snapshotPath(example = 'basic') {
package/package.json CHANGED
@@ -1,125 +1,125 @@
1
1
  {
2
2
  "name": "dimsum-e2e-tests",
3
- "version": "3.25.0-next.3",
3
+ "version": "3.25.0-next.5",
4
4
  "description": "End-to-end tests for dimsum library",
5
5
  "dependencies": {
6
- "@elliemae/ds-app-picker": "3.25.0-next.3",
7
- "@elliemae/ds-banner": "3.25.0-next.3",
8
- "@elliemae/ds-basic": "3.25.0-next.3",
9
- "@elliemae/ds-accordion": "3.25.0-next.3",
10
- "@elliemae/ds-breadcrumb": "3.25.0-next.3",
11
- "@elliemae/ds-button-v2": "3.25.0-next.3",
12
- "@elliemae/ds-card": "3.25.0-next.3",
13
- "@elliemae/ds-button": "3.25.0-next.3",
14
- "@elliemae/ds-card-array": "3.25.0-next.3",
15
- "@elliemae/ds-card-navigation": "3.25.0-next.3",
16
- "@elliemae/ds-card-v2": "3.25.0-next.3",
17
- "@elliemae/ds-card-v2-action-addon": "3.25.0-next.3",
18
- "@elliemae/ds-chat": "3.25.0-next.3",
19
- "@elliemae/ds-chat-bubble": "3.25.0-next.3",
20
- "@elliemae/ds-chat-tile": "3.25.0-next.3",
21
- "@elliemae/ds-card-v2-group": "3.25.0-next.3",
22
- "@elliemae/ds-circular-progress-indicator": "3.25.0-next.3",
23
- "@elliemae/ds-codeeditor": "3.25.0-next.3",
24
- "@elliemae/ds-comments": "3.25.0-next.3",
25
- "@elliemae/ds-controlled-form": "3.25.0-next.3",
26
- "@elliemae/ds-data-table": "3.25.0-next.3",
27
- "@elliemae/ds-datagrids": "3.25.0-next.3",
28
- "@elliemae/ds-button-group": "3.25.0-next.3",
29
- "@elliemae/ds-backdrop": "3.25.0-next.3",
30
- "@elliemae/ds-button-v1": "3.25.0-next.3",
31
- "@elliemae/ds-date-picker": "3.25.0-next.3",
32
- "@elliemae/ds-date-range-picker": "3.25.0-next.3",
33
- "@elliemae/ds-date-range-selector": "3.25.0-next.3",
34
- "@elliemae/ds-date-time-picker": "3.25.0-next.3",
35
- "@elliemae/ds-date-time-recurrence-picker": "3.25.0-next.3",
36
- "@elliemae/ds-chip": "3.25.0-next.3",
37
- "@elliemae/ds-dataviz": "3.25.0-next.3",
38
- "@elliemae/ds-drag-and-drop": "3.25.0-next.3",
39
- "@elliemae/ds-dataviz-pie": "3.25.0-next.3",
40
- "@elliemae/ds-dropdownmenu": "3.25.0-next.3",
41
- "@elliemae/ds-csv-converter": "3.25.0-next.3",
42
- "@elliemae/ds-filterbar": "3.25.0-next.3",
43
- "@elliemae/ds-form-date-range-picker": "3.25.0-next.3",
44
- "@elliemae/ds-form-date-time-picker": "3.25.0-next.3",
45
- "@elliemae/ds-form-layout-blocks": "3.25.0-next.3",
46
- "@elliemae/ds-form": "3.25.0-next.3",
47
- "@elliemae/ds-global-header": "3.25.0-next.3",
48
- "@elliemae/ds-grid": "3.25.0-next.3",
49
- "@elliemae/ds-decision-graph": "3.25.0-next.3",
50
- "@elliemae/ds-accessibility": "3.25.0-next.3",
51
- "@elliemae/ds-form-layout-label": "3.25.0-next.3",
52
- "@elliemae/ds-dropzone": "3.25.0-next.3",
53
- "@elliemae/ds-header": "3.25.0-next.3",
54
- "@elliemae/ds-icon": "3.25.0-next.3",
55
- "@elliemae/ds-dialog": "3.25.0-next.3",
56
- "@elliemae/ds-icons": "3.25.0-next.3",
57
- "@elliemae/ds-imagelibrarymodal": "3.25.0-next.3",
58
- "@elliemae/ds-fast-list": "3.25.0-next.3",
59
- "@elliemae/ds-hooks-fontsize-media": "3.25.0-next.3",
60
- "@elliemae/ds-indeterminate-progress-indicator": "3.25.0-next.3",
61
- "@elliemae/ds-hooks-fontsize-detector": "3.25.0-next.3",
62
- "@elliemae/ds-group-box": "3.25.0-next.3",
63
- "@elliemae/ds-image": "3.25.0-next.3",
64
- "@elliemae/ds-menu": "3.25.0-next.3",
65
- "@elliemae/ds-menu-items": "3.25.0-next.3",
66
- "@elliemae/ds-mini-toolbar": "3.25.0-next.3",
67
- "@elliemae/ds-modal": "3.25.0-next.3",
68
- "@elliemae/ds-modal-slide": "3.25.0-next.3",
69
- "@elliemae/ds-number-range-field": "3.25.0-next.3",
70
- "@elliemae/ds-page-header": "3.25.0-next.3",
71
- "@elliemae/ds-page-header-v1": "3.25.0-next.3",
72
- "@elliemae/ds-page-header-v2": "3.25.0-next.3",
73
- "@elliemae/ds-mobile": "3.25.0-next.3",
74
- "@elliemae/ds-label-value": "3.25.0-next.3",
75
- "@elliemae/ds-page-number": "3.25.0-next.3",
76
- "@elliemae/ds-left-navigation": "3.25.0-next.3",
77
- "@elliemae/ds-pagination": "3.25.0-next.3",
78
- "@elliemae/ds-popover": "3.25.0-next.3",
79
- "@elliemae/ds-pills": "3.25.0-next.3",
80
- "@elliemae/ds-popper": "3.25.0-next.3",
81
- "@elliemae/ds-popperjs": "3.25.0-next.3",
82
- "@elliemae/ds-query-builder": "3.25.0-next.3",
83
- "@elliemae/ds-read-more": "3.25.0-next.3",
84
- "@elliemae/ds-ribbon": "3.25.0-next.3",
85
- "@elliemae/ds-search-field": "3.25.0-next.3",
86
- "@elliemae/ds-separator": "3.25.0-next.3",
87
- "@elliemae/ds-shuttle": "3.25.0-next.3",
88
- "@elliemae/ds-loading-indicator": "3.25.0-next.3",
89
- "@elliemae/ds-notification-badge": "3.25.0-next.3",
90
- "@elliemae/ds-list-section-header": "3.25.0-next.3",
91
- "@elliemae/ds-skeleton": "3.25.0-next.3",
92
- "@elliemae/ds-spinner": "3.25.0-next.3",
93
- "@elliemae/ds-page-layout": "3.25.0-next.3",
94
- "@elliemae/ds-side-panel": "3.25.0-next.3",
95
- "@elliemae/ds-progress-indicator": "3.25.0-next.3",
96
- "@elliemae/ds-system": "3.25.0-next.3",
97
- "@elliemae/ds-resizeable-container": "3.25.0-next.3",
98
- "@elliemae/ds-tabs": "3.25.0-next.3",
99
- "@elliemae/ds-shuttle-v2": "3.25.0-next.3",
100
- "@elliemae/ds-time-picker": "3.25.0-next.3",
101
- "@elliemae/ds-square-indicator": "3.25.0-next.3",
102
- "@elliemae/ds-toolbar": "3.25.0-next.3",
103
- "@elliemae/ds-slider": "3.25.0-next.3",
104
- "@elliemae/ds-tooltip": "3.25.0-next.3",
105
- "@elliemae/ds-stepper": "3.25.0-next.3",
106
- "@elliemae/ds-svg": "3.25.0-next.3",
107
- "@elliemae/ds-treeview": "3.25.0-next.3",
108
- "@elliemae/ds-truncated-expandable-text": "3.25.0-next.3",
109
- "@elliemae/ds-truncated-tooltip-text": "3.25.0-next.3",
110
- "@elliemae/ds-text-wrapper": "3.25.0-next.3",
111
- "@elliemae/ds-typography": "3.25.0-next.3",
112
- "@elliemae/ds-uploader": "3.25.0-next.3",
113
- "@elliemae/ds-utilities": "3.25.0-next.3",
114
- "@elliemae/ds-wizard": "3.25.0-next.3",
115
- "@elliemae/ds-wysiwygeditor": "3.25.0-next.3",
116
- "@elliemae/ds-zipcode-search": "3.25.0-next.3",
117
- "@elliemae/ds-toolbar-v2": "3.25.0-next.3",
118
- "@elliemae/ds-zoom": "3.25.0-next.3",
119
- "@elliemae/ds-test-utils": "3.25.0-next.3",
120
- "@elliemae/ds-tree-model": "3.25.0-next.3",
121
- "@elliemae/ds-transition": "3.25.0-next.3",
122
- "@elliemae/ds-virtual-list": "3.25.0-next.3",
123
- "@elliemae/ds-toast": "3.25.0-next.3"
6
+ "@elliemae/ds-accessibility": "3.25.0-next.5",
7
+ "@elliemae/ds-basic": "3.25.0-next.5",
8
+ "@elliemae/ds-banner": "3.25.0-next.5",
9
+ "@elliemae/ds-backdrop": "3.25.0-next.5",
10
+ "@elliemae/ds-breadcrumb": "3.25.0-next.5",
11
+ "@elliemae/ds-button": "3.25.0-next.5",
12
+ "@elliemae/ds-app-picker": "3.25.0-next.5",
13
+ "@elliemae/ds-button-v2": "3.25.0-next.5",
14
+ "@elliemae/ds-card": "3.25.0-next.5",
15
+ "@elliemae/ds-card-array": "3.25.0-next.5",
16
+ "@elliemae/ds-card-navigation": "3.25.0-next.5",
17
+ "@elliemae/ds-card-v2": "3.25.0-next.5",
18
+ "@elliemae/ds-card-v2-action-addon": "3.25.0-next.5",
19
+ "@elliemae/ds-card-v2-group": "3.25.0-next.5",
20
+ "@elliemae/ds-accordion": "3.25.0-next.5",
21
+ "@elliemae/ds-button-group": "3.25.0-next.5",
22
+ "@elliemae/ds-button-v1": "3.25.0-next.5",
23
+ "@elliemae/ds-chat-bubble": "3.25.0-next.5",
24
+ "@elliemae/ds-circular-progress-indicator": "3.25.0-next.5",
25
+ "@elliemae/ds-codeeditor": "3.25.0-next.5",
26
+ "@elliemae/ds-comments": "3.25.0-next.5",
27
+ "@elliemae/ds-controlled-form": "3.25.0-next.5",
28
+ "@elliemae/ds-chat": "3.25.0-next.5",
29
+ "@elliemae/ds-data-table": "3.25.0-next.5",
30
+ "@elliemae/ds-datagrids": "3.25.0-next.5",
31
+ "@elliemae/ds-chat-tile": "3.25.0-next.5",
32
+ "@elliemae/ds-chip": "3.25.0-next.5",
33
+ "@elliemae/ds-date-picker": "3.25.0-next.5",
34
+ "@elliemae/ds-date-range-picker": "3.25.0-next.5",
35
+ "@elliemae/ds-date-range-selector": "3.25.0-next.5",
36
+ "@elliemae/ds-date-time-picker": "3.25.0-next.5",
37
+ "@elliemae/ds-date-time-recurrence-picker": "3.25.0-next.5",
38
+ "@elliemae/ds-csv-converter": "3.25.0-next.5",
39
+ "@elliemae/ds-dataviz-pie": "3.25.0-next.5",
40
+ "@elliemae/ds-drag-and-drop": "3.25.0-next.5",
41
+ "@elliemae/ds-dropdownmenu": "3.25.0-next.5",
42
+ "@elliemae/ds-decision-graph": "3.25.0-next.5",
43
+ "@elliemae/ds-dataviz": "3.25.0-next.5",
44
+ "@elliemae/ds-filterbar": "3.25.0-next.5",
45
+ "@elliemae/ds-form": "3.25.0-next.5",
46
+ "@elliemae/ds-form-date-range-picker": "3.25.0-next.5",
47
+ "@elliemae/ds-form-date-time-picker": "3.25.0-next.5",
48
+ "@elliemae/ds-form-layout-blocks": "3.25.0-next.5",
49
+ "@elliemae/ds-dialog": "3.25.0-next.5",
50
+ "@elliemae/ds-dropzone": "3.25.0-next.5",
51
+ "@elliemae/ds-grid": "3.25.0-next.5",
52
+ "@elliemae/ds-fast-list": "3.25.0-next.5",
53
+ "@elliemae/ds-header": "3.25.0-next.5",
54
+ "@elliemae/ds-form-layout-label": "3.25.0-next.5",
55
+ "@elliemae/ds-group-box": "3.25.0-next.5",
56
+ "@elliemae/ds-icon": "3.25.0-next.5",
57
+ "@elliemae/ds-hooks-fontsize-detector": "3.25.0-next.5",
58
+ "@elliemae/ds-icons": "3.25.0-next.5",
59
+ "@elliemae/ds-imagelibrarymodal": "3.25.0-next.5",
60
+ "@elliemae/ds-hooks-fontsize-media": "3.25.0-next.5",
61
+ "@elliemae/ds-global-header": "3.25.0-next.5",
62
+ "@elliemae/ds-indeterminate-progress-indicator": "3.25.0-next.5",
63
+ "@elliemae/ds-label-value": "3.25.0-next.5",
64
+ "@elliemae/ds-image": "3.25.0-next.5",
65
+ "@elliemae/ds-menu": "3.25.0-next.5",
66
+ "@elliemae/ds-list-section-header": "3.25.0-next.5",
67
+ "@elliemae/ds-loading-indicator": "3.25.0-next.5",
68
+ "@elliemae/ds-mini-toolbar": "3.25.0-next.5",
69
+ "@elliemae/ds-modal": "3.25.0-next.5",
70
+ "@elliemae/ds-modal-slide": "3.25.0-next.5",
71
+ "@elliemae/ds-menu-items": "3.25.0-next.5",
72
+ "@elliemae/ds-number-range-field": "3.25.0-next.5",
73
+ "@elliemae/ds-page-header": "3.25.0-next.5",
74
+ "@elliemae/ds-page-header-v1": "3.25.0-next.5",
75
+ "@elliemae/ds-page-header-v2": "3.25.0-next.5",
76
+ "@elliemae/ds-left-navigation": "3.25.0-next.5",
77
+ "@elliemae/ds-notification-badge": "3.25.0-next.5",
78
+ "@elliemae/ds-pills": "3.25.0-next.5",
79
+ "@elliemae/ds-pagination": "3.25.0-next.5",
80
+ "@elliemae/ds-popover": "3.25.0-next.5",
81
+ "@elliemae/ds-popper": "3.25.0-next.5",
82
+ "@elliemae/ds-popperjs": "3.25.0-next.5",
83
+ "@elliemae/ds-page-number": "3.25.0-next.5",
84
+ "@elliemae/ds-read-more": "3.25.0-next.5",
85
+ "@elliemae/ds-query-builder": "3.25.0-next.5",
86
+ "@elliemae/ds-page-layout": "3.25.0-next.5",
87
+ "@elliemae/ds-ribbon": "3.25.0-next.5",
88
+ "@elliemae/ds-search-field": "3.25.0-next.5",
89
+ "@elliemae/ds-separator": "3.25.0-next.5",
90
+ "@elliemae/ds-progress-indicator": "3.25.0-next.5",
91
+ "@elliemae/ds-shuttle": "3.25.0-next.5",
92
+ "@elliemae/ds-skeleton": "3.25.0-next.5",
93
+ "@elliemae/ds-mobile": "3.25.0-next.5",
94
+ "@elliemae/ds-resizeable-container": "3.25.0-next.5",
95
+ "@elliemae/ds-spinner": "3.25.0-next.5",
96
+ "@elliemae/ds-shuttle-v2": "3.25.0-next.5",
97
+ "@elliemae/ds-side-panel": "3.25.0-next.5",
98
+ "@elliemae/ds-square-indicator": "3.25.0-next.5",
99
+ "@elliemae/ds-system": "3.25.0-next.5",
100
+ "@elliemae/ds-tabs": "3.25.0-next.5",
101
+ "@elliemae/ds-slider": "3.25.0-next.5",
102
+ "@elliemae/ds-stepper": "3.25.0-next.5",
103
+ "@elliemae/ds-test-utils": "3.25.0-next.5",
104
+ "@elliemae/ds-svg": "3.25.0-next.5",
105
+ "@elliemae/ds-toolbar": "3.25.0-next.5",
106
+ "@elliemae/ds-text-wrapper": "3.25.0-next.5",
107
+ "@elliemae/ds-tooltip": "3.25.0-next.5",
108
+ "@elliemae/ds-time-picker": "3.25.0-next.5",
109
+ "@elliemae/ds-toast": "3.25.0-next.5",
110
+ "@elliemae/ds-treeview": "3.25.0-next.5",
111
+ "@elliemae/ds-transition": "3.25.0-next.5",
112
+ "@elliemae/ds-truncated-tooltip-text": "3.25.0-next.5",
113
+ "@elliemae/ds-toolbar-v2": "3.25.0-next.5",
114
+ "@elliemae/ds-uploader": "3.25.0-next.5",
115
+ "@elliemae/ds-utilities": "3.25.0-next.5",
116
+ "@elliemae/ds-truncated-expandable-text": "3.25.0-next.5",
117
+ "@elliemae/ds-wizard": "3.25.0-next.5",
118
+ "@elliemae/ds-wysiwygeditor": "3.25.0-next.5",
119
+ "@elliemae/ds-zipcode-search": "3.25.0-next.5",
120
+ "@elliemae/ds-typography": "3.25.0-next.5",
121
+ "@elliemae/ds-tree-model": "3.25.0-next.5",
122
+ "@elliemae/ds-virtual-list": "3.25.0-next.5",
123
+ "@elliemae/ds-zoom": "3.25.0-next.5"
124
124
  }
125
125
  }