Skip to content

Commit 3f9494b

Browse files
authored
Merge branch '26_1' into 3249_26_1_tree_view_control_ability_select_nodes
2 parents 8eddd30 + 5141e68 commit 3f9494b

File tree

62 files changed

+1073
-1135
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1073
-1135
lines changed

apps/demos/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@
105105
"@types/eslint": "8.56.12",
106106
"@types/file-saver-es": "2.0.3",
107107
"@types/fs-extra": "11.0.2",
108-
"@types/react": "17.0.2",
109-
"@types/react-dom": "17.0.2",
108+
"@types/react": "17.0.91",
109+
"@types/react-dom": "17.0.26",
110110
"@types/yargs": "17.0.35",
111111
"@typescript-eslint/eslint-plugin": "catalog:",
112112
"@typescript-eslint/parser": "catalog:",

apps/react-storybook/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323
"@storybook/addon-links": "10.1.9",
2424
"@storybook/addon-webpack5-compiler-swc": "4.0.2",
2525
"@storybook/react-webpack5": "10.1.9",
26-
"@types/react": "18.0.0",
27-
"@types/react-dom": "18.0.0",
26+
"@types/react": "18.3.28",
27+
"@types/react-dom": "18.3.7",
2828
"http-server": "14.1.1",
2929
"prop-types": "15.8.1",
30-
"react": "18.0.0",
31-
"react-dom": "18.0.0",
30+
"react": "18.3.1",
31+
"react-dom": "18.3.1",
3232
"storybook": "10.1.10",
3333
"typescript": "5.9.3"
3434
}

apps/react/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
"dependencies": {
1212
"devextreme": "workspace:*",
1313
"devextreme-react": "workspace:*",
14-
"react": "~18.0.0",
15-
"react-dom": "~18.0.0"
14+
"react": "~18.3.0",
15+
"react-dom": "~18.3.0"
1616
},
1717
"devDependencies": {
18-
"@types/react": "~18.0.0",
19-
"@types/react-dom": "~18.0.0",
18+
"@types/react": "18.3.28",
19+
"@types/react-dom": "18.3.7",
2020
"css-loader": "6.10.0",
2121
"source-map-loader": "4.0.2",
2222
"style-loader": "3.3.4",

e2e/testcafe-devextreme/tests/accessibility/scheduler/appointment.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ const currentDate = Date.UTC(2021, 1, 1);
1616
const appointmentTemplate = ({ appointmentData }) => `<div>${appointmentData.text}</div>`;
1717

1818
['month', 'week', 'day', 'agenda'].forEach((currentView) => {
19-
test(`appointment should have correct aria-label without description (${currentView})`, async (t) => {
19+
test(`appointment should have correct aria-label and have description (${currentView})`, async (t) => {
2020
const scheduler = new Scheduler('#container');
2121
const appointment = scheduler.getAppointment('App 1');
2222

2323
await t
2424
.expect(appointment.getAriaLabel())
2525
.eql('App 1: February 1, 2021, 12:00 PM - 1:00 PM')
2626
.expect(await appointment.hasAriaDescription())
27-
.notOk();
27+
.ok();
2828

2929
await a11yCheck(t, a11yCheckConfig, '#container');
3030
}).before(async () => {
@@ -36,15 +36,15 @@ const appointmentTemplate = ({ appointmentData }) => `<div>${appointmentData.tex
3636
});
3737
});
3838

39-
test(`appointment with template should have correct aria-label without description (${currentView})`, async (t) => {
39+
test(`appointment with template should have correct aria-label and have description (${currentView})`, async (t) => {
4040
const scheduler = new Scheduler('#container');
4141
const appointment = scheduler.getAppointment('App 1');
4242

4343
await t
4444
.expect(appointment.getAriaLabel())
4545
.eql('App 1: February 1, 2021, 12:00 PM - 1:00 PM')
4646
.expect(await appointment.hasAriaDescription())
47-
.notOk();
47+
.ok();
4848

4949
await a11yCheck(t, a11yCheckConfig, '#container');
5050
}).before(async () => {
@@ -65,7 +65,7 @@ const appointmentTemplate = ({ appointmentData }) => `<div>${appointmentData.tex
6565
.expect(appointment.getAriaLabel())
6666
.eql('App 1: February 1, 2021, 12:00 PM - 1:00 PM')
6767
.expect(await appointment.getAriaDescription())
68-
.eql('Group: resource1; Group 1: resource1');
68+
.contains('Group: resource1; Group 1: resource1');
6969

7070
await a11yCheck(t, a11yCheckConfig, '#container');
7171
}).before(async () => {
@@ -99,7 +99,7 @@ const appointmentTemplate = ({ appointmentData }) => `<div>${appointmentData.tex
9999
.expect(appointment.getAriaLabel())
100100
.eql('App 1: February 1, 2021, 12:00 PM - 1:00 PM')
101101
.expect(await appointment.getAriaDescription())
102-
.eql('Group: resource1; Group 1: resource1');
102+
.contains('Group: resource1; Group 1: resource1');
103103

104104
await a11yCheck(t, a11yCheckConfig, '#container');
105105
}).before(async () => {
@@ -134,7 +134,7 @@ const appointmentTemplate = ({ appointmentData }) => `<div>${appointmentData.tex
134134
.expect(appointment.getAriaLabel())
135135
.eql('App 1: February 1, 2021, 12:00 PM - 1:00 PM')
136136
.expect(await appointment.getAriaDescription())
137-
.eql('Group: resource11, resource21; Group 1: resource11; Group 2: resource21, resource22');
137+
.contains('Group: resource11, resource21; Group 1: resource11; Group 2: resource21, resource22');
138138

139139
await a11yCheck(t, a11yCheckConfig, '#container');
140140
}).before(async () => {

e2e/testcafe-devextreme/tests/accessibility/scheduler/scheduler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('Scheduler should have right aria attributes after view changed', async (t)
1313
await t.expect(scheduler.element.getAttribute('aria-label')).contains('Scheduler. Month view');
1414
await t.expect(scheduler.getGeneralStatusContainer().textContent).contains('Scheduler. Month view');
1515

16-
await t.expect(scheduler.element.getAttribute('role')).eql('group');
16+
await t.expect(scheduler.element.getAttribute('role')).eql('application');
1717

1818
await scheduler.option('currentView', 'week');
1919

4.04 KB
Loading

e2e/testcafe-devextreme/tests/editors/htmlEditor/list.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,24 @@ const orderedListMarkup = `
2424
</ol>
2525
`;
2626

27+
const orderedListWithTextMarkup = `
28+
<p>Text</p>
29+
<ol>
30+
<li>Text
31+
<ol>
32+
<li>1</li>
33+
<li>2</li>
34+
</ol>
35+
</li>
36+
<li>Text
37+
<ol>
38+
<li>1</li>
39+
<li>2</li>
40+
</ol>
41+
</li>
42+
</ol>
43+
`;
44+
2745
fixture`HtmlEditor - lists`
2846
.page(url(__dirname, '../../container-extended.html'));
2947

@@ -42,3 +60,19 @@ test('ordered list numbering sequence should reset for each list item (T1220554)
4260
value: orderedListMarkup,
4361
});
4462
});
63+
64+
test('should reset nested ordered list counters when preceded by text (T1320286)', async (t) => {
65+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
66+
67+
await testScreenshot(t, takeScreenshot, 'htmleditor-ordered-list-text-appearance.png', { element: '#container' });
68+
69+
await t
70+
.expect(compareResults.isValid())
71+
.ok(compareResults.errorMessages());
72+
}).before(async () => {
73+
await createWidget('dxHtmlEditor', {
74+
height: 200,
75+
width: 200,
76+
value: orderedListWithTextMarkup,
77+
});
78+
});
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
import Scheduler from 'devextreme-testcafe-models/scheduler';
2+
import { ClientFunction } from 'testcafe';
3+
import url from '../../../../helpers/getPageUrl';
4+
import { createWidget } from '../../../../helpers/createWidget';
5+
import { getDocumentScrollTop } from '../../../../helpers/domUtils';
6+
7+
fixture.disablePageReloads`KeyboardNavigation.Appointments`
8+
.page(url(__dirname, '../../../container.html'));
9+
10+
const SCHEDULER_SELECTOR = '#container';
11+
12+
test('Document should not scroll on \'End\' press when appointment is focused', async (t) => {
13+
const scheduler = new Scheduler(SCHEDULER_SELECTOR);
14+
15+
await t.click(scheduler.getAppointment('Appointment 1').element);
16+
17+
const expectedScrollTop = await getDocumentScrollTop();
18+
19+
await t
20+
.pressKey('End')
21+
.expect(getDocumentScrollTop()).eql(expectedScrollTop);
22+
}).before(async () => {
23+
await ClientFunction(() => {
24+
document.body.style.height = '2000px';
25+
})();
26+
27+
await createWidget('dxScheduler', {
28+
dataSource: [
29+
{
30+
text: 'Appointment 1',
31+
startDate: new Date(2015, 1, 9, 8),
32+
endDate: new Date(2015, 1, 9, 9),
33+
},
34+
{
35+
text: 'Appointment 2',
36+
startDate: new Date(2015, 1, 9, 10),
37+
endDate: new Date(2015, 1, 9, 11),
38+
},
39+
{
40+
text: 'Appointment 3',
41+
startDate: new Date(2015, 1, 9, 12),
42+
endDate: new Date(2015, 1, 9, 13),
43+
},
44+
],
45+
height: 300,
46+
currentView: 'day',
47+
currentDate: new Date(2015, 1, 9),
48+
});
49+
}).after(async () => {
50+
await ClientFunction(() => {
51+
document.body.style.height = '';
52+
})();
53+
});
54+
55+
test('Document should not scroll on \'Home\' press when appointment is focused', async (t) => {
56+
const scheduler = new Scheduler(SCHEDULER_SELECTOR);
57+
58+
await t
59+
.scroll(0, 100)
60+
.click(scheduler.getAppointment('Appointment 1').element);
61+
62+
const expectedScrollTop = await getDocumentScrollTop();
63+
64+
await t
65+
.pressKey('Home')
66+
.expect(getDocumentScrollTop()).eql(expectedScrollTop);
67+
}).before(async () => {
68+
await ClientFunction(() => {
69+
document.body.style.height = '2000px';
70+
})();
71+
72+
await createWidget('dxScheduler', {
73+
dataSource: [
74+
{
75+
text: 'Appointment 1',
76+
startDate: new Date(2015, 1, 9, 8),
77+
endDate: new Date(2015, 1, 9, 9),
78+
},
79+
{
80+
text: 'Appointment 2',
81+
startDate: new Date(2015, 1, 9, 10),
82+
endDate: new Date(2015, 1, 9, 11),
83+
},
84+
{
85+
text: 'Appointment 3',
86+
startDate: new Date(2015, 1, 9, 12),
87+
endDate: new Date(2015, 1, 9, 13),
88+
},
89+
],
90+
height: 300,
91+
currentView: 'day',
92+
currentDate: new Date(2015, 1, 9),
93+
});
94+
}).after(async () => {
95+
await ClientFunction(() => {
96+
document.body.style.height = '';
97+
})();
98+
});

e2e/wrappers/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@
5858
"@angular/compiler-cli": "catalog:angular",
5959
"@eslint/js": "9.39.2",
6060
"@types/jasmine": "5.1.4",
61-
"@types/react": "^19.0.10",
62-
"@types/react-dom": "^19.0.4",
61+
"@types/react": "19.1.2",
62+
"@types/react-dom": "19.1.3",
6363
"@vitejs/plugin-react": "4.4.1",
6464
"@vitejs/plugin-vue": "5.2.4",
6565
"eslint": "9.39.2",

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,21 @@
6464
"overrides": {
6565
"@devexpress/callsite-record@^4.1.6": "4.1.7",
6666
"@isaacs/brace-expansion@<=5.0.0": "^5.0.1",
67+
"@modelcontextprotocol/sdk@>=1.10.0 <=1.25.3": "^1.26.0",
6768
"form-data@<2.5.4": "2.5.5",
6869
"form-data@>=4.0.0 <4.0.4": "^4.0.5",
6970
"pbkdf2@<=3.1.2": "^3.1.3",
7071
"sha.js@<=2.4.11": "^2.4.12",
7172
"rollup@<2.79.2": "^4.53.3",
7273
"json5@<1.0.2": "^2.2.3",
73-
"axios@<1.8.2": "^1.13.2",
74+
"axios@<1.8.2": "^1.13.5",
7475
"braces@<3.0.3": "^3.0.3",
7576
"semver@<5.7.2": "^5.7.2",
7677
"qs": ">=6.14.1",
7778
"glob@>=10.2.0 <10.5.0": "^10.5.0",
7879
"node-forge@<1.3.2": "^1.3.2",
79-
"vite@>=6.0.0 <6.4.1": "^6.4.1"
80+
"vite@>=6.0.0 <6.4.1": "^6.4.1",
81+
"tar@<7.5.7": "^7.5.7"
8082
}
8183
},
8284
"packageManager": "pnpm@9.15.9"

0 commit comments

Comments
 (0)