diff --git a/.eslintrc.js b/.eslintrc.js index dab7837f3..f48e1a4de 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,3 +1,28 @@ module.exports = { extends: 'eslint-config-ali/typescript/react', + ignorePatterns: [ 'tests/* '], + rules: { + 'react/no-multi-comp': 0, + 'no-unused-expressions': 0, + 'implicit-arrow-linebreak': 1, + 'no-nested-ternary': 1, + 'no-mixed-operators': 1, + '@typescript-eslint/ban-types': 1, + 'no-shadow': 1, + 'no-prototype-builtins': 1, + 'no-useless-constructor': 1, + 'no-empty-function': 1, + '@typescript-eslint/member-ordering': 0, + 'lines-between-class-members': 0, + 'no-await-in-loop': 0, + 'no-plusplus': 0, + '@typescript-eslint/no-parameter-properties': 0, + '@typescript-eslint/no-unused-vars': 1, + 'no-multi-assign': 1, + 'no-dupe-class-members': 1, + 'react/no-deprecated': 1, + 'no-useless-escape': 1, + 'brace-style': 1, + '@typescript-eslint/no-inferrable-types': 0, + } }; diff --git a/packages/designer/.eslintrc.js b/packages/designer/.eslintrc.js deleted file mode 100644 index fd197efc8..000000000 --- a/packages/designer/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - ignorePatterns: [ 'tests/* '], - rules: { - 'react/no-multi-comp': 0, - 'no-unused-expressions': 0, - 'implicit-arrow-linebreak': 1, - 'no-nested-ternary': 1, - 'no-mixed-operators': 1, - '@typescript-eslint/no-parameter-properties': 1, - '@typescript-eslint/ban-types': 1, - 'no-shadow': 1, - 'no-prototype-builtins': 1, - 'no-useless-constructor': 1, - 'no-empty-function': 1, - '@typescript-eslint/member-ordering': 0, - 'lines-between-class-members': 0, - 'no-await-in-loop': 0, - 'no-plusplus': 0, - } -} \ No newline at end of file diff --git a/packages/designer/src/designer/designer.ts b/packages/designer/src/designer/designer.ts index b41d08823..824c1bcce 100644 --- a/packages/designer/src/designer/designer.ts +++ b/packages/designer/src/designer/designer.ts @@ -300,6 +300,11 @@ export class Designer { if (!activedDoc) { return null; } + if (Array.isArray(insertNode) && isNodeSchema(insertNode[0]) && this.getComponentMeta(insertNode[0].componentName).isModal) { + return { + target: activedDoc.rootNode as ParentalNode, + }; + } const nodes = activedDoc.selection.getNodes(); let target; let index: number | undefined; diff --git a/packages/designer/src/project/project.ts b/packages/designer/src/project/project.ts index 9a8a49cae..27e04a89e 100644 --- a/packages/designer/src/project/project.ts +++ b/packages/designer/src/project/project.ts @@ -75,7 +75,7 @@ export class Project { componentsTree: [], ...schema, }; - this.config = schema?.config; + this.config = schema?.config || this.config; if (autoOpen) { if (autoOpen === true) { @@ -146,16 +146,16 @@ export class Project { get( // eslint-disable-next-line @typescript-eslint/no-unused-vars key: - | 'version' - | 'componentsTree' - | 'componentsMap' - | 'utils' - | 'constants' - | 'i18n' - | 'css' - | 'dataSource' - | 'config' - | string, + | 'version' + | 'componentsTree' + | 'componentsMap' + | 'utils' + | 'constants' + | 'i18n' + | 'css' + | 'dataSource' + | 'config' + | string, ): any { if (key === 'config') { return this.config; diff --git a/packages/editor-core/.eslintrc.js b/packages/editor-core/.eslintrc.js deleted file mode 100644 index f8bcac9a2..000000000 --- a/packages/editor-core/.eslintrc.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'react/no-multi-comp': 1, - 'no-unused-expressions': 1, - 'implicit-arrow-linebreak': 1, - 'no-nested-ternary': 1, - 'no-mixed-operators': 1, - '@typescript-eslint/no-parameter-properties': 1, - '@typescript-eslint/ban-types': 1, - 'no-shadow': 1, - 'no-prototype-builtins': 1, - } -} \ No newline at end of file diff --git a/packages/editor-preset-vision/.eslintrc.js b/packages/editor-preset-vision/.eslintrc.js deleted file mode 100644 index 4c845e2de..000000000 --- a/packages/editor-preset-vision/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'react/no-multi-comp': 1, - 'no-unused-expressions': 0, - 'implicit-arrow-linebreak': 1, - 'no-nested-ternary': 1, - 'no-mixed-operators': 1, - '@typescript-eslint/no-parameter-properties': 1, - '@typescript-eslint/ban-types': 1, - 'no-shadow': 1, - 'no-prototype-builtins': 1, - '@typescript-eslint/no-unused-vars': 1, - 'no-multi-assign': 1, - 'no-dupe-class-members': 1, - 'react/no-deprecated': 1, - 'no-useless-escape': 1, - 'brace-style': 1, - '@typescript-eslint/member-ordering': 0, - } -} \ No newline at end of file diff --git a/packages/editor-skeleton/.eslintrc.js b/packages/editor-skeleton/.eslintrc.js deleted file mode 100644 index d74532d8f..000000000 --- a/packages/editor-skeleton/.eslintrc.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'react/no-multi-comp': 0, - 'no-unused-expressions': 1, - 'implicit-arrow-linebreak': 1, - 'no-nested-ternary': 1, - 'no-mixed-operators': 1, - '@typescript-eslint/no-parameter-properties': 1, - '@typescript-eslint/ban-types': 1, - 'no-shadow': 1, - 'no-prototype-builtins': 1, - 'no-confusing-arrow': 1, - 'no-case-declarations': 1, - 'lines-between-class-members': 0, - '@typescript-eslint/member-ordering': 0, - } -} \ No newline at end of file diff --git a/packages/engine/.eslintrc.js b/packages/engine/.eslintrc.js deleted file mode 100644 index 4c845e2de..000000000 --- a/packages/engine/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'react/no-multi-comp': 1, - 'no-unused-expressions': 0, - 'implicit-arrow-linebreak': 1, - 'no-nested-ternary': 1, - 'no-mixed-operators': 1, - '@typescript-eslint/no-parameter-properties': 1, - '@typescript-eslint/ban-types': 1, - 'no-shadow': 1, - 'no-prototype-builtins': 1, - '@typescript-eslint/no-unused-vars': 1, - 'no-multi-assign': 1, - 'no-dupe-class-members': 1, - 'react/no-deprecated': 1, - 'no-useless-escape': 1, - 'brace-style': 1, - '@typescript-eslint/member-ordering': 0, - } -} \ No newline at end of file diff --git a/packages/rax-renderer/.eslintrc.js b/packages/rax-renderer/.eslintrc.js deleted file mode 100644 index 986ff5f25..000000000 --- a/packages/rax-renderer/.eslintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'no-proto': 1, - 'no-new-func': 1, - 'no-shadow': 1, - '@typescript-eslint/no-unused-vars': 1, - } -} \ No newline at end of file diff --git a/packages/rax-simulator-renderer/.eslintrc.js b/packages/rax-simulator-renderer/.eslintrc.js deleted file mode 100644 index f8bcac9a2..000000000 --- a/packages/rax-simulator-renderer/.eslintrc.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'react/no-multi-comp': 1, - 'no-unused-expressions': 1, - 'implicit-arrow-linebreak': 1, - 'no-nested-ternary': 1, - 'no-mixed-operators': 1, - '@typescript-eslint/no-parameter-properties': 1, - '@typescript-eslint/ban-types': 1, - 'no-shadow': 1, - 'no-prototype-builtins': 1, - } -} \ No newline at end of file diff --git a/packages/react-renderer/.eslintrc.js b/packages/react-renderer/.eslintrc.js deleted file mode 100644 index 6c3b4b4a7..000000000 --- a/packages/react-renderer/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - "react/no-multi-comp": 1, - "no-shadow": 1, - "no-nested-ternary": 1 - }, -}; diff --git a/packages/react-simulator-renderer/.eslintrc.js b/packages/react-simulator-renderer/.eslintrc.js deleted file mode 100644 index fe92a8086..000000000 --- a/packages/react-simulator-renderer/.eslintrc.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'react/no-multi-comp': 0, - 'no-unused-expressions': 0, - 'implicit-arrow-linebreak': 0, - 'no-nested-ternary': 0, - 'no-mixed-operators': 0, - '@typescript-eslint/no-parameter-properties': 0, - '@typescript-eslint/ban-types': 0, - 'no-shadow': 0, - 'no-prototype-builtins': 0, - 'array-callback-return': 0, - '@typescript-eslint/member-ordering': 0, - 'react/no-find-dom-node': 0, - } -} \ No newline at end of file diff --git a/packages/types/.eslintrc.js b/packages/types/.eslintrc.js deleted file mode 100644 index 3c65aade8..000000000 --- a/packages/types/.eslintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - extends: '../../.eslintrc', - rules: { - '@typescript-eslint/no-parameter-properties': 1, - 'no-param-reassign': 0, - '@typescript-eslint/member-ordering': 0, - indent: 0, - }, -}; diff --git a/packages/utils/src/misc.ts b/packages/utils/src/misc.ts index 5428be93a..e5c8731df 100644 --- a/packages/utils/src/misc.ts +++ b/packages/utils/src/misc.ts @@ -13,7 +13,7 @@ export function isUseI18NSetter(prototype: any, propName: string) { return false; } -export function convertToI18NObject(v: string | object, locale: string = 'zh_CN') { +export function convertToI18NObject(v: string | any, locale: string = 'zh_CN') { if (isI18NObject(v)) return v; return { type: 'i18n', use: locale, [locale]: v }; } @@ -51,4 +51,4 @@ export function waitForThing(obj: any, path: string): Promise { */ export function isFromVC(meta: ComponentMeta) { return !!meta?.getMetadata()?.experimental; -} \ No newline at end of file +} diff --git a/packages/vision-polyfill/.eslintrc.js b/packages/vision-polyfill/.eslintrc.js deleted file mode 100644 index 4c845e2de..000000000 --- a/packages/vision-polyfill/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - extends: 'eslint-config-ali/typescript/react', - rules: { - 'react/no-multi-comp': 1, - 'no-unused-expressions': 0, - 'implicit-arrow-linebreak': 1, - 'no-nested-ternary': 1, - 'no-mixed-operators': 1, - '@typescript-eslint/no-parameter-properties': 1, - '@typescript-eslint/ban-types': 1, - 'no-shadow': 1, - 'no-prototype-builtins': 1, - '@typescript-eslint/no-unused-vars': 1, - 'no-multi-assign': 1, - 'no-dupe-class-members': 1, - 'react/no-deprecated': 1, - 'no-useless-escape': 1, - 'brace-style': 1, - '@typescript-eslint/member-ordering': 0, - } -} \ No newline at end of file diff --git a/packages/vision-polyfill/src/props-reducers/downgrade-schema-reducer.ts b/packages/vision-polyfill/src/props-reducers/downgrade-schema-reducer.ts index 65186ea81..cc1d82c18 100644 --- a/packages/vision-polyfill/src/props-reducers/downgrade-schema-reducer.ts +++ b/packages/vision-polyfill/src/props-reducers/downgrade-schema-reducer.ts @@ -2,8 +2,13 @@ import { isPlainObject, } from '@ali/lowcode-utils'; import { isJSExpression, isJSSlot } from '@ali/lowcode-types'; +import { Node } from '@ali/lowcode-designer'; -export function compatibleReducer(props: any) { +export function compatibleReducer(props: any, node: Node) { + // 如果不是 vc 体系,不做这个兼容处理 + if (!node.componentMeta.prototype) { + return props; + } if (!props || !isPlainObject(props)) { return props; } @@ -30,7 +35,7 @@ export function compatibleReducer(props: any) { } const newProps: any = {}; Object.entries(props).forEach(([key, val]) => { - newProps[key] = compatibleReducer(val); + newProps[key] = compatibleReducer(val, node); }); return newProps; } diff --git a/packages/vision-polyfill/src/props-reducers/filter-reducer.ts b/packages/vision-polyfill/src/props-reducers/filter-reducer.ts index 928e8dd82..9713537f6 100644 --- a/packages/vision-polyfill/src/props-reducers/filter-reducer.ts +++ b/packages/vision-polyfill/src/props-reducers/filter-reducer.ts @@ -1,5 +1,6 @@ import logger from '@ali/vu-logger'; import { hasOwnProperty } from '@ali/lowcode-utils'; +import { Node } from '@ali/lowcode-designer'; export function filterReducer(props: any, node: Node): any { const filters = node.componentMeta.getMetadata().experimental?.filters; diff --git a/packages/vision-polyfill/src/props-reducers/remove-empty-prop-reducer.ts b/packages/vision-polyfill/src/props-reducers/remove-empty-prop-reducer.ts index 305f0bdb7..d725a78d2 100644 --- a/packages/vision-polyfill/src/props-reducers/remove-empty-prop-reducer.ts +++ b/packages/vision-polyfill/src/props-reducers/remove-empty-prop-reducer.ts @@ -1,6 +1,7 @@ import { cloneDeep, } from '@ali/lowcode-utils'; +import { Node } from '@ali/lowcode-designer'; // 清除空的 props value export function removeEmptyPropsReducer(props: any, node: Node) { diff --git a/packages/vision-polyfill/src/props-reducers/upgrade-reducer.ts b/packages/vision-polyfill/src/props-reducers/upgrade-reducer.ts index d20248a4b..3a7f66d37 100644 --- a/packages/vision-polyfill/src/props-reducers/upgrade-reducer.ts +++ b/packages/vision-polyfill/src/props-reducers/upgrade-reducer.ts @@ -1,6 +1,7 @@ import { isPlainObject, } from '@ali/lowcode-utils'; +import { Node } from '@ali/lowcode-designer'; import { isJSBlock } from '@ali/lowcode-types'; import { isVariable } from '../utils'; import { designerCabin } from '@ali/lowcode-engine';