#
tokens: 49963/50000 246/1152 files (page 1/35)
lines: off (toggle) GitHub
raw markdown copy
This is page 1 of 35. Use http://codebase.md/alibaba/formily?page={x} to view the full context.

# Directory Structure

```
├── .all-contributorsrc
├── .codecov.yml
├── .editorconfig
├── .eslintignore
├── .eslintrc
├── .github
│   ├── CONTRIBUTING.md
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE
│   │   └── config.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows
│       ├── check-pr-title.yml
│       ├── ci.yml
│       ├── commitlint.yml
│       ├── issue-open-check.yml
│       ├── package-size.yml
│       └── pr-welcome.yml
├── .gitignore
├── .prettierrc.js
├── .umirc.js
├── .vscode
│   └── cspell.json
├── .yarnrc
├── CHANGELOG.md
├── commitlint.config.js
├── devtools
│   ├── .eslintrc
│   └── chrome-extension
│       ├── .npmignore
│       ├── assets
│       │   └── img
│       │       ├── loading.svg
│       │       └── logo
│       │           ├── 128x128.png
│       │           ├── 16x16.png
│       │           ├── 38x38.png
│       │           ├── 48x48.png
│       │           ├── error.png
│       │           ├── gray.png
│       │           └── scalable.png
│       ├── config
│       │   ├── webpack.base.ts
│       │   ├── webpack.dev.ts
│       │   └── webpack.prod.ts
│       ├── LICENSE.md
│       ├── package.json
│       ├── src
│       │   ├── app
│       │   │   ├── components
│       │   │   │   ├── FieldTree.tsx
│       │   │   │   ├── filter.ts
│       │   │   │   ├── LeftPanel.tsx
│       │   │   │   ├── RightPanel.tsx
│       │   │   │   ├── SearchBox.tsx
│       │   │   │   └── Tabs.tsx
│       │   │   ├── demo.tsx
│       │   │   └── index.tsx
│       │   └── extension
│       │       ├── backend.ts
│       │       ├── background.ts
│       │       ├── content.ts
│       │       ├── devpanel.tsx
│       │       ├── devtools.tsx
│       │       ├── inject.ts
│       │       ├── manifest.json
│       │       ├── popup.tsx
│       │       └── views
│       │           ├── devpanel.ejs
│       │           ├── devtools.ejs
│       │           └── popup.ejs
│       ├── tsconfig.build.json
│       └── tsconfig.json
├── docs
│   ├── functions
│   │   ├── contributors.ts
│   │   └── npm-search.ts
│   ├── guide
│   │   ├── advanced
│   │   │   ├── async.md
│   │   │   ├── async.zh-CN.md
│   │   │   ├── build.md
│   │   │   ├── build.zh-CN.md
│   │   │   ├── business-logic.md
│   │   │   ├── business-logic.zh-CN.md
│   │   │   ├── calculator.md
│   │   │   ├── calculator.zh-CN.md
│   │   │   ├── controlled.md
│   │   │   ├── controlled.zh-CN.md
│   │   │   ├── custom.md
│   │   │   ├── custom.zh-CN.md
│   │   │   ├── destructor.md
│   │   │   ├── destructor.zh-CN.md
│   │   │   ├── input.less
│   │   │   ├── layout.md
│   │   │   ├── layout.zh-CN.md
│   │   │   ├── linkages.md
│   │   │   ├── linkages.zh-CN.md
│   │   │   ├── validate.md
│   │   │   └── validate.zh-CN.md
│   │   ├── contribution.md
│   │   ├── contribution.zh-CN.md
│   │   ├── form-builder.md
│   │   ├── form-builder.zh-CN.md
│   │   ├── index.md
│   │   ├── index.zh-CN.md
│   │   ├── issue-helper.md
│   │   ├── issue-helper.zh-CN.md
│   │   ├── learn-formily.md
│   │   ├── learn-formily.zh-CN.md
│   │   ├── quick-start.md
│   │   ├── quick-start.zh-CN.md
│   │   ├── scenes
│   │   │   ├── dialog-drawer.md
│   │   │   ├── dialog-drawer.zh-CN.md
│   │   │   ├── edit-detail.md
│   │   │   ├── edit-detail.zh-CN.md
│   │   │   ├── index.less
│   │   │   ├── login-register.md
│   │   │   ├── login-register.zh-CN.md
│   │   │   ├── more.md
│   │   │   ├── more.zh-CN.md
│   │   │   ├── query-list.md
│   │   │   ├── query-list.zh-CN.md
│   │   │   ├── step-form.md
│   │   │   ├── step-form.zh-CN.md
│   │   │   ├── tab-form.md
│   │   │   ├── tab-form.zh-CN.md
│   │   │   └── VerifyCode.tsx
│   │   ├── upgrade.md
│   │   └── upgrade.zh-CN.md
│   ├── index.md
│   ├── index.zh-CN.md
│   └── site
│       ├── Contributors.less
│       ├── Contributors.tsx
│       ├── QrCode.less
│       ├── QrCode.tsx
│       ├── Section.less
│       ├── Section.tsx
│       └── styles.less
├── global.config.ts
├── jest.config.js
├── lerna.json
├── LICENSE.md
├── package.json
├── packages
│   ├── .eslintrc
│   ├── antd
│   │   ├── __tests__
│   │   │   ├── moment.spec.ts
│   │   │   └── sideEffects.spec.ts
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── build-style.ts
│   │   ├── create-style.ts
│   │   ├── docs
│   │   │   ├── components
│   │   │   │   ├── ArrayCards.md
│   │   │   │   ├── ArrayCards.zh-CN.md
│   │   │   │   ├── ArrayCollapse.md
│   │   │   │   ├── ArrayCollapse.zh-CN.md
│   │   │   │   ├── ArrayItems.md
│   │   │   │   ├── ArrayItems.zh-CN.md
│   │   │   │   ├── ArrayTable.md
│   │   │   │   ├── ArrayTable.zh-CN.md
│   │   │   │   ├── ArrayTabs.md
│   │   │   │   ├── ArrayTabs.zh-CN.md
│   │   │   │   ├── Cascader.md
│   │   │   │   ├── Cascader.zh-CN.md
│   │   │   │   ├── Checkbox.md
│   │   │   │   ├── Checkbox.zh-CN.md
│   │   │   │   ├── DatePicker.md
│   │   │   │   ├── DatePicker.zh-CN.md
│   │   │   │   ├── Editable.md
│   │   │   │   ├── Editable.zh-CN.md
│   │   │   │   ├── Form.md
│   │   │   │   ├── Form.zh-CN.md
│   │   │   │   ├── FormButtonGroup.md
│   │   │   │   ├── FormButtonGroup.zh-CN.md
│   │   │   │   ├── FormCollapse.md
│   │   │   │   ├── FormCollapse.zh-CN.md
│   │   │   │   ├── FormDialog.md
│   │   │   │   ├── FormDialog.zh-CN.md
│   │   │   │   ├── FormDrawer.md
│   │   │   │   ├── FormDrawer.zh-CN.md
│   │   │   │   ├── FormGrid.md
│   │   │   │   ├── FormGrid.zh-CN.md
│   │   │   │   ├── FormItem.md
│   │   │   │   ├── FormItem.zh-CN.md
│   │   │   │   ├── FormLayout.md
│   │   │   │   ├── FormLayout.zh-CN.md
│   │   │   │   ├── FormStep.md
│   │   │   │   ├── FormStep.zh-CN.md
│   │   │   │   ├── FormTab.md
│   │   │   │   ├── FormTab.zh-CN.md
│   │   │   │   ├── index.md
│   │   │   │   ├── index.zh-CN.md
│   │   │   │   ├── Input.md
│   │   │   │   ├── Input.zh-CN.md
│   │   │   │   ├── NumberPicker.md
│   │   │   │   ├── NumberPicker.zh-CN.md
│   │   │   │   ├── Password.md
│   │   │   │   ├── Password.zh-CN.md
│   │   │   │   ├── PreviewText.md
│   │   │   │   ├── PreviewText.zh-CN.md
│   │   │   │   ├── Radio.md
│   │   │   │   ├── Radio.zh-CN.md
│   │   │   │   ├── Reset.md
│   │   │   │   ├── Reset.zh-CN.md
│   │   │   │   ├── Select.md
│   │   │   │   ├── Select.zh-CN.md
│   │   │   │   ├── SelectTable.md
│   │   │   │   ├── SelectTable.zh-CN.md
│   │   │   │   ├── Space.md
│   │   │   │   ├── Space.zh-CN.md
│   │   │   │   ├── Submit.md
│   │   │   │   ├── Submit.zh-CN.md
│   │   │   │   ├── Switch.md
│   │   │   │   ├── Switch.zh-CN.md
│   │   │   │   ├── TimePicker.md
│   │   │   │   ├── TimePicker.zh-CN.md
│   │   │   │   ├── Transfer.md
│   │   │   │   ├── Transfer.zh-CN.md
│   │   │   │   ├── TreeSelect.md
│   │   │   │   ├── TreeSelect.zh-CN.md
│   │   │   │   ├── Upload.md
│   │   │   │   └── Upload.zh-CN.md
│   │   │   ├── index.md
│   │   │   └── index.zh-CN.md
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __builtins__
│   │   │   │   ├── hooks
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── useClickAway.ts
│   │   │   │   │   └── usePrefixCls.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── loading.ts
│   │   │   │   ├── moment.ts
│   │   │   │   ├── pickDataProps.ts
│   │   │   │   ├── portal.tsx
│   │   │   │   ├── render.ts
│   │   │   │   └── sort.tsx
│   │   │   ├── array-base
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── array-cards
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── array-collapse
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── array-items
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── array-table
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── array-tabs
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── cascader
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── checkbox
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── date-picker
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── editable
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── form
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── form-button-group
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── form-collapse
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-dialog
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-drawer
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-grid
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── form-item
│   │   │   │   ├── animation.less
│   │   │   │   ├── grid.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── form-layout
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   ├── style.ts
│   │   │   │   └── useResponsiveFormLayout.ts
│   │   │   ├── form-step
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-tab
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── index.ts
│   │   │   ├── input
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── number-picker
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── password
│   │   │   │   ├── index.tsx
│   │   │   │   ├── PasswordStrength.tsx
│   │   │   │   └── style.ts
│   │   │   ├── preview-text
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── radio
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── style.ts
│   │   │   ├── reset
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── select
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── select-table
│   │   │   │   ├── index.tsx
│   │   │   │   ├── style.less
│   │   │   │   ├── style.ts
│   │   │   │   ├── useCheckSlackly.tsx
│   │   │   │   ├── useFilterOptions.tsx
│   │   │   │   ├── useFlatOptions.tsx
│   │   │   │   ├── useSize.tsx
│   │   │   │   ├── useTitleAddon.tsx
│   │   │   │   └── utils.ts
│   │   │   ├── space
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── style.less
│   │   │   ├── style.ts
│   │   │   ├── submit
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── switch
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── time-picker
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── transfer
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── tree-select
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   └── upload
│   │   │       ├── index.tsx
│   │   │       ├── placeholder.ts
│   │   │       └── style.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── benchmark
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   └── index.tsx
│   │   ├── template.ejs
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   ├── webpack.base.ts
│   │   ├── webpack.dev.ts
│   │   └── webpack.prod.ts
│   ├── core
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── docs
│   │   │   ├── api
│   │   │   │   ├── entry
│   │   │   │   │   ├── ActionResponse.less
│   │   │   │   │   ├── ActionResponse.tsx
│   │   │   │   │   ├── createForm.md
│   │   │   │   │   ├── createForm.zh-CN.md
│   │   │   │   │   ├── FieldEffectHooks.md
│   │   │   │   │   ├── FieldEffectHooks.zh-CN.md
│   │   │   │   │   ├── FormChecker.md
│   │   │   │   │   ├── FormChecker.zh-CN.md
│   │   │   │   │   ├── FormEffectHooks.md
│   │   │   │   │   ├── FormEffectHooks.zh-CN.md
│   │   │   │   │   ├── FormHooksAPI.md
│   │   │   │   │   ├── FormHooksAPI.zh-CN.md
│   │   │   │   │   ├── FormPath.md
│   │   │   │   │   ├── FormPath.zh-CN.md
│   │   │   │   │   ├── FormValidatorRegistry.md
│   │   │   │   │   └── FormValidatorRegistry.zh-CN.md
│   │   │   │   └── models
│   │   │   │       ├── ArrayField.md
│   │   │   │       ├── ArrayField.zh-CN.md
│   │   │   │       ├── Field.md
│   │   │   │       ├── Field.zh-CN.md
│   │   │   │       ├── Form.md
│   │   │   │       ├── Form.zh-CN.md
│   │   │   │       ├── ObjectField.md
│   │   │   │       ├── ObjectField.zh-CN.md
│   │   │   │       ├── Query.md
│   │   │   │       ├── Query.zh-CN.md
│   │   │   │       ├── VoidField.md
│   │   │   │       └── VoidField.zh-CN.md
│   │   │   ├── guide
│   │   │   │   ├── architecture.md
│   │   │   │   ├── architecture.zh-CN.md
│   │   │   │   ├── field.md
│   │   │   │   ├── field.zh-CN.md
│   │   │   │   ├── form.md
│   │   │   │   ├── form.zh-CN.md
│   │   │   │   ├── index.md
│   │   │   │   ├── index.zh-CN.md
│   │   │   │   ├── mvvm.md
│   │   │   │   ├── mvvm.zh-CN.md
│   │   │   │   ├── values.md
│   │   │   │   └── values.zh-CN.md
│   │   │   ├── index.md
│   │   │   └── index.zh-CN.md
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── array.spec.ts
│   │   │   │   ├── effects.spec.ts
│   │   │   │   ├── externals.spec.ts
│   │   │   │   ├── field.spec.ts
│   │   │   │   ├── form.spec.ts
│   │   │   │   ├── graph.spec.ts
│   │   │   │   ├── heart.spec.ts
│   │   │   │   ├── internals.spec.ts
│   │   │   │   ├── lifecycle.spec.ts
│   │   │   │   ├── object.spec.ts
│   │   │   │   ├── shared.ts
│   │   │   │   └── void.spec.ts
│   │   │   ├── effects
│   │   │   │   ├── index.ts
│   │   │   │   ├── onFieldEffects.ts
│   │   │   │   └── onFormEffects.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── models
│   │   │   │   ├── ArrayField.ts
│   │   │   │   ├── BaseField.ts
│   │   │   │   ├── Field.ts
│   │   │   │   ├── Form.ts
│   │   │   │   ├── Graph.ts
│   │   │   │   ├── Heart.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── LifeCycle.ts
│   │   │   │   ├── ObjectField.ts
│   │   │   │   ├── Query.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── VoidField.ts
│   │   │   ├── shared
│   │   │   │   ├── checkers.ts
│   │   │   │   ├── constants.ts
│   │   │   │   ├── effective.ts
│   │   │   │   ├── externals.ts
│   │   │   │   └── internals.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── element
│   │   ├── .npmignore
│   │   ├── build-style.ts
│   │   ├── create-style.ts
│   │   ├── docs
│   │   │   ├── .vuepress
│   │   │   │   ├── components
│   │   │   │   │   ├── createCodeSandBox.js
│   │   │   │   │   ├── dumi-previewer.vue
│   │   │   │   │   └── highlight.js
│   │   │   │   ├── config.js
│   │   │   │   ├── enhanceApp.js
│   │   │   │   ├── styles
│   │   │   │   │   └── index.styl
│   │   │   │   └── util.js
│   │   │   ├── demos
│   │   │   │   ├── guide
│   │   │   │   │   ├── array-cards
│   │   │   │   │   │   ├── effects-json-schema.vue
│   │   │   │   │   │   ├── effects-markup-schema.vue
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── array-collapse
│   │   │   │   │   │   ├── effects-json-schema.vue
│   │   │   │   │   │   ├── effects-markup-schema.vue
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── array-items
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── array-table
│   │   │   │   │   │   ├── effects-json-schema.vue
│   │   │   │   │   │   ├── effects-markup-schema.vue
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── array-tabs
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── cascader
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── checkbox
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── date-picker
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── editable
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── form-button-group.vue
│   │   │   │   │   ├── form-collapse
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── form-dialog
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── form-drawer
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── form-grid
│   │   │   │   │   │   ├── form.vue
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── native.vue
│   │   │   │   │   ├── form-item
│   │   │   │   │   │   ├── bordered-none.vue
│   │   │   │   │   │   ├── common.vue
│   │   │   │   │   │   ├── feedback.vue
│   │   │   │   │   │   ├── inset.vue
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   ├── size.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── form-layout
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── form-step
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── form-tab
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   └── markup-schema.vue
│   │   │   │   │   ├── form.vue
│   │   │   │   │   ├── input
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── input-number
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── password
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── preview-text
│   │   │   │   │   │   ├── base.vue
│   │   │   │   │   │   └── extend.vue
│   │   │   │   │   ├── radio
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── reset
│   │   │   │   │   │   ├── base.vue
│   │   │   │   │   │   ├── force.vue
│   │   │   │   │   │   └── validate.vue
│   │   │   │   │   ├── select
│   │   │   │   │   │   ├── json-schema-async.vue
│   │   │   │   │   │   ├── json-schema-sync.vue
│   │   │   │   │   │   ├── markup-schema-async-search.vue
│   │   │   │   │   │   ├── markup-schema-async.vue
│   │   │   │   │   │   ├── markup-schema-sync.vue
│   │   │   │   │   │   ├── template-async.vue
│   │   │   │   │   │   └── template-sync.vue
│   │   │   │   │   ├── space
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── submit
│   │   │   │   │   │   ├── base.vue
│   │   │   │   │   │   └── loading.vue
│   │   │   │   │   ├── switch
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── time-picker
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   ├── transfer
│   │   │   │   │   │   ├── json-schema.vue
│   │   │   │   │   │   ├── markup-schema.vue
│   │   │   │   │   │   └── template.vue
│   │   │   │   │   └── upload
│   │   │   │   │       ├── json-schema.vue
│   │   │   │   │       ├── markup-schema.vue
│   │   │   │   │       └── template.vue
│   │   │   │   └── index.vue
│   │   │   ├── guide
│   │   │   │   ├── array-cards.md
│   │   │   │   ├── array-collapse.md
│   │   │   │   ├── array-items.md
│   │   │   │   ├── array-table.md
│   │   │   │   ├── array-tabs.md
│   │   │   │   ├── cascader.md
│   │   │   │   ├── checkbox.md
│   │   │   │   ├── date-picker.md
│   │   │   │   ├── editable.md
│   │   │   │   ├── form-button-group.md
│   │   │   │   ├── form-collapse.md
│   │   │   │   ├── form-dialog.md
│   │   │   │   ├── form-drawer.md
│   │   │   │   ├── form-grid.md
│   │   │   │   ├── form-item.md
│   │   │   │   ├── form-layout.md
│   │   │   │   ├── form-step.md
│   │   │   │   ├── form-tab.md
│   │   │   │   ├── form.md
│   │   │   │   ├── index.md
│   │   │   │   ├── input-number.md
│   │   │   │   ├── input.md
│   │   │   │   ├── password.md
│   │   │   │   ├── preview-text.md
│   │   │   │   ├── radio.md
│   │   │   │   ├── reset.md
│   │   │   │   ├── select.md
│   │   │   │   ├── space.md
│   │   │   │   ├── submit.md
│   │   │   │   ├── switch.md
│   │   │   │   ├── time-picker.md
│   │   │   │   ├── transfer.md
│   │   │   │   └── upload.md
│   │   │   └── README.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __builtins__
│   │   │   │   ├── configs
│   │   │   │   │   └── index.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── shared
│   │   │   │   │   ├── create-context.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── loading.ts
│   │   │   │   │   ├── portal.ts
│   │   │   │   │   ├── resolve-component.ts
│   │   │   │   │   ├── transform-component.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   └── styles
│   │   │   │       └── common.scss
│   │   │   ├── array-base
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-cards
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-collapse
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-items
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-table
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-tabs
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── cascader
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── checkbox
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── date-picker
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── editable
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── el-form
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── el-form-item
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── form
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-button-group
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-collapse
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-dialog
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── form-drawer
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-grid
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-item
│   │   │   │   ├── animation.scss
│   │   │   │   ├── grid.scss
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   ├── style.ts
│   │   │   │   └── var.scss
│   │   │   ├── form-layout
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   ├── style.ts
│   │   │   │   └── useResponsiveFormLayout.ts
│   │   │   ├── form-step
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── form-tab
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── index.ts
│   │   │   ├── input
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── input-number
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── password
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── preview-text
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── radio
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── reset
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── select
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── space
│   │   │   │   ├── index.ts
│   │   │   │   ├── style.scss
│   │   │   │   └── style.ts
│   │   │   ├── style.ts
│   │   │   ├── submit
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── switch
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── time-picker
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   ├── transfer
│   │   │   │   ├── index.ts
│   │   │   │   └── style.ts
│   │   │   └── upload
│   │   │       ├── index.ts
│   │   │       └── style.ts
│   │   ├── transformer.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── grid
│   │   ├── .npmignore
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── index.ts
│   │   │   └── observer.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── json-schema
│   │   ├── .npmignore
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── __snapshots__
│   │   │   │   │   └── schema.spec.ts.snap
│   │   │   │   ├── compiler.spec.ts
│   │   │   │   ├── patches.spec.ts
│   │   │   │   ├── schema.spec.ts
│   │   │   │   ├── server-validate.spec.ts
│   │   │   │   ├── shared.spec.ts
│   │   │   │   ├── transformer.spec.ts
│   │   │   │   └── traverse.spec.ts
│   │   │   ├── compiler.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── patches.ts
│   │   │   ├── polyfills
│   │   │   │   ├── index.ts
│   │   │   │   └── SPECIFICATION_1_0.ts
│   │   │   ├── schema.ts
│   │   │   ├── shared.ts
│   │   │   ├── transformer.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── next
│   │   ├── __tests__
│   │   │   ├── moment.spec.ts
│   │   │   └── sideEffects.spec.ts
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── build-style.ts
│   │   ├── create-style.ts
│   │   ├── docs
│   │   │   ├── components
│   │   │   │   ├── ArrayCards.md
│   │   │   │   ├── ArrayCards.zh-CN.md
│   │   │   │   ├── ArrayCollapse.md
│   │   │   │   ├── ArrayCollapse.zh-CN.md
│   │   │   │   ├── ArrayItems.md
│   │   │   │   ├── ArrayItems.zh-CN.md
│   │   │   │   ├── ArrayTable.md
│   │   │   │   ├── ArrayTable.zh-CN.md
│   │   │   │   ├── Cascader.md
│   │   │   │   ├── Cascader.zh-CN.md
│   │   │   │   ├── Checkbox.md
│   │   │   │   ├── Checkbox.zh-CN.md
│   │   │   │   ├── DatePicker.md
│   │   │   │   ├── DatePicker.zh-CN.md
│   │   │   │   ├── DatePicker2.md
│   │   │   │   ├── DatePicker2.zh-CN.md
│   │   │   │   ├── Editable.md
│   │   │   │   ├── Editable.zh-CN.md
│   │   │   │   ├── Form.md
│   │   │   │   ├── Form.zh-CN.md
│   │   │   │   ├── FormButtonGroup.md
│   │   │   │   ├── FormButtonGroup.zh-CN.md
│   │   │   │   ├── FormCollapse.md
│   │   │   │   ├── FormCollapse.zh-CN.md
│   │   │   │   ├── FormDialog.md
│   │   │   │   ├── FormDialog.zh-CN.md
│   │   │   │   ├── FormDrawer.md
│   │   │   │   ├── FormDrawer.zh-CN.md
│   │   │   │   ├── FormGrid.md
│   │   │   │   ├── FormGrid.zh-CN.md
│   │   │   │   ├── FormItem.md
│   │   │   │   ├── FormItem.zh-CN.md
│   │   │   │   ├── FormLayout.md
│   │   │   │   ├── FormLayout.zh-CN.md
│   │   │   │   ├── FormStep.md
│   │   │   │   ├── FormStep.zh-CN.md
│   │   │   │   ├── FormTab.md
│   │   │   │   ├── FormTab.zh-CN.md
│   │   │   │   ├── index.md
│   │   │   │   ├── index.zh-CN.md
│   │   │   │   ├── Input.md
│   │   │   │   ├── Input.zh-CN.md
│   │   │   │   ├── NumberPicker.md
│   │   │   │   ├── NumberPicker.zh-CN.md
│   │   │   │   ├── Password.md
│   │   │   │   ├── Password.zh-CN.md
│   │   │   │   ├── PreviewText.md
│   │   │   │   ├── PreviewText.zh-CN.md
│   │   │   │   ├── Radio.md
│   │   │   │   ├── Radio.zh-CN.md
│   │   │   │   ├── Reset.md
│   │   │   │   ├── Reset.zh-CN.md
│   │   │   │   ├── Select.md
│   │   │   │   ├── Select.zh-CN.md
│   │   │   │   ├── SelectTable.md
│   │   │   │   ├── SelectTable.zh-CN.md
│   │   │   │   ├── Space.md
│   │   │   │   ├── Space.zh-CN.md
│   │   │   │   ├── Submit.md
│   │   │   │   ├── Submit.zh-CN.md
│   │   │   │   ├── Switch.md
│   │   │   │   ├── Switch.zh-CN.md
│   │   │   │   ├── TimePicker.md
│   │   │   │   ├── TimePicker.zh-CN.md
│   │   │   │   ├── TimePicker2.md
│   │   │   │   ├── TimePicker2.zh-CN.md
│   │   │   │   ├── Transfer.md
│   │   │   │   ├── Transfer.zh-CN.md
│   │   │   │   ├── TreeSelect.md
│   │   │   │   ├── TreeSelect.zh-CN.md
│   │   │   │   ├── Upload.md
│   │   │   │   └── Upload.zh-CN.md
│   │   │   ├── index.md
│   │   │   └── index.zh-CN.md
│   │   ├── LESENCE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __builtins__
│   │   │   │   ├── empty.tsx
│   │   │   │   ├── hooks
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── useClickAway.ts
│   │   │   │   │   └── usePrefixCls.ts
│   │   │   │   ├── icons.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── loading.ts
│   │   │   │   ├── mapSize.ts
│   │   │   │   ├── mapStatus.ts
│   │   │   │   ├── moment.ts
│   │   │   │   ├── pickDataProps.ts
│   │   │   │   ├── portal.tsx
│   │   │   │   ├── render.ts
│   │   │   │   └── toArray.ts
│   │   │   ├── array-base
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-cards
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-collapse
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-items
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── array-table
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── cascader
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── checkbox
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── date-picker
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── date-picker2
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── editable
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── form
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-button-group
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-collapse
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-dialog
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-drawer
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-grid
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-item
│   │   │   │   ├── animation.scss
│   │   │   │   ├── grid.scss
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   ├── scss
│   │   │   │   │   └── variable.scss
│   │   │   │   └── style.ts
│   │   │   ├── form-layout
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   ├── style.ts
│   │   │   │   └── useResponsiveFormLayout.ts
│   │   │   ├── form-step
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── form-tab
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── index.ts
│   │   │   ├── input
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── main.scss
│   │   │   ├── number-picker
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── password
│   │   │   │   ├── index.tsx
│   │   │   │   ├── PasswordStrength.tsx
│   │   │   │   └── style.ts
│   │   │   ├── preview-text
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── radio
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── reset
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── select
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── select-table
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   ├── style.ts
│   │   │   │   ├── useCheckSlackly.tsx
│   │   │   │   ├── useFilterOptions.tsx
│   │   │   │   ├── useFlatOptions.tsx
│   │   │   │   ├── useSize.tsx
│   │   │   │   ├── useTitleAddon.tsx
│   │   │   │   └── utils.ts
│   │   │   ├── space
│   │   │   │   ├── index.tsx
│   │   │   │   ├── main.scss
│   │   │   │   └── style.ts
│   │   │   ├── style.ts
│   │   │   ├── submit
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── switch
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── time-picker
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── time-picker2
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── transfer
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   ├── tree-select
│   │   │   │   ├── index.tsx
│   │   │   │   └── style.ts
│   │   │   └── upload
│   │   │       ├── index.tsx
│   │   │       ├── main.scss
│   │   │       ├── placeholder.ts
│   │   │       └── style.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── path
│   │   ├── .npmignore
│   │   ├── benchmark.ts
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── accessor.spec.ts
│   │   │   │   ├── basic.spec.ts
│   │   │   │   ├── match.spec.ts
│   │   │   │   ├── parser.spec.ts
│   │   │   │   └── share.spec.ts
│   │   │   ├── contexts.ts
│   │   │   ├── destructor.ts
│   │   │   ├── index.ts
│   │   │   ├── matcher.ts
│   │   │   ├── parser.ts
│   │   │   ├── shared.ts
│   │   │   ├── tokenizer.ts
│   │   │   ├── tokens.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── react
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── docs
│   │   │   ├── api
│   │   │   │   ├── components
│   │   │   │   │   ├── ArrayField.md
│   │   │   │   │   ├── ArrayField.zh-CN.md
│   │   │   │   │   ├── ExpressionScope.md
│   │   │   │   │   ├── ExpressionScope.zh-CN.md
│   │   │   │   │   ├── Field.md
│   │   │   │   │   ├── Field.zh-CN.md
│   │   │   │   │   ├── FormConsumer.md
│   │   │   │   │   ├── FormConsumer.zh-CN.md
│   │   │   │   │   ├── FormProvider.md
│   │   │   │   │   ├── FormProvider.zh-CN.md
│   │   │   │   │   ├── ObjectField.md
│   │   │   │   │   ├── ObjectField.zh-CN.md
│   │   │   │   │   ├── RecordScope.md
│   │   │   │   │   ├── RecordScope.zh-CN.md
│   │   │   │   │   ├── RecordsScope.md
│   │   │   │   │   ├── RecordsScope.zh-CN.md
│   │   │   │   │   ├── RecursionField.md
│   │   │   │   │   ├── RecursionField.zh-CN.md
│   │   │   │   │   ├── SchemaField.md
│   │   │   │   │   ├── SchemaField.zh-CN.md
│   │   │   │   │   ├── VoidField.md
│   │   │   │   │   └── VoidField.zh-CN.md
│   │   │   │   ├── hooks
│   │   │   │   │   ├── useExpressionScope.md
│   │   │   │   │   ├── useExpressionScope.zh-CN.md
│   │   │   │   │   ├── useField.md
│   │   │   │   │   ├── useField.zh-CN.md
│   │   │   │   │   ├── useFieldSchema.md
│   │   │   │   │   ├── useFieldSchema.zh-CN.md
│   │   │   │   │   ├── useForm.md
│   │   │   │   │   ├── useForm.zh-CN.md
│   │   │   │   │   ├── useFormEffects.md
│   │   │   │   │   ├── useFormEffects.zh-CN.md
│   │   │   │   │   ├── useParentForm.md
│   │   │   │   │   └── useParentForm.zh-CN.md
│   │   │   │   └── shared
│   │   │   │       ├── connect.md
│   │   │   │       ├── connect.zh-CN.md
│   │   │   │       ├── context.md
│   │   │   │       ├── context.zh-CN.md
│   │   │   │       ├── mapProps.md
│   │   │   │       ├── mapProps.zh-CN.md
│   │   │   │       ├── mapReadPretty.md
│   │   │   │       ├── mapReadPretty.zh-CN.md
│   │   │   │       ├── observer.md
│   │   │   │       ├── observer.zh-CN.md
│   │   │   │       ├── Schema.md
│   │   │   │       └── Schema.zh-CN.md
│   │   │   ├── guide
│   │   │   │   ├── architecture.md
│   │   │   │   ├── architecture.zh-CN.md
│   │   │   │   ├── concept.md
│   │   │   │   ├── concept.zh-CN.md
│   │   │   │   ├── index.md
│   │   │   │   └── index.zh-CN.md
│   │   │   ├── index.md
│   │   │   └── index.zh-CN.md
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── expression.spec.tsx
│   │   │   │   ├── field.spec.tsx
│   │   │   │   ├── form.spec.tsx
│   │   │   │   ├── schema.json.spec.tsx
│   │   │   │   ├── schema.markup.spec.tsx
│   │   │   │   └── shared.tsx
│   │   │   ├── components
│   │   │   │   ├── ArrayField.tsx
│   │   │   │   ├── ExpressionScope.tsx
│   │   │   │   ├── Field.tsx
│   │   │   │   ├── FormConsumer.tsx
│   │   │   │   ├── FormProvider.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── ObjectField.tsx
│   │   │   │   ├── ReactiveField.tsx
│   │   │   │   ├── RecordScope.tsx
│   │   │   │   ├── RecordsScope.tsx
│   │   │   │   ├── RecursionField.tsx
│   │   │   │   ├── SchemaField.tsx
│   │   │   │   └── VoidField.tsx
│   │   │   ├── global.d.ts
│   │   │   ├── hooks
│   │   │   │   ├── index.ts
│   │   │   │   ├── useAttach.ts
│   │   │   │   ├── useExpressionScope.ts
│   │   │   │   ├── useField.ts
│   │   │   │   ├── useFieldSchema.ts
│   │   │   │   ├── useForm.ts
│   │   │   │   ├── useFormEffects.ts
│   │   │   │   └── useParentForm.ts
│   │   │   ├── index.ts
│   │   │   ├── shared
│   │   │   │   ├── connect.ts
│   │   │   │   ├── context.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── render.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── reactive
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── benchmark.ts
│   │   ├── docs
│   │   │   ├── api
│   │   │   │   ├── action.md
│   │   │   │   ├── action.zh-CN.md
│   │   │   │   ├── autorun.md
│   │   │   │   ├── autorun.zh-CN.md
│   │   │   │   ├── batch.md
│   │   │   │   ├── batch.zh-CN.md
│   │   │   │   ├── define.md
│   │   │   │   ├── define.zh-CN.md
│   │   │   │   ├── hasCollected.md
│   │   │   │   ├── hasCollected.zh-CN.md
│   │   │   │   ├── markObservable.md
│   │   │   │   ├── markObservable.zh-CN.md
│   │   │   │   ├── markRaw.md
│   │   │   │   ├── markRaw.zh-CN.md
│   │   │   │   ├── model.md
│   │   │   │   ├── model.zh-CN.md
│   │   │   │   ├── observable.md
│   │   │   │   ├── observable.zh-CN.md
│   │   │   │   ├── observe.md
│   │   │   │   ├── observe.zh-CN.md
│   │   │   │   ├── raw.md
│   │   │   │   ├── raw.zh-CN.md
│   │   │   │   ├── react
│   │   │   │   │   ├── observer.md
│   │   │   │   │   └── observer.zh-CN.md
│   │   │   │   ├── reaction.md
│   │   │   │   ├── reaction.zh-CN.md
│   │   │   │   ├── toJS.md
│   │   │   │   ├── toJS.zh-CN.md
│   │   │   │   ├── tracker.md
│   │   │   │   ├── tracker.zh-CN.md
│   │   │   │   ├── typeChecker.md
│   │   │   │   ├── typeChecker.zh-CN.md
│   │   │   │   ├── untracked.md
│   │   │   │   ├── untracked.zh-CN.md
│   │   │   │   └── vue
│   │   │   │       ├── observer.md
│   │   │   │       └── observer.zh-CN.md
│   │   │   ├── guide
│   │   │   │   ├── best-practice.md
│   │   │   │   ├── best-practice.zh-CN.md
│   │   │   │   ├── concept.md
│   │   │   │   ├── concept.zh-CN.md
│   │   │   │   ├── index.md
│   │   │   │   └── index.zh-CN.md
│   │   │   ├── index.md
│   │   │   └── index.zh-CN.md
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── action.spec.ts
│   │   │   │   ├── annotations.spec.ts
│   │   │   │   ├── array.spec.ts
│   │   │   │   ├── autorun.spec.ts
│   │   │   │   ├── batch.spec.ts
│   │   │   │   ├── collections-map.spec.ts
│   │   │   │   ├── collections-set.spec.ts
│   │   │   │   ├── collections-weakmap.spec.ts
│   │   │   │   ├── collections-weakset.spec.ts
│   │   │   │   ├── define.spec.ts
│   │   │   │   ├── externals.spec.ts
│   │   │   │   ├── hasCollected.spec.ts
│   │   │   │   ├── observable.spec.ts
│   │   │   │   ├── observe.spec.ts
│   │   │   │   ├── tracker.spec.ts
│   │   │   │   └── untracked.spec.ts
│   │   │   ├── action.ts
│   │   │   ├── annotations
│   │   │   │   ├── box.ts
│   │   │   │   ├── computed.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── observable.ts
│   │   │   │   ├── ref.ts
│   │   │   │   └── shallow.ts
│   │   │   ├── array.ts
│   │   │   ├── autorun.ts
│   │   │   ├── batch.ts
│   │   │   ├── checkers.ts
│   │   │   ├── environment.ts
│   │   │   ├── externals.ts
│   │   │   ├── global.d.ts
│   │   │   ├── handlers.ts
│   │   │   ├── index.ts
│   │   │   ├── internals.ts
│   │   │   ├── model.ts
│   │   │   ├── observable.ts
│   │   │   ├── observe.ts
│   │   │   ├── reaction.ts
│   │   │   ├── tracker.ts
│   │   │   ├── tree.ts
│   │   │   ├── types.ts
│   │   │   └── untracked.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── reactive-react
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── hooks
│   │   │   │   ├── index.ts
│   │   │   │   ├── useCompatEffect.ts
│   │   │   │   ├── useCompatFactory.ts
│   │   │   │   ├── useDidUpdate.ts
│   │   │   │   ├── useForceUpdate.ts
│   │   │   │   ├── useLayoutEffect.ts
│   │   │   │   └── useObserver.ts
│   │   │   ├── index.ts
│   │   │   ├── observer.ts
│   │   │   ├── shared
│   │   │   │   ├── gc.ts
│   │   │   │   ├── global.ts
│   │   │   │   ├── immediate.ts
│   │   │   │   └── index.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── reactive-test-cases-for-react18
│   │   ├── .npmignore
│   │   ├── .umirc.js
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── index.js
│   │   │   └── MySlowList.js
│   │   ├── template.ejs
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   ├── webpack.base.ts
│   │   ├── webpack.dev.ts
│   │   └── webpack.prod.ts
│   ├── reactive-vue
│   │   ├── .npmignore
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   └── observer.spec.ts
│   │   │   ├── hooks
│   │   │   │   ├── index.ts
│   │   │   │   └── useObserver.ts
│   │   │   ├── index.ts
│   │   │   ├── observer
│   │   │   │   ├── collectData.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── observerInVue2.ts
│   │   │   │   └── observerInVue3.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── shared
│   │   ├── .npmignore
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   └── index.spec.ts
│   │   │   ├── array.ts
│   │   │   ├── case.ts
│   │   │   ├── checkers.ts
│   │   │   ├── clone.ts
│   │   │   ├── compare.ts
│   │   │   ├── defaults.ts
│   │   │   ├── deprecate.ts
│   │   │   ├── global.ts
│   │   │   ├── index.ts
│   │   │   ├── instanceof.ts
│   │   │   ├── isEmpty.ts
│   │   │   ├── merge.ts
│   │   │   ├── middleware.ts
│   │   │   ├── path.ts
│   │   │   ├── string.ts
│   │   │   ├── subscribable.ts
│   │   │   └── uid.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── validator
│   │   ├── .npmignore
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── rollup.config.js
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── parser.spec.ts
│   │   │   │   ├── registry.spec.ts
│   │   │   │   └── validator.spec.ts
│   │   │   ├── formats.ts
│   │   │   ├── index.ts
│   │   │   ├── locale.ts
│   │   │   ├── parser.ts
│   │   │   ├── registry.ts
│   │   │   ├── rules.ts
│   │   │   ├── template.ts
│   │   │   ├── types.ts
│   │   │   └── validator.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   └── vue
│       ├── .npmignore
│       ├── bin
│       │   ├── formily-vue-fix.js
│       │   └── formily-vue-switch.js
│       ├── docs
│       │   ├── .vuepress
│       │   │   ├── components
│       │   │   │   ├── createCodeSandBox.js
│       │   │   │   ├── dumi-previewer.vue
│       │   │   │   └── highlight.js
│       │   │   ├── config.js
│       │   │   ├── enhanceApp.js
│       │   │   └── styles
│       │   │       └── index.styl
│       │   ├── api
│       │   │   ├── components
│       │   │   │   ├── array-field.md
│       │   │   │   ├── expression-scope.md
│       │   │   │   ├── field.md
│       │   │   │   ├── form-consumer.md
│       │   │   │   ├── form-provider.md
│       │   │   │   ├── object-field.md
│       │   │   │   ├── recursion-field-with-component.md
│       │   │   │   ├── recursion-field.md
│       │   │   │   ├── schema-field-with-schema.md
│       │   │   │   ├── schema-field.md
│       │   │   │   └── void-field.md
│       │   │   ├── hooks
│       │   │   │   ├── use-field-schema.md
│       │   │   │   ├── use-field.md
│       │   │   │   ├── use-form-effects.md
│       │   │   │   ├── use-form.md
│       │   │   │   └── use-parent-form.md
│       │   │   └── shared
│       │   │       ├── connect.md
│       │   │       ├── injections.md
│       │   │       ├── map-props.md
│       │   │       ├── map-read-pretty.md
│       │   │       ├── observer.md
│       │   │       └── schema.md
│       │   ├── demos
│       │   │   ├── api
│       │   │   │   ├── components
│       │   │   │   │   ├── array-field.vue
│       │   │   │   │   ├── expression-scope.vue
│       │   │   │   │   ├── field.vue
│       │   │   │   │   ├── form-consumer.vue
│       │   │   │   │   ├── form-provider.vue
│       │   │   │   │   ├── object-field.vue
│       │   │   │   │   ├── recursion-field-with-component.vue
│       │   │   │   │   ├── recursion-field.vue
│       │   │   │   │   ├── schema-field-with-schema.vue
│       │   │   │   │   ├── schema-field.vue
│       │   │   │   │   └── void-field.vue
│       │   │   │   ├── hooks
│       │   │   │   │   ├── use-field-schema.vue
│       │   │   │   │   ├── use-field.vue
│       │   │   │   │   ├── use-form-effects.vue
│       │   │   │   │   ├── use-form.vue
│       │   │   │   │   └── use-parent-form.vue
│       │   │   │   └── shared
│       │   │   │       ├── connect.vue
│       │   │   │       ├── map-props.vue
│       │   │   │       ├── map-read-pretty.vue
│       │   │   │       └── observer.vue
│       │   │   ├── index.vue
│       │   │   └── questions
│       │   │       ├── default-slot.vue
│       │   │       ├── events.vue
│       │   │       ├── named-slot.vue
│       │   │       └── scoped-slot.vue
│       │   ├── guide
│       │   │   ├── architecture.md
│       │   │   ├── concept.md
│       │   │   └── README.md
│       │   ├── questions
│       │   │   └── README.md
│       │   └── README.md
│       ├── package.json
│       ├── README.md
│       ├── rollup.config.js
│       ├── scripts
│       │   ├── postinstall.js
│       │   ├── switch-cli.js
│       │   └── utils.js
│       ├── src
│       │   ├── __tests__
│       │   │   ├── expression.scope.spec.ts
│       │   │   ├── field.spec.ts
│       │   │   ├── form.spec.ts
│       │   │   ├── schema.json.spec.ts
│       │   │   ├── schema.markup.spec.ts
│       │   │   ├── shared.spec.ts
│       │   │   └── utils.spec.ts
│       │   ├── components
│       │   │   ├── ArrayField.ts
│       │   │   ├── ExpressionScope.ts
│       │   │   ├── Field.ts
│       │   │   ├── FormConsumer.ts
│       │   │   ├── FormProvider.ts
│       │   │   ├── index.ts
│       │   │   ├── ObjectField.ts
│       │   │   ├── ReactiveField.ts
│       │   │   ├── RecursionField.ts
│       │   │   ├── SchemaField.ts
│       │   │   └── VoidField.ts
│       │   ├── global.d.ts
│       │   ├── hooks
│       │   │   ├── index.ts
│       │   │   ├── useAttach.ts
│       │   │   ├── useField.ts
│       │   │   ├── useFieldSchema.ts
│       │   │   ├── useForm.ts
│       │   │   ├── useFormEffects.ts
│       │   │   ├── useInjectionCleaner.ts
│       │   │   └── useParentForm.ts
│       │   ├── index.ts
│       │   ├── shared
│       │   │   ├── connect.ts
│       │   │   ├── context.ts
│       │   │   ├── createForm.ts
│       │   │   ├── fragment.ts
│       │   │   ├── h.ts
│       │   │   └── index.ts
│       │   ├── types
│       │   │   └── index.ts
│       │   ├── utils
│       │   │   ├── formatVNodeData.ts
│       │   │   ├── getFieldProps.ts
│       │   │   ├── getRawComponent.ts
│       │   │   └── resolveSchemaProps.ts
│       │   └── vue2-components.ts
│       ├── tsconfig.build.json
│       ├── tsconfig.json
│       └── tsconfig.types.json
├── README.md
├── README.zh-cn.md
├── scripts
│   ├── build-style
│   │   ├── buildAllStyles.ts
│   │   ├── copy.ts
│   │   ├── helper.ts
│   │   └── index.ts
│   └── rollup.base.js
├── tsconfig.build.json
├── tsconfig.jest.json
├── tsconfig.json
└── yarn.lock
```

# Files

--------------------------------------------------------------------------------
/.yarnrc:
--------------------------------------------------------------------------------

```
registry "https://registry.yarnpkg.com"
```

--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------

```javascript
module.exports = {
  semi: false,
  tabWidth: 2,
  singleQuote: true,
}
```

--------------------------------------------------------------------------------
/devtools/chrome-extension/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/antd/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/benchmark/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/core/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/grid/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/json-schema/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/next/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/path/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/react/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/reactive-react/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/reactive-test-cases-for-react18/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/reactive-vue/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/reactive/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/shared/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/validator/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/element/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
vue.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/packages/vue/.npmignore:
--------------------------------------------------------------------------------

```
node_modules
*.log
build
docs
doc-site
__tests__
.eslintrc
jest.config.js
vue.config.js
tsconfig.json
.umi
src
```

--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------

```
node_modules
lib
dist
build
coverage
expected
website
gh-pages
weex
build.ts
packages/vue
packages/element
esm
doc-site
public
package
```

--------------------------------------------------------------------------------
/.codecov.yml:
--------------------------------------------------------------------------------

```yaml
coverage:
  status:
    project:
      default:
        threshold: 0.1%
    patch:
      default:
        threshold: 0.1%
        target: 95%

```

--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------

```
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2

[*.gradle]
indent_size = 4
```

--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------

```
*~
*.swp
.DS_Store
.tea
npm-debug.log
lerna-debug.log
npm-debug.log*
package-lock.json
lib/
esm/
temp_esm/
dist/
type-artefacts/
build/
coverage/
node_modules/
examples/test
.idea/
TODO.md
tsconfig.tsbuildinfo
package/
package.zip
.umi
.umi-production
.cjsescache
doc-site
.lerna-changelog
.history
.lint-report.log

```

--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------

```
{
  "env": {
    "node": true
  },
  "extends": [
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier/@typescript-eslint"
  ],
  "globals": {
    "sleep": true,
    "prettyFormat": true
  },
  "parserOptions": {
    "ecmaVersion": 10,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint", "react", "prettier", "markdown"],
  "settings": {
    "react": {
      "version": "detect"
    }
  },
  "rules": {
    "@typescript-eslint/explicit-module-boundary-types": "off",
    "@typescript-eslint/no-var-requires": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "@typescript-eslint/no-unused-vars": "error",
    "@typescript-eslint/ban-ts-comment": "off",
    "react/no-unescaped-entities": "off",
    "react/prop-types": "off"
  },
  "overrides": [
    {
      "files": ["**/*.md"],
      "processor": "markdown/markdown"
    },
    {
      "files": ["**/*.md/*.{jsx,tsx}"],
      "rules": {
        "@typescript-eslint/no-unused-vars": "error",
        "no-unused-vars": "error",
        "no-console": "off",
        "react/display-name": "off",
        "react/prop-types": "off"
      }
    },
    {
      "files": ["**/*.md/*.{js,ts}"],
      "rules": {
        "@typescript-eslint/no-unused-vars": "off",
        "no-unused-vars": "off",
        "no-console": "off",
        "react/display-name": "off",
        "react/prop-types": "off"
      }
    }
  ]
}

```

--------------------------------------------------------------------------------
/packages/benchmark/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'site',
  logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Formily',
  hash: true,
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  navs: {
    'en-US': [
      {
        title: 'Guide',
        path: '/guide',
      },
      {
        title: 'API',
        path: '/api',
      },
      {
        title: 'Home Site',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'zh-CN': [
      {
        title: '指南',
        path: '/zh-CN/guide',
      },
      {
        title: 'API',
        path: '/zh-CN/api',
      },
      {
        title: '主站',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  links: [
    {
      rel: 'stylesheet',
      href: 'https://esm.sh/[email protected]/dist/antd.css',
    },
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      height: 60px !important;
      width: 150px !important;
      padding-left:0 !important;
      color: transparent !important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
    }
    nav a{
      text-decoration: none !important;
    }
    `,
  ],
  menus: {
    '/guide': [
      {
        title: 'Introduction',
        path: '/guide',
      },
      { title: 'Architecture', path: '/guide/architecture' },
      { title: 'Concept', path: '/guide/concept' },
    ],
    '/zh-CN/guide': [
      {
        title: '介绍',
        path: '/guide',
      },
      { title: '核心架构', path: '/zh-CN/guide/architecture' },
      { title: '核心概念', path: '/zh-CN/guide/concept' },
    ],
  },
}

```

--------------------------------------------------------------------------------
/packages/reactive-test-cases-for-react18/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'site',
  logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Formily',
  hash: true,
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  navs: {
    'en-US': [
      {
        title: 'Guide',
        path: '/guide',
      },
      {
        title: 'API',
        path: '/api',
      },
      {
        title: 'Home Site',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'zh-CN': [
      {
        title: '指南',
        path: '/zh-CN/guide',
      },
      {
        title: 'API',
        path: '/zh-CN/api',
      },
      {
        title: '主站',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  links: [
    {
      rel: 'stylesheet',
      href: 'https://esm.sh/[email protected]/dist/antd.css',
    },
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      height: 60px !important;
      width: 150px !important;
      padding-left:0 !important;
      color: transparent !important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
    }
    nav a{
      text-decoration: none !important;
    }
    `,
  ],
  menus: {
    '/guide': [
      {
        title: 'Introduction',
        path: '/guide',
      },
      { title: 'Architecture', path: '/guide/architecture' },
      { title: 'Concept', path: '/guide/concept' },
    ],
    '/zh-CN/guide': [
      {
        title: '介绍',
        path: '/guide',
      },
      { title: '核心架构', path: '/zh-CN/guide/architecture' },
      { title: '核心概念', path: '/zh-CN/guide/concept' },
    ],
  },
}

```

--------------------------------------------------------------------------------
/.all-contributorsrc:
--------------------------------------------------------------------------------

```
{
  "projectName": "formily",
  "projectOwner": "alibaba",
  "repoType": "github",
  "repoHost": "https://github.com",
  "files": [
    "README.md"
  ],
  "imageSize": 100,
  "commit": false,
  "contributors": [
    {
      "login": "janryWang",
      "name": "Janry",
      "avatar_url": "https://avatars0.githubusercontent.com/u/4060976?v=4",
      "profile": "https://github.com/janryWang",
      "contributions": [
        "design"
      ]
    },
    {
      "login": "cnt1992",
      "name": "SkyCai",
      "avatar_url": "https://avatars1.githubusercontent.com/u/3118988?v=4",
      "profile": "http://cnt1992.github.io",
      "contributions": [
        "design"
      ]
    },
    {
      "login": "yujiangshui",
      "name": "Harry Yu",
      "avatar_url": "https://avatars3.githubusercontent.com/u/2942913?v=4",
      "profile": "https://www.linkedin.com/in/harry-yu-0a931a69/",
      "contributions": [
        "doc",
        "code"
      ]
    },
    {
      "login": "zsirfs",
      "name": "zsir",
      "avatar_url": "https://avatars2.githubusercontent.com/u/22249411?v=4",
      "profile": "https://www.luoyangfu.com",
      "contributions": [
        "code"
      ]
    },
    {
      "login": "monkindey",
      "name": "Kiho · Cham",
      "avatar_url": "https://avatars0.githubusercontent.com/u/6913898?v=4",
      "profile": "http://www.monkindey.xyz/",
      "contributions": [
        "code",
        "doc"
      ]
    },
    {
      "login": "whj1995",
      "name": "Hongjiang Wu",
      "avatar_url": "https://avatars2.githubusercontent.com/u/22634735?v=4",
      "profile": "http://whj1995.xyz",
      "contributions": [
        "doc"
      ]
    },
    {
      "login": "anyuxuan",
      "name": "合木",
      "avatar_url": "https://avatars3.githubusercontent.com/u/24931869?v=4",
      "profile": "https://github.com/anyuxuan",
      "contributions": [
        "code"
      ]
    },
    {
      "login": "Azath0th",
      "name": "Chen YuBen",
      "avatar_url": "https://avatars2.githubusercontent.com/u/18497361?v=4",
      "profile": "https://github.com/Azath0th",
      "contributions": [
        "code"
      ]
    },
    {
      "login": "HarrisFeng",
      "name": "Harris Feng",
      "avatar_url": "https://avatars1.githubusercontent.com/u/7928957?v=4",
      "profile": "https://github.com/HarrisFeng",
      "contributions": [
        "code"
      ]
    }
  ],
  "contributorsPerLine": 7
}

```

--------------------------------------------------------------------------------
/devtools/.eslintrc:
--------------------------------------------------------------------------------

```
{
  "parser": "@typescript-eslint/parser",
  "extends": [
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier/@typescript-eslint"
  ],
  "env": {
    "node": true
  },
  "plugins": ["@typescript-eslint", "react", "prettier", "markdown"],
  "parserOptions": {
    "sourceType": "module",
    "ecmaVersion": 10,
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "settings": {
    "react": {
      "version": "detect"
    }
  },
  "rules": {
    "prettier/prettier": 0,
    // don't force es6 functions to include space before paren
    "space-before-function-paren": 0,
    "react/prop-types": 0,
    "react/no-find-dom-node": 0,
    "react/display-name": 0,
    // allow specifying true explicitly for boolean props
    "react/jsx-boolean-value": 0,
    "react/no-did-update-set-state": 0,
    // maybe we should no-public
    "@typescript-eslint/explicit-member-accessibility": 0,
    "@typescript-eslint/interface-name-prefix": 0,
    "@typescript-eslint/no-explicit-any": 0,
    "@typescript-eslint/explicit-function-return-type": 0,
    "@typescript-eslint/no-parameter-properties": 0,
    "@typescript-eslint/array-type": 0,
    "@typescript-eslint/no-object-literal-type-assertion": 0,
    "@typescript-eslint/no-use-before-define": 0,
    "@typescript-eslint/no-unused-vars": 1,
    "@typescript-eslint/no-namespace": 0,
    "@typescript-eslint/ban-types": 0,
    "@typescript-eslint/adjacent-overload-signatures": 0,
    "@typescript-eslint/explicit-module-boundary-types": 0,
    "@typescript-eslint/triple-slash-reference": 0,
    "@typescript-eslint/no-empty-function": 0,
    "no-console": [
      "error",
      {
        "allow": ["warn", "error", "info"]
      }
    ],
    "prefer-const": 0,
    "no-var": 1,
    "prefer-rest-params": 0
  },
  "overrides": [
    {
      "files": ["**/*.md.{jsx,tsx}"],
      "processor": "markdown/markdown"
    },
    {
      "files": ["**/*.md/*.{jsx,tsx}"],
      "rules": {
        "@typescript-eslint/no-unused-vars": "error",
        "no-unused-vars": "error",
        "no-console": "off",
        "react/display-name": "off",
        "react/prop-types": "off"
      }
    },
    {
      "files": ["**/*.md/*.{js,ts}"],
      "rules": {
        "@typescript-eslint/no-unused-vars": "off",
        "no-unused-vars": "off",
        "no-console": "off",
        "react/display-name": "off",
        "react/prop-types": "off"
      }
    }
  ]
}

```

--------------------------------------------------------------------------------
/packages/.eslintrc:
--------------------------------------------------------------------------------

```
{
  "parser": "@typescript-eslint/parser",
  "extends": [
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier/@typescript-eslint"
  ],
  "env": {
    "node": true
  },
  "plugins": ["@typescript-eslint", "react", "prettier", "markdown"],
  "parserOptions": {
    "sourceType": "module",
    "ecmaVersion": 10,
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "settings": {
    "react": {
      "version": "detect"
    }
  },
  "rules": {
    "prettier/prettier": 0,
    // don't force es6 functions to include space before paren
    "space-before-function-paren": 0,
    "react/prop-types": 0,
    "react/no-find-dom-node": 0,
    "react/display-name": 0,
    // allow specifying true explicitly for boolean props
    "react/jsx-boolean-value": 0,
    "react/no-did-update-set-state": 0,
    "react/no-unescaped-entities": "off",
    // maybe we should no-public
    "@typescript-eslint/explicit-member-accessibility": 0,
    "@typescript-eslint/interface-name-prefix": 0,
    "@typescript-eslint/no-explicit-any": 0,
    "@typescript-eslint/explicit-function-return-type": 0,
    "@typescript-eslint/no-parameter-properties": 0,
    "@typescript-eslint/array-type": 0,
    "@typescript-eslint/no-object-literal-type-assertion": 0,
    "@typescript-eslint/no-use-before-define": 0,
    "@typescript-eslint/no-unused-vars": 1,
    "@typescript-eslint/no-namespace": 0,
    "@typescript-eslint/ban-ts-comment": 0,
    "@typescript-eslint/ban-types": 0,
    "@typescript-eslint/adjacent-overload-signatures": 0,
    "@typescript-eslint/explicit-module-boundary-types": 0,
    "@typescript-eslint/triple-slash-reference": 0,
    "@typescript-eslint/no-empty-function": 0,
    "no-console": [
      "error",
      {
        "allow": ["warn", "error", "info"]
      }
    ],
    "prefer-const": 0,
    "no-var": 1,
    "prefer-rest-params": 0
  },
  "overrides": [
    {
      "files": ["**/*.md.{jsx,tsx}"],
      "processor": "markdown/markdown"
    },
    {
      "files": ["**/*.md/*.{jsx,tsx}"],
      "rules": {
        "@typescript-eslint/no-unused-vars": "error",
        "no-unused-vars": "error",
        "no-console": "off",
        "react/display-name": "off",
        "react/prop-types": "off"
      }
    },
    {
      "files": ["**/*.md/*.{js,ts}"],
      "rules": {
        "@typescript-eslint/no-unused-vars": "off",
        "no-unused-vars": "off",
        "no-console": "off",
        "react/display-name": "off",
        "react/prop-types": "off"
      }
    }
  ]
}

```

--------------------------------------------------------------------------------
/packages/reactive-react/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'doc',
  logo: 'https://img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Formily',
  hash: true,
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  headScripts: [
    `
    function loadAd(){
      var header = document.querySelector('.__dumi-default-layout-content .markdown h1')
      if(header && !header.querySelector('#_carbonads_js')){
        var script = document.createElement('script')
        script.src = '//cdn.carbonads.com/carbon.js?serve=CEAICK3M&placement=formilyjsorg'
        script.id = '_carbonads_js'
        script.classList.add('head-ad')
        header.appendChild(script)
      }
    }
    var request = null
    var observer = new MutationObserver(function(){
      cancelIdleCallback(request)
      request = requestIdleCallback(loadAd)
    })
    document.addEventListener('DOMContentLoaded',function(){
      loadAd()
      observer.observe(
        document.body,
        {
          childList:true,
          subtree:true
        }
      )
    })
    `,
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      background-size: 140px!important;
      background-position: center left!important;
      background-repeat: no-repeat!important;
      padding-left: 150px!important;/*可根据title的宽度调整*/
      font-size: 22px!important;
      color: #000!important;
      font-weight: lighter!important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
      padding: 120px 0 !important;
    }
    .__dumi-default-layout-hero h1{
      color:#45124e !important;
      font-size:80px !important;
      padding-bottom: 30px !important;
    }
    .__dumi-default-dark-switch {
      display:none
    }
    nav a{
      text-decoration: none !important;
    }
    #carbonads * {
      margin: initial;
      padding: initial;
    }
    #carbonads {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial,
        sans-serif;
    }
    #carbonads {
      display: flex;
      max-width: 330px;
      background-color: hsl(0, 0%, 98%);
      box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1);
      z-index: 100;
      float:right;
    }
    #carbonads a {
      color: inherit;
      text-decoration: none;
    }
    #carbonads a:hover {
      color: inherit;
    }
    #carbonads span {
      position: relative;
      display: block;
      overflow: hidden;
    }
    #carbonads .carbon-wrap {
      display: flex;
    }
    #carbonads .carbon-img {
      display: block;
      margin: 0;
      line-height: 1;
    }
    #carbonads .carbon-img img {
      display: block;
    }
    #carbonads .carbon-text {
      font-size: 13px;
      padding: 10px;
      margin-bottom: 16px;
      line-height: 1.5;
      text-align: left;
    }
    #carbonads .carbon-poweredby {
      display: block;
      padding: 6px 8px;
      background: #f1f1f2;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-weight: 600;
      font-size: 8px;
      line-height: 1;
      border-top-left-radius: 3px;
      position: absolute;
      bottom: 0;
      right: 0;
    }
    `,
  ],
}

```

--------------------------------------------------------------------------------
/packages/antd/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'site',
  logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Ant Design',
  hash: true,
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  locales: [
    ['en-US', 'English'],
    ['zh-CN', '中文'],
  ],
  navs: {
    'zh-CN': [
      {
        title: 'Ant Design',
        path: '/zh-CN/components',
      },
      {
        title: '主站',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'en-US': [
      {
        title: 'Ant Design',
        path: '/components',
      },
      {
        title: 'Home Site',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  links: [
    {
      rel: 'stylesheet',
      href: 'https://esm.sh/[email protected]/dist/antd.css',
    },
  ],
  headScripts: [
    `
    function loadAd(){
      var header = document.querySelector('.__dumi-default-layout-content .markdown h1')
      if(header && !header.querySelector('#_carbonads_js')){
        var script = document.createElement('script')
        script.src = '//cdn.carbonads.com/carbon.js?serve=CEAICK3M&placement=formilyjsorg'
        script.id = '_carbonads_js'
        script.classList.add('head-ad')
        header.appendChild(script)
      }
    }
    var request = null
    var observer = new MutationObserver(function(){
      cancelIdleCallback(request)
      request = requestIdleCallback(loadAd)
    })
    document.addEventListener('DOMContentLoaded',function(){
      loadAd()
      observer.observe(
        document.body,
        {
          childList:true,
          subtree:true
        }
      )
    })
    `,
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      height: 60px !important;
      width: 150px !important;
      padding-left:0 !important;
      color: transparent !important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
      padding: 120px 0 !important;
    }
    .__dumi-default-layout-hero h1{
      color:#45124e !important;
      font-size:80px !important;
      padding-bottom: 30px !important;
    }
    .__dumi-default-dark-switch {
      display:none
    }
    nav a{
      text-decoration: none !important;
    }
    #carbonads * {
      margin: initial;
      padding: initial;
    }
    #carbonads {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial,
        sans-serif;
    }
    #carbonads {
      display: flex;
      max-width: 330px;
      background-color: hsl(0, 0%, 98%);
      box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1);
      z-index: 100;
      float:right;
    }
    #carbonads a {
      color: inherit;
      text-decoration: none;
    }
    #carbonads a:hover {
      color: inherit;
    }
    #carbonads span {
      position: relative;
      display: block;
      overflow: hidden;
    }
    #carbonads .carbon-wrap {
      display: flex;
    }
    #carbonads .carbon-img {
      display: block;
      margin: 0;
      line-height: 1;
    }
    #carbonads .carbon-img img {
      display: block;
    }
    #carbonads .carbon-text {
      font-size: 13px;
      padding: 10px;
      margin-bottom: 16px;
      line-height: 1.5;
      text-align: left;
    }
    #carbonads .carbon-poweredby {
      display: block;
      padding: 6px 8px;
      background: #f1f1f2;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-weight: 600;
      font-size: 8px;
      line-height: 1;
      border-top-left-radius: 3px;
      position: absolute;
      bottom: 0;
      right: 0;
    }
    `,
  ],
}

```

--------------------------------------------------------------------------------
/packages/next/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'site',
  logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Fusion',
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  hash: true,
  outputPath: './doc-site',
  navs: {
    'en-US': [
      {
        title: 'Alibaba Fusion',
        path: '/components',
      },
      {
        title: 'Home Site',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'zh-CN': [
      {
        title: 'Alibaba Fusion',
        path: '/zh-CN/components',
      },
      {
        title: '主站',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  links: [
    {
      rel: 'stylesheet',
      href: 'https://esm.sh/@alifd/next/dist/next-noreset.css',
    },
  ],
  headScripts: [
    `
    function loadAd(){
      var header = document.querySelector('.__dumi-default-layout-content .markdown h1')
      if(header && !header.querySelector('#_carbonads_js')){
        var script = document.createElement('script')
        script.src = '//cdn.carbonads.com/carbon.js?serve=CEAICK3M&placement=formilyjsorg'
        script.id = '_carbonads_js'
        script.classList.add('head-ad')
        header.appendChild(script)
      }
    }
    var request = null
    var observer = new MutationObserver(function(){
      cancelIdleCallback(request)
      request = requestIdleCallback(loadAd)
    })
    document.addEventListener('DOMContentLoaded',function(){
      loadAd()
      observer.observe(
        document.body,
        {
          childList:true,
          subtree:true
        }
      )
    })
    `,
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      background-size: 140px!important;
      background-position: center left!important;
      background-repeat: no-repeat!important;
      padding-left: 150px!important;/*可根据title的宽度调整*/
      font-size: 22px!important;
      color: #000!important;
      font-weight: lighter!important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
      padding: 120px 0 !important;
    }
    .__dumi-default-layout-hero h1{
      color:#45124e !important;
      font-size:80px !important;
      padding-bottom: 30px !important;
    }
    .__dumi-default-dark-switch {
      display:none
    }
    nav a{
      text-decoration: none !important;
    }
    #carbonads * {
      margin: initial;
      padding: initial;
    }
    #carbonads {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial,
        sans-serif;
    }
    #carbonads {
      display: flex;
      max-width: 330px;
      background-color: hsl(0, 0%, 98%);
      box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1);
      z-index: 100;
      float:right;
    }
    #carbonads a {
      color: inherit;
      text-decoration: none;
    }
    #carbonads a:hover {
      color: inherit;
    }
    #carbonads span {
      position: relative;
      display: block;
      overflow: hidden;
    }
    #carbonads .carbon-wrap {
      display: flex;
    }
    #carbonads .carbon-img {
      display: block;
      margin: 0;
      line-height: 1;
    }
    #carbonads .carbon-img img {
      display: block;
    }
    #carbonads .carbon-text {
      font-size: 13px;
      padding: 10px;
      margin-bottom: 16px;
      line-height: 1.5;
      text-align: left;
    }
    #carbonads .carbon-poweredby {
      display: block;
      padding: 6px 8px;
      background: #f1f1f2;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-weight: 600;
      font-size: 8px;
      line-height: 1;
      border-top-left-radius: 3px;
      position: absolute;
      bottom: 0;
      right: 0;
    }
    `,
  ],
}

```

--------------------------------------------------------------------------------
/packages/react/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'site',
  logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'React',
  hash: true,
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  navs: {
    'en-US': [
      {
        title: 'Guide',
        path: '/guide',
      },
      {
        title: 'API',
        path: '/api',
      },
      {
        title: 'Home Site',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'zh-CN': [
      {
        title: '指南',
        path: '/zh-CN/guide',
      },
      {
        title: 'API',
        path: '/zh-CN/api',
      },
      {
        title: '主站',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  links: [
    {
      rel: 'stylesheet',
      href: 'https://esm.sh/[email protected]/dist/antd.css',
    },
  ],
  headScripts: [
    `
    function loadAd(){
      var header = document.querySelector('.__dumi-default-layout-content .markdown h1')
      if(header && !header.querySelector('#_carbonads_js')){
        var script = document.createElement('script')
        script.src = '//cdn.carbonads.com/carbon.js?serve=CEAICK3M&placement=formilyjsorg'
        script.id = '_carbonads_js'
        script.classList.add('head-ad')
        header.appendChild(script)
      }
    }
    var request = null
    var observer = new MutationObserver(function(){
      cancelIdleCallback(request)
      request = requestIdleCallback(loadAd)
    })
    document.addEventListener('DOMContentLoaded',function(){
      loadAd()
      observer.observe(
        document.body,
        {
          childList:true,
          subtree:true
        }
      )
    })
    `,
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      background-size: 140px!important;
      background-position: center left!important;
      background-repeat: no-repeat!important;
      padding-left: 150px!important;/*可根据title的宽度调整*/
      font-size: 22px!important;
      color: #000!important;
      font-weight: lighter!important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
      padding: 120px 0 !important;
    }
    .__dumi-default-layout-hero h1{
      color:#45124e !important;
      font-size:80px !important;
      padding-bottom: 30px !important;
    }
    .__dumi-default-dark-switch {
      display:none
    }
    nav a{
      text-decoration: none !important;
    }
    #carbonads * {
      margin: initial;
      padding: initial;
    }
    #carbonads {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial,
        sans-serif;
    }
    #carbonads {
      display: flex;
      max-width: 330px;
      background-color: hsl(0, 0%, 98%);
      box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1);
      z-index: 100;
      float:right;
    }
    #carbonads a {
      color: inherit;
      text-decoration: none;
    }
    #carbonads a:hover {
      color: inherit;
    }
    #carbonads span {
      position: relative;
      display: block;
      overflow: hidden;
    }
    #carbonads .carbon-wrap {
      display: flex;
    }
    #carbonads .carbon-img {
      display: block;
      margin: 0;
      line-height: 1;
    }
    #carbonads .carbon-img img {
      display: block;
    }
    #carbonads .carbon-text {
      font-size: 13px;
      padding: 10px;
      margin-bottom: 16px;
      line-height: 1.5;
      text-align: left;
    }
    #carbonads .carbon-poweredby {
      display: block;
      padding: 6px 8px;
      background: #f1f1f2;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-weight: 600;
      font-size: 8px;
      line-height: 1;
      border-top-left-radius: 3px;
      position: absolute;
      bottom: 0;
      right: 0;
    }
    `,
  ],
  menus: {
    '/guide': [
      {
        title: 'Introduction',
        path: '/guide',
      },
      { title: 'Architecture', path: '/guide/architecture' },
      { title: 'Concept', path: '/guide/concept' },
    ],
    '/zh-CN/guide': [
      {
        title: '介绍',
        path: '/guide',
      },
      { title: '核心架构', path: '/zh-CN/guide/architecture' },
      { title: '核心概念', path: '/zh-CN/guide/concept' },
    ],
  },
}

```

--------------------------------------------------------------------------------
/packages/core/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'site',
  logo: 'https://img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Core',
  hash: true,
  favicon:
    'https://img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  navs: {
    'en-US': [
      {
        title: 'Guide',
        path: '/guide',
      },
      {
        title: 'API',
        path: '/api',
      },
      {
        title: 'Home Site',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'zh-CN': [
      {
        title: '指南',
        path: '/zh-CN/guide',
      },
      {
        title: 'API',
        path: '/zh-CN/api',
      },
      {
        title: '主站',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  headScripts: [
    `
    function loadAd(){
      var header = document.querySelector('.__dumi-default-layout-content .markdown h1')
      if(header && !header.querySelector('#_carbonads_js')){
        var script = document.createElement('script')
        script.src = '//cdn.carbonads.com/carbon.js?serve=CEAICK3M&placement=formilyjsorg'
        script.id = '_carbonads_js'
        script.classList.add('head-ad')
        header.appendChild(script)
      }
    }
    var request = null
    var observer = new MutationObserver(function(){
      cancelIdleCallback(request)
      request = requestIdleCallback(loadAd)
    })
    document.addEventListener('DOMContentLoaded',function(){
      loadAd()
      observer.observe(
        document.body,
        {
          childList:true,
          subtree:true
        }
      )
    })
    `,
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      background-size: 140px!important;
      background-position: center left!important;
      background-repeat: no-repeat!important;
      padding-left: 150px!important;/*可根据title的宽度调整*/
      font-size: 22px!important;
      color: #000!important;
      font-weight: lighter!important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
      padding: 120px 0 !important;
    }
    .__dumi-default-layout-hero h1{
      color:#45124e !important;
      font-size:80px !important;
      padding-bottom: 30px !important;
    }
    .__dumi-default-dark-switch {
      display:none
    }
    nav a{
      text-decoration: none !important;
    }
    #carbonads * {
      margin: initial;
      padding: initial;
    }
    #carbonads {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial,
        sans-serif;
    }
    #carbonads {
      display: flex;
      max-width: 330px;
      background-color: hsl(0, 0%, 98%);
      box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1);
      z-index: 100;
      float:right;
    }
    #carbonads a {
      color: inherit;
      text-decoration: none;
    }
    #carbonads a:hover {
      color: inherit;
    }
    #carbonads span {
      position: relative;
      display: block;
      overflow: hidden;
    }
    #carbonads .carbon-wrap {
      display: flex;
    }
    #carbonads .carbon-img {
      display: block;
      margin: 0;
      line-height: 1;
    }
    #carbonads .carbon-img img {
      display: block;
    }
    #carbonads .carbon-text {
      font-size: 13px;
      padding: 10px;
      margin-bottom: 16px;
      line-height: 1.5;
      text-align: left;
    }
    #carbonads .carbon-poweredby {
      display: block;
      padding: 6px 8px;
      background: #f1f1f2;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-weight: 600;
      font-size: 8px;
      line-height: 1;
      border-top-left-radius: 3px;
      position: absolute;
      bottom: 0;
      right: 0;
    }
    `,
  ],
  menus: {
    '/guide': [
      {
        title: 'Introduction',
        children: [
          {
            title: 'Introduction',
            path: '/guide',
          },
          { title: 'Architecture', path: '/guide/architecture' },
        ],
      },
      {
        title: 'Concept',
        children: [
          {
            title: 'MVVM',
            path: '/guide/mvvm',
          },
          {
            title: 'Form Model',
            path: '/guide/form',
          },
          {
            title: 'Field Model',
            path: '/guide/field',
          },
        ],
      },
    ],

    '/zh-CN/guide': [
      {
        title: '概览',
        children: [
          {
            title: '介绍',
            path: '/zh-CN/guide',
          },
          { title: '核心架构', path: '/zh-CN/guide/architecture' },
        ],
      },
      {
        title: '概念',
        children: [
          {
            title: 'MVVM',
            path: '/zh-CN/guide/mvvm',
          },
          {
            title: '表单模型',
            path: '/zh-CN/guide/form',
          },
          {
            title: '字段模型',
            path: '/zh-CN/guide/field',
          },
        ],
      },
    ],
  },
}

```

--------------------------------------------------------------------------------
/packages/reactive/.umirc.js:
--------------------------------------------------------------------------------

```javascript
import { resolve } from 'path'
export default {
  mode: 'site',
  logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Reactive',
  hash: true,
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  navs: {
    'en-US': [
      {
        title: 'Guide',
        path: '/guide',
      },
      {
        title: 'API',
        path: '/api',
      },
      {
        title: 'Home Site',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'zh-CN': [
      {
        title: '指南',
        path: '/zh-CN/guide',
      },
      {
        title: 'API',
        path: '/zh-CN/api',
      },
      {
        title: '主站',
        path: 'https://formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  headScripts: [
    `
    function loadAd(){
      var header = document.querySelector('.__dumi-default-layout-content .markdown h1')
      if(header && !header.querySelector('#_carbonads_js')){
        var script = document.createElement('script')
        script.src = '//cdn.carbonads.com/carbon.js?serve=CEAICK3M&placement=formilyjsorg'
        script.id = '_carbonads_js'
        script.classList.add('head-ad')
        header.appendChild(script)
      }
    }
    var request = null
    var observer = new MutationObserver(function(){
      cancelIdleCallback(request)
      request = requestIdleCallback(loadAd)
    })
    document.addEventListener('DOMContentLoaded',function(){
      loadAd()
      observer.observe(
        document.body,
        {
          childList:true,
          subtree:true
        }
      )
    })
    `,
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      background-size: 140px!important;
      background-position: center left!important;
      background-repeat: no-repeat!important;
      padding-left: 150px!important;/*可根据title的宽度调整*/
      font-size: 22px!important;
      color: #000!important;
      font-weight: lighter!important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
      padding: 120px 0 !important;
    }
    .__dumi-default-layout-hero h1{
      color:#45124e !important;
      font-size:80px !important;
      padding-bottom: 30px !important;
    }
    .__dumi-default-dark-switch {
      display:none
    }
    nav a{
      text-decoration: none !important;
    }
    #carbonads * {
      margin: initial;
      padding: initial;
    }
    #carbonads {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial,
        sans-serif;
    }
    #carbonads {
      display: flex;
      max-width: 330px;
      background-color: hsl(0, 0%, 98%);
      box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1);
      z-index: 100;
      float:right;
    }
    #carbonads a {
      color: inherit;
      text-decoration: none;
    }
    #carbonads a:hover {
      color: inherit;
    }
    #carbonads span {
      position: relative;
      display: block;
      overflow: hidden;
    }
    #carbonads .carbon-wrap {
      display: flex;
    }
    #carbonads .carbon-img {
      display: block;
      margin: 0;
      line-height: 1;
    }
    #carbonads .carbon-img img {
      display: block;
    }
    #carbonads .carbon-text {
      font-size: 13px;
      padding: 10px;
      margin-bottom: 16px;
      line-height: 1.5;
      text-align: left;
    }
    #carbonads .carbon-poweredby {
      display: block;
      padding: 6px 8px;
      background: #f1f1f2;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-weight: 600;
      font-size: 8px;
      line-height: 1;
      border-top-left-radius: 3px;
      position: absolute;
      bottom: 0;
      right: 0;
    }
    `,
  ],
  menus: {
    '/guide': [
      {
        title: 'Introduction',
        path: '/guide',
      },
      { title: 'Concept', path: '/guide/concept' },
      {
        title: 'Best Practice',
        path: '/guide/best-practice',
      },
    ],
    '/api': [
      {
        title: '@formily/reactive',
        children: [
          {
            title: 'observable',
            path: '/api/observable',
          },
          {
            title: 'autorun',
            path: '/api/autorun',
          },
          {
            title: 'reaction',
            path: '/api/reaction',
          },

          {
            title: 'batch',
            path: '/api/batch',
          },
          {
            title: 'action',
            path: '/api/action',
          },
          {
            title: 'define',
            path: '/api/define',
          },
          {
            title: 'model',
            path: '/api/model',
          },
          {
            title: 'observe',
            path: '/api/observe',
          },
          {
            title: 'markRaw',
            path: '/api/mark-raw',
          },
          {
            title: 'markObservable',
            path: '/api/mark-observable',
          },
          {
            title: 'raw',
            path: '/api/raw',
          },
          {
            title: 'toJS',
            path: '/api/to-js',
          },
          {
            title: 'untracked',
            path: '/api/untracked',
          },
          {
            title: 'hasCollected',
            path: '/api/has-collected',
          },
          {
            title: 'Tracker',
            path: '/api/tracker',
          },
          {
            title: 'Type Chekcer',
            path: '/api/type-checker',
          },
        ],
      },
      {
        title: '@formily/reactive-react',
        children: [
          {
            title: 'observer',
            path: '/api/react/observer',
          },
        ],
      },
      {
        title: '@formily/reactive-vue',
        children: [
          {
            title: 'observer',
            path: '/api/vue/observer',
          },
        ],
      },
    ],
    '/zh-CN/guide': [
      {
        title: '介绍',
        path: '/zh-CN/guide',
      },
      { title: '核心概念', path: '/zh-CN/guide/concept' },
      {
        title: '最佳实践',
        path: '/zh-CN/guide/best-practice',
      },
    ],
    '/zh-CN/api': [
      {
        title: '@formily/reactive',
        children: [
          {
            title: 'observable',
            path: '/zh-CN/api/observable',
          },
          {
            title: 'autorun',
            path: '/zh-CN/api/autorun',
          },
          {
            title: 'reaction',
            path: '/zh-CN/api/reaction',
          },

          {
            title: 'batch',
            path: '/zh-CN/api/batch',
          },
          {
            title: 'action',
            path: '/zh-CN/api/action',
          },
          {
            title: 'define',
            path: '/zh-CN/api/define',
          },
          {
            title: 'model',
            path: '/zh-CN/api/model',
          },
          {
            title: 'observe',
            path: '/zh-CN/api/observe',
          },
          {
            title: 'markRaw',
            path: '/zh-CN/api/mark-raw',
          },
          {
            title: 'markObservable',
            path: '/zh-CN/api/mark-observable',
          },
          {
            title: 'raw',
            path: '/zh-CN/api/raw',
          },
          {
            title: 'toJS',
            path: '/zh-CN/api/to-js',
          },
          {
            title: 'untracked',
            path: '/zh-CN/api/untracked',
          },
          {
            title: 'hasCollected',
            path: '/zh-CN/api/has-collected',
          },
          {
            title: 'Tracker',
            path: '/zh-CN/api/tracker',
          },
          {
            title: 'Type Chekcer',
            path: '/zh-CN/api/type-checker',
          },
        ],
      },
      {
        title: '@formily/reactive-react',
        children: [
          {
            title: 'observer',
            path: '/zh-CN/api/react/observer',
          },
        ],
      },
      {
        title: '@formily/reactive-vue',
        children: [
          {
            title: 'observer',
            path: '/zh-CN/api/vue/observer',
          },
        ],
      },
    ],
  },
}

```

--------------------------------------------------------------------------------
/.umirc.js:
--------------------------------------------------------------------------------

```javascript
export default {
  mode: 'site',
  logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg',
  title: 'Formily',
  hash: true,
  favicon:
    '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg',
  outputPath: './doc-site',
  locales: [
    ['en-US', 'English'],
    ['zh-CN', '中文'],
  ],
  navs: {
    'en-US': [
      {
        title: 'Guide',
        path: '/guide',
      },
      {
        title: 'Basic Core Library',
        children: [
          {
            title: '@formily/reactive',
            path: 'https://reactive.formilyjs.org',
          },
          {
            title: '@formily/core',
            path: 'https://core.formilyjs.org',
          },
          {
            title: '@formily/react',
            path: 'https://react.formilyjs.org',
          },
          {
            title: '@formily/vue',
            path: 'https://vue.formilyjs.org',
          },
        ],
      },
      {
        title: 'Component Ecology',
        children: [
          {
            title: '@formily/antd',
            path: 'https://antd.formilyjs.org',
          },
          {
            title: '@formily/antd-v5',
            path: 'https://antd5.formilyjs.org',
          },
          {
            title: '@formily/antd-mobile',
            path: 'https://antd-mobile.formilyjs.org',
          },
          {
            title: '@formily/next',
            path: 'https://fusion.formilyjs.org',
          },
          {
            title: '@formily/element',
            path: 'https://element.formilyjs.org',
          },
          {
            title: '@formily/element-plus',
            path: 'https://element-plus.formilyjs.org',
          },
          {
            title: '@formily/antdv',
            path: 'https://antdv.formilyjs.org',
          },
          {
            title: '@formily/antdv-x3',
            path: 'https://antdv-x3.formilyjs.org',
          },
          {
            title: '@formily/vant',
            path: 'https://vant.formilyjs.org',
          },
          {
            title: '@formily/semi',
            path: 'https://semi.formilyjs.org',
          },
          {
            title: '@formily/tdesign-react',
            path: 'https://tdesign-react.formilyjs.org/',
          },
          {
            title: 'aliyun teamix',
            path: 'https://formily.dg.aliyun-inc.com/',
          },
          {
            title: 'antd-formily-boost',
            path: 'https://github.com/fishedee/antd-formily-boost',
          },
        ],
      },
      {
        title: 'Tools',
        children: [
          {
            title: 'Formily Designer',
            path: 'https://designable-antd.formilyjs.org/',
          },
          {
            title: 'Designable',
            path: 'https://github.com/alibaba/designable',
          },
          {
            title: 'Chrome Extension',
            path: 'https://chrome.google.com/webstore/detail/formily-devtools/kkocalmbfnplecdmbadaapgapdioecfm?hl=zh-CN',
          },
        ],
      },
      {
        title: 'Community',
        children: [
          {
            title: 'Forum',
            path: 'https://github.com/alibaba/formily/discussions',
          },
          { title: 'Zhihu', path: 'https://www.zhihu.com/column/uform' },
        ],
      },
      {
        title: '[email protected]',
        path: 'https://v1.formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
    'zh-CN': [
      {
        title: '指南',
        path: '/zh-CN/guide',
      },
      {
        title: '基础核心库',
        children: [
          {
            title: '@formily/reactive',
            path: 'https://reactive.formilyjs.org/zh-CN',
          },
          {
            title: '@formily/core',
            path: 'https://core.formilyjs.org/zh-CN',
          },
          {
            title: '@formily/react',
            path: 'https://react.formilyjs.org/zh-CN',
          },
          {
            title: '@formily/vue',
            path: 'https://vue.formilyjs.org',
          },
        ],
      },
      {
        title: '组件生态',
        children: [
          {
            title: '@formily/antd',
            path: 'https://antd.formilyjs.org/zh-CN',
          },
          {
            title: '@formily/antd-v5',
            path: 'https://antd5.formilyjs.org/zh-CN',
          },
          {
            title: '@formily/antd-mobile',
            path: 'https://antd-mobile.formilyjs.org/zh-CN',
          },
          {
            title: '@formily/next',
            path: 'https://fusion.formilyjs.org/zh-CN',
          },
          {
            title: '@formily/element',
            path: 'https://element.formilyjs.org',
          },
          {
            title: '@formily/element-plus',
            path: 'https://element-plus.formilyjs.org',
          },
          {
            title: '@formily/antdv',
            path: 'https://antdv.formilyjs.org',
          },
          {
            title: '@formily/vant',
            path: 'https://vant.formilyjs.org',
          },
          {
            title: '@formily/semi',
            path: 'https://semi.formilyjs.org',
          },
          {
            title: '@formily/tdesign-react',
            path: 'https://tdesign-react.formilyjs.org',
          },
          {
            title: 'aliyun teamix',
            path: 'https://formily.dg.aliyun-inc.com',
          },
          {
            title: 'antd-formily-boost',
            path: 'https://github.com/fishedee/antd-formily-boost',
          },
        ],
      },
      {
        title: '工具',
        children: [
          {
            title: 'Formily 设计器',
            path: 'https://designable-antd.formilyjs.org/',
          },
          {
            title: '通用搭建引擎',
            path: 'https://github.com/alibaba/designable',
          },
          {
            title: 'Chrome扩展',
            path: 'https://chrome.google.com/webstore/detail/formily-devtools/kkocalmbfnplecdmbadaapgapdioecfm?hl=zh-CN',
          },
        ],
      },
      {
        title: '社区',
        children: [
          {
            title: '论坛',
            path: 'https://github.com/alibaba/formily/discussions',
          },
          { title: '知乎专栏', path: 'https://www.zhihu.com/column/uform' },
        ],
      },
      {
        title: '1.x文档',
        path: 'https://v1.formilyjs.org',
      },
      {
        title: 'GITHUB',
        path: 'https://github.com/alibaba/formily',
      },
    ],
  },
  headScripts: [
    `
    function loadAd(){
      var header = document.querySelector('.__dumi-default-layout-content .markdown h1')
      if(header && !header.querySelector('#_carbonads_js')){
        var script = document.createElement('script')
        script.src = '//cdn.carbonads.com/carbon.js?serve=CEAICK3M&placement=formilyjsorg'
        script.id = '_carbonads_js'
        script.classList.add('head-ad')
        header.appendChild(script)
      }
    }
    var request = null
    var observer = new MutationObserver(function(){
      cancelIdleCallback(request)
      request = requestIdleCallback(loadAd)
    })
    document.addEventListener('DOMContentLoaded',function(){
      loadAd()
      observer.observe(
        document.body,
        {
          childList:true,
          subtree:true
        }
      )
    })
    `,
  ],
  links: [
    {
      rel: 'stylesheet',
      href: 'https://esm.sh/[email protected]/dist/antd.css',
    },
  ],
  styles: [
    `.__dumi-default-navbar-logo{
      height: 60px !important;
      width: 150px !important;
      padding-left:0 !important;
      color: transparent !important;
    }
    .__dumi-default-navbar{
      padding: 0 28px !important;
    }
    .__dumi-default-layout-hero{
      background-image: url(//img.alicdn.com/imgextra/i4/O1CN01ZcvS4e26XMsdsCkf9_!!6000000007671-2-tps-6001-4001.png);
      background-size: cover;
      background-repeat: no-repeat;
      padding: 120px 0 !important;
    }
    .__dumi-default-layout-hero h1{
      color:#45124e !important;
      font-size:80px !important;
      padding-bottom: 30px !important;
    }
    .__dumi-default-dark-switch {
      display:none
    }
    nav a{
      text-decoration: none !important;
    }
    #carbonads * {
      margin: initial;
      padding: initial;
    }
    #carbonads {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial,
        sans-serif;
    }
    #carbonads {
      display: flex;
      max-width: 330px;
      background-color: hsl(0, 0%, 98%);
      box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1);
      z-index: 100;
      float:right;
    }
    #carbonads a {
      color: inherit;
      text-decoration: none;
    }
    #carbonads a:hover {
      color: inherit;
    }
    #carbonads span {
      position: relative;
      display: block;
      overflow: hidden;
    }
    #carbonads .carbon-wrap {
      display: flex;
    }
    #carbonads .carbon-img {
      display: block;
      margin: 0;
      line-height: 1;
    }
    #carbonads .carbon-img img {
      display: block;
    }
    #carbonads .carbon-text {
      font-size: 13px;
      padding: 10px;
      margin-bottom: 16px;
      line-height: 1.5;
      text-align: left;
    }
    #carbonads .carbon-poweredby {
      display: block;
      padding: 6px 8px;
      background: #f1f1f2;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-weight: 600;
      font-size: 8px;
      line-height: 1;
      border-top-left-radius: 3px;
      position: absolute;
      bottom: 0;
      right: 0;
    }
    `,
  ],
  menus: {
    '/guide': [
      {
        title: 'Introduction',
        path: '/guide',
      },
      {
        title: 'How to learn Formily',
        path: '/guide/learn-formily',
      },
      {
        title: 'Quick start',
        path: '/guide/quick-start',
      },
      {
        title: 'V2 Upgrade Guide',
        path: '/guide/upgrade',
      },
      {
        title: 'Contribution Guide',
        path: '/guide/contribution',
      },
      {
        title: 'Form Builder Guide',
        path: '/guide/form-builder',
      },
      {
        title: 'Issue Helper',
        path: '/guide/issue-helper',
      },
      {
        title: 'Scenes',
        children: [
          {
            title: 'Login&Signup',
            path: '/guide/scenes/login-register',
          },
          {
            title: 'Query List',
            path: '/guide/scenes/query-list',
          },
          {
            title: 'Edit&Details',
            path: '/guide/scenes/edit-detail',
          },
          {
            title: 'Dialog&Drawer',
            path: '/guide/scenes/dialog-drawer',
          },
          {
            title: 'Step Form',
            path: '/guide/scenes/step-form',
          },
          {
            title: 'Tab Form',
            path: '/guide/scenes/tab-form',
          },
          {
            title: 'More Scenes',
            path: '/guide/scenes/more',
          },
        ],
      },
      {
        title: 'Advanced Guide',
        children: [
          {
            title: 'Form Validation',
            path: '/guide/advanced/validate',
          },
          {
            title: 'Form Layout',
            path: '/guide/advanced/layout',
          },
          {
            title: 'Asynchronous Data Sources',
            path: '/guide/advanced/async',
          },
          {
            title: 'Form Controlled',
            path: '/guide/advanced/controlled',
          },
          {
            title: 'Linkage Logic',
            path: '/guide/advanced/linkages',
          },
          {
            title: 'Calculator',
            path: '/guide/advanced/calculator',
          },
          {
            title: 'Custom Components',
            path: '/guide/advanced/custom',
          },
          {
            title: 'Front-end and back-end data compatibility solution',
            path: '/guide/advanced/destructor',
          },
          {
            title: 'Manage Business Logic',
            path: '/guide/advanced/business-logic',
          },
          {
            title: 'Pack on demand',
            path: '/guide/advanced/build',
          },
        ],
      },
    ],

    '/zh-CN/guide': [
      {
        title: '介绍',
        path: '/zh-CN/guide',
      },
      {
        title: '如何学习Formily',
        path: '/zh-CN/guide/learn-formily',
      },
      {
        title: '快速开始',
        path: '/zh-CN/guide/quick-start',
      },
      {
        title: 'V2升级指南',
        path: '/zh-CN/guide/upgrade',
      },
      {
        title: '贡献指南',
        path: '/zh-CN/guide/contribution',
      },
      {
        title: '表单设计器开发指南',
        path: '/zh-CN/guide/form-builder',
      },
      {
        title: '问题反馈',
        path: '/zh-CN/guide/issue-helper',
      },
      {
        title: '场景案例',
        children: [
          {
            title: '登录注册',
            path: '/zh-CN/guide/scenes/login-register',
          },
          {
            title: '查询列表',
            path: '/zh-CN/guide/scenes/query-list',
          },
          {
            title: '编辑详情',
            path: '/zh-CN/guide/scenes/edit-detail',
          },
          {
            title: '弹窗与抽屉',
            path: '/zh-CN/guide/scenes/dialog-drawer',
          },
          {
            title: '分步表单',
            path: '/zh-CN/guide/scenes/step-form',
          },
          {
            title: '选项卡/手风琴表单',
            path: '/zh-CN/guide/scenes/tab-form',
          },
          {
            title: '更多场景',
            path: '/zh-CN/guide/scenes/more',
          },
        ],
      },
      {
        title: '进阶指南',
        children: [
          {
            title: '实现表单校验',
            path: '/zh-CN/guide/advanced/validate',
          },
          {
            title: '实现表单布局',
            path: '/zh-CN/guide/advanced/layout',
          },
          {
            title: '实现异步数据源',
            path: '/zh-CN/guide/advanced/async',
          },
          {
            title: '实现表单受控',
            path: '/zh-CN/guide/advanced/controlled',
          },
          {
            title: '实现联动逻辑',
            path: '/zh-CN/guide/advanced/linkages',
          },
          {
            title: '实现联动计算器',
            path: '/zh-CN/guide/advanced/calculator',
          },
          {
            title: '实现自定义组件',
            path: '/zh-CN/guide/advanced/custom',
          },
          {
            title: '前后端数据差异兼容方案',
            path: '/zh-CN/guide/advanced/destructor',
          },
          {
            title: '管理业务逻辑',
            path: '/zh-CN/guide/advanced/business-logic',
          },
          {
            title: '按需打包',
            path: '/zh-CN/guide/advanced/build',
          },
        ],
      },
    ],
  },
}

```

--------------------------------------------------------------------------------
/packages/core/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/core

```

--------------------------------------------------------------------------------
/packages/grid/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/grid

```

--------------------------------------------------------------------------------
/packages/react/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/react

```

--------------------------------------------------------------------------------
/packages/benchmark/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/benchmark

```

--------------------------------------------------------------------------------
/packages/json-schema/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/json-schema

```

--------------------------------------------------------------------------------
/packages/reactive-vue/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/reactive-vue

```

--------------------------------------------------------------------------------
/packages/path/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/path

> Path System

```

--------------------------------------------------------------------------------
/packages/reactive-test-cases-for-react18/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/reactive-test-cases-for-react18

```

--------------------------------------------------------------------------------
/packages/reactive/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/reactive

> Web Reactive Library Like Mobx

## QuikStart

```

--------------------------------------------------------------------------------
/packages/antd/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/antd

### Install

```bash
npm install --save @formily/antd
```

```

--------------------------------------------------------------------------------
/packages/next/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/next

### Install

```bash
npm install --save @formily/next
```

```

--------------------------------------------------------------------------------
/packages/vue/README.md:
--------------------------------------------------------------------------------

```markdown
## Usage

### Requirement

vue^2.6.0 + @vue/composition-api^1.0.0-beta.1

Or

vue>=3.0.0-rc.0

```

--------------------------------------------------------------------------------
/packages/element/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/element

### Requirement

vue^2.6.0 + @vue/composition-api^1.0.0-beta.1

### Install

```bash
npm install --save @formily/element
```

```

--------------------------------------------------------------------------------
/packages/reactive-react/README.md:
--------------------------------------------------------------------------------

```markdown
# @formily/reactive-react

## QuikStart

```tsx
import React from 'react'
import { observable } from '@formily/reactive'
import { observer } from '@formily/reactive-react'

const obs = observable({
  count: 0,
})

export default observer(() => {
  return (
    <div>
      {obs.count}
      <button
        onClick={() => {
          obs.count++
        }}
      >
        Click
      </button>
    </div>
  )
})
```

```

--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------

```markdown
English | [简体中文](./README.zh-cn.md)

<p align="center">
<img src="https://img.alicdn.com/tfs/TB1fHhZu4D1gK0jSZFyXXciOVXa-2500-1200.png">
<img src="https://img.shields.io/npm/dt/@formily/core"/>
<img src="https://img.shields.io/npm/dm/@formily/core"/>
<a href="https://www.npmjs.com/package/@formily/core"><img src="https://img.shields.io/npm/v/@formily/core.svg"></a>
<a href="https://codecov.io/gh/alibaba/formily">
  <img src="https://codecov.io/gh/alibaba/formily/branch/formily_next/graph/badge.svg?token=3V9RU8Wh9d"/>
</a>
<img alt="PRs Welcome" src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg"/>
<a href="https://github.com/actions-cool/issues-helper">
  <img src="https://img.shields.io/badge/using-issues--helper-blueviolet"/>
</a>
<a href="https://app.netlify.com/sites/formily/deploys"><img src="https://api.netlify.com/api/v1/badges/7145918b-9cb5-47f8-8a42-111969e232ef/deploy-status"/></a>
</p>

---

## Background

In React, the whole tree rendering performance problem of the form is very obvious in the controlled mode. Especially for the scene of data linkage, it is easy to cause the page to be stuck. To solve this problem, we have distributed the management of the state of each form field, which significantly improves the performance of the form operations. At the same time, we deeply integrate the JSON Schema protocol to help you solve the problem of back-end driven form rendering quickly.

## Features

- 🖼 Designable, You can quickly develop forms at low cost through [Form Builder](https://designable-antd.formilyjs.org/).
- 🚀 High performance, fields managed independently, rather rerender the whole tree.
- 💡 Integrated Alibaba Fusion and Ant Design components are guaranteed to work out of the box.
- 🎨 JSON Schema applied for BackEnd. JSchema applied for FrontEnd. Two paradigms can be converted to each other.
- 🏅 Side effects are managed independently, making form data linkages easier than ever before.
- 🌯 Override most complicated form layout use cases.

## Form Builder

![https://designable-antd.formilyjs.org/](https://img.alicdn.com/imgextra/i3/O1CN01xAJj1y1wcGzXYc1Uq_!!6000000006328-2-tps-2980-1740.png)

## WebSite

2.0

https://formilyjs.org

1.0

https://v1.formilyjs.org

## Community

- [formilyjs](https://github.com/formilyjs)
- [designable](https://github.com/alibaba/designable)
- [icejs](https://github.com/alibaba/ice)

## How to contribute?

- [Contribute document](https://formilyjs.org/zh-CN/guide/contribution)

## Contributors

This project exists thanks to all the people who contribute.
<a href="https://github.com/alibaba/formily/graphs/contributors"><img src="https://contrib.rocks/image?repo=alibaba/formily" /></a>

## LICENSE

Formily is open source software licensed as
[MIT](https://github.com/alibaba/formily/blob/master/LICENSE.md).

```

--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```

--------------------------------------------------------------------------------
/packages/antd/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```

--------------------------------------------------------------------------------
/packages/core/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```

--------------------------------------------------------------------------------
/packages/react/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```

--------------------------------------------------------------------------------
/packages/shared/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```

--------------------------------------------------------------------------------
/packages/validator/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```

--------------------------------------------------------------------------------
/devtools/chrome-extension/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/benchmark/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/grid/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/json-schema/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/path/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/reactive-react/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/reactive-test-cases-for-react18/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/reactive-vue/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/packages/reactive/LICENSE.md:
--------------------------------------------------------------------------------

```markdown
The MIT License (MIT)

Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

```

--------------------------------------------------------------------------------
/.github/CONTRIBUTING.md:
--------------------------------------------------------------------------------

```markdown
# Contributing Guide

Hi! I’m really excited that you are interested in contributing to Formily. Before submitting your contribution though, please make sure to take a moment and read through the following guidelines.

- [Contributing Guide](#contributing-guide)
  - [Issue Reporting Guidelines](#issue-reporting-guidelines)
  - [Pull Request Guidelines](#pull-request-guidelines)
  - [Git Commit Specific](#git-commit-specific)

## Issue Reporting Guidelines

- The issue list of this repo is **exclusively** for bug reports and feature requests. Non-conforming issues will be closed immediately.

  - For simple beginner questions, you can get quick answers from

  - For more complicated questions, you can use Google or StackOverflow. Make sure to provide enough information when asking your questions - this makes it easier for others to help you!

- Try to search for your issue, it may have already been answered or even fixed in the development branch.

- Check if the issue is reproducible with the latest stable version of Formily. If you are using a pre-release, please indicate the specific version you are using.

- It is **required** that you clearly describe the steps necessary to reproduce the issue you are running into. Issues with no clear repro steps will not be triaged. If an issue labeled "need repro" receives no further input from the issue author for more than 5 days, it will be closed.

- For bugs that involves build setups, you can create a reproduction repository with steps in the README.

- If your issue is resolved but still open, don’t hesitate to close it. In case you found a solution by yourself, it could be helpful to explain how you fixed it.

## Pull Request Guidelines

- Only code that's ready for release should be committed to the master branch. All development should be done in dedicated branches.
- Checkout a **new** topic branch from master branch, and merge back against master branch.
- Work in the `src` folder and **DO NOT** checkin `dist` in the commits.
- Make sure `npm test` passes.
- If adding new feature:
  - Add accompanying test case.
  - Provide convincing reason to add this feature. Ideally you should open a suggestion issue first and have it greenlighted before working on it.
- If fixing a bug:
  - If you are resolving a special issue, add `(fix #xxxx[,#xxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `update entities encoding/decoding (fix #3899)`.
  - Provide detailed description of the bug in the PR. Live demo preferred.
  - Add appropriate test coverage if applicable.

## Git Commit Specific

- Your commits message must follow our [git commit specific](https://github.com/alibaba/formily/blob/master/.github/GIT_COMMIT_SPECIFIC.md).
- We will check your commit message, if it does not conform to the specification, the commit will be automatically refused, make sure you have read the specification above.
- You could use `git cz` with a CLI interface to replace `git commit` command, it will help you to build a proper commit-message, see [commitizen](https://github.com/commitizen/cz-cli).
- It's OK to have multiple small commits as you work on your branch - we will let GitHub automatically squash it before merging.

```

--------------------------------------------------------------------------------
/packages/antd/src/form-layout/style.less:
--------------------------------------------------------------------------------

```

```

--------------------------------------------------------------------------------
/packages/antd/src/form/style.less:
--------------------------------------------------------------------------------

```

```

--------------------------------------------------------------------------------
/packages/element/src/form-button-group/style.scss:
--------------------------------------------------------------------------------

```scss

```

--------------------------------------------------------------------------------
/packages/element/src/form/style.scss:
--------------------------------------------------------------------------------

```scss

```

--------------------------------------------------------------------------------
/packages/next/src/form-layout/main.scss:
--------------------------------------------------------------------------------

```scss

```

--------------------------------------------------------------------------------
/packages/next/src/form/main.scss:
--------------------------------------------------------------------------------

```scss

```

--------------------------------------------------------------------------------
/packages/core/docs/guide/values.md:
--------------------------------------------------------------------------------

```markdown
# Data Model

```

--------------------------------------------------------------------------------
/packages/antd/src/form-layout/style.ts:
--------------------------------------------------------------------------------

```typescript
// @ts-ignore

```

--------------------------------------------------------------------------------
/packages/antd/src/form/style.ts:
--------------------------------------------------------------------------------

```typescript
// @ts-ignore

```

--------------------------------------------------------------------------------
/packages/next/src/form-layout/style.ts:
--------------------------------------------------------------------------------

```typescript
// @ts-ignore

```

--------------------------------------------------------------------------------
/packages/next/src/form/style.ts:
--------------------------------------------------------------------------------

```typescript
// @ts-ignore

```

--------------------------------------------------------------------------------
/packages/next/src/form-grid/style.ts:
--------------------------------------------------------------------------------

```typescript
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/antd/src/form-grid/style.ts:
--------------------------------------------------------------------------------

```typescript
import './style.less'

```

--------------------------------------------------------------------------------
/packages/element/src/form-grid/style.ts:
--------------------------------------------------------------------------------

```typescript
import './style.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/form-layout/style.ts:
--------------------------------------------------------------------------------

```typescript
import './style.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/space/style.ts:
--------------------------------------------------------------------------------

```typescript
import './style.scss'

```

--------------------------------------------------------------------------------
/packages/reactive-vue/src/hooks/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './useObserver'

```

--------------------------------------------------------------------------------
/packages/antd/src/form-dialog/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/modal/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/form-step/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/steps/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/input/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/input/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/password/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/input/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/space/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/space/style/index'

```

--------------------------------------------------------------------------------
/packages/json-schema/src/polyfills/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './SPECIFICATION_1_0'

```

--------------------------------------------------------------------------------
/packages/next/src/form-step/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/step/style'

```

--------------------------------------------------------------------------------
/packages/antd/src/form-drawer/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/drawer/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/reset/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/button/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/select/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/select/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/submit/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/button/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/switch/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/switch/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/upload/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/upload/style/index'

```

--------------------------------------------------------------------------------
/packages/next/src/input/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/input/style'

```

--------------------------------------------------------------------------------
/packages/next/src/password/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/input/style'

```

--------------------------------------------------------------------------------
/packages/next/src/radio/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/radio/style'

```

--------------------------------------------------------------------------------
/packages/next/src/form-dialog/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/dialog/style'

```

--------------------------------------------------------------------------------
/packages/next/src/form-drawer/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/drawer/style'

```

--------------------------------------------------------------------------------
/packages/next/src/reset/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/button/style'

```

--------------------------------------------------------------------------------
/packages/next/src/select/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/select/style'

```

--------------------------------------------------------------------------------
/packages/next/src/submit/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/button/style'

```

--------------------------------------------------------------------------------
/packages/next/src/switch/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/switch/style'

```

--------------------------------------------------------------------------------
/packages/antd/src/cascader/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/cascader/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/checkbox/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/checkbox/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/transfer/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/transfer/style/index'

```

--------------------------------------------------------------------------------
/packages/next/src/cascader/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/cascader/style'

```

--------------------------------------------------------------------------------
/packages/next/src/checkbox/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/checkbox/style'

```

--------------------------------------------------------------------------------
/packages/next/src/transfer/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/transfer/style'

```

--------------------------------------------------------------------------------
/packages/antd/src/date-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/date-picker/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/time-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/time-picker/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/tree-select/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/tree-select/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/number-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/input-number/style/index'

```

--------------------------------------------------------------------------------
/packages/next/src/date-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/date-picker/style'

```

--------------------------------------------------------------------------------
/packages/next/src/time-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/time-picker/style'

```

--------------------------------------------------------------------------------
/packages/next/src/tree-select/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/tree-select/style'

```

--------------------------------------------------------------------------------
/packages/next/src/time-picker2/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/time-picker2/style'

```

--------------------------------------------------------------------------------
/packages/element/src/__builtins__/configs/index.ts:
--------------------------------------------------------------------------------

```typescript
export const stylePrefix = 'formily-element'

```

--------------------------------------------------------------------------------
/packages/next/src/number-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/number-picker/style'

```

--------------------------------------------------------------------------------
/packages/json-schema/src/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './schema'
export * from './types'

```

--------------------------------------------------------------------------------
/packages/reactive-react/src/shared/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './gc'
export * from './immediate'

```

--------------------------------------------------------------------------------
/packages/element/src/__builtins__/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './configs'
export * from './shared'

```

--------------------------------------------------------------------------------
/packages/react/src/shared/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './context'
export * from './connect'

```

--------------------------------------------------------------------------------
/docs/guide/advanced/input.less:
--------------------------------------------------------------------------------

```
input {
  background-color: transparent !important;
}

```

--------------------------------------------------------------------------------
/packages/element/src/el-form/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/form.scss'

```

--------------------------------------------------------------------------------
/packages/antd/src/preview-text/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/tag/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/next/src/preview-text/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/tag/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/space/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/box/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/antd/src/form-button-group/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/form/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/element/src/reset/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/button.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/submit/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/button.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/switch/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/switch.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/form-button-group/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/form/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/form-item/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/form/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/antd/src/radio/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/radio/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/antd/src/select-table/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/radio/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/element/src/array-items/style.ts:
--------------------------------------------------------------------------------

```typescript
import './style.scss'

// 依赖
import '../array-base/style'

```

--------------------------------------------------------------------------------
/packages/antd/src/array-base/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/button/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/antd/src/array-items/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/button/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/element/src/transfer/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/transfer.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/array-base/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/button/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/array-items/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/button/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/select-table/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/select/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/upload/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/upload/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/el-form-item/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/form-item.scss'

```

--------------------------------------------------------------------------------
/packages/antd/src/__builtins__/hooks/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './useClickAway'
export * from './usePrefixCls'

```

--------------------------------------------------------------------------------
/packages/next/src/__builtins__/hooks/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './useClickAway'
export * from './usePrefixCls'

```

--------------------------------------------------------------------------------
/packages/core/src/effects/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './onFormEffects'
export * from './onFieldEffects'

```

--------------------------------------------------------------------------------
/packages/next/src/date-picker2/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/date-picker2/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/commitlint.config.js:
--------------------------------------------------------------------------------

```javascript
module.exports = { extends: ['@commitlint/config-conventional'] }

```

--------------------------------------------------------------------------------
/packages/vue/bin/formily-vue-switch.js:
--------------------------------------------------------------------------------

```javascript
#!/usr/bin/env node
'use strict'
require('../scripts/switch-cli')

```

--------------------------------------------------------------------------------
/packages/element/src/form/style.ts:
--------------------------------------------------------------------------------

```typescript
// 依赖
import '../preview-text/style'
import '../form-layout/style'

```

--------------------------------------------------------------------------------
/packages/vue/bin/formily-vue-fix.js:
--------------------------------------------------------------------------------

```javascript
#!/usr/bin/env node
'use strict'
require('../scripts/postinstall')

```

--------------------------------------------------------------------------------
/packages/antd/src/array-tabs/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/tabs/style/index'
import 'antd/lib/badge/style/index'

```

--------------------------------------------------------------------------------
/packages/antd/src/form-tab/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/tabs/style/index'
import 'antd/lib/badge/style/index'

```

--------------------------------------------------------------------------------
/packages/next/src/form-tab/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/tab/style'
import '@alifd/next/lib/badge/style'

```

--------------------------------------------------------------------------------
/packages/antd/src/form-collapse/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/collapse/style/index'
import 'antd/lib/badge/style/index'

```

--------------------------------------------------------------------------------
/packages/reactive-react/src/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './observer'
export * from './hooks'
export * from './types'

```

--------------------------------------------------------------------------------
/packages/reactive-vue/src/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './observer'
export * from './hooks'
export * from './types'

```

--------------------------------------------------------------------------------
/packages/next/src/form-collapse/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/collapse/style'
import '@alifd/next/lib/badge/style'

```

--------------------------------------------------------------------------------
/packages/element/src/array-base/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/button.scss'
import './style.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/form-item/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/tooltip.scss'
import './style.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/form-button-group/style.ts:
--------------------------------------------------------------------------------

```typescript
import './style.scss'

// 依赖
import '../form-item/style'
import '../space/style'

```

--------------------------------------------------------------------------------
/packages/antd/src/radio/style.less:
--------------------------------------------------------------------------------

```
@root-entry-name: 'default';
@import (reference) '~antd/es/style/themes/index.less';

```

--------------------------------------------------------------------------------
/packages/element/src/input/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/input.scss'

// 依赖
import '../preview-text/style'

```

--------------------------------------------------------------------------------
/packages/element/src/password/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/input.scss'

// 依赖
import '../preview-text/style'

```

--------------------------------------------------------------------------------
/packages/element/src/select/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/select.scss'

// 依赖
import '../preview-text/style'

```

--------------------------------------------------------------------------------
/packages/next/src/array-cards/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/button/style'
import '@alifd/next/lib/card/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/next/src/editable/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/form/style'
import '@alifd/next/lib/balloon/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/cascader/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/cascader.scss'

// 依赖
import '../preview-text/style'

```

--------------------------------------------------------------------------------
/packages/next/src/array-collapse/style.ts:
--------------------------------------------------------------------------------

```typescript
import '@alifd/next/lib/collapse/style'
import '@alifd/next/lib/card/style'
import './main.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/form-grid/style.scss:
--------------------------------------------------------------------------------

```scss
@import '../__builtins__/styles/common.scss';

.#{$formily-prefix}-form-grid {
  display: grid;
}

```

--------------------------------------------------------------------------------
/packages/reactive-vue/src/types.ts:
--------------------------------------------------------------------------------

```typescript
export interface IObserverOptions {
  name?: string
  scheduler?: (updater: () => void) => void
}

```

--------------------------------------------------------------------------------
/packages/element/src/date-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/date-picker.scss'

// 依赖
import '../preview-text/style'

```

--------------------------------------------------------------------------------
/packages/element/src/time-picker/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/time-picker.scss'

// 依赖
import '../preview-text/style'

```

--------------------------------------------------------------------------------
/packages/element/docs/.vuepress/util.js:
--------------------------------------------------------------------------------

```javascript
const fs = require('fs')

module.exports = {
  getFiles(dir) {
    return fs.readdirSync(dir)
  },
}

```

--------------------------------------------------------------------------------
/packages/element/src/input-number/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/input-number.scss'

// 依赖
import '../preview-text/style'

```

--------------------------------------------------------------------------------
/packages/validator/src/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './validator'
export * from './parser'
export * from './registry'
export * from './types'

```

--------------------------------------------------------------------------------
/packages/vue/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base'

export default baseConfig('formily.vue', 'Formily.Vue')

```

--------------------------------------------------------------------------------
/packages/reactive/src/global.d.ts:
--------------------------------------------------------------------------------

```typescript
import * as Types from './types'

declare global {
  namespace Formily.Reactive {
    export { Types }
  }
}

```

--------------------------------------------------------------------------------
/packages/element/src/form-step/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/steps.scss'
import 'element-ui/packages/theme-chalk/src/step.scss'

```

--------------------------------------------------------------------------------
/packages/core/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.core', 'Formily.Core')

```

--------------------------------------------------------------------------------
/packages/grid/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.grid', 'Formily.Grid')

```

--------------------------------------------------------------------------------
/packages/path/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.path', 'Formily.Path')

```

--------------------------------------------------------------------------------
/packages/element/src/upload/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/upload.scss'
import 'element-ui/packages/theme-chalk/src/button.scss'

```

--------------------------------------------------------------------------------
/packages/element/src/editable/style.ts:
--------------------------------------------------------------------------------

```typescript
import './style.scss'
import 'element-ui/packages/theme-chalk/src/popover.scss'

// 依赖
import '../form-item/style'

```

--------------------------------------------------------------------------------
/packages/react/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.react', 'Formily.React')

```

--------------------------------------------------------------------------------
/packages/shared/src/path.ts:
--------------------------------------------------------------------------------

```typescript
import { Path as FormPath, Pattern as FormPathPattern } from '@formily/path'

export { FormPath, FormPathPattern }

```

--------------------------------------------------------------------------------
/packages/core/src/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './shared/externals'
export * from './models/types'
export * from './effects'
export * from './types'

```

--------------------------------------------------------------------------------
/packages/next/src/date-picker2/main.scss:
--------------------------------------------------------------------------------

```scss
@import '~@alifd/next/lib/core/index-noreset.scss';

.#{$css-prefix}date-picker2 {
  & > * {
    width: 100%;
  }
}

```

--------------------------------------------------------------------------------
/packages/shared/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.shared', 'Formily.Shared')

```

--------------------------------------------------------------------------------
/packages/element/src/form-layout/style.scss:
--------------------------------------------------------------------------------

```scss
@import '../__builtins__/styles/common.scss';

.#{$formily-prefix}-form-inline {
  display: flex;
  flex-wrap: wrap;
}

```

--------------------------------------------------------------------------------
/packages/reactive/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.reactive', 'Formily.Reactive')

```

--------------------------------------------------------------------------------
/packages/validator/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.validator', 'Formily.Validator')

```

--------------------------------------------------------------------------------
/packages/json-schema/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.json-schema', 'Formily.JSONSchema')

```

--------------------------------------------------------------------------------
/packages/reactive/src/annotations/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './observable'
export * from './box'
export * from './ref'
export * from './shallow'
export * from './computed'

```

--------------------------------------------------------------------------------
/packages/reactive-vue/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.reactive-vue', 'Formily.ReactiveVue')

```

--------------------------------------------------------------------------------
/packages/vue/src/shared/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './context'
export * from './connect'
export * from './h'
export * from './fragment'
export * from './createForm'

```

--------------------------------------------------------------------------------
/packages/antd/src/array-cards/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/card/style/index'
import 'antd/lib/empty/style/index'
import 'antd/lib/button/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/antd/src/editable/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/form/style/index'
import 'antd/lib/space/style/index'
import 'antd/lib/popover/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/reactive-react/rollup.config.js:
--------------------------------------------------------------------------------

```javascript
import baseConfig from '../../scripts/rollup.base.js'

export default baseConfig('formily.reactive-react', 'Formily.ReactiveReact')

```

--------------------------------------------------------------------------------
/devtools/chrome-extension/src/extension/popup.tsx:
--------------------------------------------------------------------------------

```typescript
import React from 'react'
import ReactDOM from 'react-dom'

ReactDOM.render(<div>hello world</div>, document.getElementById('root'))

```

--------------------------------------------------------------------------------
/packages/antd/src/form-item/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/form/style/index'
import 'antd/lib/tooltip/style/index'
import 'antd/lib/popover/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/element/src/form-tab/style.scss:
--------------------------------------------------------------------------------

```scss
@import '../__builtins__/styles/common.scss';

.#{$formily-prefix}-form-tab-errors-badge {
  line-height: 1;
  vertical-align: initial;
}

```

--------------------------------------------------------------------------------
/packages/react/src/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from '@formily/json-schema'
export * from './components'
export * from './shared'
export * from './hooks'
export * from './types'

```

--------------------------------------------------------------------------------
/packages/element/src/form-collapse/style.scss:
--------------------------------------------------------------------------------

```scss
@import '../__builtins__/styles/common.scss';

.#{$formily-prefix}-form-collapse-errors-badge {
  line-height: 1;
  vertical-align: initial;
}

```

--------------------------------------------------------------------------------
/packages/antd/build-style.ts:
--------------------------------------------------------------------------------

```typescript
import { build } from '../../scripts/build-style'

build({
  esStr: 'antd/es/',
  libStr: 'antd/lib/',
  allStylesOutputFile: 'dist/antd.css',
})

```

--------------------------------------------------------------------------------
/packages/json-schema/src/global.d.ts:
--------------------------------------------------------------------------------

```typescript
/// <reference types="@formily/core" />
import * as Types from './types'
declare global {
  namespace Formily.Schema {
    export { Types }
  }
}

```

--------------------------------------------------------------------------------
/devtools/chrome-extension/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "../../tsconfig.json",
  "include": ["./src/**/*.ts", "./src/**/*.tsx"],
  "exclude": ["./src/__tests__/*", "./esm/*", "./lib/*"]
}

```

--------------------------------------------------------------------------------
/packages/json-schema/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "../../tsconfig.json",
  "include": ["./src/**/*.ts", "./src/**/*.tsx"],
  "exclude": ["./src/__tests__/*", "./esm/*", "./lib/*"]
}

```

--------------------------------------------------------------------------------
/packages/path/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "../../tsconfig.json",
  "include": ["./src/**/*.ts", "./src/**/*.tsx"],
  "exclude": ["./src/__tests__/*", "./esm/*", "./lib/*"]
}

```

--------------------------------------------------------------------------------
/packages/reactive/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "../../tsconfig.json",
  "include": ["./src/**/*.ts", "./src/**/*.tsx"],
  "exclude": ["./src/__tests__/*", "./esm/*", "./lib/*"]
}

```

--------------------------------------------------------------------------------
/packages/validator/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "../../tsconfig.json",
  "include": ["./src/**/*.ts", "./src/**/*.tsx"],
  "exclude": ["./src/__tests__/*", "./esm/*", "./lib/*"]
}

```

--------------------------------------------------------------------------------
/packages/core/src/global.d.ts:
--------------------------------------------------------------------------------

```typescript
import * as Types from './types'
import * as Models from './models'

declare global {
  namespace Formily.Core {
    export { Types, Models }
  }
}

```

--------------------------------------------------------------------------------
/packages/next/src/upload/main.scss:
--------------------------------------------------------------------------------

```scss
@import '~@alifd/next/lib/core/index-noreset.scss';

$upload-prefix-cls: '#{$css-prefix}upload';

.#{$upload-prefix-cls}-list {
  margin-top: 4px;
}

```

--------------------------------------------------------------------------------
/packages/vue/src/hooks/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './useForm'
export * from './useField'
export * from './useFormEffects'
export * from './useFieldSchema'
export * from './useParentForm'

```

--------------------------------------------------------------------------------
/packages/antd/src/__builtins__/index.ts:
--------------------------------------------------------------------------------

```typescript
export * from './moment'
export * from './hooks'
export * from './portal'
export * from './loading'
export * from './pickDataProps'
export * from './sort'

```

--------------------------------------------------------------------------------
/packages/element/build-style.ts:
--------------------------------------------------------------------------------

```typescript
import { build } from '../../scripts/build-style'

build({
  esStr: 'element/es/',
  libStr: 'element/lib/',
  allStylesOutputFile: 'dist/element.css',
})

```

--------------------------------------------------------------------------------
/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "compilerOptions": {
    "esModuleInterop": true,
    "moduleResolution": "node",
    "allowJs": true,
    "module": "commonjs",
    "target": "es5",
  }
}
```

--------------------------------------------------------------------------------
/packages/next/build-style.ts:
--------------------------------------------------------------------------------

```typescript
import { build } from '../../scripts/build-style'

build({
  esStr: '@alifd/next/es/',
  libStr: '@alifd/next/lib/',
  allStylesOutputFile: 'dist/next.css',
})

```

--------------------------------------------------------------------------------
/packages/next/src/form-grid/main.scss:
--------------------------------------------------------------------------------

```scss
@import '~@alifd/next/lib/core/index-noreset.scss';

$form-grid-prefix-cls: '#{$css-prefix}formily-grid';

.#{$form-grid-prefix-cls}-layout {
  display: grid;
}

```

--------------------------------------------------------------------------------
/packages/element/src/__builtins__/shared/types.ts:
--------------------------------------------------------------------------------

```typescript
import { Component, VNode } from 'vue'

export type SlotTypes =
  | Component
  | string
  | number
  | ((props: Record<string, any>) => VNode[] | VNode)
  | VNode

```

--------------------------------------------------------------------------------
/packages/vue/src/hooks/useFieldSchema.ts:
--------------------------------------------------------------------------------

```typescript
import { inject, ref } from 'vue-demi'
import { SchemaSymbol } from '../shared/context'

export const useFieldSchema = () => {
  return inject(SchemaSymbol, ref())
}

```

--------------------------------------------------------------------------------
/packages/reactive-react/src/hooks/useLayoutEffect.ts:
--------------------------------------------------------------------------------

```typescript
import { useEffect, useLayoutEffect as _useLayoutEffect } from 'react'

export const useLayoutEffect =
  typeof document !== 'undefined' ? _useLayoutEffect : useEffect

```

--------------------------------------------------------------------------------
/packages/antd/src/array-collapse/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'antd/lib/collapse/style/index'
import 'antd/lib/empty/style/index'
import 'antd/lib/button/style/index'
import 'antd/lib/badge/style/index'
import './style.less'

```

--------------------------------------------------------------------------------
/packages/element/src/form-dialog/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/dialog.scss'
import 'element-ui/packages/theme-chalk/src/button.scss'
import 'element-ui/packages/theme-chalk/src/loading.scss'

```

--------------------------------------------------------------------------------
/packages/reactive-test-cases-for-react18/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "allowJs": true
  },
  "include": ["./src/**/*.js"],
  "exclude": ["./src/__tests__/*", "./esm/*", "./lib/*"]
}

```

--------------------------------------------------------------------------------
/devtools/chrome-extension/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/antd/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/benchmark/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/element/src/radio/style.ts:
--------------------------------------------------------------------------------

```typescript
import 'element-ui/packages/theme-chalk/src/radio.scss'
import 'element-ui/packages/theme-chalk/src/radio-group.scss'
import 'element-ui/packages/theme-chalk/src/radio-button.scss'

```

--------------------------------------------------------------------------------
/packages/element/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/grid/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/json-schema/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/next/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/path/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/react/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/reactive-react/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/reactive-test-cases-for-react18/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/reactive-vue/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/reactive/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/shared/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```

--------------------------------------------------------------------------------
/packages/validator/tsconfig.build.json:
--------------------------------------------------------------------------------

```json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./lib",
    "paths": {
      "@formily/*": ["packages/*", "devtools/*"]
    },
    "declaration": true
  }
}

```
Page 1/35FirstPrevNextLast