devextreme-cli 1.5.2 → 1.6.1
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/package.json +11 -12
- package/src/applications/application.vue.js +1 -1
- package/src/templates/react/application/src/components/change-password-form/ChangePasswordForm.tsx +2 -2
- package/src/templates/react/application/src/components/create-account-form/CreateAccountForm.tsx +2 -2
- package/src/templates/react/application/src/components/user-panel/UserPanel.tsx +1 -1
- package/src/templates/react/application/src/layouts/side-nav-inner-toolbar/side-nav-inner-toolbar.tsx +4 -4
- package/src/templates/react/application/src/layouts/side-nav-outer-toolbar/side-nav-outer-toolbar.tsx +4 -4
- package/src/templates/react/application/src/types.tsx +5 -6
- package/src/templates/vue-v2/application/src/components/side-nav-menu.vue +3 -3
- package/src/templates/vue-v3/application/src/components/side-nav-menu.vue +7 -7
- package/src/themebuider.js +1 -1
- package/src/utility/latest-versions.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devextreme-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "DevExtreme CLI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"devexpress",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"test-template": "node ./testing/testing.js",
|
|
31
31
|
"test-dev": "cross-env TEST_MODE=dev jest",
|
|
32
32
|
"test-themebuilder": "jest --config=./jest-themebuilder.config.js --runInBand",
|
|
33
|
-
"docker:build": "docker build --rm -f \"testing/docker/Dockerfile\" -t devextreme-cli:latest \"testing/docker\"",
|
|
33
|
+
"docker:build": "docker build --rm -f \"testing/docker/Dockerfile\" -t devextreme-cli:latest \"testing/docker\" --progress=plain",
|
|
34
34
|
"docker:run": "docker run --rm -d -p 9222:9222/tcp devextreme-cli:latest"
|
|
35
35
|
},
|
|
36
36
|
"author": "Developer Express Inc.",
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"strip-bom": "^4.0.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@typescript-eslint/eslint-plugin": "^4.
|
|
53
|
-
"@typescript-eslint/parser": "^4.0
|
|
52
|
+
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
53
|
+
"@typescript-eslint/parser": "^4.33.0",
|
|
54
54
|
"babel-eslint": "^10.1.0",
|
|
55
55
|
"cross-env": "^5.2.1",
|
|
56
56
|
"eslint": "^7.32.0",
|
|
@@ -62,17 +62,16 @@
|
|
|
62
62
|
"eslint-plugin-react": "^7.30.1",
|
|
63
63
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
64
64
|
"eslint-plugin-unused-imports": "^1.1.5",
|
|
65
|
-
"eslint-plugin-vue": "^7.
|
|
65
|
+
"eslint-plugin-vue": "^7.20.0",
|
|
66
66
|
"eslint-stylish": "^0.2.0",
|
|
67
|
-
"jest": "^
|
|
68
|
-
"jest-image-snapshot": "^
|
|
67
|
+
"jest": "^29.5.0",
|
|
68
|
+
"jest-image-snapshot": "^6.1.0",
|
|
69
69
|
"prettier": "^2.6.2",
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"tree-kill": "^1.
|
|
73
|
-
"tree-kill-promise": "^1.0.3",
|
|
70
|
+
"rimraf": "^2.7.1",
|
|
71
|
+
"tree-kill": "^1.2.2",
|
|
72
|
+
"tree-kill-promise": "^1.0.12",
|
|
74
73
|
"typescript": "^4.0.2",
|
|
75
74
|
"typescript-eslint-parser": "^22.0.0"
|
|
76
75
|
},
|
|
77
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "a18bca062ee354ea47ad90df2c18e87e03d0db7e"
|
|
78
77
|
}
|
|
@@ -56,7 +56,7 @@ const preparePackageJsonForTemplate = (appPath, appName, version) => {
|
|
|
56
56
|
async function createVueApp(name, templateOptions) {
|
|
57
57
|
const { version } = templateOptions;
|
|
58
58
|
const toolingVersion = extractToolingVersion(templateOptions);
|
|
59
|
-
const argList = ['-p', `@vue/cli${toolingVersion}`, 'vue', 'create', name];
|
|
59
|
+
const argList = ['-p', `@vue/cli${toolingVersion}`, 'vue', 'create', name, '--registry', 'https://registry.npmjs.org/'];
|
|
60
60
|
|
|
61
61
|
if(version === 'v2') {
|
|
62
62
|
argList.push('-p "Default (Vue 2)"');
|
package/src/templates/react/application/src/components/change-password-form/ChangePasswordForm.tsx
CHANGED
|
@@ -10,7 +10,7 @@ import Form, {
|
|
|
10
10
|
} from 'devextreme-react/form';
|
|
11
11
|
import LoadIndicator from 'devextreme-react/load-indicator';
|
|
12
12
|
import notify from 'devextreme/ui/notify';
|
|
13
|
-
<%=#isTypeScript%>import {
|
|
13
|
+
<%=#isTypeScript%>import { ValidationCallbackData } from 'devextreme-react/common';<%=/isTypeScript%>
|
|
14
14
|
import { changePassword } from '../../api/auth';
|
|
15
15
|
|
|
16
16
|
export default function ChangePasswordForm() {
|
|
@@ -35,7 +35,7 @@ export default function ChangePasswordForm() {
|
|
|
35
35
|
}, [navigate, recoveryCode]);
|
|
36
36
|
|
|
37
37
|
const confirmPassword = useCallback(
|
|
38
|
-
({ value }<%=#isTypeScript%>:
|
|
38
|
+
({ value }<%=#isTypeScript%>: ValidationCallbackData<%=/isTypeScript%>) => value === formData.current.password,
|
|
39
39
|
[]
|
|
40
40
|
);
|
|
41
41
|
|
package/src/templates/react/application/src/components/create-account-form/CreateAccountForm.tsx
CHANGED
|
@@ -12,7 +12,7 @@ import Form, {
|
|
|
12
12
|
import notify from 'devextreme/ui/notify';
|
|
13
13
|
import LoadIndicator from 'devextreme-react/load-indicator';
|
|
14
14
|
import { createAccount } from '../../api/auth';
|
|
15
|
-
<%=#isTypeScript%>import {
|
|
15
|
+
<%=#isTypeScript%>import { ValidationCallbackData } from 'devextreme-react/common';<%=/isTypeScript%>
|
|
16
16
|
import './CreateAccountForm.scss';
|
|
17
17
|
|
|
18
18
|
export default function CreateAccountForm() {
|
|
@@ -36,7 +36,7 @@ export default function CreateAccountForm() {
|
|
|
36
36
|
}, [navigate]);
|
|
37
37
|
|
|
38
38
|
const confirmPassword = useCallback(
|
|
39
|
-
({ value }<%=#isTypeScript%>:
|
|
39
|
+
({ value }<%=#isTypeScript%>: ValidationCallbackData<%=/isTypeScript%>) => value === formData.current.password,
|
|
40
40
|
[]
|
|
41
41
|
);
|
|
42
42
|
|
|
@@ -47,7 +47,7 @@ export default function UserPanel({ menuMode }<%=#isTypeScript%>: UserPanelProps
|
|
|
47
47
|
width={210}
|
|
48
48
|
cssClass={'user-menu'}
|
|
49
49
|
>
|
|
50
|
-
<Position my={'top
|
|
50
|
+
<Position my={{ x: 'center', y: 'top' }} at={{ x: 'center', y: 'bottom' }} />
|
|
51
51
|
</ContextMenu>
|
|
52
52
|
)}
|
|
53
53
|
{menuMode === 'list' && (
|
|
@@ -9,9 +9,9 @@ import './side-nav-inner-toolbar.scss';
|
|
|
9
9
|
import { useScreenSize } from '../../utils/media-query';
|
|
10
10
|
import { Template } from 'devextreme-react/core/template';
|
|
11
11
|
import { useMenuPatch } from '../../utils/patches';
|
|
12
|
-
<%=#isTypeScript%>import {
|
|
12
|
+
<%=#isTypeScript%>import { TreeViewTypes } from 'devextreme-react/tree-view';<%=/isTypeScript%>
|
|
13
13
|
<%=#isTypeScript%>import type { SideNavToolbarProps } from '../../types';<%=/isTypeScript%>
|
|
14
|
-
<%=#isTypeScript%>import {
|
|
14
|
+
<%=#isTypeScript%>import { ButtonTypes } from 'devextreme-react/button';<%=/isTypeScript%>
|
|
15
15
|
|
|
16
16
|
export default function SideNavInnerToolbar({ title, children }<%=#isTypeScript%>: React.PropsWithChildren<SideNavToolbarProps><%=/isTypeScript%>) {
|
|
17
17
|
const scrollViewRef = useRef<%=#isTypeScript%><ScrollView><%=/isTypeScript%>(null);
|
|
@@ -22,7 +22,7 @@ export default function SideNavInnerToolbar({ title, children }<%=#isTypeScript%
|
|
|
22
22
|
isLarge ? MenuStatus.Opened : MenuStatus.Closed
|
|
23
23
|
);
|
|
24
24
|
|
|
25
|
-
const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ClickEvent<%=/isTypeScript%>) => {
|
|
25
|
+
const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ButtonTypes.ClickEvent<%=/isTypeScript%>) => {
|
|
26
26
|
setMenuStatus(
|
|
27
27
|
prevMenuStatus => prevMenuStatus === MenuStatus.Closed
|
|
28
28
|
? MenuStatus.Opened
|
|
@@ -48,7 +48,7 @@ export default function SideNavInnerToolbar({ title, children }<%=#isTypeScript%
|
|
|
48
48
|
return menuStatus === MenuStatus.Closed ? true : false;
|
|
49
49
|
}, [isLarge]);
|
|
50
50
|
|
|
51
|
-
const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: ItemClickEvent<%=/isTypeScript%>) => {
|
|
51
|
+
const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: TreeViewTypes.ItemClickEvent<%=/isTypeScript%>) => {
|
|
52
52
|
if (menuStatus === MenuStatus.Closed || !itemData<%=#isTypeScript%>?<%=/isTypeScript%>.path || node<%=#isTypeScript%>?<%=/isTypeScript%>.selected) {
|
|
53
53
|
event<%=#isTypeScript%>?<%=/isTypeScript%>.preventDefault();
|
|
54
54
|
return;
|
|
@@ -7,8 +7,8 @@ import './side-nav-outer-toolbar.scss';
|
|
|
7
7
|
import { useScreenSize } from '../../utils/media-query';
|
|
8
8
|
import { Template } from 'devextreme-react/core/template';
|
|
9
9
|
import { useMenuPatch } from '../../utils/patches';
|
|
10
|
-
<%=#isTypeScript%>import {
|
|
11
|
-
<%=#isTypeScript%>import {
|
|
10
|
+
<%=#isTypeScript%>import { ButtonTypes } from 'devextreme-react/button';<%=/isTypeScript%>
|
|
11
|
+
<%=#isTypeScript%>import { TreeViewTypes } from 'devextreme-react/tree-view';<%=/isTypeScript%>
|
|
12
12
|
<%=#isTypeScript%>import type { SideNavToolbarProps } from '../../types';<%=/isTypeScript%>
|
|
13
13
|
|
|
14
14
|
export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%>: React.PropsWithChildren<SideNavToolbarProps><%=/isTypeScript%>) {
|
|
@@ -20,7 +20,7 @@ export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%
|
|
|
20
20
|
isLarge ? MenuStatus.Opened : MenuStatus.Closed
|
|
21
21
|
);
|
|
22
22
|
|
|
23
|
-
const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ClickEvent<%=/isTypeScript%>) => {
|
|
23
|
+
const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ButtonTypes.ClickEvent<%=/isTypeScript%>) => {
|
|
24
24
|
setMenuStatus(
|
|
25
25
|
prevMenuStatus => prevMenuStatus === MenuStatus.Closed
|
|
26
26
|
? MenuStatus.Opened
|
|
@@ -46,7 +46,7 @@ export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%
|
|
|
46
46
|
return menuStatus === MenuStatus.Closed ? true : false;
|
|
47
47
|
}, [isLarge]);
|
|
48
48
|
|
|
49
|
-
const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: ItemClickEvent<%=/isTypeScript%>) => {
|
|
49
|
+
const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: TreeViewTypes.ItemClickEvent<%=/isTypeScript%>) => {
|
|
50
50
|
if (menuStatus === MenuStatus.Closed || !itemData<%=#isTypeScript%>?<%=/isTypeScript%>.path || node<%=#isTypeScript%>?<%=/isTypeScript%>.selected) {
|
|
51
51
|
event<%=#isTypeScript%>?<%=/isTypeScript%>.preventDefault();
|
|
52
52
|
return;
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { EventInfo } from 'devextreme/events';
|
|
1
|
+
import { TreeViewTypes } from 'devextreme-react/tree-view';
|
|
2
|
+
import { ButtonTypes } from 'devextreme-react/button';
|
|
4
3
|
import React from 'react';
|
|
5
4
|
|
|
6
5
|
export interface HeaderProps {
|
|
7
6
|
menuToggleEnabled: boolean;
|
|
8
7
|
title?: string;
|
|
9
|
-
toggleMenu: (e: ClickEvent) => void;
|
|
8
|
+
toggleMenu: (e: ButtonTypes.ClickEvent) => void;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
export interface SideNavigationMenuProps {
|
|
13
|
-
selectedItemChanged: (e: ItemClickEvent) => void;
|
|
12
|
+
selectedItemChanged: (e: TreeViewTypes.ItemClickEvent) => void;
|
|
14
13
|
openMenu: (e: React.PointerEvent) => void;
|
|
15
14
|
compactMode: boolean;
|
|
16
|
-
onMenuReady: (e:
|
|
15
|
+
onMenuReady: (e: TreeViewTypes.ContentReadyEvent) => void;
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
export interface UserPanelProps {
|
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
</template>
|
|
21
21
|
|
|
22
22
|
<script>
|
|
23
|
-
import DxTreeView from
|
|
23
|
+
import DxTreeView from 'devextreme-vue/tree-view';
|
|
24
24
|
import { sizes } from '../utils/media-query';
|
|
25
25
|
import navigation from '../app-navigation';
|
|
26
26
|
|
|
27
27
|
const treeViewRef = "treeViewRef";
|
|
28
28
|
const isLargeScreen = sizes()['screen-large'];
|
|
29
29
|
const items = navigation.map((item) => {
|
|
30
|
-
if(item.path && !(/^\//.test(item.path))){
|
|
30
|
+
if(item.path && !(/^\//.test(item.path))){
|
|
31
31
|
item.path = `/${item.path}`;
|
|
32
32
|
}
|
|
33
|
-
return {...item, expanded: isLargeScreen}
|
|
33
|
+
return {...item, expanded: isLargeScreen}
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
export default {
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
</template>
|
|
21
21
|
|
|
22
22
|
<script>
|
|
23
|
-
import DxTreeView from
|
|
23
|
+
import DxTreeView from 'devextreme-vue/tree-view';
|
|
24
24
|
import { sizes } from '../utils/media-query';
|
|
25
25
|
import navigation from '../app-navigation';
|
|
26
26
|
import { onMounted, ref, watch } from 'vue';
|
|
27
|
-
import { useRoute, useRouter } from 'vue-router';
|
|
27
|
+
import { useRoute, useRouter } from 'vue-router';
|
|
28
28
|
|
|
29
29
|
export default {
|
|
30
30
|
props: {
|
|
@@ -36,10 +36,10 @@ export default {
|
|
|
36
36
|
|
|
37
37
|
const isLargeScreen = sizes()['screen-large'];
|
|
38
38
|
const items = navigation.map((item) => {
|
|
39
|
-
if(item.path && !(/^\//.test(item.path))){
|
|
39
|
+
if(item.path && !(/^\//.test(item.path))){
|
|
40
40
|
item.path = `/${item.path}`;
|
|
41
41
|
}
|
|
42
|
-
return {...item, expanded: isLargeScreen}
|
|
42
|
+
return {...item, expanded: isLargeScreen}
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
const treeViewRef = ref(null);
|
|
@@ -67,13 +67,13 @@ export default {
|
|
|
67
67
|
treeViewRef.value.instance.expandItem(route.path);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
onMounted(() => {
|
|
70
|
+
onMounted(() => {
|
|
71
71
|
updateSelection();
|
|
72
72
|
if (props.compactMode) {
|
|
73
73
|
treeViewRef.value.instance.collapseAll();
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
|
|
78
78
|
watch(
|
|
79
79
|
() => route.path,
|
|
@@ -81,7 +81,7 @@ export default {
|
|
|
81
81
|
updateSelection();
|
|
82
82
|
}
|
|
83
83
|
);
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
watch(
|
|
86
86
|
() => props.compactMode,
|
|
87
87
|
() => {
|
package/src/themebuider.js
CHANGED
|
@@ -131,7 +131,7 @@ const installThemeBuilder = async version => {
|
|
|
131
131
|
cwd: process.cwd(),
|
|
132
132
|
stdio: 'inherit'
|
|
133
133
|
}, {
|
|
134
|
-
npm: ['--no-save', '--fund=false', '--package-lock=false', '--omit=dev'
|
|
134
|
+
npm: ['--no-save', '--fund=false', '--package-lock=false', '--omit=dev']
|
|
135
135
|
});
|
|
136
136
|
};
|
|
137
137
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const packageJson = require('../../package.json');
|
|
2
2
|
module.exports = {
|
|
3
|
-
'devextreme': '^
|
|
4
|
-
'devextreme-react': '^
|
|
5
|
-
'devextreme-vue': '^
|
|
3
|
+
'devextreme': '^23.1.5',
|
|
4
|
+
'devextreme-react': '^23.1.5',
|
|
5
|
+
'devextreme-vue': '^23.1.5',
|
|
6
6
|
'devextreme-cli': packageJson.version,
|
|
7
7
|
'devextreme-schematics': 'latest'
|
|
8
8
|
};
|