├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ └── bug-report.md └── workflows │ ├── check base branch.yml │ ├── ci.yml │ ├── cov packages.yml │ ├── help wanted.yml │ ├── insufficient information.yml │ ├── pr comment by chatgpt.yml │ ├── pre build.yml │ ├── publish docs.yml │ ├── publish engine beta.yml │ ├── publish engine.yml │ ├── stale.yml │ ├── test modules.yml │ └── test packages.yml ├── .gitignore ├── .prettierrc.js ├── .stylelintignore ├── .stylelintrc.js ├── CONTRIBUTOR.md ├── LICENSE ├── README-zh_CN.md ├── README.md ├── abc.json ├── babel.config.js ├── commitlint.config.js ├── deploy-space ├── lerna.json ├── package.json ├── static │ ├── index.html │ └── preview.html └── tsconfig.json ├── docs ├── .gitignore ├── README.md ├── babel.config.js ├── community │ ├── img │ │ ├── i-see.png │ │ └── you-think.png │ └── issue.md ├── config │ ├── navbar.js │ ├── sidebars.js │ └── sidebarsCommunity.js ├── docs │ ├── api │ │ ├── canvas.md │ │ ├── command.md │ │ ├── common.md │ │ ├── commonUI.md │ │ ├── config.md │ │ ├── configOptions.md │ │ ├── event.md │ │ ├── hotkey.md │ │ ├── index.md │ │ ├── init.md │ │ ├── logger.md │ │ ├── material.md │ │ ├── model │ │ │ ├── _category_.json │ │ │ ├── clipboard.md │ │ │ ├── component-meta.md │ │ │ ├── detecting.md │ │ │ ├── document-model.md │ │ │ ├── dragon.md │ │ │ ├── drop-location.md │ │ │ ├── editor-view.md │ │ │ ├── history.md │ │ │ ├── modal-nodes-manager.md │ │ │ ├── node-children.md │ │ │ ├── node.md │ │ │ ├── plugin-instance.md │ │ │ ├── prop.md │ │ │ ├── props.md │ │ │ ├── resource.md │ │ │ ├── selection.md │ │ │ ├── setting-field.md │ │ │ ├── setting-top-entry.md │ │ │ ├── simulatorRender.md │ │ │ └── window.md │ │ ├── plugins.md │ │ ├── project.md │ │ ├── setters.md │ │ ├── simulatorHost.md │ │ ├── skeleton.md │ │ └── workspace.md │ ├── article │ │ └── index.md │ ├── demoUsage │ │ ├── advanced │ │ │ ├── _category_.json │ │ │ └── hotkey.md │ │ ├── appendix │ │ │ ├── _category_.json │ │ │ ├── api.md │ │ │ └── loop.md │ │ ├── intro.md │ │ ├── makeStuff │ │ │ ├── _category_.json │ │ │ ├── dialog.md │ │ │ └── table.md │ │ └── panels │ │ │ ├── _category_.json │ │ │ ├── canvas.md │ │ │ ├── code.md │ │ │ ├── component.md │ │ │ ├── datasource.md │ │ │ └── settings.md │ ├── faq │ │ ├── faq001.md │ │ ├── faq002.md │ │ ├── faq003.md │ │ ├── faq004.md │ │ ├── faq005.md │ │ ├── faq006.md │ │ ├── faq007.md │ │ ├── faq008.md │ │ ├── faq009.md │ │ ├── faq010.md │ │ ├── faq011.md │ │ ├── faq012.md │ │ ├── faq013.md │ │ ├── faq014.md │ │ ├── faq015.md │ │ ├── faq016.md │ │ ├── faq017.md │ │ ├── faq018.md │ │ ├── faq019.md │ │ ├── faq020.md │ │ ├── faq021.md │ │ ├── faq022.md │ │ ├── faq023.md │ │ ├── faq024.md │ │ └── index.md │ ├── guide │ │ ├── appendix │ │ │ ├── _category_.json │ │ │ ├── glossary.md │ │ │ ├── metaSpec.md │ │ │ ├── npms.md │ │ │ ├── repos.md │ │ │ ├── setterDetails │ │ │ │ ├── _category_.json │ │ │ │ ├── array.md │ │ │ │ ├── behavior.md │ │ │ │ ├── bool.md │ │ │ │ ├── color.md │ │ │ │ ├── event.md │ │ │ │ ├── function.md │ │ │ │ ├── icon.md │ │ │ │ ├── mixed.md │ │ │ │ ├── number.md │ │ │ │ ├── radioGroup.md │ │ │ │ ├── select.md │ │ │ │ ├── slot.md │ │ │ │ ├── string.md │ │ │ │ ├── style.md │ │ │ │ ├── textArea.md │ │ │ │ └── variable.md │ │ │ └── setters.md │ │ ├── create │ │ │ ├── _category_.json │ │ │ ├── useEditor.md │ │ │ └── useRenderer.md │ │ ├── design │ │ │ ├── _category_.json │ │ │ ├── datasourceEngine.md │ │ │ ├── editor.md │ │ │ ├── generator.md │ │ │ ├── materialParser.md │ │ │ ├── renderer.md │ │ │ ├── setter.md │ │ │ ├── specs.md │ │ │ └── summary.md │ │ ├── expand │ │ │ ├── _category_.json │ │ │ ├── editor │ │ │ │ ├── _category_.json │ │ │ │ ├── cli.md │ │ │ │ ├── graph.md │ │ │ │ ├── material.md │ │ │ │ ├── metaSpec.md │ │ │ │ ├── parts │ │ │ │ │ ├── _category_.json │ │ │ │ │ ├── partsIntro.md │ │ │ │ │ ├── partsassets.md │ │ │ │ │ ├── partslcc.md │ │ │ │ │ └── prototype.md │ │ │ │ ├── pluginContextMenu.md │ │ │ │ ├── pluginWidget.md │ │ │ │ ├── setter.md │ │ │ │ ├── summary.md │ │ │ │ └── theme.md │ │ │ └── runtime │ │ │ │ ├── _category_.json │ │ │ │ ├── codeGeneration.md │ │ │ │ └── renderer.md │ │ └── quickStart │ │ │ ├── _category_.json │ │ │ ├── demo.md │ │ │ ├── intro.md │ │ │ └── start.md │ ├── participate │ │ ├── code-specification.md │ │ ├── flow.md │ │ ├── index.md │ │ └── meet.md │ ├── specs │ │ ├── assets-spec.md │ │ ├── lowcode-spec.md │ │ └── material-spec.md │ └── video │ │ └── index.md ├── docusaurus.config.js ├── package.json ├── scripts │ ├── getDocsFromDir.js │ └── sync-oss.js ├── src │ ├── css │ │ └── custom.css │ └── pages │ │ ├── index-old.tsx │ │ ├── index.module.css │ │ ├── index.tsx │ │ └── markdown-page.md ├── static │ └── img │ │ ├── docusaurus.png │ │ ├── logo.svg │ │ ├── undraw_docusaurus_mountain.svg │ │ ├── undraw_docusaurus_react.svg │ │ └── undraw_docusaurus_tree.svg └── tsconfig.json ├── index.ts ├── lerna.json ├── modules ├── code-generator │ ├── .gitignore │ ├── .prettierrc.js │ ├── .versionrc │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── README.md │ ├── babel.config.js │ ├── bin │ │ └── lowcode-code-generator.js │ ├── example-schema.json │ ├── example-schema.json5 │ ├── jest.config.js │ ├── jest.setup.js │ ├── package.json │ ├── scripts │ │ ├── build-cli.js │ │ ├── build-standalone-loader.js │ │ ├── build-standalone-worker.js │ │ ├── build-standalone.js │ │ ├── build-template-static-files.js │ │ ├── build-types │ │ ├── build.js │ │ ├── move-files-to-build-dest.js │ │ ├── run-demo-project │ │ └── test-standalone.js │ ├── src │ │ ├── analyzer │ │ │ └── componentAnalyzer.ts │ │ ├── cli │ │ │ ├── index.ts │ │ │ ├── init-solution.ts │ │ │ ├── run.ts │ │ │ └── solutions │ │ │ │ └── example-solution.ts │ │ ├── config │ │ │ └── env.ts │ │ ├── const │ │ │ ├── file.ts │ │ │ ├── generator.ts │ │ │ └── index.ts │ │ ├── core │ │ │ └── jsx │ │ │ │ ├── handlers │ │ │ │ ├── transformJsExpression.ts │ │ │ │ └── transformThis2Context.ts │ │ │ │ └── util │ │ │ │ ├── isLiteralAtomicExpr.ts │ │ │ │ └── isSimpleStraightLiteral.ts │ │ ├── generator │ │ │ ├── ChunkBuilder.ts │ │ │ ├── CodeBuilder.ts │ │ │ ├── ModuleBuilder.ts │ │ │ └── ProjectBuilder.ts │ │ ├── index.ts │ │ ├── parser │ │ │ └── SchemaParser.ts │ │ ├── plugins │ │ │ ├── common │ │ │ │ ├── esmodule.ts │ │ │ │ ├── requireUtils.ts │ │ │ │ └── styleImport.ts │ │ │ ├── component │ │ │ │ ├── rax │ │ │ │ │ ├── commonDeps.ts │ │ │ │ │ ├── const.ts │ │ │ │ │ ├── containerClass.ts │ │ │ │ │ ├── containerInitState.ts │ │ │ │ │ ├── containerInjectContext.ts │ │ │ │ │ ├── containerInjectDataSourceEngine.ts │ │ │ │ │ ├── containerInjectUtils.ts │ │ │ │ │ ├── containerLifeCycle.ts │ │ │ │ │ ├── containerMethods.ts │ │ │ │ │ └── jsx.ts │ │ │ │ ├── react │ │ │ │ │ ├── const.ts │ │ │ │ │ ├── containerClass.ts │ │ │ │ │ ├── containerInitState.ts │ │ │ │ │ ├── containerInjectConstants.ts │ │ │ │ │ ├── containerInjectContext.ts │ │ │ │ │ ├── containerInjectDataSourceEngine.ts │ │ │ │ │ ├── containerInjectI18n.ts │ │ │ │ │ ├── containerInjectUtils.ts │ │ │ │ │ ├── containerLifeCycle.ts │ │ │ │ │ ├── containerMethod.ts │ │ │ │ │ ├── jsx.ts │ │ │ │ │ └── reactCommonDeps.ts │ │ │ │ └── style │ │ │ │ │ └── css.ts │ │ │ └── project │ │ │ │ ├── constants.ts │ │ │ │ ├── framework │ │ │ │ ├── icejs │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── plugins │ │ │ │ │ │ ├── entry.ts │ │ │ │ │ │ ├── entryHtml.ts │ │ │ │ │ │ ├── globalStyle.ts │ │ │ │ │ │ ├── packageJSON.ts │ │ │ │ │ │ └── router.ts │ │ │ │ │ └── template │ │ │ │ │ │ ├── files │ │ │ │ │ │ ├── README.md.ts │ │ │ │ │ │ ├── abc.json.ts │ │ │ │ │ │ ├── build.json.ts │ │ │ │ │ │ ├── editorconfig.ts │ │ │ │ │ │ ├── eslintignore.ts │ │ │ │ │ │ ├── eslintrc.js.ts │ │ │ │ │ │ ├── gitignore.ts │ │ │ │ │ │ ├── jsconfig.json.ts │ │ │ │ │ │ ├── prettierignore.ts │ │ │ │ │ │ ├── prettierrc.js.ts │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ └── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx.ts │ │ │ │ │ │ │ │ │ └── index.style.ts │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx.ts │ │ │ │ │ │ │ │ │ └── index.style.ts │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx.ts │ │ │ │ │ │ │ │ ├── index.jsx.ts │ │ │ │ │ │ │ │ └── menuConfig.js.ts │ │ │ │ │ │ ├── stylelintignore.ts │ │ │ │ │ │ ├── stylelintrc.js.ts │ │ │ │ │ │ └── tsconfig.json.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── static-files.ts │ │ │ │ ├── icejs3 │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── plugins │ │ │ │ │ │ ├── appConfig.ts │ │ │ │ │ │ ├── buildConfig.ts │ │ │ │ │ │ ├── globalStyle.ts │ │ │ │ │ │ ├── layout.ts │ │ │ │ │ │ └── packageJSON.ts │ │ │ │ │ └── template │ │ │ │ │ │ ├── files │ │ │ │ │ │ ├── README.md.ts │ │ │ │ │ │ ├── browserslistrc.ts │ │ │ │ │ │ ├── document.ts │ │ │ │ │ │ ├── gitignore.ts │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ └── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx.ts │ │ │ │ │ │ │ │ │ └── index.style.ts │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx.ts │ │ │ │ │ │ │ │ │ └── index.style.ts │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx.ts │ │ │ │ │ │ │ │ ├── index.jsx.ts │ │ │ │ │ │ │ │ └── menuConfig.js.ts │ │ │ │ │ │ ├── tsconfig.ts │ │ │ │ │ │ └── typings.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── static-files.ts │ │ │ │ └── rax │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── plugins │ │ │ │ │ ├── appConfig.ts │ │ │ │ │ ├── buildConfig.ts │ │ │ │ │ ├── entry.ts │ │ │ │ │ ├── entryDocument.ts │ │ │ │ │ ├── globalStyle.ts │ │ │ │ │ └── packageJSON.ts │ │ │ │ │ ├── template │ │ │ │ │ ├── files │ │ │ │ │ │ ├── .eslintignore.ts │ │ │ │ │ │ ├── .eslintrc.js.ts │ │ │ │ │ │ ├── .gitignore.ts │ │ │ │ │ │ ├── .prettierignore.ts │ │ │ │ │ │ ├── .prettierrc.js.ts │ │ │ │ │ │ ├── .stylelintignore.ts │ │ │ │ │ │ ├── .stylelintrc.js.ts │ │ │ │ │ │ ├── README.md.ts │ │ │ │ │ │ ├── jsconfig.json.ts │ │ │ │ │ │ └── tsconfig.json.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── static-files.ts │ │ │ │ │ └── types │ │ │ │ │ └── RaxFrameworkOptions.ts │ │ │ │ ├── i18n.ts │ │ │ │ └── utils.ts │ │ ├── polyfills │ │ │ └── buffer.ts │ │ ├── postprocessor │ │ │ ├── index.ts │ │ │ └── prettier │ │ │ │ └── index.ts │ │ ├── publisher │ │ │ ├── disk │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ │ └── zip │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ ├── solutions │ │ │ ├── icejs.ts │ │ │ ├── icejs3.ts │ │ │ └── rax-app.ts │ │ ├── standalone-loader.ts │ │ ├── standalone-worker.ts │ │ ├── standalone.ts │ │ ├── types │ │ │ ├── analyze.ts │ │ │ ├── core.ts │ │ │ ├── deps.ts │ │ │ ├── error.ts │ │ │ ├── file.ts │ │ │ ├── index.ts │ │ │ ├── intermediate.ts │ │ │ ├── jsx.ts │ │ │ └── publisher.ts │ │ ├── typings.d.ts │ │ └── utils │ │ │ ├── OrderedSet.ts │ │ │ ├── Scope.ts │ │ │ ├── ScopeBindings.ts │ │ │ ├── aopHelper.ts │ │ │ ├── common.ts │ │ │ ├── compositeType.ts │ │ │ ├── dataSource.ts │ │ │ ├── debug.ts │ │ │ ├── encodeJsxAttrString.ts │ │ │ ├── errors.ts │ │ │ ├── expressionParser.ts │ │ │ ├── format.ts │ │ │ ├── index.ts │ │ │ ├── jsExpression.ts │ │ │ ├── jsSlot.ts │ │ │ ├── jsxHelpers.ts │ │ │ ├── nodeToJSX.ts │ │ │ ├── pathHelper.ts │ │ │ ├── resultHelper.ts │ │ │ ├── schema.ts │ │ │ ├── templateHelper.ts │ │ │ ├── theme.ts │ │ │ ├── validate.ts │ │ │ └── version.ts │ ├── standalone-loader │ │ ├── index.js │ │ └── package.json │ ├── standalone-worker │ │ ├── index.js │ │ └── package.json │ ├── standalone │ │ ├── index.js │ │ └── package.json │ ├── static-files │ │ └── rax │ │ │ ├── .eslintignore.template │ │ │ ├── .eslintrc.js.template │ │ │ ├── .gitignore.template │ │ │ ├── .prettierignore.template │ │ │ ├── .prettierrc.js.template │ │ │ ├── .stylelintignore.template │ │ │ ├── .stylelintrc.js.template │ │ │ ├── README.md.template │ │ │ ├── jsconfig.json.template │ │ │ └── tsconfig.json.template │ ├── tests │ │ ├── bugfix │ │ │ ├── .gitignore │ │ │ ├── i18n-with-params.schema.json │ │ │ ├── i18n-with-params.test.ts │ │ │ ├── icejs-import-wrong-naming.schema.json │ │ │ ├── icejs-import-wrong-naming.test.ts │ │ │ ├── icejs-js-function1.schema.json │ │ │ ├── icejs-js-function1.test.ts │ │ │ ├── icejs-missing-imports-1.schema.json │ │ │ ├── icejs-missing-imports-1.test.ts │ │ │ ├── icejs-package-json-dependencies.schema.json │ │ │ ├── icejs-package-json-dependencies.test.ts │ │ │ ├── icejs-page-map1.schema.json │ │ │ ├── icejs-page-map1.test.ts │ │ │ ├── page-element1.schema.json │ │ │ ├── page-element1.test.ts │ │ │ ├── page-element2.schema.json │ │ │ ├── page-element2.test.ts │ │ │ ├── strict-mode-context-1.schema.json │ │ │ ├── strict-mode-context-1.test.ts │ │ │ ├── tolerate-eval-errors-1-loop.schema.json │ │ │ ├── tolerate-eval-errors-1-loop.test.ts │ │ │ ├── tolerate-eval-errors-2-nested-loop.schema.json │ │ │ └── tolerate-eval-errors-2-nested-loop.test.ts │ │ ├── cli.test.ts │ │ ├── fixtures │ │ │ └── test-cases │ │ │ │ ├── .gitignore │ │ │ │ ├── icejs3-app │ │ │ │ ├── demo1 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo2-utils-name-alias │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Aaaa │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo2 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo3 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo4 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo5 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo6-literal-condition │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo7-literal-condition2 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo8-datasource-prop │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Example │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo9-datasource-engine │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── $ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo_10-jsslot │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ └── demo_11-jsslot-2 │ │ │ │ │ ├── expected │ │ │ │ │ └── demo-project │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── ice.config.mts │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ ├── document.tsx │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ ├── pages │ │ │ │ │ │ ├── Test │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ └── layout.jsx │ │ │ │ │ │ ├── typings.d.ts │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── schema.json5 │ │ │ │ ├── rax-app │ │ │ │ ├── demo01 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo02 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo03 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ ├── Detail │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ └── List │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo04 │ │ │ │ │ ├── README.md │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo05 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo06-jsslot │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo07-newline-in-props │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo08-jsslot-with-multiple-children │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo09-jsslot-with-conditional-children │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo10-jsslot-with-loop-children │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo11-utils-name-alias │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Aaaa │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo12-refs │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Home │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ └── demo13-datasource-prop │ │ │ │ │ ├── expected │ │ │ │ │ └── demo-project │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ ├── app.json │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ ├── document │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ ├── global.css │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ └── Example │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── react-app │ │ │ │ ├── demo1 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo2-utils-name-alias │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Aaaa │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo2 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo3 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo4 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo5 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo6-literal-condition │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo7-literal-condition2 │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo8-datasource-prop │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Example │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo9-datasource-engine │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── $ │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ ├── demo_10-jsslot │ │ │ │ │ ├── expected │ │ │ │ │ │ └── demo-project │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── public │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ └── demo_11-jsslot-2 │ │ │ │ │ ├── expected │ │ │ │ │ └── demo-project │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── abc.json │ │ │ │ │ │ ├── build.json │ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── public │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── src │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ ├── global.scss │ │ │ │ │ │ ├── i18n.js │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ │ ├── pages │ │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ ├── routes.js │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ └── schema.json5 │ │ │ │ └── react-module │ │ │ │ └── demo1 │ │ │ │ ├── expected │ │ │ │ └── demo-project │ │ │ │ │ ├── .editorconfig │ │ │ │ │ ├── .eslintignore │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .prettierignore │ │ │ │ │ ├── .prettierrc.js │ │ │ │ │ ├── .stylelintignore │ │ │ │ │ ├── .stylelintrc.js │ │ │ │ │ ├── README.md │ │ │ │ │ ├── abc.json │ │ │ │ │ ├── build.json │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── public │ │ │ │ │ └── index.html │ │ │ │ │ ├── src │ │ │ │ │ ├── app.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── global.scss │ │ │ │ │ ├── i18n.js │ │ │ │ │ ├── layouts │ │ │ │ │ │ └── BasicLayout │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ ├── Logo │ │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ │ └── index.module.scss │ │ │ │ │ │ │ └── PageNav │ │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ │ │ ├── index.jsx │ │ │ │ │ │ │ └── menuConfig.js │ │ │ │ │ ├── pages │ │ │ │ │ │ └── Test │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ └── index.jsx │ │ │ │ │ ├── routes.js │ │ │ │ │ └── utils.js │ │ │ │ │ └── tsconfig.json │ │ │ │ └── schema.json5 │ │ ├── helpers │ │ │ └── solutionHelper.ts │ │ ├── plugins │ │ │ ├── common │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── requireUtils.test.ts.snap │ │ │ │ └── requireUtils.test.ts │ │ │ └── jsx │ │ │ │ ├── __snapshots__ │ │ │ │ └── p0-condition-at-root.test.ts.snap │ │ │ │ └── p0-condition-at-root.test.ts │ │ ├── postprocessor │ │ │ ├── __snapshots__ │ │ │ │ └── prettier.test.ts.snap │ │ │ └── prettier.test.ts │ │ ├── public │ │ │ ├── README.md │ │ │ ├── SchemaParser │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── p0-basic.test.ts.snap │ │ │ │ ├── data │ │ │ │ │ └── schema-with-slot.json │ │ │ │ └── p0-basic.test.ts │ │ │ ├── cli.test.ts │ │ │ ├── publisher │ │ │ │ ├── disk │ │ │ │ │ └── disk.test.ts │ │ │ │ └── zip │ │ │ │ │ └── zip.test.ts │ │ │ └── solutions │ │ │ │ ├── icejs3-app.test.ts │ │ │ │ ├── rax-app.test.ts │ │ │ │ └── react-app.test.ts │ │ └── utils │ │ │ ├── compositeType.test.ts │ │ │ ├── errors.test.ts │ │ │ ├── expressionParser │ │ │ ├── jsExpression.test.ts │ │ │ ├── parseExpressionConvertThis2Context.test.ts │ │ │ ├── parseExpressionGetGlobalVariables.test.ts │ │ │ └── parseExpressionGetKeywords.test.ts │ │ │ ├── flattenResult.test.ts │ │ │ ├── resultHelper │ │ │ ├── example-result.json │ │ │ ├── findFile.test.ts │ │ │ ├── globFiles.test.ts │ │ │ ├── removeDirsFromResult.test.ts │ │ │ ├── removeFilesFromResult.test.ts │ │ │ └── scanFiles.test.ts │ │ │ ├── schema │ │ │ ├── data │ │ │ │ └── schema-with-slot.json │ │ │ └── handleSubNodes.test.ts │ │ │ ├── validate.test.ts │ │ │ └── version.test.ts │ └── tsconfig.json └── material-parser │ ├── README.md │ ├── build.test.json │ ├── demo │ ├── component.jsx │ ├── component.tsx │ ├── parse-jsx.js │ └── parse-tsx.js │ ├── jest.config.js │ ├── package.json │ ├── schemas │ ├── schema.json │ └── schema.yml │ ├── scripts │ └── transform.js │ ├── src │ ├── core │ │ ├── index.ts │ │ └── schema │ │ │ └── types.ts │ ├── generate.ts │ ├── index.ts │ ├── localize.ts │ ├── parse │ │ ├── dynamic │ │ │ ├── index.ts │ │ │ └── requireInSandbox.ts │ │ ├── index.ts │ │ ├── js │ │ │ ├── handlers │ │ │ │ ├── defaultPropsHandler.ts │ │ │ │ ├── index.ts │ │ │ │ ├── preProcessHandler.ts │ │ │ │ ├── propTypeHandler.ts │ │ │ │ └── propTypeJsDocHandler.ts │ │ │ ├── index.ts │ │ │ ├── resolver │ │ │ │ ├── checkIsIIFE.ts │ │ │ │ ├── findAssignedMethods.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isReactComponentStaticMember.ts │ │ │ │ ├── isStaticMethod.ts │ │ │ │ ├── resolveExportDeclaration.ts │ │ │ │ ├── resolveHOC.ts │ │ │ │ ├── resolveIIFE.ts │ │ │ │ ├── resolveImport.ts │ │ │ │ └── resolveTranspiledClass.ts │ │ │ └── utils │ │ │ │ ├── cache.ts │ │ │ │ ├── evaluate.ts │ │ │ │ ├── findJSFilePath.ts │ │ │ │ ├── getComposedPath.ts │ │ │ │ ├── getName.ts │ │ │ │ ├── getRoot.ts │ │ │ │ └── makeProxy.ts │ │ ├── transform.ts │ │ └── ts │ │ │ ├── generateDTS.ts │ │ │ ├── index.ts │ │ │ └── tsconfig.json │ ├── scan.ts │ ├── types │ │ ├── Basic.ts │ │ ├── ChannelType.ts │ │ ├── DSLType.ts │ │ ├── IAccesser.ts │ │ ├── IExtensionConfigManifest.ts │ │ ├── IMaterialParsedModel.ts │ │ ├── IMaterialScanModel.ts │ │ ├── IMaterializeOptions.ts │ │ ├── Meta.ts │ │ └── index.ts │ ├── utils.ts │ └── validate │ │ ├── index.ts │ │ └── schema.json │ ├── test │ ├── __snapshots__ │ │ ├── dynamic.test.ts.snap │ │ ├── index.test.ts.snap │ │ └── online.test.ts.snap │ ├── dynamic.test.ts │ ├── fixtures │ │ ├── dts-component │ │ │ ├── index.d.ts │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── data.js │ │ │ │ ├── i18n.js │ │ │ │ ├── index.jsx │ │ │ │ ├── main.scss │ │ │ │ └── scss │ │ │ │ └── variable.scss │ │ ├── multiple-exported-component │ │ │ ├── es │ │ │ │ ├── basic │ │ │ │ │ ├── AIMakeBlank │ │ │ │ │ │ ├── amContainer.js │ │ │ │ │ │ ├── amManifest.js │ │ │ │ │ │ ├── container.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── manifest.js │ │ │ │ │ │ └── manifest.json │ │ │ │ │ ├── AIMakeIcon │ │ │ │ │ │ ├── IconFont.js │ │ │ │ │ │ ├── amContainer.js │ │ │ │ │ │ ├── amManifest.js │ │ │ │ │ │ ├── container.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── manifest.js │ │ │ │ │ │ └── manifest.json │ │ │ │ │ ├── AIMakeImage │ │ │ │ │ │ ├── amContainer.js │ │ │ │ │ │ ├── amManifest.js │ │ │ │ │ │ ├── container.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── manifest.js │ │ │ │ │ │ └── manifest.json │ │ │ │ │ ├── AIMakeLink │ │ │ │ │ │ ├── amContainer.js │ │ │ │ │ │ ├── amManifest.js │ │ │ │ │ │ ├── container.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── manifest.js │ │ │ │ │ │ └── manifest.json │ │ │ │ │ ├── AIMakePlaceholder │ │ │ │ │ │ ├── amContainer.js │ │ │ │ │ │ ├── amManifest.js │ │ │ │ │ │ ├── container.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── manifest.js │ │ │ │ │ │ └── manifest.json │ │ │ │ │ ├── AIMakeText │ │ │ │ │ │ ├── amContainer.js │ │ │ │ │ │ ├── amManifest.js │ │ │ │ │ │ ├── container.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── manifest.js │ │ │ │ │ │ └── manifest.json │ │ │ │ │ ├── Root │ │ │ │ │ │ ├── amContainer.js │ │ │ │ │ │ ├── amManifest.js │ │ │ │ │ │ ├── container.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── manifest.js │ │ │ │ │ │ └── manifest.json │ │ │ │ │ ├── style │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── index.less │ │ │ │ │ └── utils │ │ │ │ │ │ ├── HOCBackgroundProps.js │ │ │ │ │ │ ├── HOCBoxModelProps.js │ │ │ │ │ │ ├── HOCFlexLayoutProps.js │ │ │ │ │ │ ├── HOCLayoutProps.js │ │ │ │ │ │ └── HOCTextProps.js │ │ │ │ └── index.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── basic │ │ │ │ ├── AIMakeBlank │ │ │ │ │ ├── amContainer.js │ │ │ │ │ ├── amManifest.js │ │ │ │ │ ├── container.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── manifest.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── AIMakeIcon │ │ │ │ │ ├── IconFont.js │ │ │ │ │ ├── amContainer.js │ │ │ │ │ ├── amManifest.js │ │ │ │ │ ├── container.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── manifest.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── AIMakeImage │ │ │ │ │ ├── amContainer.js │ │ │ │ │ ├── amManifest.js │ │ │ │ │ ├── container.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── manifest.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── AIMakeLink │ │ │ │ │ ├── amContainer.js │ │ │ │ │ ├── amManifest.js │ │ │ │ │ ├── container.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── manifest.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── AIMakePlaceholder │ │ │ │ │ ├── amContainer.js │ │ │ │ │ ├── amManifest.js │ │ │ │ │ ├── container.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── manifest.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── AIMakeText │ │ │ │ │ ├── amContainer.js │ │ │ │ │ ├── amManifest.js │ │ │ │ │ ├── container.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── manifest.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── Root │ │ │ │ │ ├── amContainer.js │ │ │ │ │ ├── amManifest.js │ │ │ │ │ ├── container.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── manifest.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── style │ │ │ │ │ ├── index.js │ │ │ │ │ └── index.less │ │ │ │ └── utils │ │ │ │ │ ├── HOCBackgroundProps.js │ │ │ │ │ ├── HOCBoxModelProps.js │ │ │ │ │ ├── HOCFlexLayoutProps.js │ │ │ │ │ ├── HOCLayoutProps.js │ │ │ │ │ └── HOCTextProps.js │ │ │ │ └── index.js │ │ ├── rax-component │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── index.css │ │ │ │ └── index.tsx │ │ ├── single-exported-component │ │ │ ├── es │ │ │ │ ├── container.js │ │ │ │ ├── index.js │ │ │ │ ├── main.css │ │ │ │ ├── main.scss │ │ │ │ ├── manifest.js │ │ │ │ └── manifest.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── index.js │ │ │ │ └── main.scss │ │ ├── transpiled-component │ │ │ └── package.json │ │ ├── ts-component │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── index.tsx │ │ │ │ ├── main-module.tsx │ │ │ │ └── sub-module.tsx │ │ ├── ts-component2 │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── empty.tsx │ │ │ │ ├── index.scss │ │ │ │ └── index.tsx │ │ └── without-display-name │ │ │ ├── index.js │ │ │ └── package.json │ ├── helpers │ │ └── index.ts │ ├── index.test.ts │ ├── localize.test.ts │ ├── online.test.ts │ └── validate │ │ ├── __snapshots__ │ │ └── index.test.ts.snap │ │ ├── fixtures │ │ ├── basic-error │ │ │ └── schema.json │ │ ├── basic-success │ │ │ └── schema.json │ │ ├── configure │ │ │ └── schema.json │ │ ├── props-basic-type │ │ │ └── schema.json │ │ └── props-complex-type │ │ │ └── schema.json │ │ └── index.test.ts │ ├── tsconfig.json │ └── webpack.config.js ├── package.json ├── packages ├── designer │ ├── README.md │ ├── babel.config.js │ ├── build.json │ ├── build.test.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── builtin-simulator │ │ │ ├── README.md │ │ │ ├── bem-tools │ │ │ │ ├── bem-tools.less │ │ │ │ ├── border-container.tsx │ │ │ │ ├── border-detecting.tsx │ │ │ │ ├── border-resizing.tsx │ │ │ │ ├── border-selecting.tsx │ │ │ │ ├── borders.less │ │ │ │ ├── drag-resize-engine.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── insertion.less │ │ │ │ ├── insertion.tsx │ │ │ │ └── manager.ts │ │ │ ├── context.ts │ │ │ ├── create-simulator.ts │ │ │ ├── host-view.tsx │ │ │ ├── host.less │ │ │ ├── host.ts │ │ │ ├── index.ts │ │ │ ├── live-editing │ │ │ │ └── live-editing.ts │ │ │ ├── node-selector │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── renderer.ts │ │ │ ├── resource-consumer.ts │ │ │ ├── utils │ │ │ │ ├── clickable.ts │ │ │ │ ├── parse-metadata.ts │ │ │ │ ├── path.ts │ │ │ │ └── throttle.ts │ │ │ └── viewport.ts │ │ ├── component-actions.ts │ │ ├── component-meta.ts │ │ ├── context-menu-actions.scss │ │ ├── context-menu-actions.ts │ │ ├── designer │ │ │ ├── active-tracker.ts │ │ │ ├── clipboard.ts │ │ │ ├── designer-view.tsx │ │ │ ├── designer.less │ │ │ ├── designer.ts │ │ │ ├── detecting.ts │ │ │ ├── drag-ghost │ │ │ │ ├── README.md │ │ │ │ ├── ghost.less │ │ │ │ └── index.tsx │ │ │ ├── dragon.ts │ │ │ ├── index.ts │ │ │ ├── location.ts │ │ │ ├── offset-observer.ts │ │ │ ├── scroller.ts │ │ │ └── setting │ │ │ │ ├── index.ts │ │ │ │ ├── setting-entry-type.ts │ │ │ │ ├── setting-field.ts │ │ │ │ ├── setting-prop-entry.ts │ │ │ │ ├── setting-top-entry.ts │ │ │ │ └── utils.ts │ │ ├── document │ │ │ ├── document-model.ts │ │ │ ├── document-view.tsx │ │ │ ├── history.ts │ │ │ ├── index.ts │ │ │ ├── node │ │ │ │ ├── exclusive-group.ts │ │ │ │ ├── index.ts │ │ │ │ ├── modal-nodes-manager.ts │ │ │ │ ├── node-children.ts │ │ │ │ ├── node.ts │ │ │ │ ├── props │ │ │ │ │ ├── prop.ts │ │ │ │ │ ├── props.ts │ │ │ │ │ └── value-to-source.ts │ │ │ │ └── transform-stage.ts │ │ │ └── selection.ts │ │ ├── icons │ │ │ ├── clone.tsx │ │ │ ├── component.tsx │ │ │ ├── container.tsx │ │ │ ├── hidden.tsx │ │ │ ├── index.ts │ │ │ ├── lock.tsx │ │ │ ├── page.tsx │ │ │ ├── remove.tsx │ │ │ ├── setting.tsx │ │ │ └── unlock.tsx │ │ ├── index.ts │ │ ├── less-variables.less │ │ ├── locale │ │ │ ├── en-US.json │ │ │ ├── index.ts │ │ │ └── zh-CN.json │ │ ├── plugin │ │ │ ├── index.ts │ │ │ ├── plugin-context.ts │ │ │ ├── plugin-manager.ts │ │ │ ├── plugin-types.ts │ │ │ ├── plugin-utils.ts │ │ │ ├── plugin.ts │ │ │ └── sequencify.ts │ │ ├── project │ │ │ ├── index.ts │ │ │ ├── project-view.tsx │ │ │ ├── project.less │ │ │ └── project.ts │ │ ├── simulator.ts │ │ ├── transducers │ │ │ └── index.ts │ │ ├── types │ │ │ └── index.ts │ │ └── utils │ │ │ ├── index.ts │ │ │ ├── invariant.ts │ │ │ ├── misc.ts │ │ │ ├── slot.ts │ │ │ └── tree.ts │ ├── tests │ │ ├── __mocks__ │ │ │ ├── document-model.ts │ │ │ └── node.ts │ │ ├── bugs │ │ │ ├── misc.ts.bak │ │ │ ├── prop-variable-jse.test.ts │ │ │ └── why.md │ │ ├── builtin-simulator │ │ │ ├── bem-tools │ │ │ │ ├── drag-resize-engine.test.ts │ │ │ │ └── manager.test.tsx │ │ │ ├── host.test.ts │ │ │ ├── renderer.test.tsx │ │ │ ├── resource-consumer.test.ts │ │ │ ├── utils │ │ │ │ ├── parse-metadata.test.ts │ │ │ │ ├── path.test.ts │ │ │ │ └── throttle.test.ts │ │ │ └── viewport.test.ts │ │ ├── designer │ │ │ ├── active-tracker.test.ts │ │ │ ├── builtin-hotkey.test.ts │ │ │ ├── designer.test.ts │ │ │ ├── detecting.test.ts │ │ │ ├── dragon.test.ts │ │ │ ├── location.test.ts │ │ │ ├── scroller.test.ts │ │ │ └── setting │ │ │ │ ├── __snapshots__ │ │ │ │ └── setting-field.test.ts.snap │ │ │ │ ├── setting-field.test.ts │ │ │ │ ├── setting-prop-entry.test.ts │ │ │ │ └── setting-top-entry.test.ts │ │ ├── document │ │ │ ├── document-model │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── document-model.test.ts.snap │ │ │ │ └── document-model.test.ts │ │ │ ├── history │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── history.test.ts.snap │ │ │ │ ├── history.test.ts │ │ │ │ └── session.test.ts │ │ │ ├── node │ │ │ │ ├── modal-nodes-manager.test.ts │ │ │ │ ├── node-children.test.ts │ │ │ │ ├── node.add.test.ts │ │ │ │ ├── node.dragdrop.test.ts │ │ │ │ ├── node.modify.test.ts │ │ │ │ ├── node.remove.test.ts │ │ │ │ ├── node.test.ts │ │ │ │ └── props │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── value-to-source.test.ts.snap │ │ │ │ │ ├── prop.test.ts │ │ │ │ │ ├── props.test.ts │ │ │ │ │ └── value-to-source.test.ts │ │ │ └── selection.test.ts │ │ ├── fixtures │ │ │ ├── component-metadata │ │ │ │ ├── abcgroup.ts │ │ │ │ ├── abcitem.ts │ │ │ │ ├── abcnode.ts │ │ │ │ ├── abcoption.ts │ │ │ │ ├── button.ts │ │ │ │ ├── dialog.ts │ │ │ │ ├── div.ts │ │ │ │ ├── div10.ts │ │ │ │ ├── div2.ts │ │ │ │ ├── div3.ts │ │ │ │ ├── div4.ts │ │ │ │ ├── div5.ts │ │ │ │ ├── div6.ts │ │ │ │ ├── div7.ts │ │ │ │ ├── div8.ts │ │ │ │ ├── div9.ts │ │ │ │ ├── form.ts │ │ │ │ ├── other.ts │ │ │ │ ├── page.ts │ │ │ │ ├── page2.ts │ │ │ │ ├── root-content.ts │ │ │ │ ├── root-footer.ts │ │ │ │ └── root-header.ts │ │ │ ├── disable-raf.ts │ │ │ ├── schema │ │ │ │ ├── form-with-modal.ts │ │ │ │ ├── form.ts │ │ │ │ └── setting.ts │ │ │ ├── silent-console.ts │ │ │ ├── unhandled-rejection.ts │ │ │ └── window.ts │ │ ├── main │ │ │ ├── meta │ │ │ │ └── component-meta.test.ts │ │ │ └── simulator.test.ts │ │ ├── plugin │ │ │ ├── plugin-manager.test.ts │ │ │ ├── plugin-utils.test.ts │ │ │ └── sequencify.test.ts │ │ ├── project │ │ │ ├── project-methods.test.ts │ │ │ └── project.test.ts │ │ ├── utils-ut │ │ │ ├── invariant.test.ts │ │ │ ├── misc.test.ts │ │ │ └── slot.test.ts │ │ └── utils │ │ │ ├── bom.ts │ │ │ ├── event.ts │ │ │ ├── index.ts │ │ │ ├── misc.ts │ │ │ └── renderer.ts │ └── tsconfig.json ├── editor-core │ ├── build.json │ ├── build.plugin.js │ ├── build.test.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── command.ts │ │ ├── config.ts │ │ ├── di │ │ │ ├── index.ts │ │ │ ├── ioc-context.ts │ │ │ └── setter.ts │ │ ├── editor.ts │ │ ├── event-bus.ts │ │ ├── hotkey.ts │ │ ├── index.ts │ │ ├── intl │ │ │ ├── global-locale.ts │ │ │ └── index.ts │ │ ├── utils │ │ │ ├── app-preset.ts │ │ │ ├── assets-transform.ts │ │ │ ├── control.ts │ │ │ ├── focus-tracker.ts │ │ │ ├── get-public-path.ts │ │ │ ├── index.ts │ │ │ ├── logger.ts │ │ │ ├── obx.ts │ │ │ ├── preference.ts │ │ │ └── request.ts │ │ └── widgets │ │ │ ├── index.ts │ │ │ ├── tip │ │ │ ├── help-tips.tsx │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ ├── tip-container.tsx │ │ │ ├── tip-handler.ts │ │ │ ├── tip-item.tsx │ │ │ ├── tip.tsx │ │ │ └── utils.ts │ │ │ └── title │ │ │ ├── index.tsx │ │ │ └── title.less │ ├── test │ │ └── command.test.ts │ └── tsconfig.json ├── editor-skeleton │ ├── build.json │ ├── build.test.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── area.ts │ │ ├── components │ │ │ ├── draggable-line │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── field │ │ │ │ ├── fields.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.ts │ │ │ │ └── inlinetip.tsx │ │ │ ├── popup │ │ │ │ ├── index.tsx │ │ │ │ └── style.less │ │ │ ├── settings │ │ │ │ ├── index.ts │ │ │ │ ├── main.ts │ │ │ │ ├── settings-pane.tsx │ │ │ │ ├── settings-primary-pane.tsx │ │ │ │ ├── style.less │ │ │ │ └── utils.ts │ │ │ ├── stage-box │ │ │ │ ├── index.less │ │ │ │ ├── index.ts │ │ │ │ ├── stage-box.tsx │ │ │ │ ├── stage-chain.ts │ │ │ │ └── stage.tsx │ │ │ └── widget-views │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ └── panel-operation-row.tsx │ │ ├── context.ts │ │ ├── icons │ │ │ ├── arrow.tsx │ │ │ ├── clear.tsx │ │ │ ├── convert.tsx │ │ │ ├── exit.tsx │ │ │ ├── fix.tsx │ │ │ ├── float.tsx │ │ │ ├── slot.tsx │ │ │ └── variable.tsx │ │ ├── index.ts │ │ ├── layouts │ │ │ ├── bottom-area.tsx │ │ │ ├── index.ts │ │ │ ├── left-area.tsx │ │ │ ├── left-fixed-pane.tsx │ │ │ ├── left-float-pane.tsx │ │ │ ├── main-area.tsx │ │ │ ├── right-area.tsx │ │ │ ├── sub-top-area.tsx │ │ │ ├── theme.less │ │ │ ├── toolbar.tsx │ │ │ ├── top-area.tsx │ │ │ ├── workbench.less │ │ │ └── workbench.tsx │ │ ├── less-variables.less │ │ ├── locale │ │ │ ├── en-US.json │ │ │ ├── index.ts │ │ │ └── zh-CN.json │ │ ├── register-defaults.ts │ │ ├── skeleton.ts │ │ ├── transducers │ │ │ ├── addon-combine.ts │ │ │ ├── parse-func.ts │ │ │ └── parse-props.ts │ │ ├── types.ts │ │ └── widget │ │ │ ├── dialog-dock.ts │ │ │ ├── dock.ts │ │ │ ├── index.ts │ │ │ ├── panel-dock.ts │ │ │ ├── panel.ts │ │ │ ├── stage.ts │ │ │ ├── utils.ts │ │ │ ├── widget-container.ts │ │ │ └── widget.ts │ ├── tests │ │ └── widget │ │ │ └── utils.test.ts │ └── tsconfig.json ├── engine │ ├── README-zh_CN.md │ ├── README.md │ ├── babel.config.js │ ├── build.json │ ├── build.plugin.js │ ├── build.test.json │ ├── build.umd.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── engine-core.ts │ │ ├── index.ts │ │ ├── inner-plugins │ │ │ ├── builtin-hotkey.ts │ │ │ ├── component-meta-parser.ts │ │ │ ├── default-context-menu.ts │ │ │ ├── default-panel-registry.tsx │ │ │ └── setter-registry.ts │ │ ├── locale │ │ │ ├── en-US.json │ │ │ ├── index.ts │ │ │ └── zh-CN.json │ │ └── modules │ │ │ ├── classes.ts │ │ │ ├── designer-types.ts │ │ │ ├── live-editing.ts │ │ │ ├── lowcode-types.ts │ │ │ ├── shell-model-factory.ts │ │ │ ├── skeleton-types.ts │ │ │ └── symbols.ts │ └── tsconfig.json ├── ignitor │ ├── babel.config.js │ ├── build.json │ ├── build.plugin.js │ ├── jest.config.js │ ├── package.json │ ├── public │ │ ├── favicon.png │ │ └── index.html │ └── tsconfig.json ├── plugin-command │ ├── README.md │ ├── __tests__ │ │ └── node-command.test.ts │ ├── build.json │ ├── build.test.json │ ├── jest.config.js │ ├── package.json │ └── src │ │ ├── history-command.ts │ │ ├── index.ts │ │ └── node-command.ts ├── plugin-designer │ ├── .gitignore │ ├── build.json │ ├── package.json │ ├── src │ │ ├── index.scss │ │ └── index.tsx │ └── tsconfig.json ├── plugin-outline-pane │ ├── .gitignore │ ├── build.json │ ├── package.json │ └── src │ │ ├── README.md │ │ ├── controllers │ │ ├── pane-controller.ts │ │ ├── ric-shim.d.ts │ │ ├── tree-master.ts │ │ ├── tree-node.ts │ │ └── tree.ts │ │ ├── helper │ │ ├── consts.ts │ │ ├── dwell-timer.ts │ │ └── indent-track.ts │ │ ├── icons │ │ ├── arrow-right.tsx │ │ ├── cond.tsx │ │ ├── delete.tsx │ │ ├── eye-close.tsx │ │ ├── eye.tsx │ │ ├── filter.tsx │ │ ├── index.ts │ │ ├── lock.tsx │ │ ├── loop.tsx │ │ ├── outline.tsx │ │ ├── radio-active.tsx │ │ ├── radio.tsx │ │ ├── setting.tsx │ │ └── unlock.tsx │ │ ├── index.tsx │ │ ├── locale │ │ ├── en-US.json │ │ ├── index.ts │ │ └── zh-CN.json │ │ └── views │ │ ├── filter-tree.ts │ │ ├── filter.tsx │ │ ├── pane.tsx │ │ ├── style.less │ │ ├── tree-branches.tsx │ │ ├── tree-node.tsx │ │ ├── tree-title.tsx │ │ └── tree.tsx ├── react-renderer │ ├── README.md │ ├── build.json │ ├── build.test.json │ ├── build.umd.json │ ├── demo │ │ ├── compose.md │ │ ├── config │ │ │ ├── components │ │ │ │ ├── A.jsx │ │ │ │ ├── Div.jsx │ │ │ │ ├── Image.jsx │ │ │ │ ├── Text.jsx │ │ │ │ └── index.js │ │ │ ├── constants.js │ │ │ └── utils.js │ │ ├── dataSource.md │ │ ├── i18n.md │ │ ├── list.md │ │ ├── schemas │ │ │ ├── compose.js │ │ │ ├── dataSource.js │ │ │ ├── i18n.js │ │ │ ├── list.js │ │ │ └── table.js │ │ └── table.md │ ├── jest.config.js │ ├── package.json │ ├── src │ │ └── index.ts │ ├── tests │ │ ├── __snapshots__ │ │ │ └── index.test.tsx.snap │ │ ├── fixtures │ │ │ └── schema │ │ │ │ └── basic.ts │ │ └── index.test.tsx │ └── tsconfig.json ├── react-simulator-renderer │ ├── .babelrc │ ├── babel.config.js │ ├── build.json │ ├── build.plugin.js │ ├── build.test.json │ ├── build.umd.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── README.md │ │ ├── builtin-components │ │ │ ├── builtin-components.ts │ │ │ ├── leaf.tsx │ │ │ └── slot.tsx │ │ ├── host.ts │ │ ├── index.ts │ │ ├── locale │ │ │ ├── en-US.json │ │ │ ├── index.ts │ │ │ └── zh-CN.json │ │ ├── renderer-view.tsx │ │ ├── renderer.less │ │ ├── renderer.ts │ │ └── utils │ │ │ ├── get-client-rects.ts │ │ │ ├── is-dom-node.ts │ │ │ ├── misc.ts │ │ │ ├── react-find-dom-nodes.ts │ │ │ └── url.ts │ ├── test │ │ ├── schema │ │ │ └── basic.ts │ │ ├── src │ │ │ └── renderer │ │ │ │ ├── __snapshots__ │ │ │ │ └── demo.test.tsx.snap │ │ │ │ └── demo.test.tsx │ │ └── utils │ │ │ ├── components.tsx │ │ │ └── host.ts │ └── tsconfig.json ├── renderer-core │ ├── babel.config.js │ ├── build.json │ ├── build.test.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── adapter │ │ │ └── index.ts │ │ ├── components │ │ │ ├── Div.tsx │ │ │ └── VisualDom │ │ │ │ ├── index.css │ │ │ │ └── index.tsx │ │ ├── context │ │ │ └── index.ts │ │ ├── hoc │ │ │ ├── index.tsx │ │ │ └── leaf.tsx │ │ ├── index.ts │ │ ├── renderer │ │ │ ├── addon.tsx │ │ │ ├── base.tsx │ │ │ ├── block.tsx │ │ │ ├── component.tsx │ │ │ ├── index.ts │ │ │ ├── page.tsx │ │ │ ├── renderer.tsx │ │ │ └── temp.tsx │ │ ├── types │ │ │ └── index.ts │ │ └── utils │ │ │ ├── common.ts │ │ │ ├── data-helper.ts │ │ │ ├── index.ts │ │ │ ├── is-use-loop.ts │ │ │ ├── logger.ts │ │ │ └── request.ts │ ├── tests │ │ ├── adapter │ │ │ └── adapter.test.ts │ │ ├── fixtures │ │ │ ├── schema │ │ │ │ └── basic.ts │ │ │ └── unhandled-rejection.ts │ │ ├── hoc │ │ │ ├── __snapshots__ │ │ │ │ └── leaf.test.tsx.snap │ │ │ └── leaf.test.tsx │ │ ├── mock │ │ │ ├── loop.ts │ │ │ ├── sample.ts │ │ │ └── styleMock.js │ │ ├── renderer │ │ │ ├── __snapshots__ │ │ │ │ └── renderer.test.tsx.snap │ │ │ ├── base.test.tsx │ │ │ └── renderer.test.tsx │ │ ├── setup.ts │ │ └── utils │ │ │ ├── common.test.ts │ │ │ ├── components.tsx │ │ │ ├── data-helper.test.ts │ │ │ ├── is-use-loop.test.ts │ │ │ ├── node.ts │ │ │ ├── react-env-init.ts │ │ │ └── request.test.ts │ └── tsconfig.json ├── shell │ ├── build.json │ ├── build.test.json │ ├── package.json │ └── src │ │ ├── api │ │ ├── canvas.ts │ │ ├── command.ts │ │ ├── common.tsx │ │ ├── commonUI.tsx │ │ ├── config.ts │ │ ├── event.ts │ │ ├── hotkey.ts │ │ ├── index.ts │ │ ├── logger.ts │ │ ├── material.ts │ │ ├── plugins.ts │ │ ├── project.ts │ │ ├── setters.ts │ │ ├── simulator-host.ts │ │ ├── skeleton.ts │ │ └── workspace.ts │ │ ├── components │ │ └── context-menu.tsx │ │ ├── index.ts │ │ ├── model │ │ ├── active-tracker.ts │ │ ├── clipboard.ts │ │ ├── component-meta.ts │ │ ├── condition-group.ts │ │ ├── detecting.ts │ │ ├── document-model.ts │ │ ├── drag-object.ts │ │ ├── dragon.ts │ │ ├── drop-location.ts │ │ ├── editor-view.ts │ │ ├── history.ts │ │ ├── index.ts │ │ ├── locate-event.ts │ │ ├── modal-nodes-manager.ts │ │ ├── node-children.ts │ │ ├── node.ts │ │ ├── plugin-instance.ts │ │ ├── prop.ts │ │ ├── props.ts │ │ ├── resource.ts │ │ ├── selection.ts │ │ ├── setting-field.ts │ │ ├── setting-top-entry.ts │ │ ├── simulator-render.ts │ │ ├── skeleton-item.ts │ │ └── window.ts │ │ └── symbols.ts ├── types │ ├── .eslintignore │ ├── .prettierrc.js │ ├── CHANGELOG.md │ ├── build.json │ ├── package.json │ ├── src │ │ ├── activity.ts │ │ ├── assets.ts │ │ ├── code-intermediate.ts │ │ ├── code-result.ts │ │ ├── deprecated │ │ │ ├── index.ts │ │ │ ├── isActionContentObject.ts │ │ │ ├── isCustomView.ts │ │ │ ├── isDOMText.ts │ │ │ ├── isDynamicSetter.ts │ │ │ ├── isI18nData.ts │ │ │ ├── isJSBlock.ts │ │ │ ├── isJSExpression.ts │ │ │ ├── isJSFunction.ts │ │ │ ├── isJSSlot.ts │ │ │ ├── isLowCodeComponentType.ts │ │ │ ├── isNodeSchema.ts │ │ │ ├── isPlainObject.ts │ │ │ ├── isProCodeComponentType.ts │ │ │ ├── isProjectSchema.ts │ │ │ ├── isReactClass.ts │ │ │ ├── isReactComponent.ts │ │ │ ├── isSetterConfig.ts │ │ │ └── isTitleConfig.ts │ │ ├── editor.ts │ │ ├── event │ │ │ ├── index.ts │ │ │ ├── node.ts │ │ │ └── prop.ts │ │ ├── index.ts │ │ ├── shell-model-factory.ts │ │ ├── shell │ │ │ ├── api │ │ │ │ ├── canvas.ts │ │ │ │ ├── command.ts │ │ │ │ ├── common.ts │ │ │ │ ├── commonUI.ts │ │ │ │ ├── event.ts │ │ │ │ ├── hotkey.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── material.ts │ │ │ │ ├── plugins.ts │ │ │ │ ├── project.ts │ │ │ │ ├── setters.ts │ │ │ │ ├── simulator-host.ts │ │ │ │ ├── skeleton.ts │ │ │ │ └── workspace.ts │ │ │ ├── enum │ │ │ │ ├── context-menu.ts │ │ │ │ ├── drag-object-type.ts │ │ │ │ ├── event-names.ts │ │ │ │ ├── index.ts │ │ │ │ ├── plugin-register-level.ts │ │ │ │ ├── prop-value-changed-type.ts │ │ │ │ ├── transform-stage.ts │ │ │ │ └── transition-type.ts │ │ │ ├── index.ts │ │ │ ├── model │ │ │ │ ├── active-tracker.ts │ │ │ │ ├── clipboard.ts │ │ │ │ ├── component-meta.ts │ │ │ │ ├── detecting.ts │ │ │ │ ├── document-model.ts │ │ │ │ ├── drag-object.ts │ │ │ │ ├── dragon.ts │ │ │ │ ├── drop-location.ts │ │ │ │ ├── editor-view.ts │ │ │ │ ├── editor.ts │ │ │ │ ├── engine-config.ts │ │ │ │ ├── exclusive-group.ts │ │ │ │ ├── history.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locate-event.ts │ │ │ │ ├── modal-nodes-manager.ts │ │ │ │ ├── node-children.ts │ │ │ │ ├── node.ts │ │ │ │ ├── plugin-context.ts │ │ │ │ ├── plugin-instance.ts │ │ │ │ ├── preference.ts │ │ │ │ ├── prop.ts │ │ │ │ ├── props.ts │ │ │ │ ├── resource.ts │ │ │ │ ├── scroll-target.ts │ │ │ │ ├── scroller.ts │ │ │ │ ├── selection.ts │ │ │ │ ├── sensor.ts │ │ │ │ ├── setting-field.ts │ │ │ │ ├── setting-prop-entry.ts │ │ │ │ ├── setting-target.ts │ │ │ │ ├── setting-top-entry.ts │ │ │ │ ├── simulator-render.ts │ │ │ │ ├── skeleton-item.ts │ │ │ │ └── window.ts │ │ │ └── type │ │ │ │ ├── action-content-object.ts │ │ │ │ ├── active-target.ts │ │ │ │ ├── advanced.ts │ │ │ │ ├── app-config.ts │ │ │ │ ├── assets-json.ts │ │ │ │ ├── block-schema.ts │ │ │ │ ├── command.ts │ │ │ │ ├── component-action.ts │ │ │ │ ├── component-description.ts │ │ │ │ ├── component-instance.ts │ │ │ │ ├── component-metadata.ts │ │ │ │ ├── component-schema.ts │ │ │ │ ├── component-sort.ts │ │ │ │ ├── composite-value.ts │ │ │ │ ├── config-transducer.ts │ │ │ │ ├── configure.ts │ │ │ │ ├── container-schema.ts │ │ │ │ ├── context-menu.ts │ │ │ │ ├── custom-view.ts │ │ │ │ ├── disposable.ts │ │ │ │ ├── dom-text.ts │ │ │ │ ├── drag-any-object.ts │ │ │ │ ├── drag-node-data-object.ts │ │ │ │ ├── drag-node-object.ts │ │ │ │ ├── drag-object.ts │ │ │ │ ├── dynamic-props.ts │ │ │ │ ├── dynamic-setter.ts │ │ │ │ ├── editor-get-options.ts │ │ │ │ ├── editor-get-result.ts │ │ │ │ ├── editor-register-options.ts │ │ │ │ ├── editor-value-key.ts │ │ │ │ ├── editor-view-config.ts │ │ │ │ ├── editor-view.ts │ │ │ │ ├── engine-options.ts │ │ │ │ ├── field-config.ts │ │ │ │ ├── field-extra-props.ts │ │ │ │ ├── hotkey-callback-config.ts │ │ │ │ ├── hotkey-callback.ts │ │ │ │ ├── hotkey-callbacks.ts │ │ │ │ ├── i18n-map.ts │ │ │ │ ├── i8n-data.ts │ │ │ │ ├── icon-config.ts │ │ │ │ ├── icon-type.ts │ │ │ │ ├── index.ts │ │ │ │ ├── location.ts │ │ │ │ ├── metadata-transducer.ts │ │ │ │ ├── metadata.ts │ │ │ │ ├── node-data-type.ts │ │ │ │ ├── node-data.ts │ │ │ │ ├── node-instance.ts │ │ │ │ ├── node-schema.ts │ │ │ │ ├── npm-info.ts │ │ │ │ ├── npm.ts │ │ │ │ ├── on-change-options.ts │ │ │ │ ├── package.ts │ │ │ │ ├── page-schema.ts │ │ │ │ ├── plugin-config.ts │ │ │ │ ├── plugin-creater.ts │ │ │ │ ├── plugin-declaration-property.ts │ │ │ │ ├── plugin-declaration.ts │ │ │ │ ├── plugin-meta.ts │ │ │ │ ├── plugin-register-options.ts │ │ │ │ ├── plugin.ts │ │ │ │ ├── preference-value-type.ts │ │ │ │ ├── project-schema.ts │ │ │ │ ├── prop-change-options.ts │ │ │ │ ├── prop-config.ts │ │ │ │ ├── prop-types.ts │ │ │ │ ├── props-list.ts │ │ │ │ ├── props-map.ts │ │ │ │ ├── props-transducer.ts │ │ │ │ ├── reference.ts │ │ │ │ ├── registered-setter.ts │ │ │ │ ├── remote-component-description.ts │ │ │ │ ├── resource-list.ts │ │ │ │ ├── resource-type-config.ts │ │ │ │ ├── resource-type.ts │ │ │ │ ├── root-schema.ts │ │ │ │ ├── scrollable.ts │ │ │ │ ├── set-value-options.ts │ │ │ │ ├── setter-config.ts │ │ │ │ ├── setter-type.ts │ │ │ │ ├── simulator-renderer.ts │ │ │ │ ├── slot-schema.ts │ │ │ │ ├── snippet.ts │ │ │ │ ├── tip-config.ts │ │ │ │ ├── tip-content.ts │ │ │ │ ├── title-config.ts │ │ │ │ ├── title-content.ts │ │ │ │ ├── transformed-component-metadata.ts │ │ │ │ ├── value-type.ts │ │ │ │ ├── widget-base-config.ts │ │ │ │ └── widget-config-area.ts │ │ └── utils.ts │ └── tsconfig.json ├── utils │ ├── build.json │ ├── build.test.json │ ├── jest.config.js │ ├── jest.setup.js │ ├── package.json │ ├── src │ │ ├── app-helper.ts │ │ ├── asset.ts │ │ ├── build-components.ts │ │ ├── check-prop-types.ts │ │ ├── check-types │ │ │ ├── index.ts │ │ │ ├── is-action-content-object.ts │ │ │ ├── is-basic-prop-type.ts │ │ │ ├── is-component-schema.ts │ │ │ ├── is-custom-view.ts │ │ │ ├── is-dom-text.ts │ │ │ ├── is-drag-any-object.ts │ │ │ ├── is-drag-node-data-object.ts │ │ │ ├── is-drag-node-object.ts │ │ │ ├── is-dynamic-setter.ts │ │ │ ├── is-function.ts │ │ │ ├── is-i18n-data.ts │ │ │ ├── is-isfunction.ts │ │ │ ├── is-jsblock.ts │ │ │ ├── is-jsexpression.ts │ │ │ ├── is-jsslot.ts │ │ │ ├── is-location-children-detail.ts │ │ │ ├── is-location-data.ts │ │ │ ├── is-lowcode-component-type.ts │ │ │ ├── is-lowcode-project-schema.ts │ │ │ ├── is-node-schema.ts │ │ │ ├── is-node.ts │ │ │ ├── is-object.ts │ │ │ ├── is-procode-component-type.ts │ │ │ ├── is-project-schema.ts │ │ │ ├── is-required-prop-type.ts │ │ │ ├── is-setter-config.ts │ │ │ ├── is-setting-field.ts │ │ │ └── is-title-config.ts │ │ ├── clone-deep.ts │ │ ├── clone-enumerable-property.ts │ │ ├── context-menu.scss │ │ ├── context-menu.tsx │ │ ├── create-content.ts │ │ ├── create-defer.ts │ │ ├── create-icon.tsx │ │ ├── css-helper.ts │ │ ├── cursor.css │ │ ├── cursor.ts │ │ ├── env.ts │ │ ├── get-prototype-of.ts │ │ ├── has-own-property.ts │ │ ├── index.ts │ │ ├── is-css-url.ts │ │ ├── is-element.ts │ │ ├── is-es-module.ts │ │ ├── is-form-event.ts │ │ ├── is-function.ts │ │ ├── is-object.ts │ │ ├── is-plain-object.ts │ │ ├── is-plugin-event-name.ts │ │ ├── is-react.ts │ │ ├── is-shaken.ts │ │ ├── logger.ts │ │ ├── misc.ts │ │ ├── navtive-selection.ts │ │ ├── node-helper.ts │ │ ├── schema.ts │ │ ├── script.ts │ │ ├── set-prototype-of.ts │ │ ├── shallow-equal.ts │ │ ├── svg-icon.tsx │ │ ├── transaction-manager.ts │ │ ├── unique-id.ts │ │ └── workspace.tsx │ ├── test │ │ └── src │ │ │ ├── __snapshots__ │ │ │ ├── is-react.test.tsx.snap │ │ │ └── schema.test.ts.snap │ │ │ ├── build-components │ │ │ ├── buildComponents.test.tsx │ │ │ ├── getProjectUtils.test.ts │ │ │ └── getSubComponent.test.ts │ │ │ ├── check-prop-types.test.ts │ │ │ ├── check-types │ │ │ ├── is-action-content-object.test.ts │ │ │ ├── is-basic-prop-type.test.ts │ │ │ ├── is-custom-view.test.tsx │ │ │ ├── is-dom-text.test.ts │ │ │ ├── is-drag-any-object.test.ts │ │ │ ├── is-drag-node-data-object.test.ts │ │ │ ├── is-drag-node-object.test.ts │ │ │ ├── is-dynamic-setter.test.ts │ │ │ ├── is-i18n-data.test.ts │ │ │ ├── is-isfunction.test.ts │ │ │ ├── is-jsblock.test.ts │ │ │ ├── is-jsexpression.test.ts │ │ │ ├── is-jsslot.test.ts │ │ │ ├── is-location-children-detail.test.ts │ │ │ ├── is-location-data.test.ts │ │ │ ├── is-lowcode-component-type.test.ts │ │ │ ├── is-lowcode-project-schema.test.ts │ │ │ ├── is-node-schema.test.ts │ │ │ ├── is-node.test.ts │ │ │ ├── is-procode-component-type.test.ts │ │ │ ├── is-project-schema.test.ts │ │ │ ├── is-required-prop-type.test.ts │ │ │ ├── is-setter-config.test.ts │ │ │ ├── is-setting-field.test.ts │ │ │ └── is-title-config.test.ts │ │ │ ├── clone-deep.test.ts │ │ │ ├── clone-enumerable-property.test.ts │ │ │ ├── create-content.test.tsx │ │ │ ├── create-defer.test.ts │ │ │ ├── is-object.test.ts │ │ │ ├── is-react.test.tsx │ │ │ ├── is-shaken.test.ts │ │ │ ├── misc.test.ts │ │ │ ├── navtive-selection.test.ts │ │ │ ├── schema.test.ts │ │ │ ├── script.test.ts │ │ │ ├── svg-icon.test.tsx │ │ │ ├── transaction-manager.test.ts │ │ │ └── unique-id.test.ts │ └── tsconfig.json └── workspace │ ├── build.json │ ├── build.test.json │ ├── jest.config.js │ ├── package.json │ ├── src │ ├── context │ │ ├── base-context.ts │ │ └── view-context.ts │ ├── index.ts │ ├── inner-plugins │ │ └── webview.tsx │ ├── layouts │ │ └── workbench.tsx │ ├── less-variables.less │ ├── resource-type.ts │ ├── resource.ts │ ├── skeleton-context.ts │ ├── view │ │ ├── editor-view.tsx │ │ ├── resource-view.less │ │ ├── resource-view.tsx │ │ └── window-view.tsx │ ├── window.ts │ └── workspace.ts │ └── tsconfig.json ├── scripts ├── build.sh ├── create.sh ├── set-repo.js ├── setup-for-test.sh ├── setup-skip-build.sh ├── setup.js ├── setup.sh ├── start-server.sh ├── start.js ├── start.sh ├── sync-oss.js ├── sync.sh └── watchdog.js └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | quote_type = single 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # 忽略目录 2 | node_modules 3 | test-cases 4 | test 5 | output 6 | build 7 | dist 8 | demo 9 | es 10 | lib 11 | tests 12 | .* 13 | ~* 14 | 15 | # 忽略文件 16 | **/*.min.js 17 | **/*-min.js 18 | **/*.bundle.js 19 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | printWidth: 100, 3 | tabWidth: 2, 4 | semi: true, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /.stylelintignore: -------------------------------------------------------------------------------- 1 | # 忽略目录 2 | node_modules/ 3 | build/ 4 | dist/ 5 | 6 | # 忽略文件 7 | **/*.min.css 8 | **/*-min.css 9 | **/*.bundle.css 10 | -------------------------------------------------------------------------------- /.stylelintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: 'stylelint-config-ali', 3 | rules: { 4 | "selector-max-id": 2 5 | } 6 | }; 7 | -------------------------------------------------------------------------------- /README-zh_CN.md: -------------------------------------------------------------------------------- 1 | packages/engine/README-zh_CN.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | packages/engine/README.md -------------------------------------------------------------------------------- /abc.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lowcode-engine", 3 | "assets": { 4 | "type": "command", 5 | "command": { 6 | "cmd": [ 7 | "./scripts/deploy.sh $BUILD_DEST" 8 | ] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | ['@babel/plugin-proposal-decorators', { legacy: true }], 4 | [require.resolve('@babel/plugin-proposal-class-properties'), { loose: true }], 5 | ], 6 | }; -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['ali'], 3 | }; 4 | -------------------------------------------------------------------------------- /deploy-space/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "independent", 3 | "npmClient": "yarn", 4 | "registry": "http://registry.npm.alibaba-inc.com", 5 | "useWorkspaces": true, 6 | "packages": [ 7 | "packages/*" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /docs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/community/img/i-see.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/docs/community/img/i-see.png -------------------------------------------------------------------------------- /docs/community/img/you-think.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/docs/community/img/you-think.png -------------------------------------------------------------------------------- /docs/docs/api/model/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "模型定义 Models", 3 | "position": 100, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/demoUsage/advanced/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "进阶功能", 3 | "position": 3, 4 | "collapsed": false, 5 | "collapsible": false 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/demoUsage/appendix/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "常见问题", 3 | "position": 4, 4 | "collapsed": false, 5 | "collapsible": false 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/demoUsage/makeStuff/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "如何制作", 3 | "position": 1, 4 | "collapsed": false, 5 | "collapsible": false 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/demoUsage/panels/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "面板详解", 3 | "position": 2, 4 | "collapsed": false, 5 | "collapsible": false 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/faq/faq001.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: build-scripts 的使用文档 3 | sidebar_position: 1 4 | tags: [FAQ] 5 | --- 6 | build-scripts 是一个开源项目,详见 [https://github.com/ice-lab/build-scripts](https://github.com/ice-lab/build-scripts) 7 | -------------------------------------------------------------------------------- /docs/docs/faq/faq006.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 如何通过 API 手动调用数据源请求 3 | sidebar_position: 6 4 | tags: [FAQ] 5 | --- 6 | 参考:[DataSource API](/site/docs/demoUsage/appendix/api) -------------------------------------------------------------------------------- /docs/docs/faq/faq008.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 某某 npm 包对应的源码在哪里? 3 | sidebar_position: 8 4 | tags: [FAQ] 5 | --- 6 | 7 | 详见 [NPM 包对应源码位置汇总](/site/docs/guide/appendix/npms) -------------------------------------------------------------------------------- /docs/docs/faq/faq015.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 已有组件如何快速接入引擎 3 | sidebar_position: 15 4 | tags: [FAQ] 5 | --- 6 | 你可以通过在线工具「Parts 造物」生产物料描述协议,然后使用到你的项目中去。 7 | 文档地址:[利用 Parts 造物快速使用 react 组件](/site/docs/guide/expand/editor/parts/partsIntro) 8 | -------------------------------------------------------------------------------- /docs/docs/faq/faq017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: vue 画布支持说明 3 | sidebar_position: 17 4 | tags: [FAQ] 5 | --- 6 | #### 低代码引擎官方是否支持 Vue 画布 7 | 短期没有支持的计划 8 | 9 | #### 社区研发的 Vue 画布 10 | ##### 肯耐珂萨团队实现的 Vue 画布 11 | github:[https://github.com/KNXCloud/lowcode-engine-vue](https://github.com/KNXCloud/lowcode-engine-vue) 12 | -------------------------------------------------------------------------------- /docs/docs/guide/appendix/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "附录", 3 | "position": 5, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/guide/appendix/glossary.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 名词解释 3 | sidebar_position: 0 4 | --- 5 | ![glossary](https://img.alicdn.com/imgextra/i2/O1CN01vPZjCM1jT26YujpGk_!!6000000004548-0-tps-2284-4301.jpg) 6 | -------------------------------------------------------------------------------- /docs/docs/guide/appendix/metaSpec.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 搭建组件协议结构 3 | sidebar_position: 1 4 | --- 5 | 完整协议[查看](/site/docs/specs/material-spec) 6 | 7 | ![](https://img.alicdn.com/imgextra/i4/O1CN01hozDem1apAhnvdESN_!!6000000003378-0-tps-2474-4128.jpg) 8 | -------------------------------------------------------------------------------- /docs/docs/guide/appendix/setterDetails/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "预置设置器详情", 3 | "position": 5 4 | } 5 | -------------------------------------------------------------------------------- /docs/docs/guide/appendix/setterDetails/behavior.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: BehaviorSetter 3 | --- 4 | 5 | 详见 [npm 包说明](https://g.alicdn.com/code/npm/@ali/lowcode-setter-behavior/0.1.1/build/index.html) -------------------------------------------------------------------------------- /docs/docs/guide/create/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "创建低代码编辑器", 3 | "position": 1, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/guide/design/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "引擎设计原理", 3 | "position": 3, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/guide/expand/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "扩展低代码编辑器", 3 | "position": 2, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/guide/expand/editor/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "扩展编辑态", 3 | "position": 1, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/guide/expand/editor/parts/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Parts 造物", 3 | "position": 1 4 | } 5 | -------------------------------------------------------------------------------- /docs/docs/guide/expand/runtime/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "扩展运行时", 3 | "position": 2, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/guide/quickStart/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "入门", 3 | "position": 0, 4 | "collapsed": false, 5 | "collapsible": true 6 | } 7 | -------------------------------------------------------------------------------- /docs/src/pages/markdown-page.md: -------------------------------------------------------------------------------- 1 | 4 | 5 | # 文档能力介绍 6 | 7 | 这是一个使用 Markdown 编写的任意页面,访问地址为 /markdown-page 8 | 9 | Product Docs Capability Introduction. 10 | 11 | ## 功能 12 | 13 | - ✅ 支持本地离线搜搜 14 | - ✅ 版本化文档管理 15 | - ✅ 离线静态部署 16 | -------------------------------------------------------------------------------- /docs/static/img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/docs/static/img/docusaurus.png -------------------------------------------------------------------------------- /docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // This file is not used in compilation. It is here just for a nice editor experience. 3 | "extends": "@tsconfig/docusaurus/tsconfig.json", 4 | "compilerOptions": { 5 | "baseUrl": "." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | import renderer from './packages/react-simulator-renderer/src/renderer'; 2 | 3 | if (typeof window !== 'undefined') { 4 | (window as any).SimulatorRenderer = renderer; 5 | } 6 | 7 | export default renderer; 8 | -------------------------------------------------------------------------------- /modules/code-generator/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | printWidth: 100, 3 | tabWidth: 2, 4 | semi: true, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /modules/code-generator/.versionrc: -------------------------------------------------------------------------------- 1 | { 2 | "releaseCommitMessageFormat": "chore(release): code-generator - {{currentTag}}" 3 | } -------------------------------------------------------------------------------- /modules/code-generator/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../../babel.config'); -------------------------------------------------------------------------------- /modules/code-generator/scripts/build-types: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo building types... 4 | tsc --outDir types --declaration --emitDeclarationOnly && \ 5 | echo built types... && \ 6 | rm -rf types/packages && \ 7 | mv types/modules/code-generator/src/* types/ && \ 8 | rm -rf types/modules 9 | 10 | 11 | -------------------------------------------------------------------------------- /modules/code-generator/src/cli/index.ts: -------------------------------------------------------------------------------- 1 | export * from './run'; 2 | export * from './init-solution'; 3 | -------------------------------------------------------------------------------- /modules/code-generator/src/config/env.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | 3 | export const CODE_GENERATOR_ROOT = path.join(__dirname, '../..'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/src/const/file.ts: -------------------------------------------------------------------------------- 1 | import { FileType } from '../types/core'; 2 | 3 | export const FILE_TYPE_FAMILY = [[FileType.TSX, FileType.TS, FileType.JSX, FileType.JS]]; 4 | -------------------------------------------------------------------------------- /modules/code-generator/src/polyfills/buffer.ts: -------------------------------------------------------------------------------- 1 | import { Buffer } from 'buffer'; 2 | 3 | declare const self: any; 4 | 5 | if (self && !self.Buffer) { 6 | Object.assign(self, { 7 | Buffer, 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /modules/code-generator/src/postprocessor/index.ts: -------------------------------------------------------------------------------- 1 | import prettier from './prettier'; 2 | 3 | export { prettier }; 4 | -------------------------------------------------------------------------------- /modules/code-generator/src/types/analyze.ts: -------------------------------------------------------------------------------- 1 | import type { IPublicTypeContainerSchema } from '@alilc/lowcode-types'; 2 | 3 | export interface ICompAnalyzeResult { 4 | isUsingRef: boolean; 5 | } 6 | 7 | export type TComponentAnalyzer = (container: IPublicTypeContainerSchema) => ICompAnalyzeResult; 8 | -------------------------------------------------------------------------------- /modules/code-generator/src/types/file.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 扁平文件信息(层级结构隐含在 pathName 中) 3 | */ 4 | export interface FlattenFile { 5 | /** 6 | * 文件路径 7 | */ 8 | pathName: string; 9 | 10 | /** 11 | * 文件内容 12 | */ 13 | content: string | Buffer; 14 | } 15 | -------------------------------------------------------------------------------- /modules/code-generator/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './core'; 2 | export * from './deps'; 3 | export * from './error'; 4 | export * from './analyze'; 5 | export * from './intermediate'; 6 | export * from './publisher'; 7 | export * from './jsx'; 8 | -------------------------------------------------------------------------------- /modules/code-generator/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'nanomatch'; 2 | -------------------------------------------------------------------------------- /modules/code-generator/src/utils/debug.ts: -------------------------------------------------------------------------------- 1 | import createDebug from 'debug'; 2 | 3 | export const debug = createDebug('code-generator'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/standalone-loader/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-require-imports */ 2 | module.exports = require('../dist/standalone-loader'); 3 | -------------------------------------------------------------------------------- /modules/code-generator/standalone-loader/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "internal": true, 3 | "main": "../dist/standalone-loader.js", 4 | "module": "../dist/standalone-loader.esm.js", 5 | "types": "../types/standalone-loader.d.ts" 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/standalone-worker/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-require-imports */ 2 | if (process.env.NODE_ENV !== 'development') { 3 | module.exports = require('../dist/standalone-worker.min'); 4 | } else { 5 | module.exports = require('../dist/standalone-worker'); 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/standalone-worker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "internal": true, 3 | "main": "./index.js", 4 | "types": "../lib/standalone-worker.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/standalone/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-require-imports */ 2 | if (process.env.NODE_ENV !== 'development') { 3 | module.exports = require('../dist/standalone.min'); 4 | } else { 5 | module.exports = require('../dist/standalone'); 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/standalone/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "internal": true, 3 | "main": "./index.js", 4 | "types": "../types/standalone.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/static-files/rax/.eslintignore.template: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/static-files/rax/.prettierignore.template: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/static-files/rax/.prettierrc.js.template: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/static-files/rax/.stylelintignore.template: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/static-files/rax/.stylelintrc.js.template: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/static-files/rax/jsconfig.json.template: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/bugfix/.gitignore: -------------------------------------------------------------------------------- 1 | *.generated 2 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/.gitignore: -------------------------------------------------------------------------------- 1 | actual/ 2 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo1/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo1/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo1/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo1/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | 8 | body { 9 | font-size: 12px; 10 | } 11 | .table { 12 | width: 100px; 13 | } 14 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo1/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo1/expected/demo-project/src/pages/Test/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo1/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2-utils-name-alias/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2-utils-name-alias/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2-utils-name-alias/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2-utils-name-alias/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2-utils-name-alias/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | 8 | body { 9 | font-size: 12px; 10 | } 11 | .table { 12 | width: 100px; 13 | } 14 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2/expected/demo-project/src/pages/Test/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo2/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo3/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo3/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo3/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo3/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | 8 | body { 9 | font-size: 12px; 10 | } 11 | .table { 12 | width: 100px; 13 | } 14 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo3/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo3/expected/demo-project/src/pages/Test/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo3/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo4/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo4/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo4/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo4/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo4/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo4/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo5/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo5/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo5/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo5/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo5/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo5/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo6-literal-condition/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo6-literal-condition/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo6-literal-condition/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo6-literal-condition/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo7-literal-condition2/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo7-literal-condition2/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo7-literal-condition2/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo7-literal-condition2/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo7-literal-condition2/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo7-literal-condition2/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo8-datasource-prop/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo8-datasource-prop/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo8-datasource-prop/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo8-datasource-prop/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo8-datasource-prop/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo9-datasource-engine/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo9-datasource-engine/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo9-datasource-engine/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo9-datasource-engine/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo9-datasource-engine/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_10-jsslot/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_10-jsslot/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_10-jsslot/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_10-jsslot/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_10-jsslot/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_10-jsslot/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_11-jsslot-2/expected/demo-project/.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | ios_saf 9 3 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_11-jsslot-2/expected/demo-project/README.md: -------------------------------------------------------------------------------- 1 | This project is generated by lowcode-code-generator & lowcode-solution-icejs3. -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_11-jsslot-2/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_11-jsslot-2/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_11-jsslot-2/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/icejs3-app/demo_11-jsslot-2/expected/demo-project/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export {}; 4 | declare global { 5 | interface Window { 6 | g_config: Record; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/src/pages/Home/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/rax-app/demo01/expected/demo-project/src/pages/Home/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | 5 | page, 6 | body { 7 | width: 750rpx; 8 | overflow-x: hidden; 9 | } 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/src/pages/Home/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/rax-app/demo02/expected/demo-project/src/pages/Home/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | 5 | page, 6 | body { 7 | width: 750rpx; 8 | overflow-x: hidden; 9 | } 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/pages/Detail/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/pages/Detail/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/pages/Home/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/pages/Home/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/pages/List/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/rax-app/demo03/expected/demo-project/src/pages/List/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/README.md: -------------------------------------------------------------------------------- 1 | # 这个 demo 是用来演示运行时的方案的。 2 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"], 5 | "miniapp": { 6 | "buildType": "runtime" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | 5 | page, 6 | body { 7 | width: 750rpx; 8 | overflow-x: hidden; 9 | } 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/src/pages/Home/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/rax-app/demo04/expected/demo-project/src/pages/Home/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/src/pages/Home/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/rax-app/demo05/expected/demo-project/src/pages/Home/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo06-jsslot/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo07-newline-in-props/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo08-jsslot-with-multiple-children/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo09-jsslot-with-conditional-children/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo10-jsslot-with-loop-children/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"], 5 | "miniapp": { 6 | "buildType": "runtime" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/aaaa", 5 | "source": "pages/Aaaa/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "jinyuan-test2" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo11-utils-name-alias/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "/", 5 | "source": "pages/Home/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "Rax App Demo" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo12-refs/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | const { getPrettierConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getPrettierConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/ 3 | dist/ 4 | build/ 5 | coverage/ 6 | demo/ 7 | es/ 8 | .rax/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const { getStylelintConfig } = require('@iceworks/spec'); 2 | 3 | module.exports = getStylelintConfig('rax'); 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "inlineStyle": false, 3 | "plugins": [], 4 | "targets": ["web"] 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "@/*": ["./src/*"], 7 | "rax-app": [".rax/index.ts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { runApp } from 'rax-app'; 2 | 3 | import './global.css'; 4 | 5 | runApp({ 6 | router: { 7 | mode: 'hash', 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "path": "", 5 | "source": "pages/Example/index" 6 | } 7 | ], 8 | "window": { 9 | "title": "example" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/rax-app/demo13-datasource-prop/expected/demo-project/src/global.css: -------------------------------------------------------------------------------- 1 | body { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | 8 | body { 9 | font-size: 12px; 10 | } 11 | .table { 12 | width: 100px; 13 | } 14 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/react-app/demo1/expected/demo-project/src/pages/Test/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2-utils-name-alias/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | 8 | body { 9 | font-size: 12px; 10 | } 11 | .table { 12 | width: 100px; 13 | } 14 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/react-app/demo2/expected/demo-project/src/pages/Test/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | 8 | body { 9 | font-size: 12px; 10 | } 11 | .table { 12 | width: 100px; 13 | } 14 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/react-app/demo3/expected/demo-project/src/pages/Test/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo4/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo5/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo6-literal-condition/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: 'prod', DOMAIN: 'xxx.xxx.com' }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo7-literal-condition2/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo8-datasource-prop/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo9-datasource-engine/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_10-jsslot/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'ice'; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: 'app', 6 | }, 7 | router: { 8 | type: 'hash', 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = {}; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import '@alifd/next/reset.scss'; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-app/demo_11-jsslot-2/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | } 4 | 5 | .botton { 6 | width: 100px; 7 | color: #ff00ff; 8 | } 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | .ice/ 7 | 8 | # node 覆盖率文件 9 | coverage/ 10 | 11 | # 忽略文件 12 | **/*-min.js 13 | **/*.min.js 14 | 15 | package-lock.json 16 | yarn.lock 17 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { eslint } = require('@ice/spec'); 3 | 4 | module.exports = eslint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | tests/ 4 | demo/ 5 | .ice/ 6 | coverage/ 7 | **/*-min.js 8 | **/*.min.js 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/.prettierrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { prettier } = require('@ice/spec'); 3 | 4 | module.exports = prettier; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/.stylelintignore: -------------------------------------------------------------------------------- 1 | 2 | # 忽略目录 3 | build/ 4 | tests/ 5 | demo/ 6 | 7 | # node 覆盖率文件 8 | coverage/ 9 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/.stylelintrc.js: -------------------------------------------------------------------------------- 1 | 2 | const { stylelint } = require('@ice/spec'); 3 | 4 | module.exports = stylelint; 5 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/abc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "type": "ice-app", 4 | "builder": "@ali/builder-ice-app" 5 | } 6 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/src/app.js: -------------------------------------------------------------------------------- 1 | import { createApp } from "ice"; 2 | 3 | const appConfig = { 4 | app: { 5 | rootId: "app", 6 | }, 7 | router: { 8 | type: "hash", 9 | }, 10 | }; 11 | createApp(appConfig); 12 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/src/constants.js: -------------------------------------------------------------------------------- 1 | const __$$constants = { ENV: "prod", DOMAIN: "xxx.xxx.com" }; 2 | 3 | export default __$$constants; 4 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/src/global.scss: -------------------------------------------------------------------------------- 1 | // 引入默认全局样式 2 | @import "@alifd/next/reset.scss"; 3 | 4 | body { 5 | -webkit-font-smoothing: antialiased; 6 | } 7 | 8 | body { 9 | font-size: 12px; 10 | } 11 | .table { 12 | width: 100px; 13 | } 14 | -------------------------------------------------------------------------------- /modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/src/pages/Test/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/modules/code-generator/tests/fixtures/test-cases/react-module/demo1/expected/demo-project/src/pages/Test/index.css -------------------------------------------------------------------------------- /modules/code-generator/tests/public/README.md: -------------------------------------------------------------------------------- 1 | # 这里测试的都是对外公开的 API,必须要保持稳定性 2 | -------------------------------------------------------------------------------- /modules/code-generator/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": ["src/**/*.ts"], 7 | "exclude": ["./tests", "tests/fixtures/test-cases", "../types", "node_modules"] 8 | } 9 | -------------------------------------------------------------------------------- /modules/material-parser/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/lowcode-test-mate/plugin/index.ts" 4 | ] 5 | } -------------------------------------------------------------------------------- /modules/material-parser/src/parse/js/handlers/preProcessHandler.ts: -------------------------------------------------------------------------------- 1 | export default function preProcessHandler(documentation: any, path: any) { 2 | documentation.set('meta', path.__meta); 3 | } 4 | -------------------------------------------------------------------------------- /modules/material-parser/src/parse/js/resolver/checkIsIIFE.ts: -------------------------------------------------------------------------------- 1 | export default function checkIsIIFE(path: any) { 2 | return ( 3 | path.value && 4 | path.value.callee && 5 | path.value.callee.type === 'FunctionExpression' && 6 | path.node.type === 'CallExpression' 7 | ); 8 | } 9 | -------------------------------------------------------------------------------- /modules/material-parser/src/parse/js/utils/getRoot.ts: -------------------------------------------------------------------------------- 1 | export default function getRoot(path: any) { 2 | let root = path.parent; 3 | while (root.parent) { 4 | root = root.parent; 5 | } 6 | return root; 7 | } 8 | -------------------------------------------------------------------------------- /modules/material-parser/src/parse/ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "react", 4 | "target": "es6", 5 | "module": "commonjs", 6 | "allowSyntheticDefaultImports": true, 7 | "allowJs": true 8 | }, 9 | "include": ["**/*"], 10 | "exclude": [""] 11 | } 12 | -------------------------------------------------------------------------------- /modules/material-parser/src/types/Basic.ts: -------------------------------------------------------------------------------- 1 | export interface Json { 2 | [x: string]: string | number | boolean | Date | Json | JsonArray; 3 | } 4 | export type JsonArray = Array; 5 | export type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; 6 | -------------------------------------------------------------------------------- /modules/material-parser/src/types/ChannelType.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 物料接入渠道 3 | */ 4 | export enum ChannelType { 5 | /** 本地 */ 6 | LOCAL = 'local', 7 | /** 在线 */ 8 | ONLINE = 'online', 9 | } 10 | -------------------------------------------------------------------------------- /modules/material-parser/src/types/DSLType.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DSL类型 3 | */ 4 | export type DSLType = 'react' | 'rax'; 5 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/dts-component/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dts-component", 3 | "version": "1.2.3", 4 | "main": "./src/index.jsx" 5 | } -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeBlank/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeBlank from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeBlank, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeIcon/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeIcon from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeIcon, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeImage/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeImage from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeImage, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeLink/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeLink from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeLink, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakePlaceholder/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakePlaceholder from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakePlaceholder, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeText/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeText from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeText, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/Root/container.js: -------------------------------------------------------------------------------- 1 | 2 | import Root from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: Root, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/es/basic/style/index.js: -------------------------------------------------------------------------------- 1 | import "./index.css"; -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeBlank/amContainer.js: -------------------------------------------------------------------------------- 1 | import component from './index.js'; 2 | import amManifest from './amManifest.js'; 3 | 4 | const getComponent = () => Promise.resolve(component); 5 | 6 | export default { getComponent, manifest: amManifest }; 7 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeBlank/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeBlank from '../../../es/basic/AIMakeBlank/index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeBlank, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeIcon/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeIcon from '../../../es/basic/AIMakeIcon/index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeIcon, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeImage/amContainer.js: -------------------------------------------------------------------------------- 1 | import component from './index.js'; 2 | import amManifest from './amManifest.js'; 3 | 4 | const getComponent = () => Promise.resolve(component); 5 | 6 | export default { getComponent, manifest: amManifest }; 7 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeImage/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeImage from '../../../es/basic/AIMakeImage/index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeImage, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeLink/amContainer.js: -------------------------------------------------------------------------------- 1 | import component from './index.js'; 2 | import amManifest from './amManifest.js'; 3 | 4 | const getComponent = () => Promise.resolve(component); 5 | 6 | export default { getComponent, manifest: amManifest }; 7 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeLink/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeLink from '../../../es/basic/AIMakeLink/index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeLink, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakePlaceholder/amContainer.js: -------------------------------------------------------------------------------- 1 | import component from './index.js'; 2 | import amManifest from './amManifest.js'; 3 | 4 | const getComponent = () => Promise.resolve(component); 5 | 6 | export default { getComponent, manifest: amManifest }; 7 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakePlaceholder/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakePlaceholder from '../../../es/basic/AIMakePlaceholder/index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakePlaceholder, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeText/amContainer.js: -------------------------------------------------------------------------------- 1 | import component from './index.js'; 2 | import amManifest from './amManifest.js'; 3 | 4 | const getComponent = () => Promise.resolve(component); 5 | 6 | export default { getComponent, manifest: amManifest }; 7 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeText/container.js: -------------------------------------------------------------------------------- 1 | 2 | import AIMakeText from '../../../es/basic/AIMakeText/index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: AIMakeText, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/Root/amContainer.js: -------------------------------------------------------------------------------- 1 | import component from './index.js'; 2 | import amManifest from './amManifest.js'; 3 | 4 | const getComponent = () => Promise.resolve(component); 5 | 6 | export default { getComponent, manifest: amManifest }; 7 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/Root/container.js: -------------------------------------------------------------------------------- 1 | 2 | import Root from '../../../es/basic/Root/index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: Root, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/multiple-exported-component/src/basic/style/index.js: -------------------------------------------------------------------------------- 1 | import './index.less'; 2 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/rax-component/src/index.css: -------------------------------------------------------------------------------- 1 | .rax-demo-title { 2 | font-size: 45rpx; 3 | font-weight: bold; 4 | margin: 20rpx 0; 5 | } 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/single-exported-component/es/container.js: -------------------------------------------------------------------------------- 1 | 2 | import Demo from './index.js'; 3 | import manifest from './manifest.js'; 4 | 5 | export default { origin: Demo, manifest }; 6 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/transpiled-component/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "transpiled-component", 3 | "version": "1.0.0", 4 | "main": "lib/index.js", 5 | "dependencies": { 6 | "react": "^16.0.0" 7 | } 8 | } -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/ts-component/src/index.tsx: -------------------------------------------------------------------------------- 1 | import App from './main-module'; 2 | import SubModule from './sub-module'; 3 | 4 | App.SubModule = SubModule; 5 | App.defaultProps = { 6 | str: 'str2', 7 | }; 8 | 9 | export default App; 10 | -------------------------------------------------------------------------------- /modules/material-parser/test/fixtures/without-display-name/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "without-display-name", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "dependencies": { 6 | "react": "^16.0.0", 7 | "prop-types": "latest" 8 | } 9 | } -------------------------------------------------------------------------------- /modules/material-parser/test/helpers/index.ts: -------------------------------------------------------------------------------- 1 | import { join } from 'path'; 2 | 3 | const baseDir = join(__dirname, '../fixtures'); 4 | 5 | /** 6 | * 从 fixtures 下获取文件完整路径 7 | */ 8 | export const getFromFixtures = (...args: string[]) => { 9 | return join(baseDir, ...args); 10 | }; 11 | -------------------------------------------------------------------------------- /modules/material-parser/test/localize.test.ts: -------------------------------------------------------------------------------- 1 | import {getPkgNameAndVersion} from '../src/localize'; 2 | 3 | test('getPkgNameAndVersion from string', () => { 4 | const result = getPkgNameAndVersion('react'); 5 | expect(result).toEqual({"name": "react"}); 6 | }); -------------------------------------------------------------------------------- /packages/designer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/packages/designer/README.md -------------------------------------------------------------------------------- /packages/designer/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../../babel.config'); -------------------------------------------------------------------------------- /packages/designer/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/designer/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ], 6 | "babelPlugins": [ 7 | ["@babel/plugin-proposal-private-property-in-object", { "loose": true }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/designer/src/builtin-simulator/README.md: -------------------------------------------------------------------------------- 1 | 内置模拟器主进程 2 | -------------------------------------------------------------------------------- /packages/designer/src/builtin-simulator/bem-tools/bem-tools.less: -------------------------------------------------------------------------------- 1 | .lc-bem-tools { 2 | pointer-events: none; 3 | position: absolute; 4 | top: 0; 5 | left: 0; 6 | bottom: 0; 7 | right: 0; 8 | overflow: visible; 9 | z-index: 1; 10 | } 11 | -------------------------------------------------------------------------------- /packages/designer/src/builtin-simulator/context.ts: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | import { BuiltinSimulatorHost } from './host'; 3 | 4 | export const SimulatorContext = createContext({} as any); 5 | -------------------------------------------------------------------------------- /packages/designer/src/builtin-simulator/index.ts: -------------------------------------------------------------------------------- 1 | export * from './host'; 2 | export * from './host-view'; 3 | export * from './renderer'; 4 | export * from './live-editing/live-editing'; 5 | export { LowcodeTypes } from './utils/parse-metadata'; 6 | -------------------------------------------------------------------------------- /packages/designer/src/designer/designer.less: -------------------------------------------------------------------------------- 1 | .lc-designer { 2 | position: relative; 3 | font-family: var(--font-family); 4 | font-size: var(--font-size-text); 5 | box-sizing: border-box; 6 | 7 | * { 8 | box-sizing: border-box; 9 | } 10 | } 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/designer/src/designer/drag-ghost/README.md: -------------------------------------------------------------------------------- 1 | 内置拖拽替身 2 | -------------------------------------------------------------------------------- /packages/designer/src/designer/setting/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setting-field'; 2 | export * from './setting-top-entry'; 3 | export * from './setting-entry-type'; 4 | export * from './setting-prop-entry'; 5 | -------------------------------------------------------------------------------- /packages/designer/src/document/index.ts: -------------------------------------------------------------------------------- 1 | export * from './document-model'; 2 | export * from './node'; 3 | export * from './selection'; 4 | export * from './history'; 5 | -------------------------------------------------------------------------------- /packages/designer/src/document/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './exclusive-group'; 2 | export * from './node'; 3 | export * from './node-children'; 4 | export * from './props/prop'; 5 | export * from './props/props'; 6 | export * from './transform-stage'; 7 | export * from './modal-nodes-manager'; 8 | -------------------------------------------------------------------------------- /packages/designer/src/document/node/transform-stage.ts: -------------------------------------------------------------------------------- 1 | export { TransformStage } from '@alilc/lowcode-types'; 2 | -------------------------------------------------------------------------------- /packages/designer/src/icons/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lock'; 2 | export * from './hidden'; 3 | export * from './remove'; 4 | export * from './setting'; 5 | export * from './component'; 6 | export * from './clone'; 7 | export * from './page'; 8 | export * from './container'; 9 | export * from './unlock'; 10 | -------------------------------------------------------------------------------- /packages/designer/src/locale/zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "copy": "复制", 3 | "remove": "删除", 4 | "hide": "隐藏", 5 | "lock": "锁定", 6 | "unlock": "解锁", 7 | "Condition Group": "条件组", 8 | "No opened document": "没有打开的页面,请选择页面打开编辑", 9 | "locked": "已锁定", 10 | "Item": "项目" 11 | } 12 | -------------------------------------------------------------------------------- /packages/designer/src/plugin/index.ts: -------------------------------------------------------------------------------- 1 | export * from './plugin-context'; 2 | export * from './plugin-manager'; 3 | export * from './plugin-types'; 4 | export * from './plugin'; 5 | -------------------------------------------------------------------------------- /packages/designer/src/project/index.ts: -------------------------------------------------------------------------------- 1 | export * from './project'; 2 | export * from './project-view'; 3 | -------------------------------------------------------------------------------- /packages/designer/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './invariant'; 2 | export * from './slot'; 3 | export * from './tree'; 4 | -------------------------------------------------------------------------------- /packages/designer/src/utils/invariant.ts: -------------------------------------------------------------------------------- 1 | export function invariant(check: any, message: string, thing?: any) { 2 | if (!check) { 3 | throw new Error(`[designer] Invariant failed: ${message}${thing ? ` in '${thing}'` : ''}`); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/designer/tests/__mocks__/document-model.ts: -------------------------------------------------------------------------------- 1 | export class DocumentModel { 2 | a = 1; 3 | c = {}; 4 | constructor() { 5 | const b = { x: { y: 2 } }; 6 | const c: number = 2; 7 | this.a = b?.x?.y; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/designer/tests/__mocks__/node.ts: -------------------------------------------------------------------------------- 1 | export class Node2 { 2 | a = 1; 3 | c = {}; 4 | constructor() { 5 | const b = { x: { y: 2 } }; 6 | const c: number = 2; 7 | this.a = b?.x?.y; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/designer/tests/bugs/why.md: -------------------------------------------------------------------------------- 1 | 背景: 2 | 在 UT 的基础上,希望借助一些 Bug 修复来完成场景测试,从而进一步增强稳定性。 3 | 至少在真正的 E2E 测试来临之前,我们保证不会重复犯两次相同的错误。 4 | 5 | 做法: 6 | Bugs 文件夹每个文件记录一个 bug 修复的场景测试~ -------------------------------------------------------------------------------- /packages/designer/tests/fixtures/disable-raf.ts: -------------------------------------------------------------------------------- 1 | Object.defineProperty(window, 'requestAnimationFrame', { 2 | value: null, 3 | }); 4 | -------------------------------------------------------------------------------- /packages/designer/tests/fixtures/silent-console.ts: -------------------------------------------------------------------------------- 1 | export const mockConsoleError = jest.fn(); 2 | export const mockConsoleWarn = jest.fn(); 3 | // const mockConsoleInfo = jest.fn(); 4 | console.error = mockConsoleError; 5 | console.warn = mockConsoleWarn; 6 | 7 | -------------------------------------------------------------------------------- /packages/designer/tests/fixtures/unhandled-rejection.ts: -------------------------------------------------------------------------------- 1 | if (!process.env.LISTENING_TO_UNHANDLED_REJECTION) { 2 | process.on('unhandledRejection', reason => { 3 | throw reason; 4 | }); 5 | // Avoid memory leak by adding too many listeners 6 | process.env.LISTENING_TO_UNHANDLED_REJECTION = true; 7 | } 8 | -------------------------------------------------------------------------------- /packages/designer/tests/main/simulator.test.ts: -------------------------------------------------------------------------------- 1 | import '../fixtures/window'; 2 | import { isSimulatorHost } from '../../src/simulator'; 3 | 4 | it('isSimulatorHost', () => { 5 | expect(isSimulatorHost({ isSimulator: true })).toBeTruthy(); 6 | expect(isSimulatorHost({ a: 1 })).toBeFalsy(); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/designer/tests/utils/event.ts: -------------------------------------------------------------------------------- 1 | export function getMockEvent(target, options) { 2 | return { 3 | target, 4 | preventDefault() {}, 5 | stopPropagation() {}, 6 | ...options, 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /packages/designer/tests/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { getIdsFromSchema, getNodeFromSchemaById } from '@alilc/lowcode-test-mate/es/utils'; 2 | export * from './bom'; 3 | export * from './event'; 4 | export * from './renderer'; 5 | export * from './misc'; 6 | -------------------------------------------------------------------------------- /packages/designer/tests/utils/renderer.ts: -------------------------------------------------------------------------------- 1 | export function getMockRenderer() { 2 | return { 3 | isSimulatorRenderer: true, 4 | run() { 5 | // console.log('renderer run'); 6 | }, 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /packages/designer/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib", 5 | "types": ["node","jest"] 6 | }, 7 | "include": [ 8 | "./src/", 9 | "./tests/" 10 | ], 11 | "exclude": ["**/lib", "**/es", "node_modules"] 12 | } 13 | -------------------------------------------------------------------------------- /packages/editor-core/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "build-plugin-fusion", 5 | "./build.plugin.js" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/editor-core/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ], 6 | "babelPlugins": [ 7 | ["@babel/plugin-proposal-private-property-in-object", { "loose": true }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/editor-core/src/di/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setter'; 2 | export * from './ioc-context'; 3 | export * from '../widgets/tip/tip'; 4 | -------------------------------------------------------------------------------- /packages/editor-core/src/di/ioc-context.ts: -------------------------------------------------------------------------------- 1 | import { IocContext } from 'power-di'; 2 | 3 | export * from 'power-di'; 4 | 5 | export const globalContext = IocContext.DefaultInstance; 6 | -------------------------------------------------------------------------------- /packages/editor-core/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './intl'; 2 | export * from './editor'; 3 | export * from './utils'; 4 | export * from './di'; 5 | export * from './hotkey'; 6 | export * from './widgets'; 7 | export * from './config'; 8 | export * from './event-bus'; 9 | export * from './command'; 10 | -------------------------------------------------------------------------------- /packages/editor-core/src/utils/get-public-path.ts: -------------------------------------------------------------------------------- 1 | const publicPath = (document.currentScript as HTMLScriptElement)?.src.replace(/^(.*\/)[^/]+$/, '$1'); 2 | 3 | export function getPublicPath(): string { 4 | return publicPath || ''; 5 | } 6 | -------------------------------------------------------------------------------- /packages/editor-core/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-public-path'; 2 | export * from './obx'; 3 | export * from './request'; 4 | export * from './focus-tracker'; 5 | export * from './control'; 6 | export * from './preference'; 7 | -------------------------------------------------------------------------------- /packages/editor-core/src/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger, Level } from '@alilc/lowcode-utils'; 2 | 3 | export { Logger }; 4 | 5 | export function getLogger(config: { level: Level; bizName: string }): Logger { 6 | return new Logger(config); 7 | } 8 | -------------------------------------------------------------------------------- /packages/editor-core/src/widgets/index.ts: -------------------------------------------------------------------------------- 1 | // TODO move another place 2 | export * from './tip'; 3 | export * from './title'; 4 | -------------------------------------------------------------------------------- /packages/editor-core/src/widgets/tip/index.ts: -------------------------------------------------------------------------------- 1 | import './style.less'; 2 | 3 | export * from './tip'; 4 | export * from './tip-container'; 5 | export * from './help-tips'; 6 | -------------------------------------------------------------------------------- /packages/editor-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": ["./src/"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/editor-skeleton/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "build-plugin-fusion", 5 | ["build-plugin-moment-locales", { 6 | "locales": ["zh-cn"] 7 | }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/editor-skeleton/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ], 6 | "babelPlugins": [ 7 | ["@babel/plugin-proposal-private-property-in-object", { "loose": true }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/editor-skeleton/src/components/settings/index.ts: -------------------------------------------------------------------------------- 1 | import './style.less'; 2 | 3 | export * from './settings-primary-pane'; 4 | export * from './settings-pane'; 5 | -------------------------------------------------------------------------------- /packages/editor-skeleton/src/components/stage-box/index.ts: -------------------------------------------------------------------------------- 1 | import StageBox from './stage-box'; 2 | import './index.less'; 3 | 4 | export { StageBox }; 5 | -------------------------------------------------------------------------------- /packages/editor-skeleton/src/context.ts: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | import { ISkeleton } from './skeleton'; 3 | 4 | export const SkeletonContext = createContext({} as any); 5 | -------------------------------------------------------------------------------- /packages/editor-skeleton/src/widget/dialog-dock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/packages/editor-skeleton/src/widget/dialog-dock.ts -------------------------------------------------------------------------------- /packages/editor-skeleton/src/widget/index.ts: -------------------------------------------------------------------------------- 1 | export * from './widget-container'; 2 | export * from './panel'; 3 | export * from './panel-dock'; 4 | export * from './dock'; 5 | export * from './widget'; 6 | export * from './stage'; -------------------------------------------------------------------------------- /packages/editor-skeleton/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/engine/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../../babel.config'); -------------------------------------------------------------------------------- /packages/engine/src/locale/zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "NotValidNodeData": "不是有效的节点数据", 3 | "SelectComponents": "选择组件", 4 | "CopyAndPaste": "复制", 5 | "Copy": "拷贝", 6 | "PasteToTheBottom": "粘贴至下方", 7 | "PasteToTheInside": "粘贴至内部", 8 | "Delete": "删除" 9 | } 10 | -------------------------------------------------------------------------------- /packages/engine/src/modules/lowcode-types.ts: -------------------------------------------------------------------------------- 1 | export type { IPublicTypeNodeSchema } from '@alilc/lowcode-types'; -------------------------------------------------------------------------------- /packages/engine/src/modules/skeleton-types.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeWidgetBaseConfig as innerIWidgetBaseConfig } from '@alilc/lowcode-types'; 2 | 3 | export type IWidgetBaseConfig = innerIWidgetBaseConfig; 4 | -------------------------------------------------------------------------------- /packages/engine/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/ignitor/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../../babel.config'); -------------------------------------------------------------------------------- /packages/ignitor/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/packages/ignitor/public/favicon.png -------------------------------------------------------------------------------- /packages/ignitor/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-command/README.md: -------------------------------------------------------------------------------- 1 | # `@alilc/plugin-command` 2 | 3 | > TODO: description 4 | 5 | ## Usage 6 | 7 | ``` 8 | const pluginCommand = require('@alilc/plugin-command'); 9 | 10 | // TODO: DEMONSTRATE API 11 | ``` 12 | -------------------------------------------------------------------------------- /packages/plugin-command/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "build-plugin-fusion", 5 | ["build-plugin-moment-locales", { 6 | "locales": ["zh-cn"] 7 | }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-designer/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/plugin-designer/src/index.scss: -------------------------------------------------------------------------------- 1 | .lowcode-plugin-designer { 2 | width: 100%; 3 | height: 100%; 4 | } 5 | -------------------------------------------------------------------------------- /packages/plugin-designer/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-outline-pane/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "build-plugin-fusion", 5 | ["build-plugin-moment-locales", { 6 | "locales": ["zh-cn"] 7 | }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-outline-pane/src/README.md: -------------------------------------------------------------------------------- 1 | 大纲树 2 | -------------------------------------------------------------------------------- /packages/plugin-outline-pane/src/controllers/ric-shim.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'ric-shim'; -------------------------------------------------------------------------------- /packages/plugin-outline-pane/src/helper/consts.ts: -------------------------------------------------------------------------------- 1 | export const BackupPaneName = 'outline-backup-pane'; 2 | export const MasterPaneName = 'outline-master-pane'; -------------------------------------------------------------------------------- /packages/plugin-outline-pane/src/locale/index.ts: -------------------------------------------------------------------------------- 1 | import enUS from './en-US.json'; 2 | import zhCN from './zh-CN.json'; 3 | 4 | export { enUS, zhCN }; 5 | -------------------------------------------------------------------------------- /packages/react-renderer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/lowcode-engine/f6305c2284950d79b9729781f081f24f113de345/packages/react-renderer/README.md -------------------------------------------------------------------------------- /packages/react-renderer/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "build-plugin-fusion", 5 | ["build-plugin-moment-locales", { 6 | "locales": ["zh-cn"] 7 | }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/react-renderer/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/react-renderer/demo/config/components/A.jsx: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | 3 | export default class AView extends PureComponent { 4 | static displayName = 'A'; 5 | 6 | static version = '0.0.0'; 7 | 8 | render() { 9 | return ; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/react-renderer/demo/config/constants.js: -------------------------------------------------------------------------------- 1 | export default { 2 | name: 'renderer-demo', 3 | }; 4 | -------------------------------------------------------------------------------- /packages/react-renderer/demo/config/utils.js: -------------------------------------------------------------------------------- 1 | import { Message } from '@alifd/next'; 2 | import moment from 'moment'; 3 | 4 | export default { 5 | Message, 6 | moment, 7 | test(msg) { 8 | this.Message.notice(msg); 9 | }, 10 | }; 11 | -------------------------------------------------------------------------------- /packages/react-renderer/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | ["@babel/plugin-proposal-decorators", { "legacy": true }], 4 | ["@babel/plugin-proposal-class-properties", { "loose": true }] 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../../babel.config'); -------------------------------------------------------------------------------- /packages/react-simulator-renderer/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": ["@alilc/build-plugin-lce", "./build.plugin.js"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/build.plugin.js: -------------------------------------------------------------------------------- 1 | module.exports = ({ onGetWebpackConfig }) => { 2 | onGetWebpackConfig((config) => { 3 | config.performance.hints(false); 4 | }); 5 | }; 6 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/src/README.md: -------------------------------------------------------------------------------- 1 | 沙箱环境 2 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/src/host.ts: -------------------------------------------------------------------------------- 1 | // NOTE: 仅做类型标注,切勿做其它用途 2 | import { BuiltinSimulatorHost } from '@alilc/lowcode-designer'; 3 | 4 | export const host: BuiltinSimulatorHost = (window as any).LCSimulatorHost; 5 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/src/locale/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "Drag and drop components or templates here": "Drag and drop components or templates here", 3 | "Locked elements and child elements cannot be edited": "Locked elements and child elements cannot be edited" 4 | } -------------------------------------------------------------------------------- /packages/react-simulator-renderer/src/locale/zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Drag and drop components or templates here": "拖拽组件或模板到这里", 3 | "Locked elements and child elements cannot be edited": "锁定元素及子元素无法编辑" 4 | } -------------------------------------------------------------------------------- /packages/react-simulator-renderer/src/utils/is-dom-node.ts: -------------------------------------------------------------------------------- 1 | export function isDOMNode(node: any): node is Element | Text { 2 | return node.nodeType && (node.nodeType === Node.ELEMENT_NODE || node.nodeType === Node.TEXT_NODE); 3 | } 4 | -------------------------------------------------------------------------------- /packages/react-simulator-renderer/test/utils/components.tsx: -------------------------------------------------------------------------------- 1 | export const Text = ({ 2 | __tag, 3 | content, 4 | ...props 5 | }: any) => (
{content}
); 6 | 7 | export const Page = (props: any) => (
{props.children}
); -------------------------------------------------------------------------------- /packages/react-simulator-renderer/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/", "../../index.ts" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/renderer-core/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../../babel.config'); -------------------------------------------------------------------------------- /packages/renderer-core/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | [ 4 | "@alilc/build-plugin-lce", 5 | { 6 | "babelPlugins": ["@babel/plugin-transform-typescript"] 7 | } 8 | ] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/renderer-core/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/renderer-core/src/index.ts: -------------------------------------------------------------------------------- 1 | import adapter from './adapter'; 2 | import contextFactory from './context'; 3 | 4 | export { adapter, contextFactory }; 5 | 6 | export * from './renderer'; 7 | export * as types from './types'; 8 | export * as utils from './utils'; 9 | export * from './hoc'; 10 | -------------------------------------------------------------------------------- /packages/renderer-core/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './common'; 2 | export * from './data-helper'; 3 | export * from './request'; 4 | -------------------------------------------------------------------------------- /packages/renderer-core/src/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@alilc/lowcode-utils'; 2 | 3 | export default new Logger({ level: 'warn', bizName: 'renderer' }); -------------------------------------------------------------------------------- /packages/renderer-core/tests/fixtures/unhandled-rejection.ts: -------------------------------------------------------------------------------- 1 | if (!process.env.LISTENING_TO_UNHANDLED_REJECTION) { 2 | process.on('unhandledRejection', reason => { 3 | throw reason; 4 | }); 5 | // Avoid memory leak by adding too many listeners 6 | process.env.LISTENING_TO_UNHANDLED_REJECTION = 'true'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/renderer-core/tests/mock/styleMock.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | process() { 3 | return ''; 4 | }, 5 | }; -------------------------------------------------------------------------------- /packages/renderer-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib", 5 | "jsx": "react" 6 | }, 7 | "include": ["./src/"], 8 | } 9 | -------------------------------------------------------------------------------- /packages/shell/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/shell/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/types/.eslintignore: -------------------------------------------------------------------------------- 1 | lib 2 | es 3 | node_modules -------------------------------------------------------------------------------- /packages/types/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | printWidth: 80, 3 | singleQuote: true, 4 | trailingComma: 'all', 5 | tabSize: 2, 6 | }; 7 | -------------------------------------------------------------------------------- /packages/types/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/types/src/deprecated/isDOMText.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeDOMText } from '../shell/type/dom-text'; 2 | 3 | /** 4 | * @deprecated use same function from '@alilc/lowcode-utils' instead 5 | */ 6 | export function isDOMText(data: any): data is IPublicTypeDOMText { 7 | return typeof data === 'string'; 8 | } 9 | -------------------------------------------------------------------------------- /packages/types/src/deprecated/isI18nData.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @deprecated use same function from '@alilc/lowcode-utils' instead 4 | */ 5 | export function isI18nData(obj: any): boolean { 6 | return obj && obj.type === 'i18n'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/types/src/deprecated/isNodeSchema.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeNodeSchema } from '../shell'; 2 | 3 | /** 4 | * @deprecated use same function from '@alilc/lowcode-utils' instead 5 | */ 6 | export function isNodeSchema(data: any): data is IPublicTypeNodeSchema { 7 | return data && data.componentName; 8 | } 9 | -------------------------------------------------------------------------------- /packages/types/src/deprecated/isProjectSchema.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @deprecated use same function from '@alilc/lowcode-utils' instead 3 | */ 4 | export function isProjectSchema(data: any): boolean { 5 | return data && data.componentsTree; 6 | } 7 | -------------------------------------------------------------------------------- /packages/types/src/event/node.ts: -------------------------------------------------------------------------------- 1 | export * as Prop from './prop'; 2 | 3 | export interface RerenderOptions { 4 | time: number; 5 | componentName?: string; 6 | type?: string; 7 | nodeCount?: number; 8 | } 9 | 10 | export const Rerender = 'node.edit.rerender.time'; 11 | -------------------------------------------------------------------------------- /packages/types/src/shell/enum/context-menu.ts: -------------------------------------------------------------------------------- 1 | export enum IPublicEnumContextMenuType { 2 | SEPARATOR = 'separator', 3 | // 'menuItem' 4 | MENU_ITEM = 'menuItem', 5 | // 'nodeTree' 6 | NODE_TREE = 'nodeTree', 7 | } -------------------------------------------------------------------------------- /packages/types/src/shell/enum/event-names.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 所有公开可用的事件名定义 3 | * All public event names 4 | * names should be like 'namespace.modelName.whatHappened' 5 | * 6 | */ 7 | // eslint-disable-next-line no-shadow 8 | export enum IPublicEnumEventNames { 9 | } -------------------------------------------------------------------------------- /packages/types/src/shell/enum/index.ts: -------------------------------------------------------------------------------- 1 | export * from './event-names'; 2 | export * from './transition-type'; 3 | export * from './transform-stage'; 4 | export * from './drag-object-type'; 5 | export * from './prop-value-changed-type'; 6 | export * from './plugin-register-level'; 7 | export * from './context-menu'; -------------------------------------------------------------------------------- /packages/types/src/shell/enum/plugin-register-level.ts: -------------------------------------------------------------------------------- 1 | export enum IPublicEnumPluginRegisterLevel { 2 | Default = 'default', 3 | Workspace = 'workspace', 4 | Resource = 'resource', 5 | EditorView = 'editorView', 6 | } -------------------------------------------------------------------------------- /packages/types/src/shell/index.ts: -------------------------------------------------------------------------------- 1 | 2 | export * from './type'; 3 | export * from './api'; 4 | export * from './model'; 5 | export * from './enum'; -------------------------------------------------------------------------------- /packages/types/src/shell/model/editor-view.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelPluginContext } from './plugin-context'; 2 | 3 | export interface IPublicModelEditorView extends IPublicModelPluginContext { 4 | viewName: string; 5 | 6 | viewType: 'editor' | 'webview'; 7 | } -------------------------------------------------------------------------------- /packages/types/src/shell/model/scroller.ts: -------------------------------------------------------------------------------- 1 | export interface IPublicModelScroller { 2 | 3 | scrollTo(options: { left?: number; top?: number }): void; 4 | 5 | cancel(): void; 6 | 7 | scrolling(point: { globalX: number; globalY: number }): void; 8 | } -------------------------------------------------------------------------------- /packages/types/src/shell/model/setting-prop-entry.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelSettingField } from './'; 2 | 3 | /** 4 | * @deprecated please use IPublicModelSettingField 5 | */ 6 | export type IPublicModelSettingPropEntry = IPublicModelSettingField 7 | -------------------------------------------------------------------------------- /packages/types/src/shell/model/setting-target.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelSettingField } from './'; 2 | 3 | /** 4 | * @deprecated please use IPublicModelSettingField 5 | */ 6 | export type IPublicModelSettingTarget = IPublicModelSettingField; 7 | -------------------------------------------------------------------------------- /packages/types/src/shell/model/simulator-render.ts: -------------------------------------------------------------------------------- 1 | export interface IPublicModelSimulatorRender { 2 | 3 | /** 4 | * 画布组件列表 5 | */ 6 | components: { 7 | [key: string]: any; 8 | }; 9 | 10 | /** 11 | * 触发画布重新渲染 12 | */ 13 | rerender: () => void; 14 | } 15 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/block-schema.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeContainerSchema } from './'; 2 | 3 | /** 4 | * 区块容器 5 | * @see https://lowcode-engine.cn/lowcode 6 | */ 7 | 8 | export interface IPublicTypeBlockSchema extends IPublicTypeContainerSchema { 9 | componentName: 'Block'; 10 | } 11 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/component-instance.ts: -------------------------------------------------------------------------------- 1 | 2 | import { Component as ReactComponent } from 'react'; 3 | /** 4 | * 组件实例定义 5 | */ 6 | export type IPublicTypeComponentInstance = Element | ReactComponent | object; -------------------------------------------------------------------------------- /packages/types/src/shell/type/config-transducer.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeSkeletonConfig } from '.'; 2 | 3 | export interface IPublicTypeConfigTransducer { 4 | (prev: IPublicTypeSkeletonConfig): IPublicTypeSkeletonConfig; 5 | 6 | level?: number; 7 | 8 | id?: string; 9 | } 10 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/custom-view.ts: -------------------------------------------------------------------------------- 1 | import { ComponentType, ReactElement } from 'react'; 2 | 3 | export type IPublicTypeCustomView = ReactElement | ComponentType; 4 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/disposable.ts: -------------------------------------------------------------------------------- 1 | export interface IPublicTypeDisposable { 2 | (): void; 3 | } -------------------------------------------------------------------------------- /packages/types/src/shell/type/dom-text.ts: -------------------------------------------------------------------------------- 1 | export type IPublicTypeDOMText = string; 2 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/drag-any-object.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IPublicTypeDragAnyObject { 3 | type: string; 4 | [key: string]: any; 5 | } 6 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/drag-node-object.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelNode } from '..'; 2 | import { IPublicEnumDragObjectType } from '../enum'; 3 | 4 | export interface IPublicTypeDragNodeObject { 5 | type: IPublicEnumDragObjectType.Node; 6 | nodes: Node[]; 7 | } 8 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/dynamic-props.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelSettingField } from '../model'; 2 | 3 | export type IPublicTypeDynamicProps = (target: IPublicModelSettingField) => Record; 4 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/editor-get-options.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IPublicTypeEditorGetOptions { 3 | forceNew?: boolean; 4 | sourceCls?: new (...args: any[]) => any; 5 | } 6 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/editor-get-result.ts: -------------------------------------------------------------------------------- 1 | 2 | export type IPublicTypeEditorGetResult = T extends undefined ? ClsType extends { 3 | prototype: infer R; 4 | } ? R : any : T; 5 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/editor-value-key.ts: -------------------------------------------------------------------------------- 1 | 2 | export type IPublicTypeEditorValueKey = (new (...args: any[]) => any) | symbol | string; 3 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/hotkey-callback.ts: -------------------------------------------------------------------------------- 1 | 2 | export type IPublicTypeHotkeyCallback = (e: KeyboardEvent, combo?: string) => any | false; 3 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/hotkey-callbacks.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeHotkeyCallbackConfig } from './'; 2 | 3 | export interface IPublicTypeHotkeyCallbacks { 4 | [key: string]: IPublicTypeHotkeyCallbackConfig[]; 5 | } -------------------------------------------------------------------------------- /packages/types/src/shell/type/i18n-map.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IPublicTypeI18nMap { 3 | [lang: string]: { [key: string]: string }; 4 | } 5 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/i8n-data.ts: -------------------------------------------------------------------------------- 1 | import { ReactNode } from 'react'; 2 | 3 | export interface IPublicTypeI18nData { 4 | type: 'i18n'; 5 | intl?: ReactNode; 6 | [key: string]: any; 7 | } 8 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/icon-config.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IPublicTypeIconConfig { 3 | type: string; 4 | size?: number | 'small' | 'xxs' | 'xs' | 'medium' | 'large' | 'xl' | 'xxl' | 'xxxl' | 'inherit'; 5 | className?: string; 6 | } 7 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/icon-type.ts: -------------------------------------------------------------------------------- 1 | import { ReactElement, ComponentType } from 'react'; 2 | import { IPublicTypeIconConfig } from './'; 3 | 4 | export type IPublicTypeIconType = string | ReactElement | ComponentType | IPublicTypeIconConfig; 5 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/node-data-type.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeNodeData } from './node-data'; 2 | 3 | export type IPublicTypeNodeDataType = IPublicTypeNodeData | IPublicTypeNodeData[]; 4 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/node-data.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeJSExpression, IPublicTypeNodeSchema, IPublicTypeDOMText, IPublicTypeI18nData } from './'; 2 | 3 | export type IPublicTypeNodeData = IPublicTypeNodeSchema | IPublicTypeJSExpression | IPublicTypeDOMText | IPublicTypeI18nData; 4 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/on-change-options.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelNode } from '..'; 2 | 3 | export interface IPublicTypeOnChangeOptions< 4 | Node = IPublicModelNode 5 | > { 6 | type: string; 7 | node: Node; 8 | } 9 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/page-schema.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeContainerSchema } from './'; 2 | 3 | /** 4 | * 页面容器 5 | * @see https://lowcode-engine.cn/lowcode 6 | */ 7 | export interface IPublicTypePageSchema extends IPublicTypeContainerSchema { 8 | componentName: 'Page'; 9 | } 10 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/plugin-config.ts: -------------------------------------------------------------------------------- 1 | export interface IPublicTypePluginConfig { 2 | init(): Promise | void; 3 | destroy?(): Promise | void; 4 | exports?(): any; 5 | } 6 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/plugin-creater.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypePluginConfig } from './'; 2 | import { IPublicModelPluginContext } from '../model'; 3 | 4 | // eslint-disable-next-line max-len 5 | export type IPublicTypePluginCreater = (ctx: IPublicModelPluginContext, options: any) => IPublicTypePluginConfig; 6 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/plugin.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | import { IPublicTypePluginMeta, IPublicTypePluginCreater } from './'; 3 | 4 | export interface IPublicTypePlugin extends IPublicTypePluginCreater { 5 | pluginName: string; 6 | meta?: IPublicTypePluginMeta; 7 | } -------------------------------------------------------------------------------- /packages/types/src/shell/type/preference-value-type.ts: -------------------------------------------------------------------------------- 1 | 2 | export type IPublicTypePreferenceValueType = string | number | boolean; 3 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/props-list.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeCompositeValue } from './'; 2 | 3 | export type IPublicTypePropsList = Array<{ 4 | spread?: boolean; 5 | name?: string; 6 | value: IPublicTypeCompositeValue; 7 | }>; 8 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/props-map.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeCompositeObject, IPublicTypeNodeData } from './'; 2 | 3 | export type IPublicTypePropsMap = IPublicTypeCompositeObject; 4 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/scrollable.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelScrollTarget } from '../model'; 2 | 3 | export interface IPublicTypeScrollable { 4 | scrollTarget?: IPublicModelScrollTarget | Element; 5 | bounds?: DOMRect | null; 6 | scale?: number; 7 | } 8 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/set-value-options.ts: -------------------------------------------------------------------------------- 1 | import { IPublicEnumPropValueChangedType } from '../enum'; 2 | 3 | export interface IPublicTypeSetValueOptions { 4 | disableMutator?: boolean; 5 | type?: IPublicEnumPropValueChangedType; 6 | fromSetHotValue?: boolean; 7 | } 8 | -------------------------------------------------------------------------------- /packages/types/src/shell/type/tip-content.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeI18nData } from '..'; 2 | import { ReactNode } from 'react'; 3 | import { IPublicTypeTipConfig } from './tip-config'; 4 | 5 | export type TipContent = string | IPublicTypeI18nData | ReactNode | IPublicTypeTipConfig; 6 | -------------------------------------------------------------------------------- /packages/types/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/utils/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/utils/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/utils/jest.setup.js: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom'; 2 | -------------------------------------------------------------------------------- /packages/utils/src/check-types/is-action-content-object.ts: -------------------------------------------------------------------------------- 1 | import { IPublicTypeActionContentObject } from '@alilc/lowcode-types'; 2 | import { isObject } from '../is-object'; 3 | 4 | export function isActionContentObject(obj: any): obj is IPublicTypeActionContentObject { 5 | return isObject(obj); 6 | } 7 | -------------------------------------------------------------------------------- /packages/utils/src/check-types/is-dom-text.ts: -------------------------------------------------------------------------------- 1 | export function isDOMText(data: any): data is string { 2 | return typeof data === 'string'; 3 | } 4 | -------------------------------------------------------------------------------- /packages/utils/src/check-types/is-function.ts: -------------------------------------------------------------------------------- 1 | export function isFunction(obj: any): obj is Function { 2 | return obj && typeof obj === 'function'; 3 | } -------------------------------------------------------------------------------- /packages/utils/src/check-types/is-node.ts: -------------------------------------------------------------------------------- 1 | import { IPublicModelNode } from '@alilc/lowcode-types'; 2 | import { isObject } from '../is-object'; 3 | 4 | export function isNode(node: any): node is Node { 5 | if (!isObject(node)) { 6 | return false; 7 | } 8 | return node.isNode; 9 | } -------------------------------------------------------------------------------- /packages/utils/src/check-types/is-object.ts: -------------------------------------------------------------------------------- 1 | export function isObject(obj: any): boolean { 2 | return obj && typeof obj === 'object'; 3 | } -------------------------------------------------------------------------------- /packages/utils/src/env.ts: -------------------------------------------------------------------------------- 1 | export function isInSimulator() { 2 | return Boolean((window as any).__is_simulator_env__); 3 | } 4 | -------------------------------------------------------------------------------- /packages/utils/src/get-prototype-of.ts: -------------------------------------------------------------------------------- 1 | export function getPrototypeOf(target: any) { 2 | if (typeof Object.getPrototypeOf !== 'undefined') { 3 | return Object.getPrototypeOf(target); 4 | } 5 | 6 | // eslint-disable-next-line no-proto 7 | return target.__proto__; 8 | } 9 | -------------------------------------------------------------------------------- /packages/utils/src/has-own-property.ts: -------------------------------------------------------------------------------- 1 | const prototypeHasOwnProperty = Object.prototype.hasOwnProperty; 2 | export function hasOwnProperty(obj: any, key: string | number | symbol): boolean { 3 | return obj && prototypeHasOwnProperty.call(obj, key); 4 | } 5 | -------------------------------------------------------------------------------- /packages/utils/src/is-css-url.ts: -------------------------------------------------------------------------------- 1 | export function isCSSUrl(url: string): boolean { 2 | return /\.css(\?.*)?$/.test(url); 3 | } 4 | -------------------------------------------------------------------------------- /packages/utils/src/is-element.ts: -------------------------------------------------------------------------------- 1 | export function isElement(node: any): node is Element { 2 | if (!node) return false; 3 | return node.nodeType === Node.ELEMENT_NODE; 4 | } 5 | -------------------------------------------------------------------------------- /packages/utils/src/is-es-module.ts: -------------------------------------------------------------------------------- 1 | export type ESModule = { 2 | __esModule: true; 3 | default: any; 4 | }; 5 | export function isESModule(obj: any): obj is ESModule { 6 | return obj && obj.__esModule; 7 | } 8 | -------------------------------------------------------------------------------- /packages/utils/src/is-function.ts: -------------------------------------------------------------------------------- 1 | export function isFunction(fn: any): boolean { 2 | return typeof fn === 'function'; 3 | } 4 | -------------------------------------------------------------------------------- /packages/utils/src/is-object.ts: -------------------------------------------------------------------------------- 1 | export function isObject(value: any): value is Record { 2 | return value !== null && typeof value === 'object'; 3 | } 4 | 5 | export function isI18NObject(value: any): boolean { 6 | return isObject(value) && value.type === 'i18n'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/utils/src/is-plugin-event-name.ts: -------------------------------------------------------------------------------- 1 | export function isPluginEventName(eventName: string): boolean { 2 | if (!eventName) { 3 | return false; 4 | } 5 | 6 | const eventSegments = eventName.split(':'); 7 | return (eventSegments.length > 1 && eventSegments[0].length > 0); 8 | } 9 | -------------------------------------------------------------------------------- /packages/utils/src/set-prototype-of.ts: -------------------------------------------------------------------------------- 1 | export function setPrototypeOf(target: any, proto: any) { 2 | if (typeof Object.setPrototypeOf !== 'undefined') { 3 | Object.setPrototypeOf(target, proto); 4 | } else { 5 | // eslint-disable-next-line no-proto 6 | target.__proto__ = proto; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/utils/src/unique-id.ts: -------------------------------------------------------------------------------- 1 | let guid = Date.now(); 2 | export function uniqueId(prefix = '') { 3 | return `${prefix}${(guid++).toString(36).toLowerCase()}`; 4 | } 5 | -------------------------------------------------------------------------------- /packages/utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/workspace/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/workspace/build.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@alilc/build-plugin-lce", 4 | "@alilc/lowcode-test-mate/plugin/index.ts" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/workspace/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ['ts', 'tsx', 'js', 'json'], 3 | collectCoverage: true, 4 | collectCoverageFrom: [ 5 | 'src/**/*.{ts,tsx}', 6 | '!**/node_modules/**', 7 | '!**/vendor/**', 8 | ], 9 | }; 10 | -------------------------------------------------------------------------------- /packages/workspace/src/skeleton-context.ts: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | 3 | export const SkeletonContext = createContext({} as any); 4 | -------------------------------------------------------------------------------- /packages/workspace/src/view/resource-view.less: -------------------------------------------------------------------------------- 1 | .workspace-resource-view { 2 | display: flex; 3 | position: absolute; 4 | flex-direction: column; 5 | top: 0; 6 | bottom: 0; 7 | left: 0; 8 | right: 0; 9 | } 10 | 11 | .workspace-editor-body { 12 | position: relative; 13 | height: 100%; 14 | } -------------------------------------------------------------------------------- /packages/workspace/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "lib" 5 | }, 6 | "include": [ 7 | "./src/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /scripts/setup-skip-build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rm -rf node_modules package-lock.json yarn.lock 4 | 5 | npm i lerna@4.0.0 6 | 7 | lerna clean -y 8 | find ./packages -type f -name "package-lock.json" -exec rm -f {} \; 9 | 10 | lerna bootstrap 11 | -------------------------------------------------------------------------------- /scripts/setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rm -rf package-lock.json yarn.lock 4 | lerna clean -y 5 | find ./packages -type f -name "package-lock.json" -exec rm -f {} \; 6 | 7 | lerna bootstrap --force-local 8 | -------------------------------------------------------------------------------- /scripts/start-server.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # FIXME! do not run build 4 | lerna exec --scope @ali/lowcode-code-generator -- npm run build 5 | # lerna exec --scope @ali/lowcode-demo-server -- npm start 6 | -------------------------------------------------------------------------------- /scripts/start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | pkgName="@alilc/lowcode-ignitor" 4 | 5 | if [ "$1" ]; then 6 | pkgName="$1" 7 | fi 8 | 9 | lerna exec --scope $pkgName -- npm start 10 | --------------------------------------------------------------------------------