Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/build_all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,10 @@ jobs:
working-directory: ./e2e/devextreme-bundler
run: |
pnpm install --filter devextreme-bundler-test --frozen-lockfile
pnpm add --filter devextreme-bundler-test ./devextreme.tgz
pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno ./devextreme.tgz

- name: Build bundle
working-directory: ./e2e/devextreme-bundler
run: |
pnpm exec devextreme-bundler-init custom-bundle
pnpm exec devextreme-bundler custom-bundle
./node_modules/.bin/devextreme-bundler-init custom-bundle
./node_modules/.bin/devextreme-bundler custom-bundle
16 changes: 9 additions & 7 deletions .github/workflows/demos_visual_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ jobs:

- name: Install tgz
working-directory: apps/demos
run: pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

# - name: Build wrappers
# run: pnpm exec nx run-many -t pack -p devextreme-angular devextreme-react devetreme-vue
Expand Down Expand Up @@ -307,7 +307,8 @@ jobs:
run: pnpm install --frozen-lockfile

- name: Install tgz
run: pnpm add -w ./devextreme-installer.tgz ./devextreme-dist-installer.tgz ./devextreme-react-installer.tgz ./devextreme-vue-installer.tgz ./devextreme-angular-installer.tgz
working-directory: apps/demos
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Demos - Check Vue TS
working-directory: apps/demos
Expand Down Expand Up @@ -377,7 +378,8 @@ jobs:
run: pnpm install --frozen-lockfile

- name: Install tgz
run: pnpm add -w ./devextreme-installer.tgz ./devextreme-dist-installer.tgz ./devextreme-react-installer.tgz ./devextreme-vue-installer.tgz ./devextreme-angular-installer.tgz
working-directory: apps/demos
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Run lint on all demos
if: needs.determine-framework-tests-scope.outputs.framework-tests-scope == 'all'
Expand Down Expand Up @@ -504,7 +506,7 @@ jobs:
- name: Install tgz
if: steps.changed-react-demos.outputs.has-react-demos == 'true'
working-directory: apps/demos
run: pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Prepare JS
if: steps.changed-react-demos.outputs.has-react-demos == 'true'
Expand Down Expand Up @@ -580,7 +582,7 @@ jobs:

- name: Install tgz
working-directory: apps/demos
run: pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Prepare JS
working-directory: apps/demos
Expand Down Expand Up @@ -849,7 +851,7 @@ jobs:

- name: Install tgz
working-directory: apps/demos
run: pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Prepare JS
working-directory: apps/demos
Expand Down Expand Up @@ -987,7 +989,7 @@ jobs:

- name: Install tgz
working-directory: apps/demos
run: pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Prepare JS
working-directory: apps/demos
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ jobs:

- name: Install tgz
working-directory: apps/demos
run: pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Prepare configs
working-directory: apps/demos
Expand Down Expand Up @@ -203,7 +203,7 @@ jobs:

- name: Install tgz
working-directory: apps/demos
run: pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
run: pnpm add --ignore-workspace --allow-build=core-js --allow-build=inferno devextreme-aspnet-data@5.0.0 devextreme-aspnet-data-nojquery@5.0.0 ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz && rm -f pnpm-workspace.yaml pnpm-lock.yaml

- name: Prepare configs
working-directory: apps/demos
Expand Down
2 changes: 1 addition & 1 deletion .mise.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tools]
node = "24.15.0"
pnpm = "9.15.9"
pnpm = "11.5.1"

[hooks]
enter = "mise install"
Expand Down
5 changes: 0 additions & 5 deletions .npmrc

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export class AppComponent {
this.clientsStore = new CustomStore({
key: 'Value',
useDefaultSearch: true,
async load(loadOptions) {
load(loadOptions) {
let params: HttpParams = new HttpParams();
[
'skip',
Expand All @@ -73,7 +73,7 @@ export class AppComponent {
.then(({ data }: { data: Record<string, unknown>[] }) => ({
data,
}))
.catch(() => { throw 'Data Loading Error'; });
.catch(() => { throw new Error('Data Loading Error'); });
},
});
this.states = AspNetData.createStore({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if (window && window.config?.packageConfigPaths) {
export class AppComponent {
salesAmount: SalesAmount[];

options: ColorizationOption[ 'options' ];
options: ColorizationOption['options'];

colorizationOptions: ColorizationOption[] = [{
name: 'Discrete',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ export class AppService {
initDataSource() {
this.customStore = new CustomStore({
key: 'id',
load: async () => this.messages,
insert: async (message) => {
load: () => this.messages,
insert: (message) => {
this.messages.push(message);
return message;
},
Expand Down
6 changes: 3 additions & 3 deletions apps/demos/Demos/Chat/FileAttachments/React/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ const store: ChatTypes.Message[] = [...initialMessages];

const customStore = new CustomStore({
key: 'id',
load: async () => store,
insert: async (message: ChatTypes.Message) => {
load: () => Promise.resolve(store),
insert: (message: ChatTypes.Message) => {
store.push(message);
return message;
return Promise.resolve(message);
},
});

Expand Down
6 changes: 3 additions & 3 deletions apps/demos/Demos/Chat/FileAttachments/ReactJs/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import { currentUser, messages as initialMessages } from './data.js';
const store = [...initialMessages];
const customStore = new CustomStore({
key: 'id',
load: async () => store,
insert: async (message) => {
load: () => Promise.resolve(store),
insert: (message) => {
store.push(message);
return message;
return Promise.resolve(message);
},
});
const dataSource = new DataSource({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ export class AppService {
initDataSource() {
this.customStore = new CustomStore({
key: 'id',
load: async () => this.messages,
insert: async (message) => {
load: () => this.messages,
insert: (message) => {
this.messages.push(message);
return message;
},
Expand Down
6 changes: 3 additions & 3 deletions apps/demos/Demos/Chat/MessageEditing/React/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ const store: ChatTypes.Message[] = [...initialMessages];

const customStore = new CustomStore({
key: 'id',
load: async (): Promise<ChatTypes.Message[]> => store,
insert: async (message: ChatTypes.Message): Promise<ChatTypes.Message> => {
load: (): Promise<ChatTypes.Message[]> => Promise.resolve(store),
insert: (message: ChatTypes.Message): Promise<ChatTypes.Message> => {
store.push(message);
return message;
return Promise.resolve(message);
},
});

Expand Down
6 changes: 3 additions & 3 deletions apps/demos/Demos/Chat/MessageEditing/ReactJs/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ const editingStrategy = {
const store = [...initialMessages];
const customStore = new CustomStore({
key: 'id',
load: async () => store,
insert: async (message) => {
load: () => Promise.resolve(store),
insert: (message) => {
store.push(message);
return message;
return Promise.resolve(message);
},
});
const dataSource = new DataSource({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ async function getAIResponse(messages: AIMessage[], signal: AbortSignal) {
return result;
}

async function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
return getAIResponse(messages, signal)
.catch(async (error) => {
if (!error.message.includes('Connection error')) {
Expand Down
2 changes: 1 addition & 1 deletion apps/demos/Demos/DataGrid/AIColumns/React/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ async function getAIResponse(messages: AIMessage[], signal: AbortSignal) {
return result ?? '';
}

async function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
return getAIResponse(messages, signal)
.catch(async (error) => {
if (!error.message.includes('Connection error')) {
Expand Down
2 changes: 1 addition & 1 deletion apps/demos/Demos/DataGrid/AIColumns/ReactJs/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ async function getAIResponse(messages, signal) {
const result = response.choices[0].message?.content;
return result ?? '';
}
async function getAIResponseRecursive(messages, signal) {
function getAIResponseRecursive(messages, signal) {
return getAIResponse(messages, signal).catch(async (error) => {
if (!error.message.includes('Connection error')) {
return Promise.reject(error);
Expand Down
2 changes: 1 addition & 1 deletion apps/demos/Demos/DataGrid/AIColumns/Vue/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ async function getAIResponse(messages: AIMessage[], signal: AbortSignal) {
return result;
}

async function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
return getAIResponse(messages, signal)
.catch(async (error) => {
if (!error.message.includes('Connection error')) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ export class Service {
return data;
}

async saveChange(change: Change<Order>): Promise<Order> {
saveChange(change: Change<Order>): Promise<Order> {
switch (change.type) {
case 'insert':
return this.insert(change);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export async function saveChange(dispatch: dispatchType, change: DataGridTypes.D
}
}

async function sendChange(url: string, change: DataGridTypes.DataChange) {
function sendChange(url: string, change: DataGridTypes.DataChange) {
switch (change.type) {
case 'insert':
return sendRequest(`${url}/InsertOrder`, 'POST', {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export async function saveChange(dispatch, change) {
return null;
}
}
async function sendChange(url, change) {
function sendChange(url, change) {
switch (change.type) {
case 'insert':
return sendRequest(`${url}/InsertOrder`, 'POST', {
Expand Down
2 changes: 1 addition & 1 deletion apps/demos/Demos/DataGrid/PDFExportImages/React/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const onExporting = ({ component }: DataGridTypes.ExportingEvent) => {
}
},
customDrawCell: (e: CustomDrawCellEvent) => {
if (e.gridCell && e.gridCell.rowType === 'data' && e.gridCell.column?.dataField === 'Picture' && e.rect) {
if (e.gridCell?.rowType === 'data' && e.gridCell.column?.dataField === 'Picture' && e.rect) {
doc.addImage(e.gridCell.value, 'PNG', e.rect.x, e.rect.y, e.rect.w, e.rect.h);
e.cancel = true;
}
Expand Down
7 changes: 1 addition & 6 deletions apps/demos/Demos/DataGrid/PDFExportImages/ReactJs/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,7 @@ const onExporting = ({ component }) => {
}
},
customDrawCell: (e) => {
if (
e.gridCell &&
e.gridCell.rowType === 'data' &&
e.gridCell.column?.dataField === 'Picture' &&
e.rect
) {
if (e.gridCell?.rowType === 'data' && e.gridCell.column?.dataField === 'Picture' && e.rect) {
doc.addImage(e.gridCell.value, 'PNG', e.rect.x, e.rect.y, e.rect.w, e.rect.h);
e.cancel = true;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
declare module 'npm:devextreme/localization/messages/de.json!json'{
declare module 'npm:devextreme/localization/messages/de.json!json' {
const json: object;
export = json;
}

declare module 'npm:devextreme/localization/messages/ru.json!json'{
declare module 'npm:devextreme/localization/messages/ru.json!json' {
const json: object;
export = json;
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export class AppComponent {
}

prepareContextMenu(e: DxPivotGridTypes.ContextMenuPreparingEvent) {
if (e.field && e.field.dataField === 'amount') {
if (e.field?.dataField === 'amount') {
this.summaryDisplayModes.forEach((mode) => {
e.items.push({
text: mode.text,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ async function getAIResponse(messages: AIMessage[], signal: AbortSignal) {
return result;
}

async function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
return getAIResponse(messages, signal)
.catch(async (error) => {
if (!error.message.includes('Connection error')) {
Expand Down
2 changes: 1 addition & 1 deletion apps/demos/Demos/TreeList/AIColumns/React/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ async function getAIResponse(messages: AIMessage[], signal: AbortSignal): Promis
return result ?? '';
}

async function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
return getAIResponse(messages, signal)
.catch(async (error) => {
if (!error.message.includes('Connection error')) {
Expand Down
2 changes: 1 addition & 1 deletion apps/demos/Demos/TreeList/AIColumns/ReactJs/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ async function getAIResponse(messages, signal) {
const result = response.choices[0].message?.content;
return result ?? '';
}
async function getAIResponseRecursive(messages, signal) {
function getAIResponseRecursive(messages, signal) {
return getAIResponse(messages, signal).catch(async (error) => {
if (!error.message.includes('Connection error')) {
return Promise.reject(error);
Expand Down
2 changes: 1 addition & 1 deletion apps/demos/Demos/TreeList/AIColumns/Vue/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ async function getAIResponse(messages: AIMessage[], signal: AbortSignal) {
return result;
}

async function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
function getAIResponseRecursive(messages: AIMessage[], signal: AbortSignal): Promise<string> {
return getAIResponse(messages, signal)
.catch(async (error) => {
if (!error.message.includes('Connection error')) {
Expand Down
Loading