diff --git a/.eslintrc b/.eslintrc index b2479d3205..16322e3b8d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,12 +4,7 @@ "node": true }, "parser": "@typescript-eslint/parser", - "extends": [ - "@alifd/eslint-config-next", - "plugin:@typescript-eslint/recommended", - "prettier", - "./a11y.eslintrc" - ], + "extends": ["@alifd/eslint-config-next", "plugin:@typescript-eslint/recommended", "prettier"], "plugins": ["@typescript-eslint", "eslint-plugin-tsdoc"], "settings": { "react": { @@ -22,6 +17,11 @@ "files": ["./components/**/__tests__/**/*.ts", "./components/**/__tests__/**/*.tsx"], "extends": ["plugin:cypress/recommended"], "plugins": ["cypress"] + }, + { + "files": ["./components/**"], + "extends": ["./a11y.eslintrc"], + "excludedFiles": ["**/__tests__/**", "**/__docs__/**"] } ], "rules": { diff --git a/.gitignore b/.gitignore index d76462d4ad..e5db750be6 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ __html/ dist/ es/ lib/ +types/ test/coverage/ test/**/coverage/ compiled_docs/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dde6edcc9..8b9d19d85a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,44 @@ # Change Log +## [1.27.2](https://github.com/alibaba-fusion/next/compare/1.27.1...1.27.2) (2024-01-11) + + +### Features + +* **Rating:** add tip info background token, close [#4705](https://github.com/alibaba-fusion/next/issues/4705) ([#4706](https://github.com/alibaba-fusion/next/issues/4706)) ([2f71df9](https://github.com/alibaba-fusion/next/commit/2f71df9b18126487b880de595b269b917f23ff7b)) + + +### Bug Fixes + +* **DatePicker2:** default current day when next range is empty, close [#3877](https://github.com/alibaba-fusion/next/issues/3877) ([#4711](https://github.com/alibaba-fusion/next/issues/4711)) ([62eec1b](https://github.com/alibaba-fusion/next/commit/62eec1b92c8312a03f6cba9292249aff147c8cc8)) +* **Field:** compatible for Firefox, close [#4288](https://github.com/alibaba-fusion/next/issues/4288) ([#4712](https://github.com/alibaba-fusion/next/issues/4712)) ([b109dce](https://github.com/alibaba-fusion/next/commit/b109dceb74c91a4b3c1ae2faf933321cb738c961)) +* **Form:** pass device to responsive-grid, close [#4513](https://github.com/alibaba-fusion/next/issues/4513) ([#4707](https://github.com/alibaba-fusion/next/issues/4707)) ([110937b](https://github.com/alibaba-fusion/next/commit/110937ba84255a888f77ca30a349caa26c239d2f)) +* **Table:** fix merge width calculation logic when lock, close [#4264](https://github.com/alibaba-fusion/next/issues/4264) ([#4709](https://github.com/alibaba-fusion/next/issues/4709)) ([ed36371](https://github.com/alibaba-fusion/next/commit/ed36371b02acc1171c3abaa94e37be4e286d975d)) + + +## [1.27.1](https://github.com/alibaba-fusion/next/compare/1.27.1-alpha.1...1.27.1) (2024-01-03) + +### Bug Fixes +- Set esModuleInterop true to compat esbuild + + + +## [1.27.1-alpha.1](https://github.com/alibaba-fusion/next/compare/1.27.1-alpha.0...1.27.1-alpha.1) (2024-01-03) + + +## [1.27.1-alpha.0](https://github.com/alibaba-fusion/next/compare/1.27.0...1.27.1-alpha.0) (2024-01-03) + + +## [1.27.0](https://github.com/alibaba-fusion/next/compare/1.26.37...1.27.0) (2024-01-02) + +### Code Refactoring +- Create new project structure +- Upgrade to TypeScript Project progressive +- Improve maintenance for documentation and component APIs +- Improve test cases with cypress + + + ## [1.27.0-alpha.2](https://github.com/alibaba-fusion/next/compare/1.27.0-alpha.1...1.27.0-alpha.2) (2023-12-29) diff --git a/LATESTLOG.md b/LATESTLOG.md index 0e2a0d2af0..6bf579ba66 100644 --- a/LATESTLOG.md +++ b/LATESTLOG.md @@ -1,4 +1,17 @@ # Latest Log -## [1.27.0-alpha.2](https://github.com/alibaba-fusion/next/compare/1.27.0-alpha.1...1.27.0-alpha.2) (2023-12-29) +## [1.27.2](https://github.com/alibaba-fusion/next/compare/1.27.1...1.27.2) (2024-01-11) + + +### Features + +* **Rating:** add tip info background token, close [#4705](https://github.com/alibaba-fusion/next/issues/4705) ([#4706](https://github.com/alibaba-fusion/next/issues/4706)) ([2f71df9](https://github.com/alibaba-fusion/next/commit/2f71df9b18126487b880de595b269b917f23ff7b)) + + +### Bug Fixes + +* **DatePicker2:** default current day when next range is empty, close [#3877](https://github.com/alibaba-fusion/next/issues/3877) ([#4711](https://github.com/alibaba-fusion/next/issues/4711)) ([62eec1b](https://github.com/alibaba-fusion/next/commit/62eec1b92c8312a03f6cba9292249aff147c8cc8)) +* **Field:** compatible for Firefox, close [#4288](https://github.com/alibaba-fusion/next/issues/4288) ([#4712](https://github.com/alibaba-fusion/next/issues/4712)) ([b109dce](https://github.com/alibaba-fusion/next/commit/b109dceb74c91a4b3c1ae2faf933321cb738c961)) +* **Form:** pass device to responsive-grid, close [#4513](https://github.com/alibaba-fusion/next/issues/4513) ([#4707](https://github.com/alibaba-fusion/next/issues/4707)) ([110937b](https://github.com/alibaba-fusion/next/commit/110937ba84255a888f77ca30a349caa26c239d2f)) +* **Table:** fix merge width calculation logic when lock, close [#4264](https://github.com/alibaba-fusion/next/issues/4264) ([#4709](https://github.com/alibaba-fusion/next/issues/4709)) ([ed36371](https://github.com/alibaba-fusion/next/commit/ed36371b02acc1171c3abaa94e37be4e286d975d)) diff --git a/components.scss b/components.scss index 3cab6c9236..1a23137f11 100644 --- a/components.scss +++ b/components.scss @@ -1,62 +1,62 @@ -@import "lib/affix/main.scss"; -@import "lib/animate/main.scss"; -@import "lib/icon/main.scss"; -@import "lib/overlay/main.scss"; -@import "lib/loading/main.scss"; -@import "lib/radio/main.scss"; -@import "lib/badge/main.scss"; -@import "lib/balloon/main.scss"; -@import "lib/menu/main.scss"; -@import "lib/dropdown/main.scss"; -@import "lib/breadcrumb/main.scss"; -@import "lib/button/main.scss"; -@import "lib/input/main.scss"; -@import "lib/calendar/main.scss"; -@import "lib/card/main.scss"; -@import "lib/cascader/main.scss"; -@import "lib/cascader-select/main.scss"; -@import "lib/checkbox/main.scss"; -@import "lib/collapse/main.scss"; -@import "lib/config-provider/main.scss"; -@import "lib/time-picker/main.scss"; -@import "lib/date-picker/main.scss"; -@import "lib/message/main.scss"; -@import "lib/dialog/main.scss"; -@import "lib/drawer/main.scss"; -@import "lib/field/main.scss"; -@import "lib/grid/main.scss"; -@import "lib/responsive-grid/main.scss"; -@import "lib/form/main.scss"; -@import "lib/avatar/main.scss"; -@import "lib/select/main.scss"; -@import "lib/list/main.scss"; -@import "lib/menu-button/main.scss"; -@import "lib/nav/main.scss"; -@import "lib/number-picker/main.scss"; -@import "lib/pagination/main.scss"; -@import "lib/paragraph/main.scss"; -@import "lib/progress/main.scss"; -@import "lib/range/main.scss"; -@import "lib/rating/main.scss"; -@import "lib/search/main.scss"; -@import "lib/slider/main.scss"; -@import "lib/split-button/main.scss"; -@import "lib/step/main.scss"; -@import "lib/switch/main.scss"; -@import "lib/tab/main.scss"; -@import "lib/tag/main.scss"; -@import "lib/timeline/main.scss"; -@import "lib/transfer/main.scss"; -@import "lib/tree/main.scss"; -@import "lib/tree-select/main.scss"; -@import "lib/upload/main.scss"; -@import "lib/virtual-list/main.scss"; -@import "lib/shell/main.scss"; -@import "lib/notification/main.scss"; -@import "lib/typography/main.scss"; -@import "lib/divider/main.scss"; -@import "lib/box/main.scss"; -@import "lib/table/main.scss"; -@import "lib/calendar2/main.scss"; -@import "lib/time-picker2/main.scss"; -@import "lib/date-picker2/main.scss"; +@import "./lib/affix/main.scss"; +@import "./lib/animate/main.scss"; +@import "./lib/icon/main.scss"; +@import "./lib/overlay/main.scss"; +@import "./lib/loading/main.scss"; +@import "./lib/radio/main.scss"; +@import "./lib/badge/main.scss"; +@import "./lib/balloon/main.scss"; +@import "./lib/menu/main.scss"; +@import "./lib/dropdown/main.scss"; +@import "./lib/breadcrumb/main.scss"; +@import "./lib/button/main.scss"; +@import "./lib/input/main.scss"; +@import "./lib/calendar/main.scss"; +@import "./lib/card/main.scss"; +@import "./lib/cascader/main.scss"; +@import "./lib/cascader-select/main.scss"; +@import "./lib/checkbox/main.scss"; +@import "./lib/collapse/main.scss"; +@import "./lib/config-provider/main.scss"; +@import "./lib/time-picker/main.scss"; +@import "./lib/date-picker/main.scss"; +@import "./lib/message/main.scss"; +@import "./lib/dialog/main.scss"; +@import "./lib/drawer/main.scss"; +@import "./lib/field/main.scss"; +@import "./lib/grid/main.scss"; +@import "./lib/responsive-grid/main.scss"; +@import "./lib/form/main.scss"; +@import "./lib/avatar/main.scss"; +@import "./lib/select/main.scss"; +@import "./lib/list/main.scss"; +@import "./lib/menu-button/main.scss"; +@import "./lib/nav/main.scss"; +@import "./lib/number-picker/main.scss"; +@import "./lib/pagination/main.scss"; +@import "./lib/paragraph/main.scss"; +@import "./lib/progress/main.scss"; +@import "./lib/range/main.scss"; +@import "./lib/rating/main.scss"; +@import "./lib/search/main.scss"; +@import "./lib/slider/main.scss"; +@import "./lib/split-button/main.scss"; +@import "./lib/step/main.scss"; +@import "./lib/switch/main.scss"; +@import "./lib/tab/main.scss"; +@import "./lib/tag/main.scss"; +@import "./lib/timeline/main.scss"; +@import "./lib/transfer/main.scss"; +@import "./lib/tree/main.scss"; +@import "./lib/tree-select/main.scss"; +@import "./lib/upload/main.scss"; +@import "./lib/virtual-list/main.scss"; +@import "./lib/shell/main.scss"; +@import "./lib/notification/main.scss"; +@import "./lib/typography/main.scss"; +@import "./lib/divider/main.scss"; +@import "./lib/box/main.scss"; +@import "./lib/table/main.scss"; +@import "./lib/calendar2/main.scss"; +@import "./lib/time-picker2/main.scss"; +@import "./lib/date-picker2/main.scss"; diff --git a/components/affix/__docs__/demo/absolute-position/index.tsx b/components/affix/__docs__/demo/absolute-position/index.tsx index 69f3d660f8..8997087d87 100644 --- a/components/affix/__docs__/demo/absolute-position/index.tsx +++ b/components/affix/__docs__/demo/absolute-position/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Affix, Button } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/affix/__docs__/demo/basic/index.tsx b/components/affix/__docs__/demo/basic/index.tsx index 399a4357db..80c4f20de3 100644 --- a/components/affix/__docs__/demo/basic/index.tsx +++ b/components/affix/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Affix, Button } from '@alifd/next'; ReactDOM.render( diff --git a/components/affix/__docs__/demo/custom-container/index.tsx b/components/affix/__docs__/demo/custom-container/index.tsx index 52832b086d..47a2f928e7 100644 --- a/components/affix/__docs__/demo/custom-container/index.tsx +++ b/components/affix/__docs__/demo/custom-container/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Affix, Button } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/affix/__docs__/demo/custom-offset/index.tsx b/components/affix/__docs__/demo/custom-offset/index.tsx index 03990c3c13..8663ecc1c7 100644 --- a/components/affix/__docs__/demo/custom-offset/index.tsx +++ b/components/affix/__docs__/demo/custom-offset/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Affix, Button } from '@alifd/next'; ReactDOM.render( diff --git a/components/affix/__docs__/demo/on-affix/index.tsx b/components/affix/__docs__/demo/on-affix/index.tsx index 21c4373cb9..23547c524e 100644 --- a/components/affix/__docs__/demo/on-affix/index.tsx +++ b/components/affix/__docs__/demo/on-affix/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Affix, Button } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/affix/__tests__/index-spec.tsx b/components/affix/__tests__/index-spec.tsx index 7ba46cbf26..02346b8320 100644 --- a/components/affix/__tests__/index-spec.tsx +++ b/components/affix/__tests__/index-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Button from '../../button'; import Affix from '../index'; diff --git a/components/affix/index.tsx b/components/affix/index.tsx index 8fdd59a65c..f2647b3b3b 100644 --- a/components/affix/index.tsx +++ b/components/affix/index.tsx @@ -1,7 +1,6 @@ -import * as React from 'react'; -import { Component } from 'react'; -import * as PropTypes from 'prop-types'; -import * as classnames from 'classnames'; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import classnames from 'classnames'; import ResizeObserver from 'resize-observer-polyfill'; import { polyfill } from 'react-lifecycles-compat'; diff --git a/components/affix/types.ts b/components/affix/types.ts index e377d0b6ff..0f97d834c9 100644 --- a/components/affix/types.ts +++ b/components/affix/types.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; export interface AffixMode { diff --git a/components/animate/__docs__/demo/basic/index.tsx b/components/animate/__docs__/demo/basic/index.tsx index ed8f5ba780..1baf60b691 100644 --- a/components/animate/__docs__/demo/basic/index.tsx +++ b/components/animate/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Animate } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/animate/__docs__/demo/expand/index.tsx b/components/animate/__docs__/demo/expand/index.tsx index 3f3a21836e..67a46ffc88 100644 --- a/components/animate/__docs__/demo/expand/index.tsx +++ b/components/animate/__docs__/demo/expand/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Animate } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/animate/__docs__/demo/multiple/index.tsx b/components/animate/__docs__/demo/multiple/index.tsx index 35e7e056b3..a0a05a8342 100644 --- a/components/animate/__docs__/demo/multiple/index.tsx +++ b/components/animate/__docs__/demo/multiple/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Animate } from '@alifd/next'; class TodoList extends React.Component { diff --git a/components/animate/index.d.ts b/components/animate/index.d.ts index d3b65c0e66..c12acf50de 100644 --- a/components/animate/index.d.ts +++ b/components/animate/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { TransitionProps } from 'react-transition-group/Transition'; import { TransitionGroupProps } from 'react-transition-group/TransitionGroup'; diff --git a/components/animate/main.scss b/components/animate/main.scss index 14e7496693..8e99809d83 100644 --- a/components/animate/main.scss +++ b/components/animate/main.scss @@ -1,31 +1,31 @@ -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; @import "../core/index-noreset.scss"; -@import "scss/_fading-entrances/_fadeIn.scss"; -@import "scss/_fading-entrances/_fadeInDown.scss"; -@import "scss/_fading-entrances/_fadeInDownSmall.scss"; -@import "scss/_fading-entrances/_fadeInLeft.scss"; -@import "scss/_fading-entrances/_fadeInRight.scss"; -@import "scss/_fading-entrances/_fadeInUp.scss"; -@import "scss/_fading-exits/_fadeOut.scss"; -@import "scss/_fading-exits/_fadeOutDown.scss"; -@import "scss/_fading-exits/_fadeOutLeft.scss"; -@import "scss/_fading-exits/_fadeOutRight.scss"; -@import "scss/_fading-exits/_fadeOutUp.scss"; -@import "scss/_fading-exits/_fadeOutUpSmall.scss"; -@import "scss/_sliding-exits/sliding-exits.scss"; -@import "scss/_sliding-entrances/sliding-entrances.scss"; -@import "scss/_zooming-entrances/_zoomIn.scss"; -@import "scss/_zooming-exits/_zoomOut.scss"; -@import "scss/_zooming-entrances/_zoomInBig.scss"; -@import "scss/_zooming-exits/_zoomOutBig.scss"; -@import "scss/_expand-entrances/_expandInDown.scss"; -@import "scss/_expand-entrances/_expandInUp.scss"; -@import "scss/_expand-entrances/_withFade.scss"; -@import "scss/_expand-exits/_expandOutUp.scss"; -@import "scss/_expand-exits/_expandOutDown.scss"; -@import "scss/_expand-exits/_withFade.scss"; -@import "scss/_attention-seekers/_pulse.scss"; +@import "./scss/_fading-entrances/_fadeIn.scss"; +@import "./scss/_fading-entrances/_fadeInDown.scss"; +@import "./scss/_fading-entrances/_fadeInDownSmall.scss"; +@import "./scss/_fading-entrances/_fadeInLeft.scss"; +@import "./scss/_fading-entrances/_fadeInRight.scss"; +@import "./scss/_fading-entrances/_fadeInUp.scss"; +@import "./scss/_fading-exits/_fadeOut.scss"; +@import "./scss/_fading-exits/_fadeOutDown.scss"; +@import "./scss/_fading-exits/_fadeOutLeft.scss"; +@import "./scss/_fading-exits/_fadeOutRight.scss"; +@import "./scss/_fading-exits/_fadeOutUp.scss"; +@import "./scss/_fading-exits/_fadeOutUpSmall.scss"; +@import "./scss/_sliding-exits/sliding-exits.scss"; +@import "./scss/_sliding-entrances/sliding-entrances.scss"; +@import "./scss/_zooming-entrances/_zoomIn.scss"; +@import "./scss/_zooming-exits/_zoomOut.scss"; +@import "./scss/_zooming-entrances/_zoomInBig.scss"; +@import "./scss/_zooming-exits/_zoomOutBig.scss"; +@import "./scss/_expand-entrances/_expandInDown.scss"; +@import "./scss/_expand-entrances/_expandInUp.scss"; +@import "./scss/_expand-entrances/_withFade.scss"; +@import "./scss/_expand-exits/_expandOutUp.scss"; +@import "./scss/_expand-exits/_expandOutDown.scss"; +@import "./scss/_expand-exits/_withFade.scss"; +@import "./scss/_attention-seekers/_pulse.scss"; .fadeIn { @include fadeIn(); diff --git a/components/animate/scss/_attention-seekers/attention-seekers.scss b/components/animate/scss/_attention-seekers/attention-seekers.scss index 42dbe936af..e166901d5f 100644 --- a/components/animate/scss/_attention-seekers/attention-seekers.scss +++ b/components/animate/scss/_attention-seekers/attention-seekers.scss @@ -1,7 +1,7 @@ // INDEX OF FADING EXITS -@import "_pulse"; -@import "_shake"; -@import "_press"; -@import "_unpress"; -@import "_buttonClick"; +@import "./_pulse"; +@import "./_shake"; +@import "./_press"; +@import "./_unpress"; +@import "./_buttonClick"; diff --git a/components/animate/scss/_bounce-entrances/bounce-entrances.scss b/components/animate/scss/_bounce-entrances/bounce-entrances.scss index 3a7e705576..e5946664fa 100644 --- a/components/animate/scss/_bounce-entrances/bounce-entrances.scss +++ b/components/animate/scss/_bounce-entrances/bounce-entrances.scss @@ -1,3 +1,3 @@ // INDEX OF FADING ENTRANCES -@import "_bounceIn"; +@import "./_bounceIn"; diff --git a/components/animate/scss/_bounce-exits/bounce-exits.scss b/components/animate/scss/_bounce-exits/bounce-exits.scss index c9c681c5fe..e64902f606 100644 --- a/components/animate/scss/_bounce-exits/bounce-exits.scss +++ b/components/animate/scss/_bounce-exits/bounce-exits.scss @@ -1,3 +1,3 @@ // INDEX OF FADING EXITS -@import "_bounceOut"; +@import "./_bounceOut"; diff --git a/components/animate/scss/_fading-entrances/fading-entrances.scss b/components/animate/scss/_fading-entrances/fading-entrances.scss index 7abb5639f4..145e2d1fe9 100644 --- a/components/animate/scss/_fading-entrances/fading-entrances.scss +++ b/components/animate/scss/_fading-entrances/fading-entrances.scss @@ -1,12 +1,12 @@ // INDEX OF FADING ENTRANCES -@import "_fadeIn"; -@import "_fadeInDown"; -@import "_fadeInDownSmall"; -@import "_fadeInDownBig"; -@import "_fadeInLeft"; -@import "_fadeInLeftBig"; -@import "_fadeInRight"; -@import "_fadeInRightBig"; -@import "_fadeInUp"; -@import "_fadeInUpBig"; +@import "./_fadeIn"; +@import "./_fadeInDown"; +@import "./_fadeInDownSmall"; +@import "./_fadeInDownBig"; +@import "./_fadeInLeft"; +@import "./_fadeInLeftBig"; +@import "./_fadeInRight"; +@import "./_fadeInRightBig"; +@import "./_fadeInUp"; +@import "./_fadeInUpBig"; diff --git a/components/animate/scss/_fading-exits/fading-exits.scss b/components/animate/scss/_fading-exits/fading-exits.scss index 3b38b4a157..0f97a9412a 100644 --- a/components/animate/scss/_fading-exits/fading-exits.scss +++ b/components/animate/scss/_fading-exits/fading-exits.scss @@ -1,12 +1,12 @@ // INDEX OF FADING EXITS -@import "_fadeOut"; -@import "_fadeOutDown"; -@import "_fadeOutDownBig"; -@import "_fadeOutLeft"; -@import "_fadeOutLeftBig"; -@import "_fadeOutRight"; -@import "_fadeOutRightBig"; -@import "_fadeOutUpSmall"; -@import "_fadeOutUp"; -@import "_fadeOutUpBig"; +@import "./_fadeOut"; +@import "./_fadeOutDown"; +@import "./_fadeOutDownBig"; +@import "./_fadeOutLeft"; +@import "./_fadeOutLeftBig"; +@import "./_fadeOutRight"; +@import "./_fadeOutRightBig"; +@import "./_fadeOutUpSmall"; +@import "./_fadeOutUp"; +@import "./_fadeOutUpBig"; diff --git a/components/animate/scss/_other-entrances/other-entrances.scss b/components/animate/scss/_other-entrances/other-entrances.scss index 3e08a09788..38539d9067 100644 --- a/components/animate/scss/_other-entrances/other-entrances.scss +++ b/components/animate/scss/_other-entrances/other-entrances.scss @@ -1,5 +1,5 @@ // INDEX OF FADING ENTRANCES -@import "_pressIn"; -@import "_waterIn"; -@import "_pressInSmall"; +@import "./_pressIn"; +@import "./_waterIn"; +@import "./_pressInSmall"; diff --git a/components/animate/scss/_other-exits/other-exits.scss b/components/animate/scss/_other-exits/other-exits.scss index b93b3d0c19..08883b0b5d 100644 --- a/components/animate/scss/_other-exits/other-exits.scss +++ b/components/animate/scss/_other-exits/other-exits.scss @@ -1,5 +1,5 @@ // INDEX OF PRESS EXITS -@import "_pressOut"; -@import "_waterOut"; -@import "_pressOutSmall"; +@import "./_pressOut"; +@import "./_waterOut"; +@import "./_pressOutSmall"; diff --git a/components/animate/scss/_sliding-entrances/sliding-entrances.scss b/components/animate/scss/_sliding-entrances/sliding-entrances.scss index 2572eeec37..ed328e20c6 100644 --- a/components/animate/scss/_sliding-entrances/sliding-entrances.scss +++ b/components/animate/scss/_sliding-entrances/sliding-entrances.scss @@ -1,6 +1,6 @@ // INDEX OF SLIDING ENTRANCES -@import "_slideInDown"; -@import "_slideInLeft"; -@import "_slideInRight"; -@import "_slideInUp"; +@import "./_slideInDown"; +@import "./_slideInLeft"; +@import "./_slideInRight"; +@import "./_slideInUp"; diff --git a/components/animate/scss/_sliding-exits/sliding-exits.scss b/components/animate/scss/_sliding-exits/sliding-exits.scss index c16647ebe5..a355daaa6d 100644 --- a/components/animate/scss/_sliding-exits/sliding-exits.scss +++ b/components/animate/scss/_sliding-exits/sliding-exits.scss @@ -1,6 +1,6 @@ // INDEX OF SLIDING EXITS -@import "_slideOutDown"; -@import "_slideOutLeft"; -@import "_slideOutRight"; -@import "_slideOutUp"; +@import "./_slideOutDown"; +@import "./_slideOutLeft"; +@import "./_slideOutRight"; +@import "./_slideOutUp"; diff --git a/components/animate/scss/_zooming-entrances/zooming-entrances.scss b/components/animate/scss/_zooming-entrances/zooming-entrances.scss index e9c7a5a6cb..99d9463a8d 100644 --- a/components/animate/scss/_zooming-entrances/zooming-entrances.scss +++ b/components/animate/scss/_zooming-entrances/zooming-entrances.scss @@ -1,9 +1,9 @@ // INDEX OF ZOOMING ENTRANCES -@import "_zoomIn"; -@import "_zoomInPulse"; -@import "_zoomInQuick"; -@import "_zoomInDown"; -@import "_zoomInLeft"; -@import "_zoomInRight"; -@import "_zoomInUp"; +@import "./_zoomIn"; +@import "./_zoomInPulse"; +@import "./_zoomInQuick"; +@import "./_zoomInDown"; +@import "./_zoomInLeft"; +@import "./_zoomInRight"; +@import "./_zoomInUp"; diff --git a/components/animate/scss/_zooming-exits/zooming-exits.scss b/components/animate/scss/_zooming-exits/zooming-exits.scss index 9e75c9fea5..b3114a6b70 100644 --- a/components/animate/scss/_zooming-exits/zooming-exits.scss +++ b/components/animate/scss/_zooming-exits/zooming-exits.scss @@ -1,9 +1,9 @@ // INDEX OF ZOOMING EXITS -@import "_zoomOut"; -@import "_zoomOutPulse"; -@import "_zoomOutQuick"; -@import "_zoomOutDown"; -@import "_zoomOutLeft"; -@import "_zoomOutRight"; -@import "_zoomOutUp"; +@import "./_zoomOut"; +@import "./_zoomOutPulse"; +@import "./_zoomOutQuick"; +@import "./_zoomOutDown"; +@import "./_zoomOutLeft"; +@import "./_zoomOutRight"; +@import "./_zoomOutUp"; diff --git a/components/avatar/__docs__/adaptor/index.tsx b/components/avatar/__docs__/adaptor/index.tsx index 3b835be88d..b6175f395a 100644 --- a/components/avatar/__docs__/adaptor/index.tsx +++ b/components/avatar/__docs__/adaptor/index.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { Avatar } from '@alifd/next'; import { Types } from '@alifd/adaptor-helper'; diff --git a/components/avatar/__docs__/demo/basic/index.tsx b/components/avatar/__docs__/demo/basic/index.tsx index 8faeaa258f..b0ebfae9eb 100644 --- a/components/avatar/__docs__/demo/basic/index.tsx +++ b/components/avatar/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Avatar } from '@alifd/next'; ReactDOM.render( diff --git a/components/avatar/__docs__/demo/type/index.tsx b/components/avatar/__docs__/demo/type/index.tsx index ba8f4dfdc9..b57689931d 100644 --- a/components/avatar/__docs__/demo/type/index.tsx +++ b/components/avatar/__docs__/demo/type/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Avatar, Icon } from '@alifd/next'; ReactDOM.render( diff --git a/components/avatar/__docs__/demo/with-badge/index.tsx b/components/avatar/__docs__/demo/with-badge/index.tsx index 2a3b290eac..74805cf9f0 100644 --- a/components/avatar/__docs__/demo/with-badge/index.tsx +++ b/components/avatar/__docs__/demo/with-badge/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Avatar, Badge } from '@alifd/next'; ReactDOM.render( diff --git a/components/avatar/__docs__/theme/index.tsx b/components/avatar/__docs__/theme/index.tsx index a106dadd4f..c07a3bc1e3 100644 --- a/components/avatar/__docs__/theme/index.tsx +++ b/components/avatar/__docs__/theme/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import '../../../demo-helper/style'; import { Demo, diff --git a/components/avatar/__tests__/a11y-spec.tsx b/components/avatar/__tests__/a11y-spec.tsx index 7d11a7e161..210b785f2e 100644 --- a/components/avatar/__tests__/a11y-spec.tsx +++ b/components/avatar/__tests__/a11y-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Avatar from '../index'; import '../style'; import { testReact } from '../../util/__tests__/a11y/validate'; diff --git a/components/avatar/__tests__/index-spec.tsx b/components/avatar/__tests__/index-spec.tsx index 302c9a5417..3f2a5b4523 100644 --- a/components/avatar/__tests__/index-spec.tsx +++ b/components/avatar/__tests__/index-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Avatar from '../index'; import Icon from '../../icon'; import '../style'; diff --git a/components/avatar/index.tsx b/components/avatar/index.tsx index ea12e38a48..f54b1efd48 100644 --- a/components/avatar/index.tsx +++ b/components/avatar/index.tsx @@ -1,7 +1,6 @@ -import { Component } from 'react'; -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import * as classNames from 'classnames'; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; import ConfigProvider from '../config-provider'; import Icon from '../icon'; import { obj } from '../util'; diff --git a/components/avatar/main.scss b/components/avatar/main.scss index 256f4722f8..354940fc73 100644 --- a/components/avatar/main.scss +++ b/components/avatar/main.scss @@ -2,8 +2,8 @@ @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; /* put your code here */ diff --git a/components/avatar/types.ts b/components/avatar/types.ts index 286bb93419..11444d67f3 100644 --- a/components/avatar/types.ts +++ b/components/avatar/types.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; /** diff --git a/components/badge/__docs__/adaptor/index.tsx b/components/badge/__docs__/adaptor/index.tsx index 21f42f29eb..f49d93718c 100644 --- a/components/badge/__docs__/adaptor/index.tsx +++ b/components/badge/__docs__/adaptor/index.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { Badge } from '@alifd/next'; import { Types } from '@alifd/adaptor-helper'; diff --git a/components/badge/__docs__/demo/accessibility/index.tsx b/components/badge/__docs__/demo/accessibility/index.tsx index 29a5d68b75..786d80c9c1 100644 --- a/components/badge/__docs__/demo/accessibility/index.tsx +++ b/components/badge/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge } from '@alifd/next'; ReactDOM.render( diff --git a/components/badge/__docs__/demo/basic/index.tsx b/components/badge/__docs__/demo/basic/index.tsx index 4f0b366d2a..4b82575dd9 100644 --- a/components/badge/__docs__/demo/basic/index.tsx +++ b/components/badge/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge } from '@alifd/next'; ReactDOM.render( diff --git a/components/badge/__docs__/demo/clickable/index.tsx b/components/badge/__docs__/demo/clickable/index.tsx index bb77c1e456..070375afec 100644 --- a/components/badge/__docs__/demo/clickable/index.tsx +++ b/components/badge/__docs__/demo/clickable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge } from '@alifd/next'; ReactDOM.render( diff --git a/components/badge/__docs__/demo/content/index.tsx b/components/badge/__docs__/demo/content/index.tsx index eeb893730e..bbe46484e8 100644 --- a/components/badge/__docs__/demo/content/index.tsx +++ b/components/badge/__docs__/demo/content/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge, Icon } from '@alifd/next'; ReactDOM.render( diff --git a/components/badge/__docs__/demo/dot/index.tsx b/components/badge/__docs__/demo/dot/index.tsx index f4a6bbeb46..7778483ae6 100644 --- a/components/badge/__docs__/demo/dot/index.tsx +++ b/components/badge/__docs__/demo/dot/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge, Icon } from '@alifd/next'; ReactDOM.render( diff --git a/components/badge/__docs__/demo/dynamic-content/index.tsx b/components/badge/__docs__/demo/dynamic-content/index.tsx index b542ad826a..5fd2760047 100644 --- a/components/badge/__docs__/demo/dynamic-content/index.tsx +++ b/components/badge/__docs__/demo/dynamic-content/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge, Button, Icon } from '@alifd/next'; const ButtonGroup = Button.Group; diff --git a/components/badge/__docs__/demo/no-wrapper/index.tsx b/components/badge/__docs__/demo/no-wrapper/index.tsx index c4230926a1..c000360982 100644 --- a/components/badge/__docs__/demo/no-wrapper/index.tsx +++ b/components/badge/__docs__/demo/no-wrapper/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge } from '@alifd/next'; ReactDOM.render( diff --git a/components/badge/__docs__/demo/overflowCount/index.tsx b/components/badge/__docs__/demo/overflowCount/index.tsx index a9c380fbfd..e6eed1ee3f 100644 --- a/components/badge/__docs__/demo/overflowCount/index.tsx +++ b/components/badge/__docs__/demo/overflowCount/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Badge } from '@alifd/next'; ReactDOM.render( diff --git a/components/badge/__docs__/theme/index.tsx b/components/badge/__docs__/theme/index.tsx index 8044d1d8f1..c1fd805357 100644 --- a/components/badge/__docs__/theme/index.tsx +++ b/components/badge/__docs__/theme/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import '../../../demo-helper/style'; import { Demo, DemoGroup, initDemo } from '../../../demo-helper'; import ConfigProvider from '../../../config-provider'; diff --git a/components/badge/__tests__/a11y-spec.tsx b/components/badge/__tests__/a11y-spec.tsx index 0d69997fc8..413a534d10 100644 --- a/components/badge/__tests__/a11y-spec.tsx +++ b/components/badge/__tests__/a11y-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Badge from '../../badge/index'; import '../../badge/style'; import { testReact } from '../../util/__tests__/a11y/validate'; diff --git a/components/badge/__tests__/index-spec.tsx b/components/badge/__tests__/index-spec.tsx index 12c130375a..bb9373657a 100644 --- a/components/badge/__tests__/index-spec.tsx +++ b/components/badge/__tests__/index-spec.tsx @@ -1,5 +1,4 @@ -import * as React from 'react'; -import { ChangeEventHandler } from 'react'; +import React, { ChangeEventHandler } from 'react'; import { support } from '../../util'; import Badge from '../index'; import '../style'; diff --git a/components/badge/index.tsx b/components/badge/index.tsx index e511970f30..8a8cb0b6c7 100644 --- a/components/badge/index.tsx +++ b/components/badge/index.tsx @@ -1,7 +1,6 @@ -import { Component } from 'react'; -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import * as classNames from 'classnames'; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; import ConfigProvider from '../config-provider'; import { obj } from '../util'; import Sup from './sup'; diff --git a/components/badge/main.scss b/components/badge/main.scss index 5ae25f7ced..cf74b31ca7 100644 --- a/components/badge/main.scss +++ b/components/badge/main.scss @@ -1,10 +1,10 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/function"; -@import "scss/mixin"; -@import "scss/placeholder"; -@import "scss/variable"; +@import "./scss/function"; +@import "./scss/mixin"; +@import "./scss/placeholder"; +@import "./scss/variable"; .#{$css-prefix} { &badge { diff --git a/components/badge/sup.tsx b/components/badge/sup.tsx index e1ae982d4a..4c0676aabb 100644 --- a/components/badge/sup.tsx +++ b/components/badge/sup.tsx @@ -1,8 +1,7 @@ -import { Component } from 'react'; -import * as React from 'react'; -import * as PropTypes from 'prop-types'; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; import { polyfill } from 'react-lifecycles-compat'; -import * as classNames from 'classnames'; +import classNames from 'classnames'; import Animate from '../animate'; import { support, dom } from '../util'; import type { BadgeSubProps, BadgeSubState } from './types'; @@ -41,7 +40,7 @@ class Sup extends Component { // 单排可滚动的数字列表 static renderDigit(prefix: string, digit: number, key: string | number) { - const children = []; + const children: Array = []; for (let i = 0; i < 30; i++) { children.push({i % 10}); } @@ -185,7 +184,7 @@ class Sup extends Component { [`${prefix}badge-custom`]: !!content, }); - let children = null; + let children: React.ReactNode = null; const show = dot || (count as number) > 0 || (count === 0 && showZero) || content; if ((count as number) > 0 || (count === 0 && showZero)) { diff --git a/components/badge/types.ts b/components/badge/types.ts index 04204036b0..39d6cdcf63 100644 --- a/components/badge/types.ts +++ b/components/badge/types.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; /** diff --git a/components/balloon/__docs__/demo/accessibility/index.css b/components/balloon/__docs__/demo/accessibility/index.css new file mode 100644 index 0000000000..943c5457b3 --- /dev/null +++ b/components/balloon/__docs__/demo/accessibility/index.css @@ -0,0 +1,3 @@ +.container.nested { + margin-left: 30px; +} diff --git a/components/balloon/__docs__/demo/accessibility/index.md b/components/balloon/__docs__/demo/accessibility/index.md index 5882022da4..7be4b0782f 100644 --- a/components/balloon/__docs__/demo/accessibility/index.md +++ b/components/balloon/__docs__/demo/accessibility/index.md @@ -4,12 +4,6 @@ 弹层id, 传入值才会支持无障碍。 -```css -.container.nested { - margin-left: 30px; -} -``` - # en-US order=8 # Accessibility diff --git a/components/balloon/__docs__/demo/accessibility/index.tsx b/components/balloon/__docs__/demo/accessibility/index.tsx index 0cc1f9c7a0..4da15525fe 100644 --- a/components/balloon/__docs__/demo/accessibility/index.tsx +++ b/components/balloon/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon, Input } from '@alifd/next'; import moment from 'moment'; diff --git a/components/balloon/__docs__/demo/alignment/index.tsx b/components/balloon/__docs__/demo/alignment/index.tsx index 077dfa44c0..2465ab91ab 100644 --- a/components/balloon/__docs__/demo/alignment/index.tsx +++ b/components/balloon/__docs__/demo/alignment/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon } from '@alifd/next'; const top = ( diff --git a/components/balloon/__docs__/demo/arrow-point-to-center/index.tsx b/components/balloon/__docs__/demo/arrow-point-to-center/index.tsx index 0564f60803..8cb2c056eb 100644 --- a/components/balloon/__docs__/demo/arrow-point-to-center/index.tsx +++ b/components/balloon/__docs__/demo/arrow-point-to-center/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon } from '@alifd/next'; const Tooltip = Balloon.Tooltip; diff --git a/components/balloon/__docs__/demo/basic/index.tsx b/components/balloon/__docs__/demo/basic/index.tsx index a2be2fde05..46ff7fe313 100644 --- a/components/balloon/__docs__/demo/basic/index.tsx +++ b/components/balloon/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon } from '@alifd/next'; const Demo = () => ( diff --git a/components/balloon/__docs__/demo/control/index.tsx b/components/balloon/__docs__/demo/control/index.tsx index 1ee15a873b..91fec62845 100644 --- a/components/balloon/__docs__/demo/control/index.tsx +++ b/components/balloon/__docs__/demo/control/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon } from '@alifd/next'; class App extends React.Component { diff --git a/components/balloon/__docs__/demo/nested/index.tsx b/components/balloon/__docs__/demo/nested/index.tsx index b9b2df4de9..7a9665fa86 100644 --- a/components/balloon/__docs__/demo/nested/index.tsx +++ b/components/balloon/__docs__/demo/nested/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon, DatePicker, Select } from '@alifd/next'; import moment from 'moment'; diff --git a/components/balloon/__docs__/demo/onCloseClick/index.tsx b/components/balloon/__docs__/demo/onCloseClick/index.tsx index d429fd48a2..9c2aecdd57 100644 --- a/components/balloon/__docs__/demo/onCloseClick/index.tsx +++ b/components/balloon/__docs__/demo/onCloseClick/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon } from '@alifd/next'; class App extends React.Component { diff --git a/components/balloon/__docs__/demo/tooltip-dir/index.tsx b/components/balloon/__docs__/demo/tooltip-dir/index.tsx index 2764ef6311..628c6bf757 100644 --- a/components/balloon/__docs__/demo/tooltip-dir/index.tsx +++ b/components/balloon/__docs__/demo/tooltip-dir/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon } from '@alifd/next'; const Tooltip = Balloon.Tooltip; diff --git a/components/balloon/__docs__/demo/tooltip/index.tsx b/components/balloon/__docs__/demo/tooltip/index.tsx index 17127748d7..b104bf94d0 100644 --- a/components/balloon/__docs__/demo/tooltip/index.tsx +++ b/components/balloon/__docs__/demo/tooltip/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon, Table } from '@alifd/next'; const Tooltip = Balloon.Tooltip; diff --git a/components/balloon/__docs__/demo/triggerType/index.tsx b/components/balloon/__docs__/demo/triggerType/index.tsx index 96cb7b96fc..733aa2dc70 100644 --- a/components/balloon/__docs__/demo/triggerType/index.tsx +++ b/components/balloon/__docs__/demo/triggerType/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Balloon, Input } from '@alifd/next'; const content =
content content content content content
; diff --git a/components/balloon/index.d.ts b/components/balloon/index.d.ts index f395c8cbd3..f61e371981 100644 --- a/components/balloon/index.d.ts +++ b/components/balloon/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; diff --git a/components/balloon/main.scss b/components/balloon/main.scss index a79606db28..4ced2d010b 100644 --- a/components/balloon/main.scss +++ b/components/balloon/main.scss @@ -1,8 +1,8 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/mixin"; .#{$css-prefix}balloon { @include box-sizing; diff --git a/components/balloon/util.js b/components/balloon/util.jsx similarity index 100% rename from components/balloon/util.js rename to components/balloon/util.jsx diff --git a/components/box/__docs__/demo/align&justify/index.tsx b/components/box/__docs__/demo/align&justify/index.tsx index e67632d94b..61b54419b0 100644 --- a/components/box/__docs__/demo/align&justify/index.tsx +++ b/components/box/__docs__/demo/align&justify/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Box } from '@alifd/next'; class BoxDemo extends React.Component { diff --git a/components/box/__docs__/demo/basic/index.tsx b/components/box/__docs__/demo/basic/index.tsx index c458cb4526..ea559aa7fa 100644 --- a/components/box/__docs__/demo/basic/index.tsx +++ b/components/box/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Box } from '@alifd/next'; class BoxDemo extends React.Component { diff --git a/components/box/__docs__/demo/direction/index.tsx b/components/box/__docs__/demo/direction/index.tsx index 220e182add..379e881f43 100644 --- a/components/box/__docs__/demo/direction/index.tsx +++ b/components/box/__docs__/demo/direction/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Box } from '@alifd/next'; class BoxDemo extends React.Component { diff --git a/components/box/__docs__/demo/padding&margin/index.tsx b/components/box/__docs__/demo/padding&margin/index.tsx index 7495b3cbe0..4d3a680a88 100644 --- a/components/box/__docs__/demo/padding&margin/index.tsx +++ b/components/box/__docs__/demo/padding&margin/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Box } from '@alifd/next'; class BoxDemo extends React.Component { diff --git a/components/box/__docs__/demo/wrap/index.tsx b/components/box/__docs__/demo/wrap/index.tsx index b9f2f4aa2f..87eaf02363 100644 --- a/components/box/__docs__/demo/wrap/index.tsx +++ b/components/box/__docs__/demo/wrap/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Box, Switch } from '@alifd/next'; class BoxDemo extends React.Component { diff --git a/components/box/main.scss b/components/box/main.scss index 4f6f9a86eb..d2a2c2bfb3 100644 --- a/components/box/main.scss +++ b/components/box/main.scss @@ -2,8 +2,8 @@ @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; /* put your code here */ diff --git a/components/breadcrumb/__docs__/demo/auto-more/index.tsx b/components/breadcrumb/__docs__/demo/auto-more/index.tsx index 9f9c5e76d1..351ac83593 100644 --- a/components/breadcrumb/__docs__/demo/auto-more/index.tsx +++ b/components/breadcrumb/__docs__/demo/auto-more/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Breadcrumb } from '@alifd/next'; ReactDOM.render( diff --git a/components/breadcrumb/__docs__/demo/basic/index.tsx b/components/breadcrumb/__docs__/demo/basic/index.tsx index 3c3e79b3f3..3353f21296 100644 --- a/components/breadcrumb/__docs__/demo/basic/index.tsx +++ b/components/breadcrumb/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Breadcrumb } from '@alifd/next'; ReactDOM.render( diff --git a/components/breadcrumb/__docs__/demo/custom-item/index.tsx b/components/breadcrumb/__docs__/demo/custom-item/index.tsx index 359733db31..cea26f25a2 100644 --- a/components/breadcrumb/__docs__/demo/custom-item/index.tsx +++ b/components/breadcrumb/__docs__/demo/custom-item/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Breadcrumb } from '@alifd/next'; import { HashRouter, Route, Switch, Link, withRouter } from 'react-router-dom'; diff --git a/components/breadcrumb/__docs__/demo/more/index.tsx b/components/breadcrumb/__docs__/demo/more/index.tsx index a39fcead77..de63549677 100644 --- a/components/breadcrumb/__docs__/demo/more/index.tsx +++ b/components/breadcrumb/__docs__/demo/more/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Breadcrumb } from '@alifd/next'; ReactDOM.render( diff --git a/components/breadcrumb/__docs__/demo/separator/index.tsx b/components/breadcrumb/__docs__/demo/separator/index.tsx index 75a11db98f..9221614570 100644 --- a/components/breadcrumb/__docs__/demo/separator/index.tsx +++ b/components/breadcrumb/__docs__/demo/separator/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Breadcrumb } from '@alifd/next'; ReactDOM.render( diff --git a/components/breadcrumb/__docs__/demo/show-hidden-more/index.tsx b/components/breadcrumb/__docs__/demo/show-hidden-more/index.tsx index 452e1a7f6b..44e09d79f1 100644 --- a/components/breadcrumb/__docs__/demo/show-hidden-more/index.tsx +++ b/components/breadcrumb/__docs__/demo/show-hidden-more/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Breadcrumb } from '@alifd/next'; ReactDOM.render( diff --git a/components/breadcrumb/index.d.ts b/components/breadcrumb/index.d.ts index b598fc6108..769b375bda 100644 --- a/components/breadcrumb/index.d.ts +++ b/components/breadcrumb/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { PopupProps } from '../overlay'; export interface ItemProps extends React.HTMLAttributes { diff --git a/components/breadcrumb/main.scss b/components/breadcrumb/main.scss index d9c698c046..f24e7eb70b 100644 --- a/components/breadcrumb/main.scss +++ b/components/breadcrumb/main.scss @@ -2,8 +2,8 @@ @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; /* put your code here */ diff --git a/components/button/__docs__/adaptor/index.tsx b/components/button/__docs__/adaptor/index.tsx index 98d8160a92..61ae5de9e8 100644 --- a/components/button/__docs__/adaptor/index.tsx +++ b/components/button/__docs__/adaptor/index.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { Types, ContentType, parseData, STATE_MARK } from '@alifd/adaptor-helper'; import { Button, Icon } from '@alifd/next'; diff --git a/components/button/__docs__/demo/accessibility/index.tsx b/components/button/__docs__/demo/accessibility/index.tsx index f8adf5a367..6803dbceec 100644 --- a/components/button/__docs__/demo/accessibility/index.tsx +++ b/components/button/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Icon } from '@alifd/next'; ReactDOM.render( diff --git a/components/button/__docs__/demo/component/index.tsx b/components/button/__docs__/demo/component/index.tsx index 5ea1ec1381..d2554d814a 100644 --- a/components/button/__docs__/demo/component/index.tsx +++ b/components/button/__docs__/demo/component/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Box } from '@alifd/next'; const props = { diff --git a/components/button/__docs__/demo/disabled/index.tsx b/components/button/__docs__/demo/disabled/index.tsx index 8821f9116e..29a0f5362b 100644 --- a/components/button/__docs__/demo/disabled/index.tsx +++ b/components/button/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Box } from '@alifd/next'; ReactDOM.render( diff --git a/components/button/__docs__/demo/ghost/index.tsx b/components/button/__docs__/demo/ghost/index.tsx index 328708575d..92200c05d9 100644 --- a/components/button/__docs__/demo/ghost/index.tsx +++ b/components/button/__docs__/demo/ghost/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button } from '@alifd/next'; ReactDOM.render( diff --git a/components/button/__docs__/demo/group/index.tsx b/components/button/__docs__/demo/group/index.tsx index 416633d774..137ddc7660 100644 --- a/components/button/__docs__/demo/group/index.tsx +++ b/components/button/__docs__/demo/group/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Icon } from '@alifd/next'; ReactDOM.render( diff --git a/components/button/__docs__/demo/icon/index.tsx b/components/button/__docs__/demo/icon/index.tsx index e2830bfe8f..362308ef10 100644 --- a/components/button/__docs__/demo/icon/index.tsx +++ b/components/button/__docs__/demo/icon/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Icon, Box } from '@alifd/next'; class LoadingIcon extends React.Component { diff --git a/components/button/__docs__/demo/loading/index.tsx b/components/button/__docs__/demo/loading/index.tsx index c05917ba82..0ee555c84b 100644 --- a/components/button/__docs__/demo/loading/index.tsx +++ b/components/button/__docs__/demo/loading/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Box } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/button/__docs__/demo/size/index.tsx b/components/button/__docs__/demo/size/index.tsx index d7df5ba3a5..a07c92f228 100644 --- a/components/button/__docs__/demo/size/index.tsx +++ b/components/button/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Icon, Box } from '@alifd/next'; ReactDOM.render( diff --git a/components/button/__docs__/demo/type/index.tsx b/components/button/__docs__/demo/type/index.tsx index 822644d011..6b8a464d57 100644 --- a/components/button/__docs__/demo/type/index.tsx +++ b/components/button/__docs__/demo/type/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Box } from '@alifd/next'; ReactDOM.render( diff --git a/components/button/__docs__/theme/index.tsx b/components/button/__docs__/theme/index.tsx index 466377df83..183a255134 100644 --- a/components/button/__docs__/theme/index.tsx +++ b/components/button/__docs__/theme/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Demo, DemoFunctionDefineForObject, @@ -457,11 +457,9 @@ class FunctionDemo extends React.Component< render() { const { title, locale, types, buttonRender } = this.props; const { demoFunction } = this.state; - const iconType = demoFunction['arrow-type'].value; + const iconType = demoFunction['arrow-type'].value as string; const iconPosition = - ['arrow-right', 'arrow-up', 'arrow-down'].indexOf(iconType as string) > -1 - ? 'after' - : 'before'; + ['arrow-right', 'arrow-up', 'arrow-down'].indexOf(iconType) > -1 ? 'after' : 'before'; const children: React.ReactNode[] = [locale.button]; if (iconType !== 'none') { diff --git a/components/button/__tests__/a11y-spec.tsx b/components/button/__tests__/a11y-spec.tsx index 29e6246304..57db892d38 100644 --- a/components/button/__tests__/a11y-spec.tsx +++ b/components/button/__tests__/a11y-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Button from '../index'; import '../style'; import { testReact } from '../../util/__tests__/a11y/validate'; diff --git a/components/button/__tests__/index-spec.tsx b/components/button/__tests__/index-spec.tsx index ec91ad8486..6780df7f76 100644 --- a/components/button/__tests__/index-spec.tsx +++ b/components/button/__tests__/index-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Icon from '../../icon'; import Button from '../index'; diff --git a/components/button/types.ts b/components/button/types.ts index d7548d25c8..54a4e48491 100644 --- a/components/button/types.ts +++ b/components/button/types.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; /** diff --git a/components/button/view/button.tsx b/components/button/view/button.tsx index 51c44bd54c..f5865ffd71 100644 --- a/components/button/view/button.tsx +++ b/components/button/view/button.tsx @@ -1,7 +1,6 @@ -import * as React from 'react'; -import { Component, Children, isValidElement } from 'react'; -import * as PropTypes from 'prop-types'; -import * as classNames from 'classnames'; +import React, { Component, Children, isValidElement } from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; import { ButtonProps } from '../types'; import ConfigProvider from '../../config-provider'; import { obj, log } from '../../util'; @@ -113,7 +112,7 @@ export default class Button extends Component { [className!]: className, }; - let loadingIcon = null; + let loadingIcon: React.ReactNode = null; // 如果传入了 loading 的 icons,使用该节点来渲染 if (icons && icons.loading && isValidElement(icons.loading)) { diff --git a/components/button/view/group.tsx b/components/button/view/group.tsx index 6bf0ee5969..ff3b7b095c 100644 --- a/components/button/view/group.tsx +++ b/components/button/view/group.tsx @@ -1,7 +1,6 @@ -import * as React from 'react'; -import { Component, Children } from 'react'; -import * as PropTypes from 'prop-types'; -import * as classNames from 'classnames'; +import React, { Component, Children } from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; import { GroupProps } from '../types'; import ConfigProvider from '../../config-provider'; diff --git a/components/calendar/__docs__/demo/basic/index.tsx b/components/calendar/__docs__/demo/basic/index.tsx index 30c774ea8d..b114dba9b0 100644 --- a/components/calendar/__docs__/demo/basic/index.tsx +++ b/components/calendar/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar } from '@alifd/next'; import moment from 'moment'; diff --git a/components/calendar/__docs__/demo/card/index.tsx b/components/calendar/__docs__/demo/card/index.tsx index 6de273c4c3..6f1a05e39f 100644 --- a/components/calendar/__docs__/demo/card/index.tsx +++ b/components/calendar/__docs__/demo/card/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar } from '@alifd/next'; function onDateChange(value) { diff --git a/components/calendar/__docs__/demo/custom-cell/index.tsx b/components/calendar/__docs__/demo/custom-cell/index.tsx index bb57ed8497..67937d58ad 100644 --- a/components/calendar/__docs__/demo/custom-cell/index.tsx +++ b/components/calendar/__docs__/demo/custom-cell/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar } from '@alifd/next'; import moment from 'moment'; diff --git a/components/calendar/__docs__/demo/default-visible-month/index.tsx b/components/calendar/__docs__/demo/default-visible-month/index.tsx index b705562671..838ccd12d9 100644 --- a/components/calendar/__docs__/demo/default-visible-month/index.tsx +++ b/components/calendar/__docs__/demo/default-visible-month/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar } from '@alifd/next'; import moment from 'moment'; diff --git a/components/calendar/__docs__/demo/disabled/index.tsx b/components/calendar/__docs__/demo/disabled/index.tsx index 43b2b19539..83d50be754 100644 --- a/components/calendar/__docs__/demo/disabled/index.tsx +++ b/components/calendar/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar } from '@alifd/next'; import moment from 'moment'; diff --git a/components/calendar/__docs__/demo/locale/index.tsx b/components/calendar/__docs__/demo/locale/index.tsx index 1454c637b6..ee20a36e41 100644 --- a/components/calendar/__docs__/demo/locale/index.tsx +++ b/components/calendar/__docs__/demo/locale/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar } from '@alifd/next'; import moment from 'moment'; diff --git a/components/calendar/__docs__/demo/lunar/index.css b/components/calendar/__docs__/demo/lunar/index.css new file mode 100644 index 0000000000..1fd51ad3df --- /dev/null +++ b/components/calendar/__docs__/demo/lunar/index.css @@ -0,0 +1,8 @@ +.custom-cell { + width: 100%; + height: 70px; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} diff --git a/components/calendar/__docs__/demo/lunar/index.md b/components/calendar/__docs__/demo/lunar/index.md index 86722a5082..59141014b5 100644 --- a/components/calendar/__docs__/demo/lunar/index.md +++ b/components/calendar/__docs__/demo/lunar/index.md @@ -4,17 +4,6 @@ 农历 -```css -.custom-cell { - width: 100%; - height: 70px; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: flex-end; -} -``` - # en-US order=0 # Lunar Calendar diff --git a/components/calendar/__docs__/demo/lunar/index.tsx b/components/calendar/__docs__/demo/lunar/index.tsx index 87001466c7..f8141fabeb 100644 --- a/components/calendar/__docs__/demo/lunar/index.tsx +++ b/components/calendar/__docs__/demo/lunar/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar } from '@alifd/next'; import moment from 'moment'; import solarLunar from 'solarlunar'; diff --git a/components/calendar/__docs__/demo/panel/index.md b/components/calendar/__docs__/demo/panel/index.md index 90b29b31a9..e765070502 100644 --- a/components/calendar/__docs__/demo/panel/index.md +++ b/components/calendar/__docs__/demo/panel/index.md @@ -4,18 +4,6 @@ 日历面板通用用于嵌套在弹层容器中。 -```jsx -import { Calendar } from '@alifd/next'; -import moment from 'moment'; - -ReactDOM.render( -
- -
, - mountNode -); -``` - # en-US order=5 # Panel diff --git a/components/calendar/__docs__/demo/panel/index.tsx b/components/calendar/__docs__/demo/panel/index.tsx new file mode 100644 index 0000000000..28328eda53 --- /dev/null +++ b/components/calendar/__docs__/demo/panel/index.tsx @@ -0,0 +1,12 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Calendar } from '@alifd/next'; +import moment from 'moment'; + +ReactDOM.render( +
+ +
, + mountNode +); diff --git a/components/calendar/index.d.ts b/components/calendar/index.d.ts index bc87a4e32c..a52ea31b9c 100644 --- a/components/calendar/index.d.ts +++ b/components/calendar/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/calendar/main.scss b/components/calendar/main.scss index 7fe064308c..fcb428e3c2 100644 --- a/components/calendar/main.scss +++ b/components/calendar/main.scss @@ -1,12 +1,12 @@ @import '../core/index-noreset'; -@import "scss/variable"; -@import "scss/normalize"; -@import "scss/mixin"; -@import "scss/animation"; +@import "./scss/variable"; +@import "./scss/normalize"; +@import "./scss/mixin"; +@import "./scss/animation"; -@import "scss/header"; -@import "scss/table"; +@import "./scss/header"; +@import "./scss/table"; @import "./rtl.scss"; #{$calendar-prefix} { diff --git a/components/calendar2/__docs__/demo/basic/index.tsx b/components/calendar2/__docs__/demo/basic/index.tsx index 2a5e8b3db0..ae21123824 100644 --- a/components/calendar2/__docs__/demo/basic/index.tsx +++ b/components/calendar2/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar2 } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/calendar2/__docs__/demo/card/index.tsx b/components/calendar2/__docs__/demo/card/index.tsx index 8a900c1159..4fe1227df2 100644 --- a/components/calendar2/__docs__/demo/card/index.tsx +++ b/components/calendar2/__docs__/demo/card/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar2 } from '@alifd/next'; function onDateChange(value) { diff --git a/components/calendar2/__docs__/demo/custom-cell/index.tsx b/components/calendar2/__docs__/demo/custom-cell/index.tsx index ca3e9dfc93..121ebf10e7 100644 --- a/components/calendar2/__docs__/demo/custom-cell/index.tsx +++ b/components/calendar2/__docs__/demo/custom-cell/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar2 } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/calendar2/__docs__/demo/default-visible-month/index.tsx b/components/calendar2/__docs__/demo/default-visible-month/index.tsx index 0b05a6829c..a8a36dc553 100644 --- a/components/calendar2/__docs__/demo/default-visible-month/index.tsx +++ b/components/calendar2/__docs__/demo/default-visible-month/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar2 } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/calendar2/__docs__/demo/disabled/index.tsx b/components/calendar2/__docs__/demo/disabled/index.tsx index c3d133eab7..8fc1c6eb7f 100644 --- a/components/calendar2/__docs__/demo/disabled/index.tsx +++ b/components/calendar2/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar2 } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/calendar2/__docs__/demo/lunar/index.css b/components/calendar2/__docs__/demo/lunar/index.css new file mode 100644 index 0000000000..1fd51ad3df --- /dev/null +++ b/components/calendar2/__docs__/demo/lunar/index.css @@ -0,0 +1,8 @@ +.custom-cell { + width: 100%; + height: 70px; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} diff --git a/components/calendar2/__docs__/demo/lunar/index.md b/components/calendar2/__docs__/demo/lunar/index.md index e791964631..5d6efdf420 100644 --- a/components/calendar2/__docs__/demo/lunar/index.md +++ b/components/calendar2/__docs__/demo/lunar/index.md @@ -4,17 +4,6 @@ 农历 -```css -.custom-cell { - width: 100%; - height: 70px; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: flex-end; -} -``` - # en-US order=3 # Lunar Calendar diff --git a/components/calendar2/__docs__/demo/lunar/index.tsx b/components/calendar2/__docs__/demo/lunar/index.tsx index 02ca81e6f2..1f43726151 100644 --- a/components/calendar2/__docs__/demo/lunar/index.tsx +++ b/components/calendar2/__docs__/demo/lunar/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar2 } from '@alifd/next'; import dayjs from 'dayjs'; import solarLunar from 'solarlunar'; diff --git a/components/calendar2/__docs__/demo/panel/index.tsx b/components/calendar2/__docs__/demo/panel/index.tsx index 4e2a2893aa..7c53173f9b 100644 --- a/components/calendar2/__docs__/demo/panel/index.tsx +++ b/components/calendar2/__docs__/demo/panel/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Calendar2 } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/calendar2/calendar.jsx b/components/calendar2/calendar.jsx index 8b60e193ab..134b111c41 100644 --- a/components/calendar2/calendar.jsx +++ b/components/calendar2/calendar.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { polyfill } from 'react-lifecycles-compat'; -import * as PT from 'prop-types'; +import PT from 'prop-types'; import classnames from 'classnames'; import defaultLocale from '../locale/zh-cn'; import { func, datejs, obj } from '../util'; diff --git a/components/calendar2/index.d.ts b/components/calendar2/index.d.ts index df65897047..e70d72d8f1 100644 --- a/components/calendar2/index.d.ts +++ b/components/calendar2/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { Dayjs, ConfigType } from 'dayjs'; diff --git a/components/calendar2/main.scss b/components/calendar2/main.scss index 4ee8953580..78f50cb155 100644 --- a/components/calendar2/main.scss +++ b/components/calendar2/main.scss @@ -1,8 +1,8 @@ @import "../core/index-noreset"; -@import "scss/variable"; -@import "scss/normalize"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/normalize"; +@import "./scss/mixin"; @import "./rtl.scss"; diff --git a/components/calendar2/panels/date-table.jsx b/components/calendar2/panels/date-table.jsx index 87a3a739aa..1c7b8c28ce 100644 --- a/components/calendar2/panels/date-table.jsx +++ b/components/calendar2/panels/date-table.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { polyfill } from 'react-lifecycles-compat'; import classnames from 'classnames'; -import * as PT from 'prop-types'; +import PT from 'prop-types'; import SharedPT from '../prop-types'; import { DATE_PANEL_MODE } from '../constant'; import { func, datejs, KEYCODE } from '../../util'; diff --git a/components/calendar2/panels/header-panel.jsx b/components/calendar2/panels/header-panel.jsx index 568ff0c30a..906f899b9a 100644 --- a/components/calendar2/panels/header-panel.jsx +++ b/components/calendar2/panels/header-panel.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { polyfill } from 'react-lifecycles-compat'; -import * as PT from 'prop-types'; +import PT from 'prop-types'; import { func, datejs } from '../../util'; import { CALENDAR_MODE, DATE_PANEL_MODE, CALENDAR_SHAPE } from '../constant'; @@ -55,7 +55,9 @@ class HeaderPanel extends React.PureComponent { createPanelBtns = ({ unit, num = 1, isSuper = true }) => { const value = this.props.panelValue.clone(); const { prefixCls } = this; - const iconTypes = isSuper ? ['arrow-double-left', 'arrow-double-right'] : ['arrow-left', 'arrow-right']; + const iconTypes = isSuper + ? ['arrow-double-left', 'arrow-double-right'] + : ['arrow-left', 'arrow-right']; return [ , - mountNode -); -``` - # en-US order=0 # Basic diff --git a/components/notification/__docs__/demo/basic/index.tsx b/components/notification/__docs__/demo/basic/index.tsx new file mode 100644 index 0000000000..8bc501b188 --- /dev/null +++ b/components/notification/__docs__/demo/basic/index.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Notification, Button } from '@alifd/next'; + +const openNotification = () => { + Notification.open({ + title: 'Notification Title', + content: + 'This is the content of the notification. This is the content of the notification. This is the content of the notification.', + onClick: () => { + console.log('Notification Clicked!'); + }, + }); +}; + +ReactDOM.render( + , + mountNode +); diff --git a/components/notification/__docs__/demo/duration/index.md b/components/notification/__docs__/demo/duration/index.md index 707a1de48f..593680142b 100644 --- a/components/notification/__docs__/demo/duration/index.md +++ b/components/notification/__docs__/demo/duration/index.md @@ -4,31 +4,6 @@ 自定义关闭的延迟,默认 `4.5s`, 为 `0` 时则一直存在 -```jsx -import { Notification, Button, NumberPicker } from '@alifd/next'; - -let duration = 4500; -const openNotification = () => { - const args = { - title: 'Notification Title', - content: - 'I will never close automatically. I will be close automatically. I will never close automatically.', - duration, - }; - Notification.open(args); -}; - -ReactDOM.render( -
- (duration = v || 0)} /> - -
, - mountNode -); -``` - # en-US order=1 # Duration diff --git a/components/notification/__docs__/demo/duration/index.tsx b/components/notification/__docs__/demo/duration/index.tsx new file mode 100644 index 0000000000..855af24209 --- /dev/null +++ b/components/notification/__docs__/demo/duration/index.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Notification, Button, NumberPicker } from '@alifd/next'; + +let duration = 4500; +const openNotification = () => { + const args = { + title: 'Notification Title', + content: + 'I will never close automatically. I will be close automatically. I will never close automatically.', + duration, + }; + Notification.open(args); +}; + +ReactDOM.render( +
+ (duration = v || 0)} /> + +
, + mountNode +); diff --git a/components/notification/__docs__/demo/icon/index.md b/components/notification/__docs__/demo/icon/index.md index b600ba1580..967e5703e2 100644 --- a/components/notification/__docs__/demo/icon/index.md +++ b/components/notification/__docs__/demo/icon/index.md @@ -4,29 +4,6 @@ 可以设置使用的图标 -```jsx -import { Notification, Button } from '@alifd/next'; - -const openNotification = () => { - const args = { - title: 'Notification Title', - content: - 'I will never close automatically. I will be close automatically. I will never close automatically.', - icon: 'smile', - }; - Notification.open(args); -}; - -ReactDOM.render( -
- -
, - mountNode -); -``` - # en-US order=3 # Custom Icon diff --git a/components/notification/__docs__/demo/icon/index.tsx b/components/notification/__docs__/demo/icon/index.tsx new file mode 100644 index 0000000000..296ed0caf1 --- /dev/null +++ b/components/notification/__docs__/demo/icon/index.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Notification, Button } from '@alifd/next'; + +const openNotification = () => { + const args = { + title: 'Notification Title', + content: + 'I will never close automatically. I will be close automatically. I will never close automatically.', + icon: 'smile', + }; + Notification.open(args); +}; + +ReactDOM.render( +
+ +
, + mountNode +); diff --git a/components/notification/__docs__/demo/position/index.css b/components/notification/__docs__/demo/position/index.css new file mode 100644 index 0000000000..8501bd1644 --- /dev/null +++ b/components/notification/__docs__/demo/position/index.css @@ -0,0 +1,3 @@ +.button-row .next-btn { + margin-right: 10px; +} diff --git a/components/notification/__docs__/demo/position/index.md b/components/notification/__docs__/demo/position/index.md index 1a099593ea..c4c1b5bfb6 100644 --- a/components/notification/__docs__/demo/position/index.md +++ b/components/notification/__docs__/demo/position/index.md @@ -4,43 +4,6 @@ 可以设置通知从右上角、右下角、左下角、左上角弹出。 -```jsx -import { Notification, Button } from '@alifd/next'; - -const openNotification = placement => { - Notification.config({ placement }); - Notification.open({ - title: 'Notification Title', - content: - 'This is the content of the notification. This is the content of the notification. This is the content of the notification.', - }); -}; - -ReactDOM.render( -
- - - - -
, - mountNode -); -``` - -```css -.button-row .next-btn { - margin-right: 10px; -} -``` - # en-US order=4 # Position diff --git a/components/notification/__docs__/demo/position/index.tsx b/components/notification/__docs__/demo/position/index.tsx new file mode 100644 index 0000000000..5ffb3ab838 --- /dev/null +++ b/components/notification/__docs__/demo/position/index.tsx @@ -0,0 +1,31 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Notification, Button } from '@alifd/next'; + +const openNotification = placement => { + Notification.config({ placement }); + Notification.open({ + title: 'Notification Title', + content: + 'This is the content of the notification. This is the content of the notification. This is the content of the notification.', + }); +}; + +ReactDOM.render( +
+ + + + +
, + mountNode +); diff --git a/components/notification/__docs__/demo/style/index.md b/components/notification/__docs__/demo/style/index.md index a635e33c01..9f48061ca0 100644 --- a/components/notification/__docs__/demo/style/index.md +++ b/components/notification/__docs__/demo/style/index.md @@ -4,29 +4,6 @@ 使用 `style` 和 `className` 来定义样式。 -```jsx -import { Notification, Button } from '@alifd/next'; - -const openNotification = () => { - Notification.open({ - title: 'Notification Title', - content: - 'This is the content of the notification. This is the content of the notification. This is the content of the notification.', - style: { - width: 600, - marginLeft: -225, - }, - }); -}; - -ReactDOM.render( - , - mountNode -); -``` - # en-US order=6 # Custom Style diff --git a/components/notification/__docs__/demo/style/index.tsx b/components/notification/__docs__/demo/style/index.tsx new file mode 100644 index 0000000000..135736cf14 --- /dev/null +++ b/components/notification/__docs__/demo/style/index.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Notification, Button } from '@alifd/next'; + +const openNotification = () => { + Notification.open({ + title: 'Notification Title', + content: + 'This is the content of the notification. This is the content of the notification. This is the content of the notification.', + style: { + width: 600, + marginLeft: -225, + }, + }); +}; + +ReactDOM.render( + , + mountNode +); diff --git a/components/notification/__docs__/demo/type/index.css b/components/notification/__docs__/demo/type/index.css new file mode 100644 index 0000000000..8501bd1644 --- /dev/null +++ b/components/notification/__docs__/demo/type/index.css @@ -0,0 +1,3 @@ +.button-row .next-btn { + margin-right: 10px; +} diff --git a/components/notification/__docs__/demo/type/index.md b/components/notification/__docs__/demo/type/index.md index d59c658eef..14a1aebe10 100644 --- a/components/notification/__docs__/demo/type/index.md +++ b/components/notification/__docs__/demo/type/index.md @@ -4,46 +4,6 @@ `success`, `warning`, `error`, `notice`, `help` 类型的通知框。 -```jsx -import { Notification, Button } from '@alifd/next'; - -const openNotification = type => { - Notification.open({ - title: 'Notification Title', - content: - 'This is the content of the notification. This is the content of the notification. This is the content of the notification.', - type, - }); -}; - -ReactDOM.render( -
- - - - - -
, - mountNode -); -``` - -```css -.button-row .next-btn { - margin-right: 10px; -} -``` - # en-US order=2 # Level Notification diff --git a/components/notification/__docs__/demo/type/index.tsx b/components/notification/__docs__/demo/type/index.tsx new file mode 100644 index 0000000000..60a2e3ba8f --- /dev/null +++ b/components/notification/__docs__/demo/type/index.tsx @@ -0,0 +1,34 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Notification, Button } from '@alifd/next'; + +const openNotification = type => { + Notification.open({ + title: 'Notification Title', + content: + 'This is the content of the notification. This is the content of the notification. This is the content of the notification.', + type, + }); +}; + +ReactDOM.render( +
+ + + + + +
, + mountNode +); diff --git a/components/notification/__docs__/demo/update/index.md b/components/notification/__docs__/demo/update/index.md index bf361c689a..718b35e635 100644 --- a/components/notification/__docs__/demo/update/index.md +++ b/components/notification/__docs__/demo/update/index.md @@ -4,34 +4,6 @@ 可以通过唯一的 `key` 来更新内容。 -```jsx -import { Notification, Button } from '@alifd/next'; - -const key = 'updatable'; - -const openNotification = () => { - Notification.open({ - key, - title: 'Notification Title', - content: 'description.', - }); - setTimeout(() => { - Notification.open({ - key, - title: 'New Title', - content: 'New description.', - }); - }, 1000); -}; - -ReactDOM.render( - , - mountNode -); -``` - # en-US order=5 # Update Content diff --git a/components/notification/__docs__/demo/update/index.tsx b/components/notification/__docs__/demo/update/index.tsx new file mode 100644 index 0000000000..d75d3bcbfc --- /dev/null +++ b/components/notification/__docs__/demo/update/index.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Notification, Button } from '@alifd/next'; + +const key = 'updatable'; + +const openNotification = () => { + Notification.open({ + key, + title: 'Notification Title', + content: 'description.', + }); + setTimeout(() => { + Notification.open({ + key, + title: 'New Title', + content: 'New description.', + }); + }, 1000); +}; + +ReactDOM.render( + , + mountNode +); diff --git a/components/number-picker/__docs__/demo/accessibility/index.tsx b/components/number-picker/__docs__/demo/accessibility/index.tsx index 19d99e49fb..0e9f1d62ea 100644 --- a/components/number-picker/__docs__/demo/accessibility/index.tsx +++ b/components/number-picker/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; diff --git a/components/number-picker/__docs__/demo/basic/index.tsx b/components/number-picker/__docs__/demo/basic/index.tsx index 275c66442e..20cc4ba593 100644 --- a/components/number-picker/__docs__/demo/basic/index.tsx +++ b/components/number-picker/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; function onChange(value, e) { diff --git a/components/number-picker/__docs__/demo/bignumber/index.tsx b/components/number-picker/__docs__/demo/bignumber/index.tsx index be4d077533..bf111010db 100644 --- a/components/number-picker/__docs__/demo/bignumber/index.tsx +++ b/components/number-picker/__docs__/demo/bignumber/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; const step = '0.000000000000000000000001'; diff --git a/components/number-picker/__docs__/demo/disabled/index.tsx b/components/number-picker/__docs__/demo/disabled/index.tsx index bc539bdbac..96d5e9a674 100644 --- a/components/number-picker/__docs__/demo/disabled/index.tsx +++ b/components/number-picker/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; ReactDOM.render( diff --git a/components/number-picker/__docs__/demo/editable/index.tsx b/components/number-picker/__docs__/demo/editable/index.tsx index 3102ba962d..f390bddfd1 100644 --- a/components/number-picker/__docs__/demo/editable/index.tsx +++ b/components/number-picker/__docs__/demo/editable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker, Button } from '@alifd/next'; class App extends React.Component { diff --git a/components/number-picker/__docs__/demo/format/index.tsx b/components/number-picker/__docs__/demo/format/index.tsx index e7b0e96b10..48d4428f55 100644 --- a/components/number-picker/__docs__/demo/format/index.tsx +++ b/components/number-picker/__docs__/demo/format/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; const intlize = val => Intl.NumberFormat('en-US').format(val); diff --git a/components/number-picker/__docs__/demo/limit/index.tsx b/components/number-picker/__docs__/demo/limit/index.tsx index 2194e9c58e..de6a1715ed 100644 --- a/components/number-picker/__docs__/demo/limit/index.tsx +++ b/components/number-picker/__docs__/demo/limit/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; function onChange(value, e) { diff --git a/components/number-picker/__docs__/demo/mobile/index.tsx b/components/number-picker/__docs__/demo/mobile/index.tsx index 9e1bfd25fc..bfbd9ad84b 100644 --- a/components/number-picker/__docs__/demo/mobile/index.tsx +++ b/components/number-picker/__docs__/demo/mobile/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker, Radio } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/number-picker/__docs__/demo/precision/index.tsx b/components/number-picker/__docs__/demo/precision/index.tsx index 6f3f1e9dce..822534bbea 100644 --- a/components/number-picker/__docs__/demo/precision/index.tsx +++ b/components/number-picker/__docs__/demo/precision/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; function onChange(value) { diff --git a/components/number-picker/__docs__/demo/size/index.tsx b/components/number-picker/__docs__/demo/size/index.tsx index 7c6e0c9ef0..ebfb8cd61b 100644 --- a/components/number-picker/__docs__/demo/size/index.tsx +++ b/components/number-picker/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; ReactDOM.render( diff --git a/components/number-picker/__docs__/demo/step/index.tsx b/components/number-picker/__docs__/demo/step/index.tsx index b8f2406ea2..c65ecfad41 100644 --- a/components/number-picker/__docs__/demo/step/index.tsx +++ b/components/number-picker/__docs__/demo/step/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; function onChange(value) { diff --git a/components/number-picker/__docs__/demo/trigger/index.tsx b/components/number-picker/__docs__/demo/trigger/index.tsx index d9f8ebf87b..1204dfe291 100644 --- a/components/number-picker/__docs__/demo/trigger/index.tsx +++ b/components/number-picker/__docs__/demo/trigger/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { NumberPicker } from '@alifd/next'; function onChange(value) { diff --git a/components/number-picker/index.d.ts b/components/number-picker/index.d.ts index f8904507ca..c6bb80eedb 100644 --- a/components/number-picker/index.d.ts +++ b/components/number-picker/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { ButtonProps } from '../button'; import Input from '../input'; diff --git a/components/number-picker/main.scss b/components/number-picker/main.scss index 94bef0cf36..4eb8a5f5b1 100644 --- a/components/number-picker/main.scss +++ b/components/number-picker/main.scss @@ -1,8 +1,8 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; #{$number-picker-prefix} { @include box-sizing; diff --git a/components/overlay/__docs__/demo/align/index.tsx b/components/overlay/__docs__/demo/align/index.tsx index bbf9a74428..625322883c 100644 --- a/components/overlay/__docs__/demo/align/index.tsx +++ b/components/overlay/__docs__/demo/align/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button } from '@alifd/next'; const { Popup } = Overlay; diff --git a/components/overlay/__docs__/demo/backdrop/index.tsx b/components/overlay/__docs__/demo/backdrop/index.tsx index dde44305d2..5b891eae06 100644 --- a/components/overlay/__docs__/demo/backdrop/index.tsx +++ b/components/overlay/__docs__/demo/backdrop/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/overlay/__docs__/demo/baisc/index.tsx b/components/overlay/__docs__/demo/baisc/index.tsx index 0b7033e138..7d6f001961 100644 --- a/components/overlay/__docs__/demo/baisc/index.tsx +++ b/components/overlay/__docs__/demo/baisc/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/overlay/__docs__/demo/controlled/index.tsx b/components/overlay/__docs__/demo/controlled/index.tsx index d59f61dfdf..1aab8fe2ff 100644 --- a/components/overlay/__docs__/demo/controlled/index.tsx +++ b/components/overlay/__docs__/demo/controlled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button } from '@alifd/next'; const { Popup } = Overlay; diff --git a/components/overlay/__docs__/demo/nested/index.tsx b/components/overlay/__docs__/demo/nested/index.tsx index f70c73bbe3..33036dbcaf 100644 --- a/components/overlay/__docs__/demo/nested/index.tsx +++ b/components/overlay/__docs__/demo/nested/index.tsx @@ -1,5 +1,5 @@ -import * as ReactDOM from 'react-dom'; -import { useState } from 'react'; +import React, { useState } from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button, diff --git a/components/overlay/__docs__/demo/popup/index.css b/components/overlay/__docs__/demo/popup/index.css new file mode 100644 index 0000000000..2603450e10 --- /dev/null +++ b/components/overlay/__docs__/demo/popup/index.css @@ -0,0 +1,8 @@ +.overlay-demo { + width: 300px; + height: 100px; + padding: 10px; + border: 1px solid #999999; + background: #ffffff; + box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15); +} diff --git a/components/overlay/__docs__/demo/popup/index.md b/components/overlay/__docs__/demo/popup/index.md index 49bea99b1a..901b3adb04 100644 --- a/components/overlay/__docs__/demo/popup/index.md +++ b/components/overlay/__docs__/demo/popup/index.md @@ -4,17 +4,6 @@ `Popup` 是对 `Overlay` 的封装,它接收某个节点作为触发节点,弹出一个浮层,这个浮层默认情况下使用这个节点作为定位的参照对象。 -```css -.overlay-demo { - width: 300px; - height: 100px; - padding: 10px; - border: 1px solid #999999; - background: #ffffff; - box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15); -} -``` - # en-US order=2 # Popup diff --git a/components/overlay/__docs__/demo/popup/index.tsx b/components/overlay/__docs__/demo/popup/index.tsx index 2be48c8d3a..b4709d14d8 100644 --- a/components/overlay/__docs__/demo/popup/index.tsx +++ b/components/overlay/__docs__/demo/popup/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button, Input } from '@alifd/next'; const { Popup } = Overlay; diff --git a/components/overlay/__docs__/demo/scroll-debug/index.tsx b/components/overlay/__docs__/demo/scroll-debug/index.tsx index 295af10a47..c533cb6056 100644 --- a/components/overlay/__docs__/demo/scroll-debug/index.tsx +++ b/components/overlay/__docs__/demo/scroll-debug/index.tsx @@ -1,5 +1,5 @@ -import * as ReactDOM from 'react-dom'; -import { useState } from 'react'; +import React, { useState } from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button, Table, Select } from '@alifd/next'; const { Popup } = Overlay; diff --git a/components/overlay/__docs__/demo/scroll/index.tsx b/components/overlay/__docs__/demo/scroll/index.tsx index 93c8a99d9d..6f0bcd41a9 100644 --- a/components/overlay/__docs__/demo/scroll/index.tsx +++ b/components/overlay/__docs__/demo/scroll/index.tsx @@ -1,5 +1,5 @@ -import * as ReactDOM from 'react-dom'; -import { useState } from 'react'; +import React, { useState } from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button } from '@alifd/next'; const { Popup } = Overlay; diff --git a/components/overlay/__docs__/demo/tooltip/index.tsx b/components/overlay/__docs__/demo/tooltip/index.tsx index 75c3dd8744..11249cfe91 100644 --- a/components/overlay/__docs__/demo/tooltip/index.tsx +++ b/components/overlay/__docs__/demo/tooltip/index.tsx @@ -1,5 +1,5 @@ -import * as ReactDOM from 'react-dom'; -import { useState } from 'react'; +import React, { useState } from 'react'; +import ReactDOM from 'react-dom'; import { Overlay, Button } from '@alifd/next'; const { Popup } = Overlay; diff --git a/components/overlay/__docs__/demo/trigger-type/index.tsx b/components/overlay/__docs__/demo/trigger-type/index.tsx index ea96ed8a8d..c105f88439 100644 --- a/components/overlay/__docs__/demo/trigger-type/index.tsx +++ b/components/overlay/__docs__/demo/trigger-type/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Overlay } from '@alifd/next'; const { Popup } = Overlay; diff --git a/components/overlay/index.d.ts b/components/overlay/index.d.ts index 30a8998e0b..3c3d415bd3 100644 --- a/components/overlay/index.d.ts +++ b/components/overlay/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; export interface PopupProps extends React.HTMLAttributes, CommonProps { diff --git a/components/pagination/__docs__/demo/control/index.tsx b/components/pagination/__docs__/demo/control/index.tsx index 25d46e7c30..d413186ae7 100644 --- a/components/pagination/__docs__/demo/control/index.tsx +++ b/components/pagination/__docs__/demo/control/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/pagination/__docs__/demo/dropdown-direction/index.tsx b/components/pagination/__docs__/demo/dropdown-direction/index.tsx index ce3cd705ea..63704eeaab 100644 --- a/components/pagination/__docs__/demo/dropdown-direction/index.tsx +++ b/components/pagination/__docs__/demo/dropdown-direction/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; const handlePageSizeChange = size => console.log(size); diff --git a/components/pagination/__docs__/demo/link/index.tsx b/components/pagination/__docs__/demo/link/index.tsx index bf30e9324b..7e61dc3b63 100644 --- a/components/pagination/__docs__/demo/link/index.tsx +++ b/components/pagination/__docs__/demo/link/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; const format = `${window.location.href}#/{page}`; diff --git a/components/pagination/__docs__/demo/more/index.tsx b/components/pagination/__docs__/demo/more/index.tsx index 9a02bf1770..167546f5a2 100644 --- a/components/pagination/__docs__/demo/more/index.tsx +++ b/components/pagination/__docs__/demo/more/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; ReactDOM.render(, mountNode); diff --git a/components/pagination/__docs__/demo/page-size/index.tsx b/components/pagination/__docs__/demo/page-size/index.tsx index 2aa6b8c1ae..b25b1530fb 100644 --- a/components/pagination/__docs__/demo/page-size/index.tsx +++ b/components/pagination/__docs__/demo/page-size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/pagination/__docs__/demo/react-router/index.tsx b/components/pagination/__docs__/demo/react-router/index.tsx index fca2054860..63c4c3240a 100644 --- a/components/pagination/__docs__/demo/react-router/index.tsx +++ b/components/pagination/__docs__/demo/react-router/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; import { hashHistory } from 'react-router'; diff --git a/components/pagination/__docs__/demo/shape/index.tsx b/components/pagination/__docs__/demo/shape/index.tsx index be25fa4c62..a0307900c7 100644 --- a/components/pagination/__docs__/demo/shape/index.tsx +++ b/components/pagination/__docs__/demo/shape/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; ReactDOM.render( diff --git a/components/pagination/__docs__/demo/show-jump/index.tsx b/components/pagination/__docs__/demo/show-jump/index.tsx index 01ab859e51..538ef217aa 100644 --- a/components/pagination/__docs__/demo/show-jump/index.tsx +++ b/components/pagination/__docs__/demo/show-jump/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; const change = function (value) { diff --git a/components/pagination/__docs__/demo/show-total/index.tsx b/components/pagination/__docs__/demo/show-total/index.tsx index b2243779ba..a5b8ff6ce9 100644 --- a/components/pagination/__docs__/demo/show-total/index.tsx +++ b/components/pagination/__docs__/demo/show-total/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; const total = 50; diff --git a/components/pagination/__docs__/demo/size/index.tsx b/components/pagination/__docs__/demo/size/index.tsx index 9a533ed96c..78e517da3f 100644 --- a/components/pagination/__docs__/demo/size/index.tsx +++ b/components/pagination/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; ReactDOM.render( diff --git a/components/pagination/__docs__/demo/type/index.tsx b/components/pagination/__docs__/demo/type/index.tsx index dc1e627aa0..3fe54eb964 100644 --- a/components/pagination/__docs__/demo/type/index.tsx +++ b/components/pagination/__docs__/demo/type/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; ReactDOM.render( diff --git a/components/pagination/__docs__/demo/uncontrol/index.tsx b/components/pagination/__docs__/demo/uncontrol/index.tsx index a7e136e8ee..dfd9892b44 100644 --- a/components/pagination/__docs__/demo/uncontrol/index.tsx +++ b/components/pagination/__docs__/demo/uncontrol/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Pagination } from '@alifd/next'; const change = function (value) { diff --git a/components/pagination/index.d.ts b/components/pagination/index.d.ts index 9247ae95b2..f0b9ad10a3 100644 --- a/components/pagination/index.d.ts +++ b/components/pagination/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; import { SelectProps } from '../select'; diff --git a/components/pagination/main.scss b/components/pagination/main.scss index abea708682..5f8c83e569 100644 --- a/components/pagination/main.scss +++ b/components/pagination/main.scss @@ -1,6 +1,6 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/mixin"; @import "./rtl.scss"; #{$pagination-prefix} { diff --git a/components/paragraph/__docs__/adaptor/index.tsx b/components/paragraph/__docs__/adaptor/index.tsx index cdcdcb35c2..294a474e5b 100644 --- a/components/paragraph/__docs__/adaptor/index.tsx +++ b/components/paragraph/__docs__/adaptor/index.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { Paragraph } from '@alifd/next'; import { Types } from '@alifd/adaptor-helper'; diff --git a/components/paragraph/__docs__/demo/basic/index.tsx b/components/paragraph/__docs__/demo/basic/index.tsx index 6af2429d4a..ad57aad727 100644 --- a/components/paragraph/__docs__/demo/basic/index.tsx +++ b/components/paragraph/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Paragraph } from '@alifd/next'; const content = diff --git a/components/paragraph/__docs__/demo/type/index.tsx b/components/paragraph/__docs__/demo/type/index.tsx index 9e14749cb4..932c34ddec 100644 --- a/components/paragraph/__docs__/demo/type/index.tsx +++ b/components/paragraph/__docs__/demo/type/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Paragraph } from '@alifd/next'; const content = diff --git a/components/paragraph/__docs__/theme/index.tsx b/components/paragraph/__docs__/theme/index.tsx index 275dd9d234..2aa514e9c8 100644 --- a/components/paragraph/__docs__/theme/index.tsx +++ b/components/paragraph/__docs__/theme/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import '../../../demo-helper/style'; import { Demo, DemoGroup, DemoHead, initDemo } from '../../../demo-helper'; import Paragraph from '../../index'; diff --git a/components/paragraph/__tests__/a11y-spec.tsx b/components/paragraph/__tests__/a11y-spec.tsx index a187b566ed..83907a8d7d 100644 --- a/components/paragraph/__tests__/a11y-spec.tsx +++ b/components/paragraph/__tests__/a11y-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Paragraph from '../index'; import '../style'; import { testReact } from '../../util/__tests__/a11y/validate'; diff --git a/components/paragraph/__tests__/index-spec.tsx b/components/paragraph/__tests__/index-spec.tsx index a2bf2b5137..eac5095182 100644 --- a/components/paragraph/__tests__/index-spec.tsx +++ b/components/paragraph/__tests__/index-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Paragraph from '../index'; describe('Paragraph', () => { diff --git a/components/paragraph/index.tsx b/components/paragraph/index.tsx index ccfed1e964..292258eef6 100644 --- a/components/paragraph/index.tsx +++ b/components/paragraph/index.tsx @@ -1,6 +1,6 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import * as classNames from 'classnames'; +import React from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; import ConfigProvider from '../config-provider'; import { log } from '../util'; import { ParagraphProps } from './types'; diff --git a/components/paragraph/main.scss b/components/paragraph/main.scss index d13662d28e..7e072019ac 100644 --- a/components/paragraph/main.scss +++ b/components/paragraph/main.scss @@ -1,6 +1,6 @@ @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; #{$paragraph-prefix} { color: $paragraph-text-color; diff --git a/components/paragraph/types.ts b/components/paragraph/types.ts index 32fe328c77..40a98844a2 100644 --- a/components/paragraph/types.ts +++ b/components/paragraph/types.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; /** diff --git a/components/progress/__docs__/demo/basic/index.tsx b/components/progress/__docs__/demo/basic/index.tsx index 9535cebb4f..c8e8c9001c 100644 --- a/components/progress/__docs__/demo/basic/index.tsx +++ b/components/progress/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress } from '@alifd/next'; ReactDOM.render( diff --git a/components/progress/__docs__/demo/circle/index.tsx b/components/progress/__docs__/demo/circle/index.tsx index d4f0d7ce52..42a1778062 100644 --- a/components/progress/__docs__/demo/circle/index.tsx +++ b/components/progress/__docs__/demo/circle/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress, Icon, Box } from '@alifd/next'; ReactDOM.render( diff --git a/components/progress/__docs__/demo/color/index.tsx b/components/progress/__docs__/demo/color/index.tsx index 28379b804b..9b53995ab6 100644 --- a/components/progress/__docs__/demo/color/index.tsx +++ b/components/progress/__docs__/demo/color/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress, Icon, Box } from '@alifd/next'; ReactDOM.render( diff --git a/components/progress/__docs__/demo/controlled/index.tsx b/components/progress/__docs__/demo/controlled/index.tsx index 973197d55c..2b518ce65d 100644 --- a/components/progress/__docs__/demo/controlled/index.tsx +++ b/components/progress/__docs__/demo/controlled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress, Button, Icon } from '@alifd/next'; class CustomProgress extends React.Component { diff --git a/components/progress/__docs__/demo/percentrender/index.tsx b/components/progress/__docs__/demo/percentrender/index.tsx index c2e7ab79fc..22fe2d7bea 100644 --- a/components/progress/__docs__/demo/percentrender/index.tsx +++ b/components/progress/__docs__/demo/percentrender/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress, Icon } from '@alifd/next'; const textRender = percent => { diff --git a/components/progress/__docs__/demo/progressive/index.tsx b/components/progress/__docs__/demo/progressive/index.tsx index dca888b429..2507f79603 100644 --- a/components/progress/__docs__/demo/progressive/index.tsx +++ b/components/progress/__docs__/demo/progressive/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress } from '@alifd/next'; ReactDOM.render( diff --git a/components/progress/__docs__/demo/size/index.tsx b/components/progress/__docs__/demo/size/index.tsx index 48e531ee57..ff3eb3179f 100644 --- a/components/progress/__docs__/demo/size/index.tsx +++ b/components/progress/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress, Box } from '@alifd/next'; ReactDOM.render( diff --git a/components/progress/__docs__/demo/state/index.tsx b/components/progress/__docs__/demo/state/index.tsx index 05c6d9f977..892846e9dd 100644 --- a/components/progress/__docs__/demo/state/index.tsx +++ b/components/progress/__docs__/demo/state/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Progress } from '@alifd/next'; ReactDOM.render( diff --git a/components/progress/index.d.ts b/components/progress/index.d.ts index f7b16ce018..b66b23403d 100644 --- a/components/progress/index.d.ts +++ b/components/progress/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; export interface ProgressProps extends React.HTMLAttributes, CommonProps { diff --git a/components/progress/main.scss b/components/progress/main.scss index 04e4b26920..7d84724ab3 100644 --- a/components/progress/main.scss +++ b/components/progress/main.scss @@ -1,6 +1,6 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/mixin"; @import "./rtl.scss"; #{$progress-prefix}-line { diff --git a/components/radio/__docs__/demo/accessibility/index.tsx b/components/radio/__docs__/demo/accessibility/index.tsx index 4c690d2709..04d2f86f73 100644 --- a/components/radio/__docs__/demo/accessibility/index.tsx +++ b/components/radio/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio } from '@alifd/next'; const RadioGroup = Radio.Group; diff --git a/components/radio/__docs__/demo/basic/index.tsx b/components/radio/__docs__/demo/basic/index.tsx index 27c11affc7..db2c981af9 100644 --- a/components/radio/__docs__/demo/basic/index.tsx +++ b/components/radio/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio } from '@alifd/next'; ReactDOM.render(Fusion Radio, mountNode); diff --git a/components/radio/__docs__/demo/button/index.tsx b/components/radio/__docs__/demo/button/index.tsx index 34d3c16dba..a46fbf44d3 100644 --- a/components/radio/__docs__/demo/button/index.tsx +++ b/components/radio/__docs__/demo/button/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio } from '@alifd/next'; const RadioGroup = Radio.Group; diff --git a/components/radio/__docs__/demo/control/index.tsx b/components/radio/__docs__/demo/control/index.tsx index fcf4234ec6..5509977e89 100644 --- a/components/radio/__docs__/demo/control/index.tsx +++ b/components/radio/__docs__/demo/control/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio } from '@alifd/next'; const RadioGroup = Radio.Group; diff --git a/components/radio/__docs__/demo/dataSource/index.tsx b/components/radio/__docs__/demo/dataSource/index.tsx index 682c5ef3ea..3ec576de05 100644 --- a/components/radio/__docs__/demo/dataSource/index.tsx +++ b/components/radio/__docs__/demo/dataSource/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio } from '@alifd/next'; const RadioGroup = Radio.Group; diff --git a/components/radio/__docs__/demo/direction/index.tsx b/components/radio/__docs__/demo/direction/index.tsx index 93d433e3fb..891754b2d7 100644 --- a/components/radio/__docs__/demo/direction/index.tsx +++ b/components/radio/__docs__/demo/direction/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio, Input, Switch } from '@alifd/next'; class App extends React.Component { diff --git a/components/radio/__docs__/demo/disabled/index.tsx b/components/radio/__docs__/demo/disabled/index.tsx index 99ec80a0ee..d9ed1a5a79 100644 --- a/components/radio/__docs__/demo/disabled/index.tsx +++ b/components/radio/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio, Switch } from '@alifd/next'; class App extends React.Component { diff --git a/components/radio/__docs__/demo/group/index.tsx b/components/radio/__docs__/demo/group/index.tsx index 0242518ee3..ae0a2f9947 100644 --- a/components/radio/__docs__/demo/group/index.tsx +++ b/components/radio/__docs__/demo/group/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio } from '@alifd/next'; const RadioGroup = Radio.Group; diff --git a/components/radio/__docs__/demo/isPreview/index.css b/components/radio/__docs__/demo/isPreview/index.css new file mode 100644 index 0000000000..976345b681 --- /dev/null +++ b/components/radio/__docs__/demo/isPreview/index.css @@ -0,0 +1,11 @@ +.radio-preview-inline { + display: inline-block; + margin-left: 8px; + line-height: 40px; +} + +.radio-group-preview-inlline { + display: inline-block; + margin-left: 8px; + line-height: 40px; +} diff --git a/components/radio/__docs__/demo/isPreview/index.md b/components/radio/__docs__/demo/isPreview/index.md index 35667b9ec9..5526636073 100644 --- a/components/radio/__docs__/demo/isPreview/index.md +++ b/components/radio/__docs__/demo/isPreview/index.md @@ -4,20 +4,6 @@ `Radio`预览状态。 -```css -.radio-preview-inline { - display: inline-block; - margin-left: 8px; - line-height: 40px; -} - -.radio-group-preview-inlline { - display: inline-block; - margin-left: 8px; - line-height: 40px; -} -``` - # en-US order=4 # isPreview diff --git a/components/radio/__docs__/demo/isPreview/index.tsx b/components/radio/__docs__/demo/isPreview/index.tsx index af61b909c6..97f1e95e47 100644 --- a/components/radio/__docs__/demo/isPreview/index.tsx +++ b/components/radio/__docs__/demo/isPreview/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio, Switch } from '@alifd/next'; class App extends React.Component { diff --git a/components/radio/__docs__/demo/uncontrol/index.tsx b/components/radio/__docs__/demo/uncontrol/index.tsx index 4156b2c795..47ba3a7a29 100644 --- a/components/radio/__docs__/demo/uncontrol/index.tsx +++ b/components/radio/__docs__/demo/uncontrol/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio } from '@alifd/next'; const RadioGroup = Radio.Group; diff --git a/components/radio/__docs__/demo/useWithGrid/index.tsx b/components/radio/__docs__/demo/useWithGrid/index.tsx index 9e3d994c62..89c00d3097 100644 --- a/components/radio/__docs__/demo/useWithGrid/index.tsx +++ b/components/radio/__docs__/demo/useWithGrid/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Radio, Grid } from '@alifd/next'; const { Row, Col } = Grid; diff --git a/components/radio/index.d.ts b/components/radio/index.d.ts index 2f30685c2f..464854672a 100644 --- a/components/radio/index.d.ts +++ b/components/radio/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { data } from '../checkbox'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/radio/main.scss b/components/radio/main.scss index 6088e766ea..876beafdba 100644 --- a/components/radio/main.scss +++ b/components/radio/main.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; @import '../core/index-noreset'; -@import "scss/variable"; +@import "./scss/variable"; @import './rtl.scss'; #{$radio-prefix}-wrapper { diff --git a/components/range/__docs__/demo/basic/index.tsx b/components/range/__docs__/demo/basic/index.tsx index dc8f41f17e..aadb5180ad 100644 --- a/components/range/__docs__/demo/basic/index.tsx +++ b/components/range/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Range, Switch } from '@alifd/next'; const style = { diff --git a/components/range/__docs__/demo/change/index.tsx b/components/range/__docs__/demo/change/index.tsx index d4bc92029e..527db6a2d3 100644 --- a/components/range/__docs__/demo/change/index.tsx +++ b/components/range/__docs__/demo/change/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Range } from '@alifd/next'; const onProcess = value => { diff --git a/components/range/__docs__/demo/control/index.tsx b/components/range/__docs__/demo/control/index.tsx index 5e5244c29c..68e6935837 100644 --- a/components/range/__docs__/demo/control/index.tsx +++ b/components/range/__docs__/demo/control/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Range, NumberPicker, Icon } from '@alifd/next'; const Demo = () => { diff --git a/components/range/__docs__/demo/fixedWidth/index.tsx b/components/range/__docs__/demo/fixedWidth/index.tsx index cb40badab4..e2b7256bf0 100644 --- a/components/range/__docs__/demo/fixedWidth/index.tsx +++ b/components/range/__docs__/demo/fixedWidth/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Range } from '@alifd/next'; const style = { diff --git a/components/range/__docs__/demo/marks/index.tsx b/components/range/__docs__/demo/marks/index.tsx index 3f0d0d7a7d..4e4014ea42 100644 --- a/components/range/__docs__/demo/marks/index.tsx +++ b/components/range/__docs__/demo/marks/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Range } from '@alifd/next'; const style = { diff --git a/components/range/__docs__/demo/reverse/index.tsx b/components/range/__docs__/demo/reverse/index.tsx index 0c50722135..d7f3b7c818 100644 --- a/components/range/__docs__/demo/reverse/index.tsx +++ b/components/range/__docs__/demo/reverse/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Range } from '@alifd/next'; const style = { diff --git a/components/range/__docs__/demo/tipRender/index.tsx b/components/range/__docs__/demo/tipRender/index.tsx index 55837c78a3..e2f82f9a2f 100644 --- a/components/range/__docs__/demo/tipRender/index.tsx +++ b/components/range/__docs__/demo/tipRender/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Range } from '@alifd/next'; class App extends React.Component { diff --git a/components/range/index.d.ts b/components/range/index.d.ts index 2fbead7dea..ba50796075 100644 --- a/components/range/index.d.ts +++ b/components/range/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/range/main.scss b/components/range/main.scss index 340f76636b..bc0fb1cbdc 100644 --- a/components/range/main.scss +++ b/components/range/main.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; .#{$css-prefix} { &range { diff --git a/components/rating/__docs__/demo/accessibility/index.tsx b/components/rating/__docs__/demo/accessibility/index.tsx index 239b45cb61..33d82af569 100644 --- a/components/rating/__docs__/demo/accessibility/index.tsx +++ b/components/rating/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating } from '@alifd/next'; const starMap = { diff --git a/components/rating/__docs__/demo/basic/index.tsx b/components/rating/__docs__/demo/basic/index.tsx index 81be58eed1..75c450bfbc 100644 --- a/components/rating/__docs__/demo/basic/index.tsx +++ b/components/rating/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating } from '@alifd/next'; ReactDOM.render( diff --git a/components/rating/__docs__/demo/clear/index.tsx b/components/rating/__docs__/demo/clear/index.tsx index 75ec2e1a26..9230c148f8 100644 --- a/components/rating/__docs__/demo/clear/index.tsx +++ b/components/rating/__docs__/demo/clear/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating } from '@alifd/next'; ReactDOM.render( diff --git a/components/rating/__docs__/demo/disabled/index.tsx b/components/rating/__docs__/demo/disabled/index.tsx index 1f0d7803d0..de209d6821 100644 --- a/components/rating/__docs__/demo/disabled/index.tsx +++ b/components/rating/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating } from '@alifd/next'; ReactDOM.render( diff --git a/components/rating/__docs__/demo/grade/index.tsx b/components/rating/__docs__/demo/grade/index.tsx index 59a4be7041..6d70583784 100644 --- a/components/rating/__docs__/demo/grade/index.tsx +++ b/components/rating/__docs__/demo/grade/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating } from '@alifd/next'; const starMap = { diff --git a/components/rating/__docs__/demo/half/index.tsx b/components/rating/__docs__/demo/half/index.tsx index 0acea92753..101957c380 100644 --- a/components/rating/__docs__/demo/half/index.tsx +++ b/components/rating/__docs__/demo/half/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating } from '@alifd/next'; ReactDOM.render(, mountNode); diff --git a/components/rating/__docs__/demo/render-preview/index.tsx b/components/rating/__docs__/demo/render-preview/index.tsx index c19d7bc0c6..82cfe45ce8 100644 --- a/components/rating/__docs__/demo/render-preview/index.tsx +++ b/components/rating/__docs__/demo/render-preview/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating, Button } from '@alifd/next'; class Preview extends React.Component { diff --git a/components/rating/__docs__/demo/size/index.tsx b/components/rating/__docs__/demo/size/index.tsx index d30fbf2dff..31b3617357 100644 --- a/components/rating/__docs__/demo/size/index.tsx +++ b/components/rating/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Rating } from '@alifd/next'; ReactDOM.render( diff --git a/components/rating/index.d.ts b/components/rating/index.d.ts index 7d697cea63..f852855d35 100644 --- a/components/rating/index.d.ts +++ b/components/rating/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/rating/main.scss b/components/rating/main.scss index 03359264c5..75a990b05f 100644 --- a/components/rating/main.scss +++ b/components/rating/main.scss @@ -1,6 +1,6 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/mixin"; @import "./rtl.scss"; #{$rating-prefix} { @@ -99,7 +99,7 @@ top: calc(100% + #{$s-1}); left: 0; border: 1px solid $color-fill1-4; - background: $color-white; + background: $rating-grade-background; padding: 4px 8px 3px; font-size: 12px; white-space: nowrap; diff --git a/components/rating/scss/variable.scss b/components/rating/scss/variable.scss index cd93b52a41..a296f1eee5 100644 --- a/components/rating/scss/variable.scss +++ b/components/rating/scss/variable.scss @@ -80,3 +80,7 @@ $rating-grade-high-overlay-hover-color: $color-brand1-6 !default; /// rating icon /// @namespace statement/normal $rating-grade-icon-content: $icon-content-favorites-filling !default; + +/// rating tip background +/// @namespace statement/normal +$rating-grade-background: $color-white !default; diff --git a/components/responsive-grid/__docs__/demo/basic/index.tsx b/components/responsive-grid/__docs__/demo/basic/index.tsx index 307e74e332..6d54d1c68b 100644 --- a/components/responsive-grid/__docs__/demo/basic/index.tsx +++ b/components/responsive-grid/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { ResponsiveGrid, Radio } from '@alifd/next'; const { Cell } = ResponsiveGrid; diff --git a/components/responsive-grid/main.scss b/components/responsive-grid/main.scss index 0d7b5934f2..da26868167 100644 --- a/components/responsive-grid/main.scss +++ b/components/responsive-grid/main.scss @@ -2,8 +2,8 @@ @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; /* put your code here */ diff --git a/components/search/__docs__/demo/accessibility/index.tsx b/components/search/__docs__/demo/accessibility/index.tsx index f481343261..bba2af9137 100644 --- a/components/search/__docs__/demo/accessibility/index.tsx +++ b/components/search/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search } from '@alifd/next'; ReactDOM.render( diff --git a/components/search/__docs__/demo/base/index.tsx b/components/search/__docs__/demo/base/index.tsx index 511784f138..f11f6388c7 100644 --- a/components/search/__docs__/demo/base/index.tsx +++ b/components/search/__docs__/demo/base/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search } from '@alifd/next'; function onSearch(v) { diff --git a/components/search/__docs__/demo/combobox/index.tsx b/components/search/__docs__/demo/combobox/index.tsx index 1e8648f489..2f9b324fef 100644 --- a/components/search/__docs__/demo/combobox/index.tsx +++ b/components/search/__docs__/demo/combobox/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search } from '@alifd/next'; const dataSource = [ diff --git a/components/search/__docs__/demo/custom/index.tsx b/components/search/__docs__/demo/custom/index.tsx index 84f634f6cb..d439b369e3 100644 --- a/components/search/__docs__/demo/custom/index.tsx +++ b/components/search/__docs__/demo/custom/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search, Menu, Button } from '@alifd/next'; const menuData = [ diff --git a/components/search/__docs__/demo/filter/index.tsx b/components/search/__docs__/demo/filter/index.tsx index a38edb7355..bb79c6ffa2 100644 --- a/components/search/__docs__/demo/filter/index.tsx +++ b/components/search/__docs__/demo/filter/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search } from '@alifd/next'; class App extends React.Component { diff --git a/components/search/__docs__/demo/size/index.tsx b/components/search/__docs__/demo/size/index.tsx index abc7ceb4b0..e200f9753d 100644 --- a/components/search/__docs__/demo/size/index.tsx +++ b/components/search/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search } from '@alifd/next'; ReactDOM.render( diff --git a/components/search/__docs__/demo/type/index.tsx b/components/search/__docs__/demo/type/index.tsx index 55fff4b646..20cdfb8d19 100644 --- a/components/search/__docs__/demo/type/index.tsx +++ b/components/search/__docs__/demo/type/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search } from '@alifd/next'; ReactDOM.render( diff --git a/components/search/index.d.ts b/components/search/index.d.ts index db6d145521..fd625060b4 100644 --- a/components/search/index.d.ts +++ b/components/search/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; import { ButtonProps } from '../button'; diff --git a/components/search/main.scss b/components/search/main.scss index 6d7c1d029d..ebb1e2a7b6 100644 --- a/components/search/main.scss +++ b/components/search/main.scss @@ -1,8 +1,8 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; @import "../input/scss/mixin.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; @import "./rtl.scss"; #{$search-prefix} { diff --git a/components/select/__docs__/demo/accessibility/index.tsx b/components/select/__docs__/demo/accessibility/index.tsx index 0618f9b79c..cf2864a66d 100644 --- a/components/select/__docs__/demo/accessibility/index.tsx +++ b/components/select/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const Option = Select.Option; diff --git a/components/select/__docs__/demo/adjust-tag-size/index.tsx b/components/select/__docs__/demo/adjust-tag-size/index.tsx index 4076b0fe94..7d7cdcc669 100644 --- a/components/select/__docs__/demo/adjust-tag-size/index.tsx +++ b/components/select/__docs__/demo/adjust-tag-size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/basic/index.tsx b/components/select/__docs__/demo/basic/index.tsx index b8226989c9..e0d26e7134 100644 --- a/components/select/__docs__/demo/basic/index.tsx +++ b/components/select/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const Option = Select.Option; diff --git a/components/select/__docs__/demo/combobox-basic/index.tsx b/components/select/__docs__/demo/combobox-basic/index.tsx index 7928f5fa2c..66898c7095 100644 --- a/components/select/__docs__/demo/combobox-basic/index.tsx +++ b/components/select/__docs__/demo/combobox-basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const { AutoComplete } = Select; diff --git a/components/select/__docs__/demo/combobox-remote/index.tsx b/components/select/__docs__/demo/combobox-remote/index.tsx index d73ca8ea8b..6db9f8a113 100644 --- a/components/select/__docs__/demo/combobox-remote/index.tsx +++ b/components/select/__docs__/demo/combobox-remote/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; import jsonp from 'jsonp'; diff --git a/components/select/__docs__/demo/combobox/index.tsx b/components/select/__docs__/demo/combobox/index.tsx index 36118a3a24..17a3270f26 100644 --- a/components/select/__docs__/demo/combobox/index.tsx +++ b/components/select/__docs__/demo/combobox/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/custom-menu-props/index.tsx b/components/select/__docs__/demo/custom-menu-props/index.tsx index 1647153b32..057d69b4f7 100644 --- a/components/select/__docs__/demo/custom-menu-props/index.tsx +++ b/components/select/__docs__/demo/custom-menu-props/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select, Divider, Icon, Button, Input } from '@alifd/next'; const Option = Select.Option; diff --git a/components/select/__docs__/demo/custom-menu/index.tsx b/components/select/__docs__/demo/custom-menu/index.tsx index adeaf9e468..617feb0569 100644 --- a/components/select/__docs__/demo/custom-menu/index.tsx +++ b/components/select/__docs__/demo/custom-menu/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select, Icon } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/custom-overlay/index.tsx b/components/select/__docs__/demo/custom-overlay/index.tsx index fe526efcf1..00db16b572 100644 --- a/components/select/__docs__/demo/custom-overlay/index.tsx +++ b/components/select/__docs__/demo/custom-overlay/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; import classNames from 'classnames'; /* eslint-disable react/prop-types, react/no-multi-comp */ diff --git a/components/select/__docs__/demo/custom-value/index.tsx b/components/select/__docs__/demo/custom-value/index.tsx index 512684e3e8..2065c24ed6 100644 --- a/components/select/__docs__/demo/custom-value/index.tsx +++ b/components/select/__docs__/demo/custom-value/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select, Radio } from '@alifd/next'; class DemoWithFillProps extends React.Component { diff --git a/components/select/__docs__/demo/max-count/index.tsx b/components/select/__docs__/demo/max-count/index.tsx index 1cd1d1ccd8..482d904e00 100644 --- a/components/select/__docs__/demo/max-count/index.tsx +++ b/components/select/__docs__/demo/max-count/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select, Balloon } from '@alifd/next'; const { Tooltip } = Balloon; diff --git a/components/select/__docs__/demo/motion-space/index.tsx b/components/select/__docs__/demo/motion-space/index.tsx index 288b72b54d..60e377ead9 100644 --- a/components/select/__docs__/demo/motion-space/index.tsx +++ b/components/select/__docs__/demo/motion-space/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select, Button, diff --git a/components/select/__docs__/demo/multiple copy/index.tsx b/components/select/__docs__/demo/multiple copy/index.tsx index 3e7af22e68..977e09660f 100644 --- a/components/select/__docs__/demo/multiple copy/index.tsx +++ b/components/select/__docs__/demo/multiple copy/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/multiple/index.tsx b/components/select/__docs__/demo/multiple/index.tsx index 08713bc62b..7b8c6bfd26 100644 --- a/components/select/__docs__/demo/multiple/index.tsx +++ b/components/select/__docs__/demo/multiple/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/select-basic/index.tsx b/components/select/__docs__/demo/select-basic/index.tsx index def0c71508..eab7c9c945 100644 --- a/components/select/__docs__/demo/select-basic/index.tsx +++ b/components/select/__docs__/demo/select-basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/select-cascader/index.tsx b/components/select/__docs__/demo/select-cascader/index.tsx index 070071f6b1..8a2fe51445 100644 --- a/components/select/__docs__/demo/select-cascader/index.tsx +++ b/components/select/__docs__/demo/select-cascader/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const provinceData = ['Zhejiang', 'Hubei', 'Jiangsu']; diff --git a/components/select/__docs__/demo/select-label/index.tsx b/components/select/__docs__/demo/select-label/index.tsx index 6c107caa1d..5e70a3788a 100644 --- a/components/select/__docs__/demo/select-label/index.tsx +++ b/components/select/__docs__/demo/select-label/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/select-options-group/index.tsx b/components/select/__docs__/demo/select-options-group/index.tsx index 890207e15b..bf8274f3be 100644 --- a/components/select/__docs__/demo/select-options-group/index.tsx +++ b/components/select/__docs__/demo/select-options-group/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const { Option, OptionGroup } = Select; diff --git a/components/select/__docs__/demo/select-scroll-load/index.tsx b/components/select/__docs__/demo/select-scroll-load/index.tsx index 0e95fd2035..2b015c1573 100644 --- a/components/select/__docs__/demo/select-scroll-load/index.tsx +++ b/components/select/__docs__/demo/select-scroll-load/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const Option = Select.Option; diff --git a/components/select/__docs__/demo/select-search/index.tsx b/components/select/__docs__/demo/select-search/index.tsx index 12ef83bfe5..a129d161bf 100644 --- a/components/select/__docs__/demo/select-search/index.tsx +++ b/components/select/__docs__/demo/select-search/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; import jsonp from 'jsonp'; diff --git a/components/select/__docs__/demo/tag/index.tsx b/components/select/__docs__/demo/tag/index.tsx index fcca912722..fa8537e644 100644 --- a/components/select/__docs__/demo/tag/index.tsx +++ b/components/select/__docs__/demo/tag/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/use-detail-value/index.tsx b/components/select/__docs__/demo/use-detail-value/index.tsx index c9c6d9be27..0d01c8fd30 100644 --- a/components/select/__docs__/demo/use-detail-value/index.tsx +++ b/components/select/__docs__/demo/use-detail-value/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; const dataSource = [ diff --git a/components/select/__docs__/demo/virtual-select/index.tsx b/components/select/__docs__/demo/virtual-select/index.tsx index 18df998afd..e672dbc311 100644 --- a/components/select/__docs__/demo/virtual-select/index.tsx +++ b/components/select/__docs__/demo/virtual-select/index.tsx @@ -1,6 +1,6 @@ -import * as ReactDOM from 'react-dom'; +import React, { useState, useRef } from 'react'; +import ReactDOM from 'react-dom'; import { Select } from '@alifd/next'; -import { useState, useRef } from 'react'; const Option = Select.Option; diff --git a/components/select/index.d.ts b/components/select/index.d.ts index e257232295..717adaec8d 100644 --- a/components/select/index.d.ts +++ b/components/select/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; import { MenuProps } from '../menu'; diff --git a/components/select/main.scss b/components/select/main.scss index 0f3ebfef7c..eb57254869 100644 --- a/components/select/main.scss +++ b/components/select/main.scss @@ -2,8 +2,8 @@ @import "../core/index-noreset.scss"; @import "../input/scss/variable.scss"; @import "../input/scss/mixin.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; #{$select-prefix} { @include box-sizing; diff --git a/components/shell/__docs__/demo/basic/index.tsx b/components/shell/__docs__/demo/basic/index.tsx index 1347c08d9a..0ff037f600 100644 --- a/components/shell/__docs__/demo/basic/index.tsx +++ b/components/shell/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search, Icon, Nav, Shell } from '@alifd/next'; const { SubNav, Item, Group, Divider } = Nav; diff --git a/components/shell/__docs__/demo/complicated/index.tsx b/components/shell/__docs__/demo/complicated/index.tsx index 2ba068cbd1..6e272ec49d 100644 --- a/components/shell/__docs__/demo/complicated/index.tsx +++ b/components/shell/__docs__/demo/complicated/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search, Icon, Nav, Shell, Radio } from '@alifd/next'; const { SubNav, Item, Group, Divider } = Nav; diff --git a/components/shell/__docs__/demo/header-global-local/index.tsx b/components/shell/__docs__/demo/header-global-local/index.tsx index 6ec9678a6f..b7d0f81b4d 100644 --- a/components/shell/__docs__/demo/header-global-local/index.tsx +++ b/components/shell/__docs__/demo/header-global-local/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Menu, Search, Nav, Shell, Radio } from '@alifd/next'; const { SubNav, Item, Group, Divider } = Nav; diff --git a/components/shell/__docs__/demo/header-global/index.tsx b/components/shell/__docs__/demo/header-global/index.tsx index a6985cd4a1..3de6699f56 100644 --- a/components/shell/__docs__/demo/header-global/index.tsx +++ b/components/shell/__docs__/demo/header-global/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Menu, Search, Nav, Shell, Radio } from '@alifd/next'; const { SubNav, Item, Group, Divider } = Nav; diff --git a/components/shell/main.scss b/components/shell/main.scss index c24d1c5e63..6b9036bb06 100644 --- a/components/shell/main.scss +++ b/components/shell/main.scss @@ -1,8 +1,8 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; @import "./rtl.scss"; #{$shell-prefix} { diff --git a/components/slider/__docs__/demo/arrow-position/index.tsx b/components/slider/__docs__/demo/arrow-position/index.tsx index f6fc6c4b24..37d2eafdcf 100644 --- a/components/slider/__docs__/demo/arrow-position/index.tsx +++ b/components/slider/__docs__/demo/arrow-position/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; ReactDOM.render( diff --git a/components/slider/__docs__/demo/autoplay/index.tsx b/components/slider/__docs__/demo/autoplay/index.tsx index 6269f3347d..db9d46f298 100644 --- a/components/slider/__docs__/demo/autoplay/index.tsx +++ b/components/slider/__docs__/demo/autoplay/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; ReactDOM.render( diff --git a/components/slider/__docs__/demo/basic/index.tsx b/components/slider/__docs__/demo/basic/index.tsx index d0e11e4062..f7b268724c 100644 --- a/components/slider/__docs__/demo/basic/index.tsx +++ b/components/slider/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const slides = [ diff --git a/components/slider/__docs__/demo/button-size/index.tsx b/components/slider/__docs__/demo/button-size/index.tsx index cdc41b26a3..15a7a7503c 100644 --- a/components/slider/__docs__/demo/button-size/index.tsx +++ b/components/slider/__docs__/demo/button-size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const bigSlides = [ diff --git a/components/slider/__docs__/demo/center-mode/index.tsx b/components/slider/__docs__/demo/center-mode/index.tsx index 82507dcf94..c556b5e1f1 100644 --- a/components/slider/__docs__/demo/center-mode/index.tsx +++ b/components/slider/__docs__/demo/center-mode/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const settings = { diff --git a/components/slider/__docs__/demo/custom-arrow/index.tsx b/components/slider/__docs__/demo/custom-arrow/index.tsx index 1f99dbfc23..9593f4aeb5 100644 --- a/components/slider/__docs__/demo/custom-arrow/index.tsx +++ b/components/slider/__docs__/demo/custom-arrow/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider, Icon } from '@alifd/next'; const slides = [ diff --git a/components/slider/__docs__/demo/custom-slide/index.tsx b/components/slider/__docs__/demo/custom-slide/index.tsx index 8b2ae4bd2a..2d6e5a451c 100644 --- a/components/slider/__docs__/demo/custom-slide/index.tsx +++ b/components/slider/__docs__/demo/custom-slide/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; import PropTypes from 'prop-types'; diff --git a/components/slider/__docs__/demo/dots-direction/index.tsx b/components/slider/__docs__/demo/dots-direction/index.tsx index 4a441d29ce..43ae2d235c 100644 --- a/components/slider/__docs__/demo/dots-direction/index.tsx +++ b/components/slider/__docs__/demo/dots-direction/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; ReactDOM.render( diff --git a/components/slider/__docs__/demo/dots-render/index.tsx b/components/slider/__docs__/demo/dots-render/index.tsx index 0850459668..af0e91e223 100644 --- a/components/slider/__docs__/demo/dots-render/index.tsx +++ b/components/slider/__docs__/demo/dots-render/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; ReactDOM.render( diff --git a/components/slider/__docs__/demo/dots-triggerType/index.tsx b/components/slider/__docs__/demo/dots-triggerType/index.tsx index b792b331bb..886aef88d8 100644 --- a/components/slider/__docs__/demo/dots-triggerType/index.tsx +++ b/components/slider/__docs__/demo/dots-triggerType/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; ReactDOM.render( diff --git a/components/slider/__docs__/demo/fade/index.tsx b/components/slider/__docs__/demo/fade/index.tsx index ee54a6f5c9..ec5e08dcb7 100644 --- a/components/slider/__docs__/demo/fade/index.tsx +++ b/components/slider/__docs__/demo/fade/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const settings = { diff --git a/components/slider/__docs__/demo/infinite/index.tsx b/components/slider/__docs__/demo/infinite/index.tsx index c5af53ae7d..69ef9d1ac0 100644 --- a/components/slider/__docs__/demo/infinite/index.tsx +++ b/components/slider/__docs__/demo/infinite/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; ReactDOM.render( diff --git a/components/slider/__docs__/demo/multiple/index.tsx b/components/slider/__docs__/demo/multiple/index.tsx index 54c47dac82..78e5b42323 100644 --- a/components/slider/__docs__/demo/multiple/index.tsx +++ b/components/slider/__docs__/demo/multiple/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const slides = [1, 2, 3, 4, 5, 6, 7, 8, 9].map(item => ( diff --git a/components/slider/__docs__/demo/pause-on-hover/index.tsx b/components/slider/__docs__/demo/pause-on-hover/index.tsx index 25576633de..411322cbf3 100644 --- a/components/slider/__docs__/demo/pause-on-hover/index.tsx +++ b/components/slider/__docs__/demo/pause-on-hover/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const settings = { diff --git a/components/slider/__docs__/demo/slick-goto/index.tsx b/components/slider/__docs__/demo/slick-goto/index.tsx index a13487b024..a537865d19 100644 --- a/components/slider/__docs__/demo/slick-goto/index.tsx +++ b/components/slider/__docs__/demo/slick-goto/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const slides = [ diff --git a/components/slider/__docs__/demo/slide-change-hook/index.tsx b/components/slider/__docs__/demo/slide-change-hook/index.tsx index 0cc6bbc179..ae9c2241c0 100644 --- a/components/slider/__docs__/demo/slide-change-hook/index.tsx +++ b/components/slider/__docs__/demo/slide-change-hook/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const settings = { diff --git a/components/slider/__docs__/demo/slide-direction/index.tsx b/components/slider/__docs__/demo/slide-direction/index.tsx index c961e27648..d13c28a737 100644 --- a/components/slider/__docs__/demo/slide-direction/index.tsx +++ b/components/slider/__docs__/demo/slide-direction/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; ReactDOM.render( diff --git a/components/slider/__docs__/demo/slider-with-dialog/index.tsx b/components/slider/__docs__/demo/slider-with-dialog/index.tsx index f64b4950c6..cd40cb1f35 100644 --- a/components/slider/__docs__/demo/slider-with-dialog/index.tsx +++ b/components/slider/__docs__/demo/slider-with-dialog/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider, Dialog, Button } from '@alifd/next'; import PropTypes from 'prop-types'; diff --git a/components/slider/__docs__/demo/slider-wrapper/index.tsx b/components/slider/__docs__/demo/slider-wrapper/index.tsx index 110a8007f4..3a3a30a438 100644 --- a/components/slider/__docs__/demo/slider-wrapper/index.tsx +++ b/components/slider/__docs__/demo/slider-wrapper/index.tsx @@ -1,5 +1,5 @@ -import * as ReactDOM from 'react-dom'; -import { useState } from 'react'; +import React, { useState } from 'react'; +import ReactDOM from 'react-dom'; import { Slider, Select, Switch } from '@alifd/next'; const { Option } = Select; diff --git a/components/slider/__docs__/demo/variable-width/index.tsx b/components/slider/__docs__/demo/variable-width/index.tsx index 83dcb5497e..2eede72b65 100644 --- a/components/slider/__docs__/demo/variable-width/index.tsx +++ b/components/slider/__docs__/demo/variable-width/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Slider } from '@alifd/next'; const settings = { diff --git a/components/slider/index.d.ts b/components/slider/index.d.ts index ee5bb8a965..910249d4dc 100644 --- a/components/slider/index.d.ts +++ b/components/slider/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/slider/main.scss b/components/slider/main.scss index c881689e29..e5b4be0853 100644 --- a/components/slider/main.scss +++ b/components/slider/main.scss @@ -1,8 +1,8 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; /* Slider */ /* -------------------------------------- */ diff --git a/components/split-button/__docs__/demo/accessibility/index.tsx b/components/split-button/__docs__/demo/accessibility/index.tsx index 0b58e6353b..5fac6254f5 100644 --- a/components/split-button/__docs__/demo/accessibility/index.tsx +++ b/components/split-button/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { SplitButton } from '@alifd/next'; const { Item } = SplitButton; diff --git a/components/split-button/__docs__/demo/basic/index.tsx b/components/split-button/__docs__/demo/basic/index.tsx index 31e73b8bb1..9c5a43d2d2 100644 --- a/components/split-button/__docs__/demo/basic/index.tsx +++ b/components/split-button/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { SplitButton, Box } from '@alifd/next'; const { Item } = SplitButton; diff --git a/components/split-button/__docs__/demo/composite/index.tsx b/components/split-button/__docs__/demo/composite/index.tsx index 932bb99b1f..7aef35b578 100644 --- a/components/split-button/__docs__/demo/composite/index.tsx +++ b/components/split-button/__docs__/demo/composite/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { SplitButton } from '@alifd/next'; const { Item } = SplitButton; diff --git a/components/split-button/__docs__/demo/menu/index.tsx b/components/split-button/__docs__/demo/menu/index.tsx index da6de8be9b..b92446b6cc 100644 --- a/components/split-button/__docs__/demo/menu/index.tsx +++ b/components/split-button/__docs__/demo/menu/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { SplitButton } from '@alifd/next'; const { Item, Group, Divider } = SplitButton; diff --git a/components/split-button/__docs__/demo/size/index.tsx b/components/split-button/__docs__/demo/size/index.tsx index e793f24922..75c583f26d 100644 --- a/components/split-button/__docs__/demo/size/index.tsx +++ b/components/split-button/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { SplitButton } from '@alifd/next'; const { Item } = SplitButton; diff --git a/components/split-button/index.d.ts b/components/split-button/index.d.ts index 82b72fbe7d..89d6445f95 100644 --- a/components/split-button/index.d.ts +++ b/components/split-button/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { Item, Group, Divider, MenuProps } from '../menu'; import { CommonProps } from '../util'; import { ButtonProps } from '../button'; diff --git a/components/split-button/main.scss b/components/split-button/main.scss index 003e4bc5d6..66957481ae 100644 --- a/components/split-button/main.scss +++ b/components/split-button/main.scss @@ -1,6 +1,6 @@ @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; #{$split-btn-prefix} { display: inline-block; diff --git a/components/step/__docs__/demo/basic/index.tsx b/components/step/__docs__/demo/basic/index.tsx index 267a916bb2..c060f90c4d 100644 --- a/components/step/__docs__/demo/basic/index.tsx +++ b/components/step/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Step } from '@alifd/next'; const steps = [ diff --git a/components/step/__docs__/demo/controlled/index.tsx b/components/step/__docs__/demo/controlled/index.tsx index ad3cd237bd..5b4fc0f0b6 100644 --- a/components/step/__docs__/demo/controlled/index.tsx +++ b/components/step/__docs__/demo/controlled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Step, Button, Select, Icon } from '@alifd/next'; const StepItem = Step.Item, diff --git a/components/step/__docs__/demo/custom-step-item/index.tsx b/components/step/__docs__/demo/custom-step-item/index.tsx index db51f4a5af..23a83bfe02 100644 --- a/components/step/__docs__/demo/custom-step-item/index.tsx +++ b/components/step/__docs__/demo/custom-step-item/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Step, Icon } from '@alifd/next'; const steps = ['one', 'two', 'three', 'four']; diff --git a/components/step/__docs__/demo/direction/index.tsx b/components/step/__docs__/demo/direction/index.tsx index fd15f50c44..9b07f233c2 100644 --- a/components/step/__docs__/demo/direction/index.tsx +++ b/components/step/__docs__/demo/direction/index.tsx @@ -1,5 +1,5 @@ -import * as ReactDOM from 'react-dom'; -import { useState, useEffect, useCallback } from 'react'; +import React, { useState, useEffect, useCallback } from 'react'; +import ReactDOM from 'react-dom'; import { Button, Step, Radio } from '@alifd/next'; const Step1Content = () => { diff --git a/components/step/__docs__/demo/disable/index.tsx b/components/step/__docs__/demo/disable/index.tsx index afd789dbdc..1819c604e5 100644 --- a/components/step/__docs__/demo/disable/index.tsx +++ b/components/step/__docs__/demo/disable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Step } from '@alifd/next'; ReactDOM.render( diff --git a/components/step/__docs__/demo/percent/index.tsx b/components/step/__docs__/demo/percent/index.tsx index 4f8031b999..e97673269c 100644 --- a/components/step/__docs__/demo/percent/index.tsx +++ b/components/step/__docs__/demo/percent/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Step } from '@alifd/next'; ReactDOM.render( diff --git a/components/step/__docs__/demo/read-only/index.tsx b/components/step/__docs__/demo/read-only/index.tsx index 1652f175bf..a55ba0424a 100644 --- a/components/step/__docs__/demo/read-only/index.tsx +++ b/components/step/__docs__/demo/read-only/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Step, Button } from '@alifd/next'; const StepItem = Step.Item, diff --git a/components/step/__docs__/demo/step-process-failed/index.tsx b/components/step/__docs__/demo/step-process-failed/index.tsx index 19193503d7..2fa546f543 100644 --- a/components/step/__docs__/demo/step-process-failed/index.tsx +++ b/components/step/__docs__/demo/step-process-failed/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Step, Box, Icon } from '@alifd/next'; ReactDOM.render( diff --git a/components/step/index.d.ts b/components/step/index.d.ts index 405d48e86d..23e7f98742 100644 --- a/components/step/index.d.ts +++ b/components/step/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/step/main.scss b/components/step/main.scss index 152bd1be88..b2134009d9 100644 --- a/components/step/main.scss +++ b/components/step/main.scss @@ -1,12 +1,12 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/normalize"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/normalize"; +@import "./scss/mixin"; -@import "scss/basic"; -@import "scss/arrow"; -@import "scss/circle"; -@import "scss/dot"; +@import "./scss/basic"; +@import "./scss/arrow"; +@import "./scss/circle"; +@import "./scss/dot"; @import "./rtl.scss"; diff --git a/components/switch/__docs__/demo/accessibility/index.tsx b/components/switch/__docs__/demo/accessibility/index.tsx index fdab24efef..057b8f4f67 100644 --- a/components/switch/__docs__/demo/accessibility/index.tsx +++ b/components/switch/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Switch } from '@alifd/next'; function onChange(checked) { diff --git a/components/switch/__docs__/demo/basic/index.tsx b/components/switch/__docs__/demo/basic/index.tsx index 9459607b17..6260f59fe8 100644 --- a/components/switch/__docs__/demo/basic/index.tsx +++ b/components/switch/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Switch } from '@alifd/next'; function onChange(checked) { diff --git a/components/switch/__docs__/demo/checked-children/index.tsx b/components/switch/__docs__/demo/checked-children/index.tsx index 722ab30c65..a04026574b 100644 --- a/components/switch/__docs__/demo/checked-children/index.tsx +++ b/components/switch/__docs__/demo/checked-children/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Switch, Icon } from '@alifd/next'; function onChange(checked) { diff --git a/components/switch/__docs__/demo/disabled/index.tsx b/components/switch/__docs__/demo/disabled/index.tsx index 53b7a4ef0e..0d32086376 100644 --- a/components/switch/__docs__/demo/disabled/index.tsx +++ b/components/switch/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Button, Switch } from '@alifd/next'; const Demo = () => { diff --git a/components/switch/__docs__/demo/loading/index.tsx b/components/switch/__docs__/demo/loading/index.tsx index d8d13d88c3..b13a2753f7 100644 --- a/components/switch/__docs__/demo/loading/index.tsx +++ b/components/switch/__docs__/demo/loading/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Switch } from '@alifd/next'; ReactDOM.render( diff --git a/components/switch/__docs__/demo/size/index.tsx b/components/switch/__docs__/demo/size/index.tsx index c508c00957..e09b6811e9 100644 --- a/components/switch/__docs__/demo/size/index.tsx +++ b/components/switch/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Switch } from '@alifd/next'; ReactDOM.render( diff --git a/components/switch/index.d.ts b/components/switch/index.d.ts index dba5f6e9c4..0ce0b65647 100644 --- a/components/switch/index.d.ts +++ b/components/switch/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/switch/main.scss b/components/switch/main.scss index cc929a3087..239897c935 100644 --- a/components/switch/main.scss +++ b/components/switch/main.scss @@ -1,8 +1,8 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/mixin"; -@import "scss/variable"; +@import "./scss/mixin"; +@import "./scss/variable"; @import "./rtl.scss"; .#{$css-prefix}switch { diff --git a/components/tab/__docs__/demo/basic/index.tsx b/components/tab/__docs__/demo/basic/index.tsx index fcf8395a58..fd6b1f4594 100644 --- a/components/tab/__docs__/demo/basic/index.tsx +++ b/components/tab/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; ReactDOM.render( diff --git a/components/tab/__docs__/demo/closable/index.tsx b/components/tab/__docs__/demo/closable/index.tsx index 8b3dab73f5..9039f68285 100644 --- a/components/tab/__docs__/demo/closable/index.tsx +++ b/components/tab/__docs__/demo/closable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab, Button, Icon } from '@alifd/next'; const panes = [ diff --git a/components/tab/__docs__/demo/custom-style/index.tsx b/components/tab/__docs__/demo/custom-style/index.tsx index 0f1de14b1f..43cad488ee 100644 --- a/components/tab/__docs__/demo/custom-style/index.tsx +++ b/components/tab/__docs__/demo/custom-style/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; const panes = [ diff --git a/components/tab/__docs__/demo/custom-tab/index.tsx b/components/tab/__docs__/demo/custom-tab/index.tsx index 309c711306..48637a0275 100644 --- a/components/tab/__docs__/demo/custom-tab/index.tsx +++ b/components/tab/__docs__/demo/custom-tab/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; function CustomTabItem({ title, desc, img }) { diff --git a/components/tab/__docs__/demo/disable-keyboard/index.tsx b/components/tab/__docs__/demo/disable-keyboard/index.tsx index 501bf1810d..7e773dfbf9 100644 --- a/components/tab/__docs__/demo/disable-keyboard/index.tsx +++ b/components/tab/__docs__/demo/disable-keyboard/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; ReactDOM.render( diff --git a/components/tab/__docs__/demo/disabled/index.tsx b/components/tab/__docs__/demo/disabled/index.tsx index de5bb2232a..1b3726da36 100644 --- a/components/tab/__docs__/demo/disabled/index.tsx +++ b/components/tab/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; ReactDOM.render( diff --git a/components/tab/__docs__/demo/editable-tab/index.tsx b/components/tab/__docs__/demo/editable-tab/index.tsx index a5bf6432de..0ce3aa100a 100644 --- a/components/tab/__docs__/demo/editable-tab/index.tsx +++ b/components/tab/__docs__/demo/editable-tab/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab, Input } from '@alifd/next'; class EditableTabPane extends React.Component { diff --git a/components/tab/__docs__/demo/excess-mode/index.tsx b/components/tab/__docs__/demo/excess-mode/index.tsx index ef4be1a5fe..0b2a595ce9 100644 --- a/components/tab/__docs__/demo/excess-mode/index.tsx +++ b/components/tab/__docs__/demo/excess-mode/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; const tabs = [ diff --git a/components/tab/__docs__/demo/extra/index.tsx b/components/tab/__docs__/demo/extra/index.tsx index 36b8293596..75555d0ae4 100644 --- a/components/tab/__docs__/demo/extra/index.tsx +++ b/components/tab/__docs__/demo/extra/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab, Button } from '@alifd/next'; function handleChange(key) { diff --git a/components/tab/__docs__/demo/lazy-load/index.tsx b/components/tab/__docs__/demo/lazy-load/index.tsx index e727e90eb0..9d1c16ca94 100644 --- a/components/tab/__docs__/demo/lazy-load/index.tsx +++ b/components/tab/__docs__/demo/lazy-load/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; const tabs = [ diff --git a/components/tab/__docs__/demo/nested/index.tsx b/components/tab/__docs__/demo/nested/index.tsx index 7ab531ffd8..8e1b7357f3 100644 --- a/components/tab/__docs__/demo/nested/index.tsx +++ b/components/tab/__docs__/demo/nested/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; function callback(key) { diff --git a/components/tab/__docs__/demo/position/index.tsx b/components/tab/__docs__/demo/position/index.tsx index 30c8e21291..b2aec35e54 100644 --- a/components/tab/__docs__/demo/position/index.tsx +++ b/components/tab/__docs__/demo/position/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab, Radio } from '@alifd/next'; const Demo = () => { diff --git a/components/tab/__docs__/demo/shape/index.tsx b/components/tab/__docs__/demo/shape/index.tsx index 536af79047..e2f7359720 100644 --- a/components/tab/__docs__/demo/shape/index.tsx +++ b/components/tab/__docs__/demo/shape/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab, Radio } from '@alifd/next'; function onChange(key) { diff --git a/components/tab/__docs__/demo/size/index.tsx b/components/tab/__docs__/demo/size/index.tsx index dda56430eb..dace5d4099 100644 --- a/components/tab/__docs__/demo/size/index.tsx +++ b/components/tab/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; const tabs = [ diff --git a/components/tab/__docs__/demo/tab-in-grid/index.tsx b/components/tab/__docs__/demo/tab-in-grid/index.tsx index 7e148f56f7..d7da69d62d 100644 --- a/components/tab/__docs__/demo/tab-in-grid/index.tsx +++ b/components/tab/__docs__/demo/tab-in-grid/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab, Grid } from '@alifd/next'; const { Row, Col } = Grid; diff --git a/components/tab/__docs__/demo/trigger-type/index.tsx b/components/tab/__docs__/demo/trigger-type/index.tsx index 23d36be6da..fa4d6bf54e 100644 --- a/components/tab/__docs__/demo/trigger-type/index.tsx +++ b/components/tab/__docs__/demo/trigger-type/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tab } from '@alifd/next'; const tabs = [ diff --git a/components/tab/index.d.ts b/components/tab/index.d.ts index 0c8a5893dd..b442c95d0e 100644 --- a/components/tab/index.d.ts +++ b/components/tab/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; diff --git a/components/tab/main.scss b/components/tab/main.scss index bd751394f0..65faf9a1c8 100644 --- a/components/tab/main.scss +++ b/components/tab/main.scss @@ -1,9 +1,9 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/mixin"; -@import "scss/placeholder"; +@import "./scss/variable"; +@import "./scss/mixin"; +@import "./scss/placeholder"; #{$tab-prefix} { & { diff --git a/components/table/__docs__/demo/accessibility/index.tsx b/components/table/__docs__/demo/accessibility/index.tsx index 257e6ccc71..02c66f5039 100644 --- a/components/table/__docs__/demo/accessibility/index.tsx +++ b/components/table/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const result = [ diff --git a/components/table/__docs__/demo/advanced/index.tsx b/components/table/__docs__/demo/advanced/index.tsx index 12f47aa7f9..e2094e281c 100644 --- a/components/table/__docs__/demo/advanced/index.tsx +++ b/components/table/__docs__/demo/advanced/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; import PropTypes from 'prop-types'; /* eslint-disable react/no-multi-comp,react/prop-types */ diff --git a/components/table/__docs__/demo/basic-columns/index.tsx b/components/table/__docs__/demo/basic-columns/index.tsx index 589085f2c8..6332c00ae1 100644 --- a/components/table/__docs__/demo/basic-columns/index.tsx +++ b/components/table/__docs__/demo/basic-columns/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/basic/index.tsx b/components/table/__docs__/demo/basic/index.tsx index c81b28df87..080c0c6552 100644 --- a/components/table/__docs__/demo/basic/index.tsx +++ b/components/table/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/clear-selection/index.tsx b/components/table/__docs__/demo/clear-selection/index.tsx index ed2c013111..daf2e2ee55 100644 --- a/components/table/__docs__/demo/clear-selection/index.tsx +++ b/components/table/__docs__/demo/clear-selection/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button, Box } from '@alifd/next'; const dataSource = (i, j) => { diff --git a/components/table/__docs__/demo/colspan-lock-columns/index.tsx b/components/table/__docs__/demo/colspan-lock-columns/index.tsx index a95f4fff91..cec05fc558 100644 --- a/components/table/__docs__/demo/colspan-lock-columns/index.tsx +++ b/components/table/__docs__/demo/colspan-lock-columns/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const columns = new Array(4).fill({ diff --git a/components/table/__docs__/demo/colspan/index.tsx b/components/table/__docs__/demo/colspan/index.tsx index 662cdbeb7e..1858cff2ab 100644 --- a/components/table/__docs__/demo/colspan/index.tsx +++ b/components/table/__docs__/demo/colspan/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const onRowClick = function (record, index, e) { diff --git a/components/table/__docs__/demo/column/index.tsx b/components/table/__docs__/demo/column/index.tsx index 21dbc6c662..17a59503c6 100644 --- a/components/table/__docs__/demo/column/index.tsx +++ b/components/table/__docs__/demo/column/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button, Dialog, Checkbox } from '@alifd/next'; const { Group } = Checkbox; diff --git a/components/table/__docs__/demo/crossline/index.tsx b/components/table/__docs__/demo/crossline/index.tsx index 4dbbc17f09..122b20f098 100644 --- a/components/table/__docs__/demo/crossline/index.tsx +++ b/components/table/__docs__/demo/crossline/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/crud/index.tsx b/components/table/__docs__/demo/crud/index.tsx index 752e1909f6..da3d3fa358 100644 --- a/components/table/__docs__/demo/crud/index.tsx +++ b/components/table/__docs__/demo/crud/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const onRowClick = function (record, index, e) { diff --git a/components/table/__docs__/demo/custom-loading/index.tsx b/components/table/__docs__/demo/custom-loading/index.tsx index aff375da3d..0eaf27535b 100644 --- a/components/table/__docs__/demo/custom-loading/index.tsx +++ b/components/table/__docs__/demo/custom-loading/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Loading, Icon } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/dragable/index.css b/components/table/__docs__/demo/dragable/index.css new file mode 100644 index 0000000000..38e6ad1d97 --- /dev/null +++ b/components/table/__docs__/demo/dragable/index.css @@ -0,0 +1,7 @@ +.drop-over-downward { + border-bottom: 2px dashed #3080fe; +} + +.drop-over-upward { + border-top: 2px dashed #3080fe; +} diff --git a/components/table/__docs__/demo/dragable/index.md b/components/table/__docs__/demo/dragable/index.md index c662f78173..f3398155ba 100644 --- a/components/table/__docs__/demo/dragable/index.md +++ b/components/table/__docs__/demo/dragable/index.md @@ -4,209 +4,6 @@ 可拖拽的表格。拖拽功能的实现依赖 react-dnd@7.x 及 react-dnd-html5-backend@7.x, 它要求 react react-dom 版本高于 16.3.x。在线 Demo 可以参考 https://codesandbox.io/s/draggable-table-drt4m -```jsx -import { Table } from '@alifd/next'; -import { DragDropContext, DragSource, DropTarget } from 'react-dnd'; -import HTML5Backend from 'react-dnd-html5-backend'; -import classnames from 'classnames'; - -const { SelectionRow } = Table; - -let dragingIndex = -1; - -const MyDndProvider = DragDropContext(HTML5Backend)(({ children }) => { - return children; -}); - -function MyRow(props) { - const { - isDragging, - isOver, - connectDragSource, - connectDropTarget, - moveRow, - className, - ...others - } = props; - - const opacity = isDragging ? 0 : 1; - const style = { ...others.style, cursor: 'move' }; - - const cls = classnames({ - [className]: className, - 'drop-over-upward': isOver && others.index < dragingIndex, - 'drop-over-downward': isOver && others.index > dragingIndex, - }); - - return ( - connectDragSource(connectDropTarget(row))} - /> - ); -} - -const NewRow = DropTarget( - 'row', - { - drop(props, monitor) { - const dragIndex = monitor.getItem().index; - const hoverIndex = props.index; - - if (dragIndex === hoverIndex) { - return; - } - - props.moveRow(dragIndex, hoverIndex); - monitor.getItem().index = hoverIndex; - }, - }, - (connect, monitor) => ({ - connectDropTarget: connect.dropTarget(), - isOver: monitor.isOver(), - }) -)( - DragSource( - 'row', - { - beginDrag: props => { - dragingIndex = props.index; - return { - id: props.record[props.primaryKey], - index: props.rowIndex, - }; - }, - }, - (connect, monitor) => ({ - connectDragSource: connect.dragSource(), - isDragging: monitor.isDragging(), - }) - )(MyRow) -); - -class InnerTable extends React.Component { - constructor(props) { - super(props); - this.state = { - dataSource: [...props.dataSource], - }; - } - - componentWillReceiveProps(nextProps) { - if ( - nextProps.dataSource && - JSON.stringify(nextProps.dataSource) !== JSON.stringify(this.state.dataSource) - ) { - this.setState({ dataSource: [...nextProps.dataSource] }); - } - } - - moveRow = (dragIndex, hoverIndex) => { - const { onSort } = this.props; - const dragRow = this.state.dataSource[dragIndex]; - const dataSource = [...this.state.dataSource]; - dataSource.splice(dragIndex, 1); - dataSource.splice(hoverIndex, 0, dragRow); - this.setState({ - dataSource, - }); - - onSort && onSort(this.state.dataSource); - }; - - render() { - const { excludeProvider, ...restProps } = this.props; - const tableProps = { - ...restProps, - dataSource: this.state.dataSource, - rowProps: (props, index) => ({ - index, - moveRow: this.moveRow, - }), - components: { - Row: NewRow, - }, - }; - - return ; - } -} - -const result = [ - { - id: '001', - time: 1951, - title: { name: 'The Old Man and the Sea' }, - }, - { - id: '002', - time: 1925, - title: { name: 'the great gatsby' }, - }, - { - id: '003', - time: 1719, - title: { name: 'The adventures of Robinson Crusoe' }, - }, -]; - -class Demo extends React.Component { - constructor(props) { - super(props); - - this.state = { - dataSource: result, - }; - } - - onRemove = id => { - const { dataSource } = this.state; - let index = -1; - dataSource.forEach((item, i) => { - if (item.id === id) { - index = i; - } - }); - if (index !== -1) { - dataSource.splice(index, 1); - this.setState({ - dataSource, - }); - } - }; - - renderOper = (value, index, record) => { - return Remove({record.id}); - }; - render() { - return ( - - - - - - - - - ); - } -} - -ReactDOM.render(, mountNode); -``` - -```css -.drop-over-downward { - border-bottom: 2px dashed #3080fe; -} - -.drop-over-upward { - border-top: 2px dashed #3080fe; -} -``` - # en-US order=24 # Simple diff --git a/components/table/__docs__/demo/dragable/index.tsx b/components/table/__docs__/demo/dragable/index.tsx new file mode 100644 index 0000000000..4e33a4b8b6 --- /dev/null +++ b/components/table/__docs__/demo/dragable/index.tsx @@ -0,0 +1,193 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Table } from '@alifd/next'; +import { DragDropContext, DragSource, DropTarget } from 'react-dnd'; +import HTML5Backend from 'react-dnd-html5-backend'; +import classnames from 'classnames'; + +const { SelectionRow } = Table; + +let dragingIndex = -1; + +const MyDndProvider = DragDropContext(HTML5Backend)(({ children }) => { + return children; +}); + +function MyRow(props) { + const { + isDragging, + isOver, + connectDragSource, + connectDropTarget, + moveRow, + className, + ...others + } = props; + + const opacity = isDragging ? 0 : 1; + const style = { ...others.style, cursor: 'move' }; + + const cls = classnames({ + [className]: className, + 'drop-over-upward': isOver && others.index < dragingIndex, + 'drop-over-downward': isOver && others.index > dragingIndex, + }); + + return ( + connectDragSource(connectDropTarget(row))} + /> + ); +} + +const NewRow = DropTarget( + 'row', + { + drop(props, monitor) { + const dragIndex = monitor.getItem().index; + const hoverIndex = props.index; + + if (dragIndex === hoverIndex) { + return; + } + + props.moveRow(dragIndex, hoverIndex); + monitor.getItem().index = hoverIndex; + }, + }, + (connect, monitor) => ({ + connectDropTarget: connect.dropTarget(), + isOver: monitor.isOver(), + }) +)( + DragSource( + 'row', + { + beginDrag: props => { + dragingIndex = props.index; + return { + id: props.record[props.primaryKey], + index: props.rowIndex, + }; + }, + }, + (connect, monitor) => ({ + connectDragSource: connect.dragSource(), + isDragging: monitor.isDragging(), + }) + )(MyRow) +); + +class InnerTable extends React.Component { + constructor(props) { + super(props); + this.state = { + dataSource: [...props.dataSource], + }; + } + + componentWillReceiveProps(nextProps) { + if ( + nextProps.dataSource && + JSON.stringify(nextProps.dataSource) !== JSON.stringify(this.state.dataSource) + ) { + this.setState({ dataSource: [...nextProps.dataSource] }); + } + } + + moveRow = (dragIndex, hoverIndex) => { + const { onSort } = this.props; + const dragRow = this.state.dataSource[dragIndex]; + const dataSource = [...this.state.dataSource]; + dataSource.splice(dragIndex, 1); + dataSource.splice(hoverIndex, 0, dragRow); + this.setState({ + dataSource, + }); + + onSort && onSort(this.state.dataSource); + }; + + render() { + const { excludeProvider, ...restProps } = this.props; + const tableProps = { + ...restProps, + dataSource: this.state.dataSource, + rowProps: (props, index) => ({ + index, + moveRow: this.moveRow, + }), + components: { + Row: NewRow, + }, + }; + + return
; + } +} + +const result = [ + { + id: '001', + time: 1951, + title: { name: 'The Old Man and the Sea' }, + }, + { + id: '002', + time: 1925, + title: { name: 'the great gatsby' }, + }, + { + id: '003', + time: 1719, + title: { name: 'The adventures of Robinson Crusoe' }, + }, +]; + +class Demo extends React.Component { + constructor(props) { + super(props); + + this.state = { + dataSource: result, + }; + } + + onRemove = id => { + const { dataSource } = this.state; + let index = -1; + dataSource.forEach((item, i) => { + if (item.id === id) { + index = i; + } + }); + if (index !== -1) { + dataSource.splice(index, 1); + this.setState({ + dataSource, + }); + } + }; + + renderOper = (value, index, record) => { + return Remove({record.id}); + }; + render() { + return ( + + + + + + + + + ); + } +} + +ReactDOM.render(, mountNode); diff --git a/components/table/__docs__/demo/editable/index.tsx b/components/table/__docs__/demo/editable/index.tsx index ffa9cacf84..7b9f1e98d7 100644 --- a/components/table/__docs__/demo/editable/index.tsx +++ b/components/table/__docs__/demo/editable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Input } from '@alifd/next'; const result = [ diff --git a/components/table/__docs__/demo/expanded-complex/index.tsx b/components/table/__docs__/demo/expanded-complex/index.tsx index 32c53927c5..d3a9feca8b 100644 --- a/components/table/__docs__/demo/expanded-complex/index.tsx +++ b/components/table/__docs__/demo/expanded-complex/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; /*eslint-disable react/prop-types, react/no-multi-comp*/ class ExpandedApp extends React.Component { diff --git a/components/table/__docs__/demo/expanded-lock/index.tsx b/components/table/__docs__/demo/expanded-lock/index.tsx index af75e83f44..01fe3038ee 100644 --- a/components/table/__docs__/demo/expanded-lock/index.tsx +++ b/components/table/__docs__/demo/expanded-lock/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/expanded/index.tsx b/components/table/__docs__/demo/expanded/index.tsx index edcba705a2..4bb08fa7f8 100644 --- a/components/table/__docs__/demo/expanded/index.tsx +++ b/components/table/__docs__/demo/expanded/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/filter&sort/index.tsx b/components/table/__docs__/demo/filter&sort/index.tsx index d205bdfbc0..476bdc9b12 100644 --- a/components/table/__docs__/demo/filter&sort/index.tsx +++ b/components/table/__docs__/demo/filter&sort/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button, Icon } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/fixed-header/index.tsx b/components/table/__docs__/demo/fixed-header/index.tsx index 8d306b7b38..a084df61fc 100644 --- a/components/table/__docs__/demo/fixed-header/index.tsx +++ b/components/table/__docs__/demo/fixed-header/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button, Select, Box } from '@alifd/next'; const Option = Select.Option; diff --git a/components/table/__docs__/demo/get-row-props/index.tsx b/components/table/__docs__/demo/get-row-props/index.tsx index 7c4921fd61..de13e3967e 100644 --- a/components/table/__docs__/demo/get-row-props/index.tsx +++ b/components/table/__docs__/demo/get-row-props/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/list/index.tsx b/components/table/__docs__/demo/list/index.tsx index 630e7d3683..6d6ed079db 100644 --- a/components/table/__docs__/demo/list/index.tsx +++ b/components/table/__docs__/demo/list/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const dataSource = [ diff --git a/components/table/__docs__/demo/lock-column/index.tsx b/components/table/__docs__/demo/lock-column/index.tsx index d9c2c3ef6c..6a8250c1bb 100644 --- a/components/table/__docs__/demo/lock-column/index.tsx +++ b/components/table/__docs__/demo/lock-column/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const onRowClick = function (record, index, e) { diff --git a/components/table/__docs__/demo/mix/index.tsx b/components/table/__docs__/demo/mix/index.tsx index 4500f3f36b..85d4c21a40 100644 --- a/components/table/__docs__/demo/mix/index.tsx +++ b/components/table/__docs__/demo/mix/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const data = [ diff --git a/components/table/__docs__/demo/multiple-header/index.tsx b/components/table/__docs__/demo/multiple-header/index.tsx index 42e1777700..64bfb620b7 100644 --- a/components/table/__docs__/demo/multiple-header/index.tsx +++ b/components/table/__docs__/demo/multiple-header/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const onRowClick = function (record, index, e) { diff --git a/components/table/__docs__/demo/pagination/index.tsx b/components/table/__docs__/demo/pagination/index.tsx index 550173ba55..2e87206b8a 100644 --- a/components/table/__docs__/demo/pagination/index.tsx +++ b/components/table/__docs__/demo/pagination/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Pagination } from '@alifd/next'; const dataSource = j => { diff --git a/components/table/__docs__/demo/resize-complex/index.tsx b/components/table/__docs__/demo/resize-complex/index.tsx index e717cba0f3..cb71315052 100644 --- a/components/table/__docs__/demo/resize-complex/index.tsx +++ b/components/table/__docs__/demo/resize-complex/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button, Loading } from '@alifd/next'; const onChange = function (...args) { diff --git a/components/table/__docs__/demo/resize/index.tsx b/components/table/__docs__/demo/resize/index.tsx index f298a48151..d13d00d8c1 100644 --- a/components/table/__docs__/demo/resize/index.tsx +++ b/components/table/__docs__/demo/resize/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const onChange = function (...args) { diff --git a/components/table/__docs__/demo/row-selection-config/index.tsx b/components/table/__docs__/demo/row-selection-config/index.tsx index 8790f67727..33a21d7f00 100644 --- a/components/table/__docs__/demo/row-selection-config/index.tsx +++ b/components/table/__docs__/demo/row-selection-config/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const onChange = function (...args) { diff --git a/components/table/__docs__/demo/selection/index.tsx b/components/table/__docs__/demo/selection/index.tsx index 702808c8f1..eed8bb02ed 100644 --- a/components/table/__docs__/demo/selection/index.tsx +++ b/components/table/__docs__/demo/selection/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Icon, MenuButton } from '@alifd/next'; const { Item } = MenuButton; diff --git a/components/table/__docs__/demo/sticky-header/index.tsx b/components/table/__docs__/demo/sticky-header/index.tsx index f577888748..e3cb6ed76f 100644 --- a/components/table/__docs__/demo/sticky-header/index.tsx +++ b/components/table/__docs__/demo/sticky-header/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button, Select, Box } from '@alifd/next'; const Option = Select.Option; diff --git a/components/table/__docs__/demo/stickylock-complex/index.tsx b/components/table/__docs__/demo/stickylock-complex/index.tsx index ef35463ac2..097bc81bc2 100644 --- a/components/table/__docs__/demo/stickylock-complex/index.tsx +++ b/components/table/__docs__/demo/stickylock-complex/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const dataSource = j => { diff --git a/components/table/__docs__/demo/style/index.tsx b/components/table/__docs__/demo/style/index.tsx index e633dee970..2fed99dd05 100644 --- a/components/table/__docs__/demo/style/index.tsx +++ b/components/table/__docs__/demo/style/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button, Box } from '@alifd/next'; const dataSource = () => { diff --git a/components/table/__docs__/demo/tree-onload/index.tsx b/components/table/__docs__/demo/tree-onload/index.tsx index 7d1b23d1a5..357068e4d2 100644 --- a/components/table/__docs__/demo/tree-onload/index.tsx +++ b/components/table/__docs__/demo/tree-onload/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const generateRandomKey = () => Math.ceil(Math.random() * 10000); diff --git a/components/table/__docs__/demo/virtual-rowspan/index.tsx b/components/table/__docs__/demo/virtual-rowspan/index.tsx index 7753b9980e..b84bc917cc 100644 --- a/components/table/__docs__/demo/virtual-rowspan/index.tsx +++ b/components/table/__docs__/demo/virtual-rowspan/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table, Button } from '@alifd/next'; const noop = () => {}; diff --git a/components/table/__docs__/demo/virtual/index.tsx b/components/table/__docs__/demo/virtual/index.tsx index ba4b24a263..9667194041 100644 --- a/components/table/__docs__/demo/virtual/index.tsx +++ b/components/table/__docs__/demo/virtual/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Table } from '@alifd/next'; const dataSource = j => { diff --git a/components/table/__tests__/issue-spec.js b/components/table/__tests__/issue-spec.js index 14206c83c4..cddbacbe3a 100644 --- a/components/table/__tests__/issue-spec.js +++ b/components/table/__tests__/issue-spec.js @@ -1426,6 +1426,58 @@ describe('TableScroll', () => { const scrollRowTop = scrollRow.getBoundingClientRect().top; assert(scrollRowTop >= getBodyTop() - 10); }); + + // fix https://github.com/alibaba-fusion/next/issues/4264 + it('should support for merging cells in locked columns, close #4264', async () => { + const container = document.createElement('div'); + document.body.appendChild(container); + + const dataSource = j => { + const result = []; + for (let i = 0; i < j; i++) { + result.push({ + title: { name: `Quotation for 1PCS Nano ${3 + i}.0 controller compatible` }, + id: `100306660940${i}`, + time: 2000 + i, + index: i, + }); + } + return result; + }; + + const mergeCell = (rowIndex, colIndex) => { + if (colIndex === 0 && rowIndex === 0) { + return { + rowSpan: 2, + colSpan: 2, + }; + } + }; + class App extends React.Component { + render() { + return ( + + + + + + + + ); + } + } + ReactDOM.render(, container); + + await delay(200); + const titleHeaderNode = container.querySelectorAll('thead .next-table-header-node')[1]; + assert(titleHeaderNode); + assert(titleHeaderNode.colSpan === 1); + const idHeaderNode = container.querySelectorAll('thead .next-table-header-node')[0]; + assert(idHeaderNode); + assert(titleHeaderNode.getBoundingClientRect().left === idHeaderNode.getBoundingClientRect().right); + const testNode = container.querySelector('tbody [data-next-table-col="1"][data-next-table-row="2"]'); + assert(testNode); + }); it('set keepForwardRenderRows to support large rowSpan when useVirtual, close #4395', async () => { const datas = j => { const result = []; diff --git a/components/table/index.d.ts b/components/table/index.d.ts index 77248e8cd4..8f52080322 100644 --- a/components/table/index.d.ts +++ b/components/table/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { LoadingProps } from '../loading'; import { AffixProps } from '../affix'; diff --git a/components/table/main.scss b/components/table/main.scss index d2bfb22bda..c5b798028b 100644 --- a/components/table/main.scss +++ b/components/table/main.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/mixin"; /* put your code here */ #{$table-prefix} { @include box-sizing; diff --git a/components/table/new-lock.jsx b/components/table/new-lock.jsx index aef2ade3e3..ce2d012278 100644 --- a/components/table/new-lock.jsx +++ b/components/table/new-lock.jsx @@ -307,7 +307,10 @@ export default function stickyLock(BaseComponent) { const node = isEmpty ? this.getHeaderCellNode(headerCellRowIndex, headerCellColIndex) : this.getCellNode(scrollToRow || (dataSource[0] && dataSource[0].__rowIndex) || 0, nodeToGetWidth); - const colWidth = (node && parseFloat(getComputedStyle(node).width)) || 0; + let colWidth = 0; + if (node) { + colWidth = parseFloat(getComputedStyle(node).width) / node.colSpan || 0; + } ret[tag] = (ret[tagNext] || 0) + colWidth; return ret; diff --git a/components/tag/__docs__/demo/accessibility/index.tsx b/components/tag/__docs__/demo/accessibility/index.tsx index 7eeef20371..715aa08eb8 100644 --- a/components/tag/__docs__/demo/accessibility/index.tsx +++ b/components/tag/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tag, Icon } from '@alifd/next'; const { Group: TagGroup } = Tag; diff --git a/components/tag/__docs__/demo/basic/index.tsx b/components/tag/__docs__/demo/basic/index.tsx index 000c8822f2..16fb8fed29 100644 --- a/components/tag/__docs__/demo/basic/index.tsx +++ b/components/tag/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tag, Icon } from '@alifd/next'; const { Group: TagGroup } = Tag; diff --git a/components/tag/__docs__/demo/closable/index.tsx b/components/tag/__docs__/demo/closable/index.tsx index cdea782d8d..ddbb92e70f 100644 --- a/components/tag/__docs__/demo/closable/index.tsx +++ b/components/tag/__docs__/demo/closable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tag } from '@alifd/next'; const { Group: TagGroup, Closeable: CloseableTag } = Tag; diff --git a/components/tag/__docs__/demo/colorful-tag/index.md b/components/tag/__docs__/demo/colorful-tag/index.md index 014c9b8e85..1385c72e3c 100644 --- a/components/tag/__docs__/demo/colorful-tag/index.md +++ b/components/tag/__docs__/demo/colorful-tag/index.md @@ -4,48 +4,6 @@ 带颜色的标签,如果颜色不能满足,可以自定义颜色(只能是实心标签) -```jsx -import { Tag, Icon } from '@alifd/next'; - -const { Group: TagGroup } = Tag; - -const presetColors = ['blue', 'green', 'orange', 'red', 'turquoise', 'yellow']; -// set custom color with hex value, do not use color keywords -const customColors = ['#f50', '#2db7f5', '#87d068', '#108ee9']; - -ReactDOM.render( -
-

preset colors

- - {presetColors.map(color => ( - - {color} - - ))} - - - - {presetColors.map(color => ( - - {color} - - ))} - - -

custom colors

- - - {customColors.map(color => ( - - {color} - - ))} - -
, - mountNode -); -``` - # en-US order=3 # Colorful Tag diff --git a/components/tag/__docs__/demo/colorful-tag/index.tsx b/components/tag/__docs__/demo/colorful-tag/index.tsx new file mode 100644 index 0000000000..f55653b538 --- /dev/null +++ b/components/tag/__docs__/demo/colorful-tag/index.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { Tag, Icon } from '@alifd/next'; + +const { Group: TagGroup } = Tag; + +const presetColors = ['blue', 'green', 'orange', 'red', 'turquoise', 'yellow']; +// set custom color with hex value, do not use color keywords +const customColors = ['#f50', '#2db7f5', '#87d068', '#108ee9']; + +ReactDOM.render( +
+

preset colors

+ + {presetColors.map(color => ( + + {color} + + ))} + + + + {presetColors.map(color => ( + + {color} + + ))} + + +

custom colors

+ + + {customColors.map(color => ( + + {color} + + ))} + +
, + mountNode +); diff --git a/components/tag/__docs__/demo/icon/index.tsx b/components/tag/__docs__/demo/icon/index.tsx index e9fb80d633..b7f807eadf 100644 --- a/components/tag/__docs__/demo/icon/index.tsx +++ b/components/tag/__docs__/demo/icon/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tag, Icon } from '@alifd/next'; const { Group: TagGroup } = Tag; diff --git a/components/tag/__docs__/demo/selectable/index.tsx b/components/tag/__docs__/demo/selectable/index.tsx index 4ef2423373..166d70e2c8 100644 --- a/components/tag/__docs__/demo/selectable/index.tsx +++ b/components/tag/__docs__/demo/selectable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tag } from '@alifd/next'; const { Group: TagGroup, Selectable: SelectableTag } = Tag; diff --git a/components/tag/__docs__/demo/size/index.tsx b/components/tag/__docs__/demo/size/index.tsx index 09f87a4cff..a5d4b3a3cc 100644 --- a/components/tag/__docs__/demo/size/index.tsx +++ b/components/tag/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tag, Icon } from '@alifd/next'; const { Group: TagGroup } = Tag; diff --git a/components/tag/index.d.ts b/components/tag/index.d.ts index a6c98c90e1..8ce2f77c9d 100644 --- a/components/tag/index.d.ts +++ b/components/tag/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/time-picker/__docs__/demo/basic/index.tsx b/components/time-picker/__docs__/demo/basic/index.tsx index 7adccc1286..d8cf62e123 100644 --- a/components/time-picker/__docs__/demo/basic/index.tsx +++ b/components/time-picker/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker } from '@alifd/next'; ReactDOM.render( console.log(val)} />, mountNode); diff --git a/components/time-picker/__docs__/demo/default-value/index.tsx b/components/time-picker/__docs__/demo/default-value/index.tsx index 7e0b86c8b2..19cfc7792f 100644 --- a/components/time-picker/__docs__/demo/default-value/index.tsx +++ b/components/time-picker/__docs__/demo/default-value/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker } from '@alifd/next'; import moment from 'moment'; diff --git a/components/time-picker/__docs__/demo/disabled/index.tsx b/components/time-picker/__docs__/demo/disabled/index.tsx index ea605d4e10..ef0c1ac184 100644 --- a/components/time-picker/__docs__/demo/disabled/index.tsx +++ b/components/time-picker/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker } from '@alifd/next'; const disabledHours = [1, 2, 3, 4, 5]; diff --git a/components/time-picker/__docs__/demo/field/index.tsx b/components/time-picker/__docs__/demo/field/index.tsx index 841167e32a..9e69ccf795 100644 --- a/components/time-picker/__docs__/demo/field/index.tsx +++ b/components/time-picker/__docs__/demo/field/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker, Field, Button } from '@alifd/next'; import moment from 'moment'; diff --git a/components/time-picker/__docs__/demo/format/index.tsx b/components/time-picker/__docs__/demo/format/index.tsx index 0f9e266547..c96ed63c5e 100644 --- a/components/time-picker/__docs__/demo/format/index.tsx +++ b/components/time-picker/__docs__/demo/format/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker } from '@alifd/next'; ReactDOM.render( diff --git a/components/time-picker/__docs__/demo/render-menu/index.tsx b/components/time-picker/__docs__/demo/render-menu/index.tsx index d2468e0d20..8e7f2f8048 100644 --- a/components/time-picker/__docs__/demo/render-menu/index.tsx +++ b/components/time-picker/__docs__/demo/render-menu/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker } from '@alifd/next'; const renderTimeMenuItems = list => { diff --git a/components/time-picker/__docs__/demo/size/index.tsx b/components/time-picker/__docs__/demo/size/index.tsx index 8b574bc6fd..5d84ec4e3d 100644 --- a/components/time-picker/__docs__/demo/size/index.tsx +++ b/components/time-picker/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker, Box } from '@alifd/next'; ReactDOM.render( diff --git a/components/time-picker/__docs__/demo/step/index.tsx b/components/time-picker/__docs__/demo/step/index.tsx index 4740914533..b201ba6578 100644 --- a/components/time-picker/__docs__/demo/step/index.tsx +++ b/components/time-picker/__docs__/demo/step/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker } from '@alifd/next'; ReactDOM.render( diff --git a/components/time-picker/__docs__/demo/value/index.tsx b/components/time-picker/__docs__/demo/value/index.tsx index 5852b1264c..769660c9c6 100644 --- a/components/time-picker/__docs__/demo/value/index.tsx +++ b/components/time-picker/__docs__/demo/value/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker } from '@alifd/next'; import moment from 'moment'; diff --git a/components/time-picker/index.d.ts b/components/time-picker/index.d.ts index 1e90610019..33f3abf2c9 100644 --- a/components/time-picker/index.d.ts +++ b/components/time-picker/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; import { Moment } from 'moment'; diff --git a/components/time-picker/main.scss b/components/time-picker/main.scss index a57c22ab73..53c8ed76f7 100644 --- a/components/time-picker/main.scss +++ b/components/time-picker/main.scss @@ -1,6 +1,6 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; +@import "./scss/variable"; @import './scss/menu.scss'; @import './scss/panel.scss'; @import './rtl.scss'; diff --git a/components/time-picker2/__docs__/demo/basic/index.tsx b/components/time-picker2/__docs__/demo/basic/index.tsx index 59e2c85594..c138c930cb 100644 --- a/components/time-picker2/__docs__/demo/basic/index.tsx +++ b/components/time-picker2/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; ReactDOM.render(, mountNode); diff --git a/components/time-picker2/__docs__/demo/default-value/index.tsx b/components/time-picker2/__docs__/demo/default-value/index.tsx index 095053014f..168a7cbea8 100644 --- a/components/time-picker2/__docs__/demo/default-value/index.tsx +++ b/components/time-picker2/__docs__/demo/default-value/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/time-picker2/__docs__/demo/disabled/index.tsx b/components/time-picker2/__docs__/demo/disabled/index.tsx index 9699446c43..dffc109e33 100644 --- a/components/time-picker2/__docs__/demo/disabled/index.tsx +++ b/components/time-picker2/__docs__/demo/disabled/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; const disabledHours = [1, 2, 3, 4, 5]; diff --git a/components/time-picker2/__docs__/demo/field/index.tsx b/components/time-picker2/__docs__/demo/field/index.tsx index aaa7e41944..918ba9bd49 100644 --- a/components/time-picker2/__docs__/demo/field/index.tsx +++ b/components/time-picker2/__docs__/demo/field/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2, Field, Button } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/time-picker2/__docs__/demo/format/index.tsx b/components/time-picker2/__docs__/demo/format/index.tsx index 53fd01e8d9..c0cadec128 100644 --- a/components/time-picker2/__docs__/demo/format/index.tsx +++ b/components/time-picker2/__docs__/demo/format/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; ReactDOM.render( diff --git a/components/time-picker2/__docs__/demo/no-border/index.tsx b/components/time-picker2/__docs__/demo/no-border/index.tsx index be5cf5abc9..e0f77a7b7b 100644 --- a/components/time-picker2/__docs__/demo/no-border/index.tsx +++ b/components/time-picker2/__docs__/demo/no-border/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; ReactDOM.render(, mountNode); diff --git a/components/time-picker2/__docs__/demo/preset/index.md b/components/time-picker2/__docs__/demo/preset/index.md index 8481b578a8..dc3f157245 100644 --- a/components/time-picker2/__docs__/demo/preset/index.md +++ b/components/time-picker2/__docs__/demo/preset/index.md @@ -4,45 +4,6 @@ 预设 -```jsx -import { useState } from 'react'; -import dayjs from 'dayjs'; -import { TimePicker2 } from '@alifd/next'; - -const nowTime = dayjs(new Date()); -const currentHour = dayjs().hour(nowTime.hour()).minute(0).second(0); -const nextHour = currentHour.hour(currentHour.hour() + 1); - -const preset = [ - { - label: '此刻', - value: () => nowTime, - }, -]; - -const presetRange = [ - { - label: '当前所在时段', - value: [currentHour, nextHour], - }, -]; - -function Picker() { - const [value, onChange] = useState(dayjs('12:00:00', 'HH:mm:ss', true)); - - return ( -
- -
-
- -
- ); -} - -ReactDOM.render(, mountNode); -``` - # en-US order=8 # Preset diff --git a/components/time-picker2/__docs__/demo/preset/index.tsx b/components/time-picker2/__docs__/demo/preset/index.tsx new file mode 100644 index 0000000000..2172ec87f3 --- /dev/null +++ b/components/time-picker2/__docs__/demo/preset/index.tsx @@ -0,0 +1,38 @@ +import ReactDOM from 'react-dom'; + +import React, { useState } from 'react'; +import dayjs from 'dayjs'; +import { TimePicker2 } from '@alifd/next'; + +const nowTime = dayjs(new Date()); +const currentHour = dayjs().hour(nowTime.hour()).minute(0).second(0); +const nextHour = currentHour.hour(currentHour.hour() + 1); + +const preset = [ + { + label: '此刻', + value: () => nowTime, + }, +]; + +const presetRange = [ + { + label: '当前所在时段', + value: [currentHour, nextHour], + }, +]; + +function Picker() { + const [value, onChange] = useState(dayjs('12:00:00', 'HH:mm:ss', true)); + + return ( +
+ +
+
+ +
+ ); +} + +ReactDOM.render(, mountNode); diff --git a/components/time-picker2/__docs__/demo/rangepicker/index.tsx b/components/time-picker2/__docs__/demo/rangepicker/index.tsx index 5530ab9d3f..e86737a870 100644 --- a/components/time-picker2/__docs__/demo/rangepicker/index.tsx +++ b/components/time-picker2/__docs__/demo/rangepicker/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; ReactDOM.render(, mountNode); diff --git a/components/time-picker2/__docs__/demo/render-menu/index.tsx b/components/time-picker2/__docs__/demo/render-menu/index.tsx index 25e773dc39..835e6a0e01 100644 --- a/components/time-picker2/__docs__/demo/render-menu/index.tsx +++ b/components/time-picker2/__docs__/demo/render-menu/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; const renderTimeMenuItems = list => { diff --git a/components/time-picker2/__docs__/demo/size/index.tsx b/components/time-picker2/__docs__/demo/size/index.tsx index 4a1cdad4dd..ef13e5f897 100644 --- a/components/time-picker2/__docs__/demo/size/index.tsx +++ b/components/time-picker2/__docs__/demo/size/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; ReactDOM.render( diff --git a/components/time-picker2/__docs__/demo/step/index.tsx b/components/time-picker2/__docs__/demo/step/index.tsx index b00685e4e5..6007824432 100644 --- a/components/time-picker2/__docs__/demo/step/index.tsx +++ b/components/time-picker2/__docs__/demo/step/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; ReactDOM.render( diff --git a/components/time-picker2/__docs__/demo/value/index.tsx b/components/time-picker2/__docs__/demo/value/index.tsx index a141ead125..e36a4223a9 100644 --- a/components/time-picker2/__docs__/demo/value/index.tsx +++ b/components/time-picker2/__docs__/demo/value/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TimePicker2 } from '@alifd/next'; import dayjs from 'dayjs'; diff --git a/components/time-picker2/index.d.ts b/components/time-picker2/index.d.ts index 3c3d49ba4a..b7466c1de4 100644 --- a/components/time-picker2/index.d.ts +++ b/components/time-picker2/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; import { InputProps } from '../input'; diff --git a/components/time-picker2/module/date-input.jsx b/components/time-picker2/module/date-input.jsx index 61d680eb54..1605dd7383 100644 --- a/components/time-picker2/module/date-input.jsx +++ b/components/time-picker2/module/date-input.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { polyfill } from 'react-lifecycles-compat'; -import * as PT from 'prop-types'; +import PT from 'prop-types'; import classnames from 'classnames'; import SharedPT from '../prop-types'; import { TIME_INPUT_TYPE } from '../constant'; diff --git a/components/time-picker2/prop-types.js b/components/time-picker2/prop-types.js index 4c00c97ae7..9f16e729da 100644 --- a/components/time-picker2/prop-types.js +++ b/components/time-picker2/prop-types.js @@ -1,4 +1,4 @@ -import * as PT from 'prop-types'; +import PT from 'prop-types'; import { TIME_PICKER_TYPE, TIME_INPUT_TYPE } from './constant'; import { datejs } from '../util'; diff --git a/components/timeline/__docs__/demo/basic/index.tsx b/components/timeline/__docs__/demo/basic/index.tsx index 55596171ce..39e2b86335 100644 --- a/components/timeline/__docs__/demo/basic/index.tsx +++ b/components/timeline/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Timeline } from '@alifd/next'; const TimelineItem = Timeline.Item; diff --git a/components/timeline/__docs__/demo/content/index.tsx b/components/timeline/__docs__/demo/content/index.tsx index 366b794a59..55449d4a9b 100644 --- a/components/timeline/__docs__/demo/content/index.tsx +++ b/components/timeline/__docs__/demo/content/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Timeline } from '@alifd/next'; const TimelineItem = Timeline.Item; diff --git a/components/timeline/__docs__/demo/custom/index.tsx b/components/timeline/__docs__/demo/custom/index.tsx index f3ebeea1e2..cb8656d8cd 100644 --- a/components/timeline/__docs__/demo/custom/index.tsx +++ b/components/timeline/__docs__/demo/custom/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Timeline, Icon } from '@alifd/next'; const TimelineItem = Timeline.Item; diff --git a/components/timeline/__docs__/demo/fold/index.tsx b/components/timeline/__docs__/demo/fold/index.tsx index 3e630806fa..1b0d78007d 100644 --- a/components/timeline/__docs__/demo/fold/index.tsx +++ b/components/timeline/__docs__/demo/fold/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Timeline, Select } from '@alifd/next'; const TimelineItem = Timeline.Item; diff --git a/components/timeline/__docs__/demo/mode/index.tsx b/components/timeline/__docs__/demo/mode/index.tsx index 494d3c338a..317bbc7506 100644 --- a/components/timeline/__docs__/demo/mode/index.tsx +++ b/components/timeline/__docs__/demo/mode/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Timeline, Icon, Select } from '@alifd/next'; const TimelineItem = Timeline.Item; diff --git a/components/timeline/__docs__/demo/state/index.tsx b/components/timeline/__docs__/demo/state/index.tsx index 4b65c3175e..36b0bfc053 100644 --- a/components/timeline/__docs__/demo/state/index.tsx +++ b/components/timeline/__docs__/demo/state/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Timeline } from '@alifd/next'; const TimelineItem = Timeline.Item; diff --git a/components/timeline/__docs__/demo/timeLeft/index.tsx b/components/timeline/__docs__/demo/timeLeft/index.tsx index 0e1babe3fb..391a275354 100644 --- a/components/timeline/__docs__/demo/timeLeft/index.tsx +++ b/components/timeline/__docs__/demo/timeLeft/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Timeline } from '@alifd/next'; const TimelineItem = Timeline.Item; diff --git a/components/timeline/index.d.ts b/components/timeline/index.d.ts index 6bdf706d03..0a231da20f 100644 --- a/components/timeline/index.d.ts +++ b/components/timeline/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/timeline/main.scss b/components/timeline/main.scss index 4be1004bf3..7412257a3c 100644 --- a/components/timeline/main.scss +++ b/components/timeline/main.scss @@ -1,9 +1,9 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/normalize"; -@import "scss/mixin"; -@import "scss/util"; +@import "./scss/variable"; +@import "./scss/normalize"; +@import "./scss/mixin"; +@import "./scss/util"; @import "./rtl.scss"; #{$timeline-prefix} { diff --git a/components/transfer/__docs__/demo/accessibility/index.tsx b/components/transfer/__docs__/demo/accessibility/index.tsx index 61a469a586..1eb4ec80ed 100644 --- a/components/transfer/__docs__/demo/accessibility/index.tsx +++ b/components/transfer/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/__docs__/demo/basic/index.tsx b/components/transfer/__docs__/demo/basic/index.tsx index 0164d8d6fa..b144e07e64 100644 --- a/components/transfer/__docs__/demo/basic/index.tsx +++ b/components/transfer/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/__docs__/demo/control/index.tsx b/components/transfer/__docs__/demo/control/index.tsx index 7dbac1ef14..3c13a9e755 100644 --- a/components/transfer/__docs__/demo/control/index.tsx +++ b/components/transfer/__docs__/demo/control/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/__docs__/demo/custom-panel/index.tsx b/components/transfer/__docs__/demo/custom-panel/index.tsx index 55a26389e6..f4b4154705 100644 --- a/components/transfer/__docs__/demo/custom-panel/index.tsx +++ b/components/transfer/__docs__/demo/custom-panel/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer, Button, Tree } from '@alifd/next'; const TreeNode = Tree.Node; diff --git a/components/transfer/__docs__/demo/custom/index.tsx b/components/transfer/__docs__/demo/custom/index.tsx index 04d1f70e54..407fe897bb 100644 --- a/components/transfer/__docs__/demo/custom/index.tsx +++ b/components/transfer/__docs__/demo/custom/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer, Button } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/__docs__/demo/search/index.tsx b/components/transfer/__docs__/demo/search/index.tsx index 919d5630b0..951f3b5e2e 100644 --- a/components/transfer/__docs__/demo/search/index.tsx +++ b/components/transfer/__docs__/demo/search/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/__docs__/demo/simple/index.tsx b/components/transfer/__docs__/demo/simple/index.tsx index a527c633e5..a4c304ae76 100644 --- a/components/transfer/__docs__/demo/simple/index.tsx +++ b/components/transfer/__docs__/demo/simple/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/__docs__/demo/sortable/index.tsx b/components/transfer/__docs__/demo/sortable/index.tsx index 5221e9b659..935b4332d2 100644 --- a/components/transfer/__docs__/demo/sortable/index.tsx +++ b/components/transfer/__docs__/demo/sortable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/__docs__/demo/table-transfer/index.tsx b/components/transfer/__docs__/demo/table-transfer/index.tsx index 736fa8c680..35c9cf1554 100644 --- a/components/transfer/__docs__/demo/table-transfer/index.tsx +++ b/components/transfer/__docs__/demo/table-transfer/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer, Table } from '@alifd/next'; // 生成 transfer 数据源 diff --git a/components/transfer/__docs__/demo/virtual-list/index.tsx b/components/transfer/__docs__/demo/virtual-list/index.tsx index e913c2113c..fbcbb318a1 100644 --- a/components/transfer/__docs__/demo/virtual-list/index.tsx +++ b/components/transfer/__docs__/demo/virtual-list/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Transfer } from '@alifd/next'; const dataSource = (() => { diff --git a/components/transfer/index.d.ts b/components/transfer/index.d.ts index 840991dfc3..ea8be8828e 100644 --- a/components/transfer/index.d.ts +++ b/components/transfer/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; interface HTMLAttributesWeak extends React.HTMLAttributes { diff --git a/components/transfer/main.scss b/components/transfer/main.scss index 2260919ec9..6af8624df9 100644 --- a/components/transfer/main.scss +++ b/components/transfer/main.scss @@ -1,5 +1,5 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; +@import "./scss/variable"; #{$transfer-prefix} { @include box-sizing; diff --git a/components/tree-select/__docs__/demo/accessibility/index.tsx b/components/tree-select/__docs__/demo/accessibility/index.tsx index e29029e704..be017d8919 100644 --- a/components/tree-select/__docs__/demo/accessibility/index.tsx +++ b/components/tree-select/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const data = [ diff --git a/components/tree-select/__docs__/demo/basic/index.md b/components/tree-select/__docs__/demo/basic/index.md index 29100c8278..72860f5f89 100644 --- a/components/tree-select/__docs__/demo/basic/index.md +++ b/components/tree-select/__docs__/demo/basic/index.md @@ -4,42 +4,6 @@ 最简单的单选用法。 -```jsx -import { TreeSelect } from '@alifd/next'; - -const TreeNode = TreeSelect.Node; - -class Demo extends React.Component { - constructor(props) { - super(props); - - this.handleChange = this.handleChange.bind(this); - } - - handleChange(value, data) { - console.log(value, data); - } - - render() { - return ( - - - - - - - - - - - - ); - } -} - -ReactDOM.render(, mountNode); -``` - # en-US order=0 # Basic diff --git a/components/tree-select/__docs__/demo/basic/index.tsx b/components/tree-select/__docs__/demo/basic/index.tsx new file mode 100644 index 0000000000..e7a4100d76 --- /dev/null +++ b/components/tree-select/__docs__/demo/basic/index.tsx @@ -0,0 +1,36 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { TreeSelect } from '@alifd/next'; + +const TreeNode = TreeSelect.Node; + +class Demo extends React.Component { + constructor(props) { + super(props); + + this.handleChange = this.handleChange.bind(this); + } + + handleChange(value, data) { + console.log(value, data); + } + + render() { + return ( + + + + + + + + + + + + ); + } +} + +ReactDOM.render(, mountNode); diff --git a/components/tree-select/__docs__/demo/check/index.tsx b/components/tree-select/__docs__/demo/check/index.tsx index 3cf0e8759b..f144a48fb2 100644 --- a/components/tree-select/__docs__/demo/check/index.tsx +++ b/components/tree-select/__docs__/demo/check/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const treeData = [ diff --git a/components/tree-select/__docs__/demo/control/index.tsx b/components/tree-select/__docs__/demo/control/index.tsx index 3ac37007dc..8ed49df2e2 100644 --- a/components/tree-select/__docs__/demo/control/index.tsx +++ b/components/tree-select/__docs__/demo/control/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const treeData = [ diff --git a/components/tree-select/__docs__/demo/data/index.tsx b/components/tree-select/__docs__/demo/data/index.tsx index 833c3a6a84..4a7b1e6da6 100644 --- a/components/tree-select/__docs__/demo/data/index.tsx +++ b/components/tree-select/__docs__/demo/data/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const treeData = [ diff --git a/components/tree-select/__docs__/demo/inline/index.tsx b/components/tree-select/__docs__/demo/inline/index.tsx index b1d2066de0..8610c54cd2 100644 --- a/components/tree-select/__docs__/demo/inline/index.tsx +++ b/components/tree-select/__docs__/demo/inline/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const treeData = [ diff --git a/components/tree-select/__docs__/demo/non-existent-value/index.md b/components/tree-select/__docs__/demo/non-existent-value/index.md index d913ea119f..8593cddcd4 100644 --- a/components/tree-select/__docs__/demo/non-existent-value/index.md +++ b/components/tree-select/__docs__/demo/non-existent-value/index.md @@ -4,71 +4,6 @@ 通过设置 `preserveNonExistentValue`,可以让 value 在 dataSource 中不存在时仍然显示 -```jsx -import { TreeSelect } from '@alifd/next'; - -const treeData = [ - { - label: 'Component', - value: '1', - children: [ - { - label: 'Form', - value: '2', - children: [ - { - label: 'Input', - value: '4', - }, - { - label: 'Select', - value: '5', - }, - ], - }, - { - label: 'Display', - value: '3', - children: [ - { - label: 'Table', - value: '6', - }, - ], - }, - ], - }, -]; - -class Demo extends React.Component { - constructor(props) { - super(props); - - this.handleChange = this.handleChange.bind(this); - } - - handleChange(value, data) { - console.log(value, data); - } - - render() { - return ( - - ); - } -} - -ReactDOM.render(, mountNode); -``` - # en-US order=0 # non-existent-value diff --git a/components/tree-select/__docs__/demo/non-existent-value/index.tsx b/components/tree-select/__docs__/demo/non-existent-value/index.tsx new file mode 100644 index 0000000000..dbe8094d86 --- /dev/null +++ b/components/tree-select/__docs__/demo/non-existent-value/index.tsx @@ -0,0 +1,65 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { TreeSelect } from '@alifd/next'; + +const treeData = [ + { + label: 'Component', + value: '1', + children: [ + { + label: 'Form', + value: '2', + children: [ + { + label: 'Input', + value: '4', + }, + { + label: 'Select', + value: '5', + }, + ], + }, + { + label: 'Display', + value: '3', + children: [ + { + label: 'Table', + value: '6', + }, + ], + }, + ], + }, +]; + +class Demo extends React.Component { + constructor(props) { + super(props); + + this.handleChange = this.handleChange.bind(this); + } + + handleChange(value, data) { + console.log(value, data); + } + + render() { + return ( + + ); + } +} + +ReactDOM.render(, mountNode); diff --git a/components/tree-select/__docs__/demo/pro-search/index.tsx b/components/tree-select/__docs__/demo/pro-search/index.tsx index 73cd7bc530..22a01ad33c 100644 --- a/components/tree-select/__docs__/demo/pro-search/index.tsx +++ b/components/tree-select/__docs__/demo/pro-search/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const defaultTreeData = [ diff --git a/components/tree-select/__docs__/demo/search/index.tsx b/components/tree-select/__docs__/demo/search/index.tsx index 26799978df..cb0d182c97 100644 --- a/components/tree-select/__docs__/demo/search/index.tsx +++ b/components/tree-select/__docs__/demo/search/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const treeData = [ diff --git a/components/tree-select/__docs__/demo/select/index.tsx b/components/tree-select/__docs__/demo/select/index.tsx index 161ced18c0..f49b419fa0 100644 --- a/components/tree-select/__docs__/demo/select/index.tsx +++ b/components/tree-select/__docs__/demo/select/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect, Checkbox } from '@alifd/next'; const dataSource = [ diff --git a/components/tree-select/__docs__/demo/tree-path/index.tsx b/components/tree-select/__docs__/demo/tree-path/index.tsx index c0984be383..226aa0c49e 100644 --- a/components/tree-select/__docs__/demo/tree-path/index.tsx +++ b/components/tree-select/__docs__/demo/tree-path/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; const treeData = [ diff --git a/components/tree-select/__docs__/demo/virtual-tree/index.tsx b/components/tree-select/__docs__/demo/virtual-tree/index.tsx index 171899ccb3..b88a09635e 100644 --- a/components/tree-select/__docs__/demo/virtual-tree/index.tsx +++ b/components/tree-select/__docs__/demo/virtual-tree/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { TreeSelect } from '@alifd/next'; function createDataSource(level = 3, count = 5) { diff --git a/components/tree-select/index.d.ts b/components/tree-select/index.d.ts index df20e2d409..c9d759f3fe 100644 --- a/components/tree-select/index.d.ts +++ b/components/tree-select/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { PopupProps } from '../overlay'; import { TreeProps } from '../tree'; diff --git a/components/tree-select/main.scss b/components/tree-select/main.scss index 42c2bae4f7..3a7d02ceeb 100644 --- a/components/tree-select/main.scss +++ b/components/tree-select/main.scss @@ -1,5 +1,5 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; +@import "./scss/variable"; @import "../tree/scss/variable.scss"; #{$tree-select-prefix} { diff --git a/components/tree/__docs__/demo/basic/index.tsx b/components/tree/__docs__/demo/basic/index.tsx index 01639384b5..1f7a0e9f53 100644 --- a/components/tree/__docs__/demo/basic/index.tsx +++ b/components/tree/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree, Button, Icon } from '@alifd/next'; const TreeNode = Tree.Node; diff --git a/components/tree/__docs__/demo/control-check/index.tsx b/components/tree/__docs__/demo/control-check/index.tsx index 420a9c39e9..8ea4ae7b6b 100644 --- a/components/tree/__docs__/demo/control-check/index.tsx +++ b/components/tree/__docs__/demo/control-check/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Checkbox, Tree } from '@alifd/next'; const data = [ diff --git a/components/tree/__docs__/demo/control-expand/index.tsx b/components/tree/__docs__/demo/control-expand/index.tsx index cc0f785b50..ac03dc81a4 100644 --- a/components/tree/__docs__/demo/control-expand/index.tsx +++ b/components/tree/__docs__/demo/control-expand/index.tsx @@ -1,5 +1,5 @@ -import * as ReactDOM from 'react-dom'; -import { useState, useEffect } from 'react'; +import React, { useState, useEffect } from 'react'; +import ReactDOM from 'react-dom'; import { Checkbox, Tree } from '@alifd/next'; const data = [ diff --git a/components/tree/__docs__/demo/control-select/index.tsx b/components/tree/__docs__/demo/control-select/index.tsx index 3d16c4b0d2..6c651ca891 100644 --- a/components/tree/__docs__/demo/control-select/index.tsx +++ b/components/tree/__docs__/demo/control-select/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Checkbox, Tree } from '@alifd/next'; const data = [ diff --git a/components/tree/__docs__/demo/data/index.tsx b/components/tree/__docs__/demo/data/index.tsx index 96e35b8996..52e202b205 100644 --- a/components/tree/__docs__/demo/data/index.tsx +++ b/components/tree/__docs__/demo/data/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree } from '@alifd/next'; const data = [ diff --git a/components/tree/__docs__/demo/draggable/index.tsx b/components/tree/__docs__/demo/draggable/index.tsx index c0f1f8f2e2..832d82a84c 100644 --- a/components/tree/__docs__/demo/draggable/index.tsx +++ b/components/tree/__docs__/demo/draggable/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree } from '@alifd/next'; const TreeNode = Tree.Node; diff --git a/components/tree/__docs__/demo/dynamic/index.tsx b/components/tree/__docs__/demo/dynamic/index.tsx index 14b27cad60..7e142609ce 100644 --- a/components/tree/__docs__/demo/dynamic/index.tsx +++ b/components/tree/__docs__/demo/dynamic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree } from '@alifd/next'; class Demo extends React.Component { diff --git a/components/tree/__docs__/demo/icon/index.tsx b/components/tree/__docs__/demo/icon/index.tsx index 341394549b..ad3e030331 100644 --- a/components/tree/__docs__/demo/icon/index.tsx +++ b/components/tree/__docs__/demo/icon/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree, Checkbox, Icon } from '@alifd/next'; const data = [ diff --git a/components/tree/__docs__/demo/line/index.tsx b/components/tree/__docs__/demo/line/index.tsx index caf81ccb4b..06016366ff 100644 --- a/components/tree/__docs__/demo/line/index.tsx +++ b/components/tree/__docs__/demo/line/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree, Checkbox } from '@alifd/next'; const data = [ diff --git a/components/tree/__docs__/demo/node-block/index.tsx b/components/tree/__docs__/demo/node-block/index.tsx index be0f3d1e07..af6f7a6976 100644 --- a/components/tree/__docs__/demo/node-block/index.tsx +++ b/components/tree/__docs__/demo/node-block/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree } from '@alifd/next'; const TreeNode = Tree.Node; diff --git a/components/tree/__docs__/demo/render-child-nodes/index.tsx b/components/tree/__docs__/demo/render-child-nodes/index.tsx index ec6575df3b..8584c52c4d 100644 --- a/components/tree/__docs__/demo/render-child-nodes/index.tsx +++ b/components/tree/__docs__/demo/render-child-nodes/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree } from '@alifd/next'; const TreeNode = Tree.Node; diff --git a/components/tree/__docs__/demo/search-tree/index.tsx b/components/tree/__docs__/demo/search-tree/index.tsx index 416d0c65dc..fad5c2781b 100644 --- a/components/tree/__docs__/demo/search-tree/index.tsx +++ b/components/tree/__docs__/demo/search-tree/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Search, Tree } from '@alifd/next'; const data = [ diff --git a/components/tree/__docs__/demo/virtual-tree/index.tsx b/components/tree/__docs__/demo/virtual-tree/index.tsx index 0d84513037..db937f7e8e 100644 --- a/components/tree/__docs__/demo/virtual-tree/index.tsx +++ b/components/tree/__docs__/demo/virtual-tree/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Tree } from '@alifd/next'; function createDataSource(level = 3, count = 5) { diff --git a/components/tree/index.d.ts b/components/tree/index.d.ts index 88eb79b631..634e1306e7 100644 --- a/components/tree/index.d.ts +++ b/components/tree/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { VirtualListProps } from '../virtual-list'; diff --git a/components/tree/main.scss b/components/tree/main.scss index ce74942a23..96acb11fec 100644 --- a/components/tree/main.scss +++ b/components/tree/main.scss @@ -1,7 +1,7 @@ @import "../core/index-noreset.scss"; -@import "scss/variable"; -@import "scss/mixin"; +@import "./scss/variable"; +@import "./scss/mixin"; #{$tree-prefix} { @include box-sizing; diff --git a/components/typography/__docs__/demo/basic/index.tsx b/components/typography/__docs__/demo/basic/index.tsx index 9026305401..a2bd456a50 100644 --- a/components/typography/__docs__/demo/basic/index.tsx +++ b/components/typography/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Typography } from '@alifd/next'; const { H1, H2, Paragraph, Text } = Typography; diff --git a/components/typography/__docs__/demo/paragraph/index.tsx b/components/typography/__docs__/demo/paragraph/index.tsx index 7a4f95b148..9fc2e72d7d 100644 --- a/components/typography/__docs__/demo/paragraph/index.tsx +++ b/components/typography/__docs__/demo/paragraph/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Typography } from '@alifd/next'; const { Paragraph } = Typography; diff --git a/components/typography/__docs__/demo/text/index.tsx b/components/typography/__docs__/demo/text/index.tsx index 9f536f4343..a520ae02b7 100644 --- a/components/typography/__docs__/demo/text/index.tsx +++ b/components/typography/__docs__/demo/text/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Typography } from '@alifd/next'; const { Text } = Typography; diff --git a/components/typography/__docs__/demo/title/index.tsx b/components/typography/__docs__/demo/title/index.tsx index d22efe8066..fbcedc2032 100644 --- a/components/typography/__docs__/demo/title/index.tsx +++ b/components/typography/__docs__/demo/title/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Typography } from '@alifd/next'; const { H1, H2, H3, H4, H5, H6 } = Typography; diff --git a/components/typography/__docs__/theme/index.tsx b/components/typography/__docs__/theme/index.tsx index 73a3955405..f6cf697086 100644 --- a/components/typography/__docs__/theme/index.tsx +++ b/components/typography/__docs__/theme/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import '../../../demo-helper/style'; import { Demo, DemoGroup, initDemo } from '../../../demo-helper'; import ConfigProvider from '../../../config-provider'; diff --git a/components/typography/__tests__/index-spec.tsx b/components/typography/__tests__/index-spec.tsx index 9843008115..1962018094 100644 --- a/components/typography/__tests__/index-spec.tsx +++ b/components/typography/__tests__/index-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import Typography from '../index'; const { Paragraph, Text, H1, H2, H3, H4, H5, H6 } = Typography; diff --git a/components/typography/main.scss b/components/typography/main.scss index a32d25876d..15c2853bc4 100644 --- a/components/typography/main.scss +++ b/components/typography/main.scss @@ -1,5 +1,5 @@ @import "../core/index-noreset.scss"; -@import "scss/variable.scss"; +@import "./scss/variable.scss"; #{$typography-prefix} { color: $typography-text-color; diff --git a/components/typography/paragraph.tsx b/components/typography/paragraph.tsx index 9876b9980f..e1fbdb2c30 100644 --- a/components/typography/paragraph.tsx +++ b/components/typography/paragraph.tsx @@ -1,6 +1,6 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import * as classNames from 'classnames'; +import React from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; import ConfigProvider from '../config-provider'; import Text from './text'; import { ParagraphProps } from './types'; diff --git a/components/typography/text.tsx b/components/typography/text.tsx index 6edbf6fc54..fc93406b01 100644 --- a/components/typography/text.tsx +++ b/components/typography/text.tsx @@ -1,6 +1,6 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import * as classNames from 'classnames'; +import React from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; import ConfigProvider from '../config-provider'; import { TextProps } from './types'; /** diff --git a/components/typography/title.tsx b/components/typography/title.tsx index 26a525b92a..3ca2816789 100644 --- a/components/typography/title.tsx +++ b/components/typography/title.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; +import React from 'react'; +import PropTypes from 'prop-types'; import Text from './text'; import ConfigProvider from '../config-provider'; import { TitleProps } from './types'; diff --git a/components/typography/types.ts b/components/typography/types.ts index cb323241ab..d1a3eee6c7 100644 --- a/components/typography/types.ts +++ b/components/typography/types.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; /** diff --git a/components/typography/typography.tsx b/components/typography/typography.tsx index f66f077726..be50d6371c 100644 --- a/components/typography/typography.tsx +++ b/components/typography/typography.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; +import React from 'react'; +import PropTypes from 'prop-types'; import Text from './text'; import { TypographyProps } from './types'; diff --git a/components/upload/__docs__/demo/accessibility/index.tsx b/components/upload/__docs__/demo/accessibility/index.tsx index 625a0f45b3..69903d3c2f 100644 --- a/components/upload/__docs__/demo/accessibility/index.tsx +++ b/components/upload/__docs__/demo/accessibility/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button } from '@alifd/next'; ReactDOM.render( diff --git a/components/upload/__docs__/demo/after-select/index.tsx b/components/upload/__docs__/demo/after-select/index.tsx index 28e0e5de2c..f4b47252c9 100644 --- a/components/upload/__docs__/demo/after-select/index.tsx +++ b/components/upload/__docs__/demo/after-select/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button, Dialog } from '@alifd/next'; const afterSelect = file => { diff --git a/components/upload/__docs__/demo/base/index.tsx b/components/upload/__docs__/demo/base/index.tsx index 1603ef60d1..c30342310f 100644 --- a/components/upload/__docs__/demo/base/index.tsx +++ b/components/upload/__docs__/demo/base/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button, Icon } from '@alifd/next'; const style = { display: 'inline-block', marginRight: 10 }; diff --git a/components/upload/__docs__/demo/beforeupload/index.tsx b/components/upload/__docs__/demo/beforeupload/index.tsx index bda1eff393..4514fe1d0c 100644 --- a/components/upload/__docs__/demo/beforeupload/index.tsx +++ b/components/upload/__docs__/demo/beforeupload/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button } from '@alifd/next'; const requestOpts = { diff --git a/components/upload/__docs__/demo/card/index.tsx b/components/upload/__docs__/demo/card/index.tsx index 11e5976aba..75351caa9d 100644 --- a/components/upload/__docs__/demo/card/index.tsx +++ b/components/upload/__docs__/demo/card/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload } from '@alifd/next'; ReactDOM.render( diff --git a/components/upload/__docs__/demo/crop/index.tsx b/components/upload/__docs__/demo/crop/index.tsx index ddb79172c6..e6e88bb614 100644 --- a/components/upload/__docs__/demo/crop/index.tsx +++ b/components/upload/__docs__/demo/crop/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button, Dialog } from '@alifd/next'; import Cropper from 'react-cropper'; import 'cropperjs/dist/cropper.css'; diff --git a/components/upload/__docs__/demo/data/index.tsx b/components/upload/__docs__/demo/data/index.tsx index a9ea877715..e5aa395521 100644 --- a/components/upload/__docs__/demo/data/index.tsx +++ b/components/upload/__docs__/demo/data/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button } from '@alifd/next'; ReactDOM.render( diff --git a/components/upload/__docs__/demo/directory/index.tsx b/components/upload/__docs__/demo/directory/index.tsx index 96aa06603f..6512173029 100644 --- a/components/upload/__docs__/demo/directory/index.tsx +++ b/components/upload/__docs__/demo/directory/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button, Icon } from '@alifd/next'; ReactDOM.render( diff --git a/components/upload/__docs__/demo/dragger/index.tsx b/components/upload/__docs__/demo/dragger/index.tsx index 8ca834a266..80a0c311ff 100644 --- a/components/upload/__docs__/demo/dragger/index.tsx +++ b/components/upload/__docs__/demo/dragger/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Icon, Button } from '@alifd/next'; function handleClick(e) { diff --git a/components/upload/__docs__/demo/extra/index.tsx b/components/upload/__docs__/demo/extra/index.tsx index 263b10ad56..52bdb878cb 100644 --- a/components/upload/__docs__/demo/extra/index.tsx +++ b/components/upload/__docs__/demo/extra/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button, Icon, Dialog } from '@alifd/next'; const showImg = url => { diff --git a/components/upload/__docs__/demo/image/index.tsx b/components/upload/__docs__/demo/image/index.tsx index 509b4830e5..dad4f575e1 100644 --- a/components/upload/__docs__/demo/image/index.tsx +++ b/components/upload/__docs__/demo/image/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button } from '@alifd/next'; ReactDOM.render( diff --git a/components/upload/__docs__/demo/limit/index.tsx b/components/upload/__docs__/demo/limit/index.tsx index cf8c81bb7b..18fab78630 100644 --- a/components/upload/__docs__/demo/limit/index.tsx +++ b/components/upload/__docs__/demo/limit/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button } from '@alifd/next'; const onError = (file, fileList) => { diff --git a/components/upload/__docs__/demo/maxsize/index.tsx b/components/upload/__docs__/demo/maxsize/index.tsx index dd8b117532..eaad3c9f07 100644 --- a/components/upload/__docs__/demo/maxsize/index.tsx +++ b/components/upload/__docs__/demo/maxsize/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Dialog, Button } from '@alifd/next'; const beforeUpload = file => { diff --git a/components/upload/__docs__/demo/oss/index.tsx b/components/upload/__docs__/demo/oss/index.tsx index 927015b9d8..39bb52bba2 100644 --- a/components/upload/__docs__/demo/oss/index.tsx +++ b/components/upload/__docs__/demo/oss/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload } from '@alifd/next'; class App extends React.Component { diff --git a/components/upload/__docs__/demo/paste/index.tsx b/components/upload/__docs__/demo/paste/index.tsx index 9a8aaf6cff..81de65f223 100644 --- a/components/upload/__docs__/demo/paste/index.tsx +++ b/components/upload/__docs__/demo/paste/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Input } from '@alifd/next'; class App extends React.Component { diff --git a/components/upload/__docs__/demo/submit/index.tsx b/components/upload/__docs__/demo/submit/index.tsx index 4f61234788..ede7303571 100644 --- a/components/upload/__docs__/demo/submit/index.tsx +++ b/components/upload/__docs__/demo/submit/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button, Icon } from '@alifd/next'; class App extends React.Component { diff --git a/components/upload/__docs__/demo/text/index.tsx b/components/upload/__docs__/demo/text/index.tsx index 4f532c8857..cfe6605883 100644 --- a/components/upload/__docs__/demo/text/index.tsx +++ b/components/upload/__docs__/demo/text/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button } from '@alifd/next'; const defaultValue = [ diff --git a/components/upload/__docs__/demo/with-form/index.tsx b/components/upload/__docs__/demo/with-form/index.tsx index 4896a368d6..6aab558374 100644 --- a/components/upload/__docs__/demo/with-form/index.tsx +++ b/components/upload/__docs__/demo/with-form/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { Upload, Button, Field, Form, Box } from '@alifd/next'; const FormItem = Form.Item; diff --git a/components/upload/index.d.ts b/components/upload/index.d.ts index 8c9ccf7d14..48d6b08cc3 100644 --- a/components/upload/index.d.ts +++ b/components/upload/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; import { ProgressProps } from '../progress'; diff --git a/components/upload/main.scss b/components/upload/main.scss index 28375163ea..929aa64b2d 100644 --- a/components/upload/main.scss +++ b/components/upload/main.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; @import "../core/index-noreset.scss"; -@import "scss/variable"; +@import "./scss/variable"; @import "./rtl.scss"; diff --git a/components/util/__tests__/a11y/validate.tsx b/components/util/__tests__/a11y/validate.tsx index fbfa92cded..88fa41033c 100644 --- a/components/util/__tests__/a11y/validate.tsx +++ b/components/util/__tests__/a11y/validate.tsx @@ -1,7 +1,5 @@ -import * as React from 'react'; -import * as Axe from 'axe-core'; -import { Result, ElementContext, AxeResults } from 'axe-core'; -import { ReactElement } from 'react'; +import React, { ReactElement } from 'react'; +import Axe, { Result, ElementContext, AxeResults } from 'axe-core'; export const A11Y_ROOT_ID = 'A11Y-ROOT-ID'; diff --git a/components/util/__tests__/events-spec.ts b/components/util/__tests__/events-spec.ts index 80ccccfdd1..5d24b02c25 100644 --- a/components/util/__tests__/events-spec.ts +++ b/components/util/__tests__/events-spec.ts @@ -1,4 +1,4 @@ -import * as simulateEvents from 'simulate-event'; +import simulateEvents from 'simulate-event'; import * as events from '../events'; describe('src/events.js', function () { diff --git a/components/util/__tests__/func-spec.ts b/components/util/__tests__/func-spec.ts index 20e1ba1897..438b998c4d 100644 --- a/components/util/__tests__/func-spec.ts +++ b/components/util/__tests__/func-spec.ts @@ -1,4 +1,4 @@ -import * as ES6Promise from 'es6-promise-polyfill'; +import ES6Promise from 'es6-promise-polyfill'; import * as func from '../func'; window.Promise = window.Promise || ES6Promise.Promise; diff --git a/components/util/__tests__/index.tsx b/components/util/__tests__/index.tsx index dcf02295fe..8b6dcc82c8 100644 --- a/components/util/__tests__/index.tsx +++ b/components/util/__tests__/index.tsx @@ -1,6 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; -import { ReactElement, ElementType } from 'react'; +import React, { ReactElement, ElementType } from 'react'; +import ReactDOM from 'react-dom'; import { create, ReactTestRendererTree } from 'react-test-renderer'; export const delay = (time: number) => new Promise(resolve => setTimeout(resolve, time)); diff --git a/components/util/__tests__/object-spec.tsx b/components/util/__tests__/object-spec.tsx index 7c50351d2e..d3ef69535f 100644 --- a/components/util/__tests__/object-spec.tsx +++ b/components/util/__tests__/object-spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import * as object from '../object'; /* eslint-disable */ diff --git a/components/util/date.ts b/components/util/date.ts index 119df58f61..1ded54f525 100644 --- a/components/util/date.ts +++ b/components/util/date.ts @@ -1,10 +1,10 @@ -import * as dayjs from 'dayjs'; -import * as customParseFormat from 'dayjs/plugin/customParseFormat'; -import * as updateLocale from 'dayjs/plugin/updateLocale'; -import * as localeData from 'dayjs/plugin/localeData'; -import * as quarterOfYear from 'dayjs/plugin/quarterOfYear'; -import * as advancedFormat from 'dayjs/plugin/advancedFormat'; -import * as weekOfYear from 'dayjs/plugin/weekOfYear'; +import dayjs from 'dayjs'; +import customParseFormat from 'dayjs/plugin/customParseFormat'; +import updateLocale from 'dayjs/plugin/updateLocale'; +import localeData from 'dayjs/plugin/localeData'; +import quarterOfYear from 'dayjs/plugin/quarterOfYear'; +import advancedFormat from 'dayjs/plugin/advancedFormat'; +import weekOfYear from 'dayjs/plugin/weekOfYear'; import 'dayjs/locale/zh-cn'; type _dayjs = typeof dayjs; diff --git a/components/util/func.ts b/components/util/func.ts index 85c12f7fe1..856e3e8eac 100644 --- a/components/util/func.ts +++ b/components/util/func.ts @@ -67,7 +67,7 @@ export function bindCtx(ctx: object, fns: string | string[], ns?: object) { fns.forEach(fnName => { // @ts-expect-error 这里不要添加空方法判断,由调用者保证正确性,否则出了问题无法排查 - ns![fnName] = ns![fnName].bind(ctx); + ns[fnName] = ns[fnName].bind(ctx); }); } diff --git a/components/util/object.ts b/components/util/object.ts index af831a250a..2664934aae 100644 --- a/components/util/object.ts +++ b/components/util/object.ts @@ -1,5 +1,4 @@ -import * as React from 'react'; -import { ReactElement, JSXElementConstructor, ComponentClass } from 'react'; +import React, { ReactElement, JSXElementConstructor, ComponentClass } from 'react'; export type ObjectOrArray = Record | ArrayLike; type Writable = { diff --git a/components/virtual-list/__docs__/demo/basic/index.tsx b/components/virtual-list/__docs__/demo/basic/index.tsx index b76f15bc5d..4bf62a6797 100644 --- a/components/virtual-list/__docs__/demo/basic/index.tsx +++ b/components/virtual-list/__docs__/demo/basic/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { VirtualList } from '@alifd/next'; const dataSource = []; diff --git a/components/virtual-list/__docs__/demo/initial-index/index.tsx b/components/virtual-list/__docs__/demo/initial-index/index.tsx index b02c13d788..44bdf3635b 100644 --- a/components/virtual-list/__docs__/demo/initial-index/index.tsx +++ b/components/virtual-list/__docs__/demo/initial-index/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { VirtualList } from '@alifd/next'; const dataSource = []; diff --git a/components/virtual-list/__docs__/demo/item-size-getter/index.tsx b/components/virtual-list/__docs__/demo/item-size-getter/index.tsx index 01b2ff15c4..e3f6336d04 100644 --- a/components/virtual-list/__docs__/demo/item-size-getter/index.tsx +++ b/components/virtual-list/__docs__/demo/item-size-getter/index.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; import { VirtualList } from '@alifd/next'; const dataSource = []; diff --git a/components/virtual-list/index.d.ts b/components/virtual-list/index.d.ts index 6d163fcfd3..d3712bd072 100644 --- a/components/virtual-list/index.d.ts +++ b/components/virtual-list/index.d.ts @@ -1,6 +1,6 @@ /// -import * as React from 'react'; +import React from 'react'; import { CommonProps } from '../util'; export interface VirtualListProps extends React.HTMLAttributes, CommonProps { diff --git a/global.d.ts b/global.d.ts index c8bf12883c..906576c727 100644 --- a/global.d.ts +++ b/global.d.ts @@ -2,10 +2,11 @@ declare module 'enzyme-adapter-react-16'; declare module 'es6-promise-polyfill' { - export { Promise }; + export = { Promise }; } declare module 'conventional-changelog' { import { Readable } from 'stream'; + function conventionalChangelog(...args: any[]): Readable; export = conventionalChangelog; } @@ -21,5 +22,6 @@ declare const mountNode: HTMLDivElement; declare module 'react-lifecycles-compat' { import { ComponentType } from 'react'; + export function polyfill(Component: C): C; } diff --git a/index-noreset.css b/index-noreset.css index 9d79263d7d..be84eccd20 100644 --- a/index-noreset.css +++ b/index-noreset.css @@ -1,62 +1,62 @@ -@import "lib/affix/index.css"; -@import "lib/animate/index.css"; -@import "lib/icon/index.css"; -@import "lib/overlay/index.css"; -@import "lib/loading/index.css"; -@import "lib/radio/index.css"; -@import "lib/badge/index.css"; -@import "lib/balloon/index.css"; -@import "lib/menu/index.css"; -@import "lib/dropdown/index.css"; -@import "lib/breadcrumb/index.css"; -@import "lib/button/index.css"; -@import "lib/input/index.css"; -@import "lib/calendar/index.css"; -@import "lib/card/index.css"; -@import "lib/cascader/index.css"; -@import "lib/cascader-select/index.css"; -@import "lib/checkbox/index.css"; -@import "lib/collapse/index.css"; -@import "lib/config-provider/index.css"; -@import "lib/time-picker/index.css"; -@import "lib/date-picker/index.css"; -@import "lib/message/index.css"; -@import "lib/dialog/index.css"; -@import "lib/drawer/index.css"; -@import "lib/field/index.css"; -@import "lib/grid/index.css"; -@import "lib/responsive-grid/index.css"; -@import "lib/form/index.css"; -@import "lib/avatar/index.css"; -@import "lib/select/index.css"; -@import "lib/list/index.css"; -@import "lib/menu-button/index.css"; -@import "lib/nav/index.css"; -@import "lib/number-picker/index.css"; -@import "lib/pagination/index.css"; -@import "lib/paragraph/index.css"; -@import "lib/progress/index.css"; -@import "lib/range/index.css"; -@import "lib/rating/index.css"; -@import "lib/search/index.css"; -@import "lib/slider/index.css"; -@import "lib/split-button/index.css"; -@import "lib/step/index.css"; -@import "lib/switch/index.css"; -@import "lib/tab/index.css"; -@import "lib/tag/index.css"; -@import "lib/timeline/index.css"; -@import "lib/transfer/index.css"; -@import "lib/tree/index.css"; -@import "lib/tree-select/index.css"; -@import "lib/upload/index.css"; -@import "lib/virtual-list/index.css"; -@import "lib/shell/index.css"; -@import "lib/notification/index.css"; -@import "lib/typography/index.css"; -@import "lib/divider/index.css"; -@import "lib/box/index.css"; -@import "lib/table/index.css"; -@import "lib/calendar2/index.css"; -@import "lib/time-picker2/index.css"; -@import "lib/date-picker2/index.css"; +@import "./lib/affix/index.css"; +@import "./lib/animate/index.css"; +@import "./lib/icon/index.css"; +@import "./lib/overlay/index.css"; +@import "./lib/loading/index.css"; +@import "./lib/radio/index.css"; +@import "./lib/badge/index.css"; +@import "./lib/balloon/index.css"; +@import "./lib/menu/index.css"; +@import "./lib/dropdown/index.css"; +@import "./lib/breadcrumb/index.css"; +@import "./lib/button/index.css"; +@import "./lib/input/index.css"; +@import "./lib/calendar/index.css"; +@import "./lib/card/index.css"; +@import "./lib/cascader/index.css"; +@import "./lib/cascader-select/index.css"; +@import "./lib/checkbox/index.css"; +@import "./lib/collapse/index.css"; +@import "./lib/config-provider/index.css"; +@import "./lib/time-picker/index.css"; +@import "./lib/date-picker/index.css"; +@import "./lib/message/index.css"; +@import "./lib/dialog/index.css"; +@import "./lib/drawer/index.css"; +@import "./lib/field/index.css"; +@import "./lib/grid/index.css"; +@import "./lib/responsive-grid/index.css"; +@import "./lib/form/index.css"; +@import "./lib/avatar/index.css"; +@import "./lib/select/index.css"; +@import "./lib/list/index.css"; +@import "./lib/menu-button/index.css"; +@import "./lib/nav/index.css"; +@import "./lib/number-picker/index.css"; +@import "./lib/pagination/index.css"; +@import "./lib/paragraph/index.css"; +@import "./lib/progress/index.css"; +@import "./lib/range/index.css"; +@import "./lib/rating/index.css"; +@import "./lib/search/index.css"; +@import "./lib/slider/index.css"; +@import "./lib/split-button/index.css"; +@import "./lib/step/index.css"; +@import "./lib/switch/index.css"; +@import "./lib/tab/index.css"; +@import "./lib/tag/index.css"; +@import "./lib/timeline/index.css"; +@import "./lib/transfer/index.css"; +@import "./lib/tree/index.css"; +@import "./lib/tree-select/index.css"; +@import "./lib/upload/index.css"; +@import "./lib/virtual-list/index.css"; +@import "./lib/shell/index.css"; +@import "./lib/notification/index.css"; +@import "./lib/typography/index.css"; +@import "./lib/divider/index.css"; +@import "./lib/box/index.css"; +@import "./lib/table/index.css"; +@import "./lib/calendar2/index.css"; +@import "./lib/time-picker2/index.css"; +@import "./lib/date-picker2/index.css"; diff --git a/index.html b/index.html new file mode 100644 index 0000000000..50e39a95cb --- /dev/null +++ b/index.html @@ -0,0 +1,16 @@ + + + + + + + $name + + +
+ + + + diff --git a/index.js b/index.js index 4edd604efd..9ce17bd34b 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,5 @@ var next = require('./lib/index.js'); -next.version = '1.27.0-alpha.2'; +next.version = '1.27.2'; module.exports = next; diff --git a/package-lock.json b/package-lock.json index acec6a6419..8481f778fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@alifd/next", - "version": "1.27.0-alpha.2", + "version": "1.27.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@alifd/next", - "version": "1.27.0-alpha.2", + "version": "1.27.1", "license": "MIT", "dependencies": { "@alifd/field": "~1.7.0", @@ -57,6 +57,7 @@ "@types/postcss-custom-properties": "^9.1.1", "@types/react": "^16.14.37", "@types/react-dom": "^16.9.24", + "@types/react-router-dom": "^5.3.3", "@types/react-test-renderer": "^16.9.12", "@types/stylelint": "^13.13.3", "@types/webpack": "^3.8.27", @@ -3363,6 +3364,12 @@ "@types/node": "*" } }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true + }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", @@ -3488,6 +3495,27 @@ "@types/react": "^16" } }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dev": true, + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, "node_modules/@types/react-test-renderer": { "version": "16.9.12", "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.12.tgz", @@ -13305,6 +13333,15 @@ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -14806,15 +14843,6 @@ "node": ">=0.10.0" } }, - "node_modules/internal-ip/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/internal-ip/node_modules/indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -34280,6 +34308,12 @@ "@types/node": "*" } }, + "@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true + }, "@types/hoist-non-react-statics": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", @@ -34405,6 +34439,27 @@ "@types/react": "^16" } }, + "@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dev": true, + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, "@types/react-test-renderer": { "version": "16.9.12", "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.12.tgz", @@ -42475,6 +42530,12 @@ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -43665,12 +43726,6 @@ "pinkie-promise": "^2.0.0" } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", - "dev": true - }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", diff --git a/package.json b/package.json index 35f236230c..fae2718702 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@alifd/next", - "version": "1.27.0-alpha.2", + "version": "1.27.2", "description": "A configurable component library for web built on React.", "keywords": [ "fusion", @@ -52,27 +52,28 @@ "*.css" ], "scripts": { + "start": "ts-node ./tools/serve/index.ts", "build": "ts-node ./tools/build/index.ts", "build:transform": "ts-node ./tools/build/transform/index.ts", "build:sass": "ts-node ./tools/build/sass.ts", "build:docs": "ts-node ./tools/build/docs/index.ts", "build:dist": "ts-node ./tools/build/dist.ts", - "release": "ts-node ./tools/release.ts", - "release:check": "ts-node ./tools/checkers/index.ts", - "release:check:eslint": "npm run check:eslint ./components", - "release:check:stylelint": "npm run check:stylelint ./components", - "release:changelog": "ts-node ./tools/changelog.ts", - "tool:rename2ts": "ts-node ./tools/rename2ts.ts", + "changelog": "ts-node ./tools/changelog.ts", + "release": "ts-node ./tools/release/index.ts", + "release:ding": "ts-node ./tools/release/ding.ts", + "release:github": "ts-node ./tools/release/github.ts", + "check": "ts-node ./tools/checkers/index.ts", "check:types": "ts-node ./tools/checkers/types/index.ts", "check:eslint": "ts-node ./tools/checkers/eslint.ts", "check:stylelint": "ts-node ./tools/checkers/stylelint.ts", "check:sass": "ts-node ./tools/checkers/sass.ts", - "check:all": "npm run check:types ./components && npm run check:eslint ./components && npm run check:stylelint ./components", + "test": "ts-node ./tools/test.ts", "test:v2": "node --max_old_space_size=8192 ./scripts/test/v2-index.js", "test:a11y": "node --max_old_space_size=8192 ./scripts/test/a11y-index.js", "test:js": "node --max_old_space_size=8192 ./scripts/test/index.js", "test:head": "ts-node ./tools/test.ts --head", - "test": "ts-node ./tools/test.ts", + "tool:rename2ts": "ts-node ./tools/rename2ts.ts", + "api": "ts-node ./tools/api.ts", "commitmsg": "commitlint --edit", "precommit": "lint-staged" }, @@ -149,6 +150,7 @@ "@types/postcss-custom-properties": "^9.1.1", "@types/react": "^16.14.37", "@types/react-dom": "^16.9.24", + "@types/react-router-dom": "^5.3.3", "@types/react-test-renderer": "^16.9.12", "@types/stylelint": "^13.13.3", "@types/webpack": "^3.8.27", diff --git a/reset.css b/reset.css index fd7af62bba..a87cda32e6 100644 --- a/reset.css +++ b/reset.css @@ -1 +1 @@ -@import "lib/core2/reset.css"; +@import "./lib/core2/reset.css"; diff --git a/reset.scss b/reset.scss index b8beee393d..60d76eefe5 100644 --- a/reset.scss +++ b/reset.scss @@ -1 +1 @@ -@import "lib/core/reset.scss"; +@import "./lib/core/reset.scss"; diff --git a/scripts/test/ts.json b/scripts/test/ts.json index 02d9529674..27bc51c21f 100644 --- a/scripts/test/ts.json +++ b/scripts/test/ts.json @@ -6,7 +6,7 @@ "lib": ["DOM", "DOM.Iterable", "ESNext"], "module": "commonjs", "moduleResolution": "node", - "esModuleInterop": false, - "allowSyntheticDefaultImports": false + "esModuleInterop": true, + "allowSyntheticDefaultImports": true } } diff --git a/scripts/webpack/babelConfig.js b/scripts/webpack/babelConfig.js index 37710b249f..71ada805ef 100644 --- a/scripts/webpack/babelConfig.js +++ b/scripts/webpack/babelConfig.js @@ -7,7 +7,7 @@ module.exports = function (context, options) { const preset = { presets: [ require('babel-preset-react'), - [require('babel-preset-env'), { modules: options.modules, loose: true, debug: true }], + [require('babel-preset-env'), { modules: options.modules, loose: true }], require('babel-preset-stage-0'), ], plugins: [ diff --git a/tools/api.ts b/tools/api.ts new file mode 100644 index 0000000000..9b92af4f70 --- /dev/null +++ b/tools/api.ts @@ -0,0 +1,471 @@ +/* +------------------------------------------------------------ + author: 珵之 + create: 2024-01-16 11:25:38 + description: 根据 TSDoc 生成组件 api 文档 +------------------------------------------------------------ +*/ + +import glob from 'glob'; +import { basename, dirname, resolve } from 'path'; +import { readFileSync, writeFileSync } from 'fs-extra'; +import { escapeRegExp, kebabCase } from 'lodash'; +import ts from 'typescript'; +import { + TSDocParser, + TSDocConfiguration, + DocNode, + DocExcerpt, + ExcerptKind, +} from '@microsoft/tsdoc'; +import { TSDocConfigFile } from '@microsoft/tsdoc-config'; +import prettier from 'prettier'; +import { TARGETS, registryTask, visitCode, CWD } from './utils'; +import { parse } from './build/docs/utils'; + +interface TSDocPropertyParamMeta { + name: string; + title: string; + enTitle?: string; +} +interface TSDocPropertyResultMeta { + title: string; + enTitle?: string; +} + +interface TSDocPropertyMeta { + name: string; + title?: string; + enTitle?: string; + required?: boolean; + type: string; + version?: string; + defaultValue?: string; + params?: Array; + results?: TSDocPropertyResultMeta; +} + +interface TSDocMeta { + title: string; + order?: string | number; + apiMode?: boolean; + summary?: string; + remarks?: string; + type?: string; + properties?: Array; +} + +const tsdocConfigPath = resolve(CWD, 'tsdoc.json'); +const tsdocConfiguration = new TSDocConfiguration(); +const tsdocConfigFile = TSDocConfigFile.loadFile(tsdocConfigPath); +tsdocConfigFile.configureParser(tsdocConfiguration); +const tsdocParser = new TSDocParser(tsdocConfiguration); + +function cleanText(text: string): string; +function cleanText(text?: null): undefined; +function cleanText(text?: string | null) { + return text?.replace(/^[\n\s]+|[\n\s]+$/g, ''); +} +function upperCaseFirst(text: string): string; +function upperCaseFirst(text?: null): undefined; +function upperCaseFirst(text?: string | null) { + if (!text) { + return undefined; + } + return text.slice(0, 1).toUpperCase() + text.slice(1); +} + +/** + * This is a simplistic solution until we implement proper DocNode rendering APIs. + */ +export class Formatter { + public static renderDocNode(node?: DocNode): string { + const loop = (docNode?: DocNode) => { + let result: string = ''; + if (docNode) { + if (docNode instanceof DocExcerpt && docNode.excerptKind !== ExcerptKind.BlockTag) { + result += docNode.content.toString(); + } + for (const childNode of docNode.getChildNodes()) { + result += loop(childNode); + } + } + return result; + }; + return cleanText(loop(node)); + } + + public static renderDocNodes(docNodes: ReadonlyArray): string { + let result: string = ''; + for (const docNode of docNodes) { + result += Formatter.renderDocNode(docNode); + } + return result; + } +} + +function getMultiLineCommentText(code: string, start: number) { + const comments = ts.getLeadingCommentRanges(code, start); + if (comments?.length !== 1) { + return null; + } + + const multiLineComment = comments[0]; + if (!multiLineComment || multiLineComment.kind !== ts.SyntaxKind.MultiLineCommentTrivia) { + return null; + } + return code.slice(multiLineComment.pos, multiLineComment.end); +} + +function parseCombineLang(text: string) { + const [, zh, en] = text.match(/(.+)\s*(? = []; + for (const modifier of modifierTagSet.nodes) { + tags.push({ + tag: modifier.tagName, + content: '', + }); + } + if (remarksBlock) { + tags.push({ + tag: remarksBlock.blockTag.tagName, + content: Formatter.renderDocNode(remarksBlock), + }); + } + if (customBlocks) { + customBlocks.forEach(block => { + const tag = block.blockTag.tagName; + const content = Formatter.renderDocNode(block); + tags.push({ + tag, + content: tag === '@en' ? upperCaseFirst(content) : content, + }); + }); + } + if (params.count) { + for (const param of params) { + const fullContent = Formatter.renderDocNode(param).replace( + new RegExp(`${escapeRegExp(param.parameterName)}\\s*-\\s*`), + '' + ); + const { zh, en } = parseCombineLang(fullContent); + tags.push({ + tag: '@param', + paramName: param.parameterName, + content: zh, + enContent: upperCaseFirst(en), + }); + } + } + if (returnsBlock) { + const fullContent = Formatter.renderDocNode(returnsBlock); + const { zh, en } = parseCombineLang(fullContent); + tags.push({ + tag: returnsBlock.blockTag.tagName, + content: zh, + enContent: upperCaseFirst(en), + }); + } + return { + summary: Formatter.renderDocNode(summarySection), + tags, + getTag(name: string) { + return tags.find(t => t.tag === name); + }, + }; +} + +function createAPI(properties: TSDocMeta['properties'], isEn = false) { + if (!properties?.length) { + return undefined; + } + const columns: Array<{ + title: string; + render: (property: TSDocPropertyMeta) => string | undefined; + }> = [ + { + title: isEn ? 'Param' : '参数', + render(property) { + return property.name; + }, + }, + { + title: isEn ? 'Description' : '说明', + render(property) { + const { name, title, enTitle, params, results } = property; + const lines = [isEn ? enTitle : title].filter(Boolean); + if (params?.length || results) { + const signatureLines = [`**${isEn ? 'signature' : '签名'}**:`]; + + if (params?.length) { + signatureLines.push(`**${isEn ? 'params' : '参数'}**:`); + + signatureLines.push( + ...params.map( + ({ name, title, enTitle }) => + `_${name}_: ${isEn ? enTitle || name : title}` + ) + ); + } + if (results) { + const returnDesc = isEn ? results.enTitle : results.title; + if (returnDesc) { + signatureLines.push(`**${isEn ? 'return' : '返回值'}**:`, returnDesc); + } + } + lines.push(signatureLines.join('\n')); + } + if (!lines.length) { + return undefined; + } + return lines.join('\n\n'); + }, + }, + { + title: isEn ? 'Type' : '类型', + render(property) { + return property.type; + }, + }, + { + title: isEn ? 'Default Value' : '默认值', + render(property) { + return property.defaultValue; + }, + }, + { + title: isEn ? 'Required' : '是否必填', + render(property) { + return property.required ? (isEn ? 'yes' : '是') : ''; + }, + }, + ]; + if (properties.some(t => t.version)) { + columns.push({ + title: isEn ? 'Supported Version' : '支持版本', + render(property) { + return property.version; + }, + }); + } + return cleanText(` +| ${columns.map(t => t.title).join(' | ')} | +| ${columns.map(() => '-').join(' | ')} | +${properties + .map(property => { + return `| ${columns + .map(t => t.render(property) ?? '-') + .map(t => cleanText(t.replace(/\|/g, '\\|').replace(/\n/g, '
'))) + .join(' | ')} |`; + }) + .join('\n')} +`); +} + +async function formatMarkdownCode(filePath: string, code: string) { + const options = await prettier.resolveConfig(filePath); + return await prettier.format(code, { + ...options, + parser: 'markdown', + }); +} + +export function registryApiGenerator(file = __filename) { + return registryTask(file, 'Generate API', async () => { + const typeFiles = TARGETS.reduce((pre, dir) => { + const files = glob.sync('**/types.ts', { cwd: dir, absolute: true }); + pre.push(...files.filter(t => /components\/[^/]+\/types\.ts$/.test(t))); + return pre; + }, [] as string[]); + for (const typeFile of typeFiles) { + const dir = dirname(typeFile); + const componentDirName = basename(dir); + const docFiles = glob.sync('*.md', { cwd: resolve(dir, '__docs__'), absolute: true }); + if (!docFiles.length) { + continue; + } + const code = readFileSync(typeFile, 'utf-8'); + const tsDocMetas: Array = []; + visitCode(code, node => { + if ( + node.kind !== ts.SyntaxKind.TypeAliasDeclaration && + node.kind !== ts.SyntaxKind.InterfaceDeclaration + ) { + return node; + } + const typedNode = node as ts.InterfaceDeclaration | ts.TypeAliasDeclaration; + const typeName = typedNode.name.getFullText(); + + const tsDocText = getMultiLineCommentText(code, node.getFullStart()); + if (!tsDocText) { + return node; + } + const apiDoc = parseTsDoc(tsDocText)!; + + const apiTag = apiDoc.getTag('@api'); + if (!apiTag) { + return node; + } + + if (typedNode.kind === ts.SyntaxKind.TypeAliasDeclaration) { + const meta: TSDocMeta = { + title: apiTag.content || typeName.replace(/Props$/, ''), + order: apiDoc.getTag('@order')?.content, + remarks: apiDoc.getTag('@remarks')?.content, + summary: apiDoc.summary, + type: typedNode.getText(), + }; + tsDocMetas.push(meta); + } else { + const apiTitle = apiTag.content || typeName.replace(/Props$/, ''); + const indexApi = componentDirName.replace(/\d+/g, '') === kebabCase(apiTitle); + const meta: TSDocMeta = { + title: apiTitle, + order: indexApi ? -Infinity : apiDoc.getTag('@order')?.content, + remarks: apiDoc.getTag('@remarks')?.content, + summary: apiDoc.summary, + apiMode: true, + properties: typedNode.members + .map(member => { + const memberDoc = parseTsDoc( + getMultiLineCommentText(code, member.getFullStart()) + ); + if ( + !ts.isMethodSignature(member) && + !ts.isPropertySignature(member) + ) { + return null; + } + const required = !member.questionToken; + if (!memberDoc) { + if (ts.isMethodSignature(member)) { + return { + name: member.name.getText(), + type: member.getText(), + required, + }; + } else { + return { + name: member.name.getText(), + type: member.type?.getText() || 'unknown', + required, + }; + } + } else { + if (memberDoc.getTag('@skip')) { + return null; + } + const typeText = ts.isMethodSignature(member) + ? member.getText() + : member.type?.getText() || 'unknown'; + const returnTag = memberDoc.getTag('@returns'); + return { + name: member.name.getText(), + title: memberDoc.summary, + enTitle: memberDoc.getTag('@en')?.content, + required, + version: memberDoc.getTag('@version')?.content, + type: typeText, + defaultValue: memberDoc.getTag('@defaultValue')?.content, + params: memberDoc.tags + .filter(t => t.tag === '@param') + .map(({ paramName, content, enContent }) => { + return { + name: paramName!, + title: content, + enTitle: enContent, + }; + }), + results: returnTag + ? { + title: returnTag.content, + enTitle: returnTag.enContent, + } + : undefined, + }; + } + }) + .filter(Boolean) as TSDocPropertyMeta[], + }; + + tsDocMetas.push(meta); + } + return node; + }); + if (!tsDocMetas.length) { + continue; + } + tsDocMetas.sort((a, b) => { + // 未设置 order 时,apiMode 内容优先展示 + const aOrder = a.order ? Number(a.order) : a.apiMode ? 0 : Infinity; + const bOrder = b.order ? Number(b.order) : b.apiMode ? 0 : Infinity; + if (aOrder === bOrder) { + return 0; + } + return aOrder > bOrder ? 1 : -1; + }); + for (const docFilePath of docFiles) { + const docText = readFileSync(docFilePath, 'utf-8'); + const isEn = docFilePath.includes('en-us.md'); + const lines = docText.split('\n'); + const parsed = parse(docText); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const children = parsed.children as any[]; + const apiNode = children.find(child => { + const line = child.position.start.line - 1; + const text = lines[line]; + return child.type === 'heading' && /^#+\s*API/.test(text); + }); + if (!apiNode) { + continue; + } + const nextNode = children.find(child => { + return ( + child.type === 'heading' && + child.depth === apiNode.depth && + child.position.start.line > apiNode.position.start.line + ); + }); + const apiLevel = apiNode.depth as number; + lines.splice( + apiNode.position.end.line + 1, + nextNode ? nextNode.position.start.line - 1 : lines.length, + tsDocMetas + .map(({ title, type, properties, apiMode }) => { + const head = `${new Array(apiLevel + 1).fill('#').join('')} ${title}`; + const apiInfo = apiMode + ? createAPI(properties, isEn) + : `\`\`\`typescript\n${type}\n\`\`\``; + return [head, apiInfo].filter(Boolean).join('\n\n'); + }) + .join('\n\n') + ); + writeFileSync( + docFilePath, + await formatMarkdownCode(docFilePath, lines.join('\n')), + 'utf-8' + ); + } + } + }); +} + +registryApiGenerator(); diff --git a/tools/build/docs/generate-docs.ts b/tools/build/docs/generate-docs.ts index 1d13bcae51..a8393fc0ac 100644 --- a/tools/build/docs/generate-docs.ts +++ b/tools/build/docs/generate-docs.ts @@ -4,6 +4,7 @@ import fs = require('fs-extra'); import cheerio = require('cheerio'); import _ = require('lodash'); import glob = require('glob'); +import prettier from 'prettier'; import createDocParser = require('@alifd/doc-parser'); import { getComponentName, marked, parse, transform } from './utils'; import { getOnlineDemos } from './gen-demo-insert-scripts'; @@ -28,7 +29,7 @@ function* compileApiFrom(apiFrom: string, docParser: any) { const apiMdFile: string = yield fs.readFile(apiFrom, 'utf8'); const apiMdParsed = docParser.parse(apiMdFile); // const apiMdRendered = docParser.simpleRender(apiMdParsed.body); - // TODO 统一所有的mdRender + // TODO 统一所有的 mdRender const apiMdRendered = marked(apiMdParsed.body); const $ = cheerio.load(`
${apiMdRendered}
`); $('#API').before(''); @@ -40,6 +41,57 @@ function* compileApiFrom(apiFrom: string, docParser: any) { }; } +function parseLangTitle(text: string) { + const [_, lang, query] = text.match(/^\s*(zh-CN|en-US)\s*(.*)/) || []; + if (!_) { + return null; + } + + return { + lang, + params: Object.fromEntries(new URLSearchParams(query).entries()), + }; +} + +export function parseDemoMd(mdPath: string) { + const mdText = fs.readFileSync(mdPath, 'utf-8'); + const mdParsed: any = parse(mdText); + const langTitleNodes: any[] = mdParsed.children.filter( + (child: any) => + child.type === 'heading' && + child.depth === 1 && + child.children?.[0]?.type === 'text' && + child.children?.[0]?.value && + /^\s*(zh-CN|en-US)/.test(child.children?.[0]?.value) + ); + const mdTextLines = mdText.split('\n'); + const langMetaMap = new Map< + string, + { lang: string; params: Record; title: string; body: string } + >(); + langTitleNodes.forEach((node, i) => { + const line = node.position.start.line; + const { lang, params } = parseLangTitle(node.children[0].value)!; + const nextLine = langTitleNodes[i + 1]?.position.start.line || mdTextLines.length + 1; + const selfLines = mdTextLines.slice(line, nextLine - 1); + const selfParsed = parse(selfLines.join('\n')); + const titleNodes = selfParsed.children.filter((child: any) => { + return child.type === 'heading' && child.depth === 1; + }); + if (titleNodes.length !== 1) { + throw new Error(`Demo 没有标题:${mdPath}`); + } + const titleLineIndex = titleNodes[0].position.start.line - 1; + langMetaMap.set(lang, { + lang, + params, + title: selfLines.slice(titleLineIndex, titleLineIndex + 1).join(''), + body: selfLines.slice(titleLineIndex + 1).join('\n'), + }); + }); + return langMetaMap; +} + async function transformHTML(code: string, separate = true) { if (separate) return ``; @@ -54,7 +106,7 @@ function mutliLangHandler(orginData = '') { const enDocsMatch = orginData.match(enDocReg); let enDocs = enDocsMatch ? enDocsMatch[0] : ''; - // 把 :::lang=xxx去掉 + // 把 :::lang=xxx 去掉 enDocs = enDocs.replace(/:{3}(lang[=\w-]*)?/g, ''); const jsxCodeMatch = orginData.match(jsxReg); @@ -115,18 +167,6 @@ function* buildDemoMappingList(srcFolder: string, toFile: string) { yield fs.writeFile(toFile, content); } -function parseLangTitle(text: string) { - const [_, lang, query] = text.match(/^\s*(zh-CN|en-US)\s*(.*)/) || []; - if (!_) { - return null; - } - - return { - lang, - params: Object.fromEntries(new URLSearchParams(query).entries()), - }; -} - function* buildCompiledDocs(cwd: string) { const from = path.join(cwd, LANGDOC_FOLDER); const to = path.join(cwd, COMPILED_FOLDER); @@ -262,7 +302,7 @@ function* buildCompiledDocs(cwd: string) { yield buildDemoMappingList(to, demoMappingFilePath); } -function generateDocsLangFolder() { +async function generateDocsLangFolder() { const components = fs.readdirSync(SRC_DIR_PATH); const outputMap = new Map(); fs.removeSync(path.resolve(CWD, LANGDOC_FOLDER)); @@ -309,40 +349,26 @@ function generateDocsLangFolder() { warn('Detect demo index.md failed', mdPath); continue; } - const mdText = fs.readFileSync(mdPath, 'utf-8'); - const mdParsed: any = parse(mdText); - const langTitleNodes: any[] = mdParsed.children.filter( - (child: any) => - child.type === 'heading' && - child.depth === 1 && - child.children?.[0]?.type === 'text' && - child.children?.[0]?.value && - /^\s*(zh-CN|en-US)/.test(child.children?.[0]?.value) - ); - const mdTextLines = mdText.split('\n'); - const langMetaMap = new Map< - string, - { lang: string; params: Record; body: string } - >(); - langTitleNodes.forEach((node, i) => { - const line = node.position.start.line; - const { lang, params } = parseLangTitle(node.children[0].value)!; - const nextLine = - langTitleNodes[i + 1]?.position.start.line || mdTextLines.length + 1; - langMetaMap.set(lang, { - lang, - params, - body: mdTextLines.slice(line, nextLine - 1).join('\n'), + const langMetaMap = parseDemoMd(mdPath); + let jsCode = fs.existsSync(jsPath) ? fs.readFileSync(jsPath, 'utf-8') : ''; + if (jsCode) { + // 将 ts 代码转换为 js 代码输出到文档 + const options = await prettier.resolveConfig( + path.resolve(SRC_DIR_PATH, 'index.ts') + ); + jsCode = await prettier.format(await transform(jsCode, 'preserve', 'esm'), { + ...options, + parser: 'typescript', + tabWidth: 2, }); - }); - const jsCode = fs.existsSync(jsPath) ? fs.readFileSync(jsPath, 'utf-8') : ''; + } const cssCode = fs.existsSync(cssPath) ? fs.readFileSync(cssPath, 'utf-8') : ''; for (const lang of SUPPORT_LANGS) { const meta = langMetaMap.get(lang); if (!meta) { continue; } - const mergedMdText = `${Object.keys(meta.params) + const mergedMdText = `${meta.title}\n\n${Object.keys(meta.params) .map(key => { return `- ${key}: ${meta.params[key]}`; }) @@ -366,7 +392,7 @@ function generateDocsLangFolder() { } export default function* () { - const targetDir = generateDocsLangFolder(); + const targetDir = (yield generateDocsLangFolder()) as string; try { // 编译文档 yield buildCompiledDocs(cwd); diff --git a/tools/build/docs/render-creator.ts b/tools/build/docs/render-creator.ts index 423fe41358..9d9408240b 100644 --- a/tools/build/docs/render-creator.ts +++ b/tools/build/docs/render-creator.ts @@ -1,5 +1,7 @@ import MagicString from 'magic-string'; -import { parseImportDeclarations, visitCode, warn } from '../../utils'; +import { resolve } from 'path'; +import prettier from 'prettier'; +import { CWD, SRC_DIR_PATH, parseImportDeclarations, visitCode, warn } from '../../utils'; import { marked, transform } from './utils'; export function getGlobalControl() { @@ -332,10 +334,7 @@ export async function getDemoRenderScript( ) { const liveArr = getLiveScript(js); const liveVars = liveArr[1]; - const liveScript = (await transform(liveArr[0])) - .replace(/`/g, '\\`') - .replace(/\$/g, '\\$') - .replace(/\n$/, ''); + const liveScript = liveArr[0].replace(/`/g, '\\`').replace(/\$/g, '\\$').replace(/\n$/, ''); return ` window.${name}RenderScript = function ${name}RenderScript(liveDemo){ var mountNode = document.getElementById('${name}-mount'); diff --git a/tools/build/docs/utils.ts b/tools/build/docs/utils.ts index f31d996634..6e056daea9 100644 --- a/tools/build/docs/utils.ts +++ b/tools/build/docs/utils.ts @@ -40,13 +40,14 @@ export function parse(md: string) { const TSCONFIG_PATH = path.resolve(CWD, 'tsconfig.json'); -export async function transform(code: string) { +export async function transform(code: string, jsx: 'transform' | 'preserve' = 'transform', format: 'cjs' | 'esm' = 'cjs') { const tsconfig = await getRegularTsconfigJson(fs.readFileSync(TSCONFIG_PATH, 'utf-8')); try { const result = await esbuildTransform(code, { - format: 'cjs', + format, loader: 'tsx', + jsx, tsconfigRaw: JSON.stringify({ compilerOptions: tsconfig.compilerOptions }), }); return result.code; diff --git a/tools/build/webpack/babelConfig.js b/tools/build/webpack/babelConfig.js index 37710b249f..71ada805ef 100644 --- a/tools/build/webpack/babelConfig.js +++ b/tools/build/webpack/babelConfig.js @@ -7,7 +7,7 @@ module.exports = function (context, options) { const preset = { presets: [ require('babel-preset-react'), - [require('babel-preset-env'), { modules: options.modules, loose: true, debug: true }], + [require('babel-preset-env'), { modules: options.modules, loose: true }], require('babel-preset-stage-0'), ], plugins: [ diff --git a/tools/changelog.ts b/tools/changelog.ts index 82398f9dc4..fcfce3dc90 100644 --- a/tools/changelog.ts +++ b/tools/changelog.ts @@ -5,12 +5,12 @@ description: 生成 changelog 信息 ------------------------------------------------------------ */ -import * as path from 'path'; -import * as fs from 'fs-extra'; -import * as semver from 'semver'; -import * as inquirer from 'inquirer'; -import conventionalChangelog = require('conventional-changelog'); -import createPreset = require('conventional-changelog-conventionalcommits'); +import path from 'path'; +import fs from 'fs-extra'; +import semver from 'semver'; +import inquirer from 'inquirer'; +import conventionalChangelog from 'conventional-changelog'; +import createPreset from 'conventional-changelog-conventionalcommits'; import { CWD, log, querySync, warn, registryTask } from './utils'; const CHANGELOG_NAME = 'CHANGELOG.md'; diff --git a/tools/checkers/eslint.ts b/tools/checkers/eslint.ts index 7c51adce3f..30160004a1 100644 --- a/tools/checkers/eslint.ts +++ b/tools/checkers/eslint.ts @@ -19,10 +19,13 @@ function checkEslint() { } const args: string[] = ['--no-error-on-unmatched-pattern']; - const fix = ARGV.fix; + const { fix, quiet } = ARGV; if (fix) { args.push('--fix'); } + if (quiet) { + args.push('--quiet'); + } const includes = TARGETS.map(dir => [join(dir, '**/*.ts'), join(dir, '**/*.tsx')]).flat(); args.push(...includes); diff --git a/tools/checkers/sass.ts b/tools/checkers/sass.ts index 2a8c32cab3..9b8322f8b4 100644 --- a/tools/checkers/sass.ts +++ b/tools/checkers/sass.ts @@ -5,10 +5,10 @@ description: 检查项目所有 scss 是否编译通过 & 检查 variables.scss 内是否是纯变量文件 ------------------------------------------------------------ */ -import path = require('path'); -import sass = require('sass'); -import postcss = require('postcss'); -import discardComments = require('postcss-discard-comments'); +import path from 'path'; +import sass from 'sass'; +import postcss from 'postcss'; +import discardComments from 'postcss-discard-comments'; import { CWD, error, registryTask } from '../utils'; function hasCssCode(code: string) { diff --git a/tools/release/ding.ts b/tools/release/ding.ts new file mode 100644 index 0000000000..519a5cb1af --- /dev/null +++ b/tools/release/ding.ts @@ -0,0 +1,69 @@ +/* +------------------------------------------------------------ + author: 珵之 + create: 2024-01-03 11:58:30 + description: 向钉群发布 release 消息 +------------------------------------------------------------ +*/ + +import path from 'path'; +import fs from 'fs-extra'; +import inquirer from 'inquirer'; +import urllib from 'urllib'; +import { registryTask, ARGV, querySync, CWD } from '../utils'; +import { getVersion } from './utils'; + +async function sendDingMessage() { + const group = process.env.FUSION_SERVICE_DINGTALK_GROUPS; + const { masterTag } = getVersion(); + const dingtalks = (group && group.split(', ')) || []; + if (!dingtalks.length) { + return; + } + const shouldDing = + ARGV.ding || + ( + (await inquirer.prompt({ + name: 'sync', + type: 'confirm', + default: true, + message: '是否同步发布信息到钉钉群', + })) as { sync: boolean } + ).sync; + if (!shouldDing) { + return; + } + + const username = querySync('git', ['config', '--get', 'user.name']); + const latestLog = fs + .readFileSync(path.join(CWD, 'LATESTLOG.md'), 'utf8') + .replace(/# Latest Log/g, '') + .replace(/\n+/g, '\n') + .replace(/\(\[[\d\w]+\]\(https:\/\/[^)]+\)\)/g, ''); + const dingContent = `> [公告] @alifd/next@${masterTag} 版本发布!by: ${username} +${latestLog} +> 历史发布记录请查看 [CHANGELOG](https://github.com/alibaba-fusion/next/blob/master/CHANGELOG.md);`; + + for (let i = 0; i < dingtalks.length; i++) { + const url = dingtalks[i]; + await urllib.request(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + content: JSON.stringify({ + msgtype: 'markdown', + markdown: { + title: 'Fusion Next 组件发布', + text: dingContent, + }, + }), + }); + } +} + +export function registryDingMessage(file = __filename) { + return registryTask(file, 'dingtalk message', sendDingMessage); +} + +registryDingMessage(); diff --git a/tools/release/github.ts b/tools/release/github.ts new file mode 100644 index 0000000000..b91f9f6b57 --- /dev/null +++ b/tools/release/github.ts @@ -0,0 +1,48 @@ +/* +------------------------------------------------------------ + author: 珵之 + create: 2024-01-03 11:58:56 + description: 触发 github release +------------------------------------------------------------ +*/ +import fs from 'fs-extra'; +import path from 'path'; +import { Octokit } from '@octokit/rest'; +import { registryTask, CWD } from '../utils'; +import { getVersion } from './utils'; + +export function registryGithubRelease(file = __filename) { + if (!process.env.GITHUB_RELEASE_TOKEN) { + throw new Error(`Not found GITHUB_RELEASE_TOKEN, check "echo $GITHUB_RELEASE_TOKEN"`); + } + const octokit = new Octokit({ + auth: process.env.GITHUB_RELEASE_TOKEN, + }); + return registryTask(file, 'github release', () => { + const { buildTag, version } = getVersion(); + const isPrerelease = !/\d+\.\d+\.\d+/.test(version); + const latestLog = fs + .readFileSync(path.join(CWD, 'LATESTLOG.md'), 'utf8') + .replace(/\n+/g, '\n') + .split('\n') + .slice(1) + .join('\n'); + + return octokit.repos + .createRelease({ + owner: 'alibaba-fusion', + repo: 'next', + /* eslint-disable */ + tag_name: buildTag, + target_commitish: 'platform-docs', + /* eslint-enable */ + name: buildTag, + body: latestLog, + draft: false, + prerelease: isPrerelease, + }) + .then(() => {}); + }); +} + +registryGithubRelease(); diff --git a/tools/release.ts b/tools/release/index.ts similarity index 74% rename from tools/release.ts rename to tools/release/index.ts index ecda46a1c3..d521ed556f 100644 --- a/tools/release.ts +++ b/tools/release/index.ts @@ -5,40 +5,23 @@ description: 发布组件库 ------------------------------------------------------------ */ -import path = require('path'); -import fs = require('fs-extra'); -import * as inquirer from 'inquirer'; -import { Octokit } from '@octokit/rest'; -import urllib = require('urllib'); -import { CWD, querySync, registryTask, logger, ARGV, execSync, SRC_DIR_PATH } from './utils'; -import { PLATFORM_DOCS_IGNORE } from './build/docs/configs/platform-docs-ignore'; -import { registryCheck } from './checkers'; -import { registryChangelog } from './changelog'; -import { registryBuild } from './build'; -import { registryCheckSass } from './checkers/sass'; +import path from 'path'; +import fs from 'fs-extra'; +import inquirer from 'inquirer'; +import { CWD, querySync, registryTask, logger, ARGV, execSync, SRC_DIR_PATH } from '../utils'; +import { PLATFORM_DOCS_IGNORE } from '../build/docs/configs/platform-docs-ignore'; +import { registryCheck } from '../checkers'; +import { registryChangelog } from '../changelog'; +import { registryBuild } from '../build'; +import { registryCheckSass } from '../checkers/sass'; +import { getVersion } from './utils'; const cwd = CWD; -const PKG_PATH = path.resolve(cwd, 'package.json'); const NEXT_DOCS_PATH = path.resolve(cwd, 'next-docs'); const NEXT_DOCS_NAME = '@alifd/next-docs'; const REMOTE_NAME = (ARGV.remote as string) || 'origin'; const PLATFORM_DOCS_BRANCH = 'platform-docs'; const PLATFORM_DOCS_PATH = path.join(cwd, 'platform-docs'); -if (!process.env.GITHUB_RELEASE_TOKEN) { - throw new Error(`Not found GITHUB_RELEASE_TOKEN, check "echo $GITHUB_RELEASE_TOKEN"`); -} -const octokit = new Octokit({ - auth: process.env.GITHUB_RELEASE_TOKEN, -}); - -function getVersion() { - const version = fs.readJSONSync(PKG_PATH).version as string; - return { - version, - masterTag: version, - buildTag: `build/${version}`, - }; -} function checkTags() { let repeatTag = ''; @@ -203,32 +186,6 @@ async function publishNpm(distTag = 'latest') { execSync('tnpm', ['sync', '@alifd/next']); } -async function githubRelease() { - const { buildTag, version } = getVersion(); - const isPrerelease = !/\d+\.\d+\.\d+/.test(version); - const latestLog = fs - .readFileSync(path.join(cwd, 'LATESTLOG.md'), 'utf8') - .replace(/\n+/g, '\n') - .split('\n') - .slice(1) - .join('\n'); - - return octokit.repos - .createRelease({ - owner: 'alibaba-fusion', - repo: 'next', - /* eslint-disable */ - tag_name: buildTag, - target_commitish: 'platform-docs', - /* eslint-enable */ - name: buildTag, - body: latestLog, - draft: false, - prerelease: isPrerelease, - }) - .then(() => {}); -} - async function publishNpmForDocs(distTag = 'latest') { const { version } = getVersion(); const docs = NEXT_DOCS_PATH; @@ -259,55 +216,6 @@ async function publishNpmForDocs(distTag = 'latest') { fs.removeSync(docs); } -async function* sendDingMessage() { - const group = process.env.FUSION_SERVICE_DINGTALK_GROUPS; - const { masterTag } = getVersion(); - const dingtalks = (group && group.split(', ')) || []; - if (!dingtalks.length) { - return; - } - const shouldDing = - ARGV.ding || - ( - await inquirer.prompt({ - name: 'sync', - type: 'confirm', - default: true, - message: '是否同步发布信息到钉钉群', - }) - ).sync; - if (!shouldDing) { - return; - } - - const username = querySync('git', ['config', '--get', 'user.name']); - const latestLog = fs - .readFileSync(path.join(cwd, 'LATESTLOG.md'), 'utf8') - .replace(/# Latest Log/g, '') - .replace(/\n+/g, '\n') - .replace(/\(\[[\d\w]+\]\(https:\/\/[^)]+\)\)/g, ''); - const dingContent = `> [公告] @alifd/next@${masterTag} 版本发布!by: ${username} -${latestLog} -> 历史发布记录请查看 [CHANGELOG](https://github.com/alibaba-fusion/next/blob/master/CHANGELOG.md);`; - - for (let i = 0; i < dingtalks.length; i++) { - const url = dingtalks[i]; - yield urllib.request(url, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - content: JSON.stringify({ - msgtype: 'markdown', - markdown: { - title: 'Fusion Next 组件发布', - text: dingContent, - }, - }), - }); - } -} - registryTask(__filename, 'release', async () => { // 暂时手动生成 changelog // await registryChangelog(__filename); @@ -387,7 +295,4 @@ registryTask(__filename, 'release', async () => { pushPlatformDocs.rollback ); }); - - // await registryTask(__filename, 'Github release', githubRelease); - // await registryTask(__filename, 'Ding message', sendDingMessage); }); diff --git a/tools/release/utils.ts b/tools/release/utils.ts new file mode 100644 index 0000000000..2600dbc557 --- /dev/null +++ b/tools/release/utils.ts @@ -0,0 +1,11 @@ +import { readJSONSync } from 'fs-extra'; +import { PKG_PATH } from '../utils'; + +export function getVersion() { + const version = readJSONSync(PKG_PATH).version as string; + return { + version, + masterTag: version, + buildTag: `build/${version}`, + }; +} diff --git a/tools/serve/demo.css b/tools/serve/demo.css new file mode 100644 index 0000000000..1f616bb907 --- /dev/null +++ b/tools/serve/demo.css @@ -0,0 +1,35 @@ +#root { + width: 80%; + margin: 5vh auto; +} +.demo-doc { + table { + width: 100%; + border-collapse: collapse; + border: 1px solid rgba(0, 0, 0, 0.05); + } + th, + td { + padding: 0.5rem 1rem; + line-height: 1.25; + border: 1px solid rgba(0, 0, 0, 0.05); + } +} +.demo-actions { + position: absolute; + top: 20px; + right: 10%; +} +.demo-actions > * { + margin-left: 10px; +} +.demo-list-item { + margin-bottom: 1.5rem; + + .demo-list-item-demo { + border-radius: 5px; + border: 1px solid #ebebeb; + box-shadow: 2px 6px 12px 0 rgba(0, 0, 0, 0.08); + padding: 16px; + } +} diff --git a/tools/serve/demo.tsx b/tools/serve/demo.tsx new file mode 100644 index 0000000000..22d347e4f3 --- /dev/null +++ b/tools/serve/demo.tsx @@ -0,0 +1,54 @@ +import React from 'react'; +// @ts-expect-error __doc +import doc from '__doc'; +// @ts-expect-error __demos +import demos from '__demos'; +import '__scss'; +import './demo.css'; + +function DemoItem({ id, doc, render }: { id: string; doc: string; render(): void }) { + React.useEffect(() => { + render(); + }, [id, render]); + return ( +
+
+
+
+
+
+ ); +} + +declare global { + interface Window { + lang: 'zh' | 'en'; + } +} + +export default function Demo() { + const nextLang = window.lang === 'zh' ? 'en' : 'zh'; + return ( +
+
+ +
+
+
+
+

Demos

+
+ {demos.map(item => { + return ; + })} +
+
+ ); +} diff --git a/tools/serve/index.ts b/tools/serve/index.ts new file mode 100644 index 0000000000..6250d7266f --- /dev/null +++ b/tools/serve/index.ts @@ -0,0 +1,295 @@ +/* +------------------------------------------------------------ + author: 珵之 + create: 2024-01-08 19:38:41 + description: 调试组件 + example: npm run start button +------------------------------------------------------------ +*/ + +import react from '@vitejs/plugin-react'; +import { relative, resolve } from 'path'; +import { existsSync, readFileSync, readdirSync } from 'fs-extra'; +import createDocParser from '@alifd/doc-parser'; +import MagicString from 'magic-string'; +import { kebabCase } from 'lodash'; +import { glob } from 'glob'; +import { ARGV, SRC_DIR_PATH, TARGETS, findFile, logger, parseImportDeclarations, warn } from '../utils'; +import { marked } from '../build/docs/utils'; +import { parseDemoMd } from '../build/docs/generate-docs'; + +type Lang = 'zh' | 'en'; + +const DIR_NAME = relative(SRC_DIR_PATH, TARGETS[0]); +if (!DIR_NAME) { + logger.warn('使用示例:', 'npm run start button'); + process.exit(1); +} +const isForce = Boolean(ARGV.force); + +let lang: Lang = ARGV.en ? 'en' : 'zh'; + +// @ts-expect-error esm import vite +type VitePlugin = import('vite').Plugin; + +const demoPlugin = (dirName: string): VitePlugin => { + const docParser = createDocParser({}); + + function loadComponentDoc(name: string): { doc: string; files: string[] } { + const docPath = resolve( + SRC_DIR_PATH, + name, + '__docs__', + lang === 'zh' ? 'index.md' : 'index.en-us.md' + ); + if (!existsSync(docPath)) { + throw new Error(`Not found component doc: ${name}-${lang}`); + } + const text = readFileSync(docPath, 'utf-8'); + const apiMdParsed = docParser.parse(text); + const apiMdRendered = marked(apiMdParsed.body); + return { doc: `

${apiMdParsed.title}

${apiMdRendered}`, files: [docPath] }; + } + function loadDemoDoc(docPath: string) { + const map = parseDemoMd(docPath); + const meta = map.get(lang === 'zh' ? 'zh-CN' : 'en-US')!; + const mdText = `${meta.title}\n- arg: 1\n\n---\n\n${meta.body}`; + const apiMdParsed = docParser.parse(mdText); + const apiMdRendered = marked(apiMdParsed.body); + return `

${apiMdParsed.title}

${apiMdRendered}`; + } + + function getDemoId(componentDirName: string, demoDirName: string) { + return `${componentDirName}--${demoDirName}`; + } + + function loadComponentDemos( + name: string + ): Array<{ id: string; docEntry?: string; cssEntry?: string; jsEntry?: string }> { + const demoDir = resolve(SRC_DIR_PATH, name, '__docs__/demo'); + if (!existsSync(demoDir)) { + return []; + } + return readdirSync(demoDir).map(demoName => { + const id = getDemoId(name, demoName); + const mdEntryPath = resolve(demoDir, demoName, 'index.md'); + const demoEntryPath = resolve(demoDir, demoName, 'index.tsx'); + const cssEntryPath = resolve(demoDir, demoName, 'index.css'); + return { + id, + docEntry: existsSync(mdEntryPath) ? mdEntryPath : undefined, + cssEntry: existsSync(cssEntryPath) ? cssEntryPath : undefined, + jsEntry: existsSync(demoEntryPath) ? demoEntryPath : undefined, + }; + }).filter(t => { + if (!t.jsEntry) { + warn(`Not found demo index.tsx: ${t.id}`) + } + return !!t.jsEntry + }); + } + const SCSS_REG = /^__scss/; + const SCSS_VIRTUAL_REG = /^\0__scss\.scss/; + const DOC_REG = /^__doc/; + const DEMOS_REG = /^__demos/; + const DOC_VIRTUAL_REG = /^\0__doc/; + const DEMOS_VIRTUAL_REG = /^\0__demos/; + const DEMO_MD_REG = /__docs__\/demo\/[^/]+\/index\.md$/; + const DEMO_TS_REG = /([^/]+)\/__docs__\/demo\/([^/]+)\/index\.tsx$/; + return { + name: 'next-demo', + config() { + return { + optimizeDeps: { + entries: ['util/index.ts', 'config-provider/config.tsx'].map(n => + resolve(SRC_DIR_PATH, n) + ), + include: ['moment/moment.js', 'classnames', 'react-lifecycles-compat', 'md5'], + }, + resolve: { + alias: [ + { + find: /^moment$/, + replacement: 'moment/moment.js', + }, + ], + }, + }; + }, + transformIndexHtml(html) { + return html.replace(/\$name/g, dirName); + }, + resolveId(source) { + if (SCSS_REG.test(source)) { + return `\0${source}.scss`; + } + if (DOC_REG.test(source) || DEMOS_REG.test(source)) { + return `\0${source}`; + } + }, + load(id) { + if (SCSS_VIRTUAL_REG.test(id)) { + const fixedFiles: string[] = [resolve(SRC_DIR_PATH, 'core/reset.scss')]; + const mainFiles = glob.sync('*/main.scss', { cwd: SRC_DIR_PATH, absolute: true }); + return fixedFiles + .concat(mainFiles) + .map(f => `@import "${f}";`) + .join('\n'); + } + if (DOC_VIRTUAL_REG.test(id)) { + const { doc, files } = loadComponentDoc(dirName); + files.forEach(f => this.addWatchFile(f)); + return `export default ${JSON.stringify(doc)}`; + } + if (DEMO_MD_REG.test(id)) { + const doc = loadDemoDoc(id); + return `export default ${JSON.stringify(doc)}`; + } + if (DEMOS_VIRTUAL_REG.test(id)) { + const demos = loadComponentDemos(dirName); + return ` + ${demos + .map(({ docEntry, cssEntry }, i) => { + return `import doc${i} from '${docEntry}';${ + cssEntry ? `\nimport '${cssEntry}';` : '' + }`; + }) + .join('\n')} + export default [ + ${demos.map(({ id, jsEntry }, i) => { + return `{id: ${JSON.stringify( + id + )}, doc: doc${i}, render: () => import(${JSON.stringify(jsEntry)})}`; + })} + ] + `; + } + return null; + }, + transform(code, id) { + if (DEMO_TS_REG.test(id)) { + const [, name, demoName] = id.match(DEMO_TS_REG)!; + const mountId = getDemoId(name, demoName); + return `const mountNode = document.getElementById(${JSON.stringify( + mountId + )});\n${code}`; + } + if (id.includes('tools/serve/demo.tsx')) { + return code.replace(/['"](__doc|__demos)['"]/g, `'$1_${new Date().getTime()}'`); + } + }, + }; +}; + +const themePlugin = (dirName: string): VitePlugin => { + const THEME_REG = /^__theme/; + const THEME_VIRTUAL_REG = /^\0__theme/; + return { + name: 'next-theme', + resolveId(source) { + if (THEME_REG.test(source)) { + return `\0${source}`; + } + }, + load(id) { + if (THEME_VIRTUAL_REG.test(id)) { + const themePath = findFile(resolve(SRC_DIR_PATH, dirName, '__docs__/theme/index')); + if (!themePath) { + return `export default () => {}`; + } + return `export default () => import(${JSON.stringify(themePath)})`; + } + }, + }; +}; + +const importNextPlugin = (): VitePlugin => { + return { + name: 'next-import', + enforce: 'pre', + transform(code, id) { + if (/\.[jt]sx?$/.test(id) && code.includes('@alifd/next')) { + const ms = new MagicString(code); + const imports = parseImportDeclarations(code); + for (const { + source, + declaration, + defaultImport, + namespaceImport, + namedImports, + } of imports) { + if (source !== '@alifd/next') { + continue; + } + if (namespaceImport || defaultImport) { + ms.overwrite( + declaration.getModuleSpecifier().getStart(), + declaration.getModuleSpecifier().getEnd(), + JSON.stringify(resolve(SRC_DIR_PATH, 'index.ts')) + ); + continue; + } + const newImports: string[] = []; + if (namedImports) { + namedImports.forEach(({ name, alias }) => { + newImports.push( + `import ${alias || name} from '${resolve( + SRC_DIR_PATH, + kebabCase(name).replace(/-(\d)/g, '$1') + )}'` + ); + }); + } + + ms.overwrite( + declaration.getStart(), + declaration.getEnd(), + newImports.join('\n') + ); + } + return { + code: ms.toString(), + map: ms.generateMap(), + }; + } + }, + }; +}; + +(async () => { + const { createServer } = await import('vite'); + const server = await createServer({ + configFile: false, + optimizeDeps: { + force: isForce, + }, + plugins: [ + react({ exclude: /tools/ }), + demoPlugin(DIR_NAME), + themePlugin(DIR_NAME), + importNextPlugin(), + { + name: 'next-apis', + transformIndexHtml(html) { + return html.replace(/\$lang/g, JSON.stringify(lang)); + }, + configureServer(server) { + server.middlewares.use('/changelang.json', (req, res) => { + const url = new URL(req.url!, `http://${req.headers.host}`); + lang = url.searchParams.get('lang') as Lang; + res.setHeader('Content-Type', 'application/json'); + res.write(JSON.stringify({ success: true })); + res.end(); + server.restart(); + }); + }, + }, + ], + server: { + hmr: true, + open: false, + }, + }); + await server.listen(); + server.printUrls(); +})(); diff --git a/tools/serve/router.tsx b/tools/serve/router.tsx new file mode 100644 index 0000000000..a7f81be601 --- /dev/null +++ b/tools/serve/router.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom'; +import Demo from './demo'; + +const Theme = React.lazy(() => import('./theme')); + +function App() { + return ( + +
+ + + + + + + + + + + +
+
+ ); +} + +// eslint-disable-next-line react/no-deprecated +ReactDOM.render(, document.getElementById('root')); diff --git a/tools/serve/theme.tsx b/tools/serve/theme.tsx new file mode 100644 index 0000000000..3a9eae0be2 --- /dev/null +++ b/tools/serve/theme.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +// @ts-expect-error next compoennt theme +import theme from '__theme'; + +export default function Theme() { + React.useEffect(() => { + theme(); + }, []); + return ( +
+
+
+ ); +} diff --git a/tools/utils/common.ts b/tools/utils/common.ts index 7569c195ef..27ffe4448c 100644 --- a/tools/utils/common.ts +++ b/tools/utils/common.ts @@ -1,8 +1,7 @@ -import { basename, extname, isAbsolute, join, resolve } from 'path'; +import { isAbsolute, join, resolve } from 'path'; import { existsSync } from 'fs-extra'; -import _ = require('lodash'); +import _ from 'lodash'; import { CWD } from './consts'; -import { error } from './log'; export function beforeExit(task: () => unknown) { const exitSignals = [ diff --git a/tools/utils/consts.ts b/tools/utils/consts.ts index eb7c12250b..a9e1b5c24f 100644 --- a/tools/utils/consts.ts +++ b/tools/utils/consts.ts @@ -1,7 +1,6 @@ import { resolve } from 'path'; import { existsSync } from 'fs-extra'; -// @ts-expect-error ignore -import * as yargs from 'yargs/yargs'; +import yargs from 'yargs/yargs'; import { hideBin } from 'yargs/helpers'; export const ARGV = yargs(hideBin(process.argv)).argv as { @@ -14,6 +13,7 @@ export const SRC_DIR = 'components'; export const SRC_DIR_PATH = resolve(CWD, SRC_DIR); export const DIST_PATH = resolve(CWD, 'dist'); export const TSCONFIG_PATH = resolve(CWD, 'tsconfig.json'); +export const PKG_PATH = resolve(CWD, 'package.json'); export const TARGETS = (() => { const dirs = ARGV._.map(dir => [resolve(CWD, dir), resolve(SRC_DIR_PATH, dir)]) .flat() diff --git a/tools/utils/exec.ts b/tools/utils/exec.ts index 0ee93e72e7..9294d01371 100644 --- a/tools/utils/exec.ts +++ b/tools/utils/exec.ts @@ -1,4 +1,4 @@ -import * as path from 'path'; +import path from 'path'; import { spawnSync, execSync as nodeExecSync, SpawnSyncOptions } from 'child_process'; import { CWD } from './consts'; import { error, log } from './log'; diff --git a/tools/utils/log.ts b/tools/utils/log.ts index 8f1d450879..9d50ddabab 100644 --- a/tools/utils/log.ts +++ b/tools/utils/log.ts @@ -42,6 +42,10 @@ export function log(...args: unknown[]) { print(chalk.bgGreen(' LOG '), prefix(), ...args); } +export function success(...args: unknown[]) { + print(chalk.bgGreen(' LOG '), prefix(), ...args); +} + export function warn(...args: unknown[]) { print(chalk.bgYellow(' WARN '), prefix(), ...args); } diff --git a/tools/utils/task.ts b/tools/utils/task.ts index 86d1907916..d775d1a88e 100644 --- a/tools/utils/task.ts +++ b/tools/utils/task.ts @@ -6,8 +6,11 @@ ------------------------------------------------------------ */ import co from 'co'; +import { resolve } from 'path'; +import { existsSync, outputFileSync, readFileSync } from 'fs-extra'; import { log, error, setLevel, getLevel, setSlient } from './log'; import { beforeExit } from './common'; +import { ARGV, CWD } from './consts'; process.on('unhandledRejection', e => { // eslint-disable-next-line no-console @@ -15,6 +18,45 @@ process.on('unhandledRejection', e => { process.exit(1); }); +const isContinue = Boolean(ARGV.continue); + +class Cache { + static CACHE_PATH = resolve(CWD, 'node_modules/.cache/.next_task'); + constructor() { + this.read(); + } + private _cache: { completes: Array } = { completes: [] }; + private read() { + if (!existsSync(Cache.CACHE_PATH)) { + return; + } + const cacheText = readFileSync(Cache.CACHE_PATH, 'utf-8'); + this._cache = JSON.parse(cacheText); + } + private write() { + outputFileSync(Cache.CACHE_PATH, JSON.stringify(this._cache)); + } + clear() { + this._cache = { completes: [] }; + this.write(); + } + addComplete(name: string) { + this._cache.completes.push(name); + this.write(); + } + isComplete(name: string) { + return this._cache.completes.includes(name); + } +} + +const cache = new Cache(); +process.on('exit', code => { + if (code === 0) { + // 正常退出,清空缓存 + cache.clear(); + } +}); + export interface Task { name: string; exec: () => void | Promise | Generator | AsyncGenerator; @@ -58,7 +100,7 @@ export async function run() { yield exec() ?? Promise.resolve(); taskYieldMap.get(key)?.(); setLevel(logLevel - 1); - + cache.addComplete(key); log(`> run "${name}" done.`); } catch (e) { pass = false; @@ -93,6 +135,9 @@ export async function registryTask( } const fn = function* () { const key = `${file}:${name}`; + if (isContinue && cache.isComplete(key)) { + return; + } if (tasks.has(key)) { throw new Error(`Task exists: ${key}`); } diff --git a/tsconfig.json b/tsconfig.json index 6c1e2f0f6c..c2005be345 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,8 +12,8 @@ "strictNullChecks": true, "allowJs": true, // 改造期间暂时允许导入 js 文件 "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, "isolatedModules": false, "baseUrl": ".", "paths": { diff --git a/types/affix/index.d.ts b/types/affix/index.d.ts deleted file mode 100644 index f170fe52af..0000000000 --- a/types/affix/index.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -import * as React from 'react'; -import { Component } from 'react'; -import * as PropTypes from 'prop-types'; -import ResizeObserver from 'resize-observer-polyfill'; -import type { AffixProps, AffixState, AffixMode } from './types'; -/** Affix */ -declare class Affix extends Component { - static propTypes: { - prefix: PropTypes.Requireable; - container: PropTypes.Requireable<(...args: any[]) => any>; - offsetTop: PropTypes.Requireable; - offsetBottom: PropTypes.Requireable; - onAffix: PropTypes.Requireable<(...args: any[]) => any>; - useAbsolute: PropTypes.Requireable; - className: PropTypes.Requireable; - style: PropTypes.Requireable; - children: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - container: () => Window & typeof globalThis; - onAffix: () => void; - }; - static _getAffixMode(nextProps: AffixProps): AffixMode; - constructor(props: AffixProps, context?: unknown); - static getDerivedStateFromProps(nextProps: AffixProps): { - affixMode: AffixMode; - } | null; - componentDidMount(): void; - componentDidUpdate(prevProps: AffixProps): void; - componentWillUnmount(): void; - resizeObserver: ResizeObserver; - timeout: ReturnType | null; - affixNode: HTMLDivElement; - affixChildNode: HTMLDivElement; - _clearContainerEvent: () => void; - _setEventHandlerForContainer(getContainer: NonNullable): void; - _removeEventHandlerForContainer(getContainer: NonNullable): void; - updatePosition: () => void; - _updateNodePosition: () => false | undefined; - _setAffixStyle(affixStyle: AffixState['style'], affixed?: boolean): void; - _setContainerStyle(containerStyle: AffixState['containerStyle']): void; - _getOffset( - affixNode: HTMLDivElement, - affixContainer: Element | Window - ): { - top: number; - left: number; - width: number; - height: number; - }; - _affixNodeRefHandler: (ref: HTMLDivElement) => void; - _affixChildNodeRefHandler: (ref: HTMLDivElement) => void; - render(): React.JSX.Element; -} -export { AffixProps }; -declare const _default: { - new ( - props: AffixProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - AffixProps & import('../config-provider/types').ComponentCommonProps, - Affix - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - prefix: PropTypes.Requireable; - container: PropTypes.Requireable<(...args: any[]) => any>; - offsetTop: PropTypes.Requireable; - offsetBottom: PropTypes.Requireable; - onAffix: PropTypes.Requireable<(...args: any[]) => any>; - useAbsolute: PropTypes.Requireable; - className: PropTypes.Requireable; - style: PropTypes.Requireable; - children: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - container: () => Window & typeof globalThis; - onAffix: () => void; - }; - _getAffixMode: typeof Affix._getAffixMode; -}; -export default _default; diff --git a/types/affix/mobile/index.d.ts b/types/affix/mobile/index.d.ts deleted file mode 100644 index e2c18844f9..0000000000 --- a/types/affix/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const Affix: any; -export default Affix; diff --git a/types/affix/types.d.ts b/types/affix/types.d.ts deleted file mode 100644 index 84786bedb4..0000000000 --- a/types/affix/types.d.ts +++ /dev/null @@ -1,57 +0,0 @@ -import * as React from 'react'; -import { CommonProps } from '../util'; -export interface AffixMode { - top: boolean; - bottom: boolean; - offset: number; -} -export interface AffixState { - style: React.CSSProperties | null; - containerStyle: React.CSSProperties | null; - positionStyle: React.CSSProperties['position'] | null; - affixMode: AffixMode; -} -export interface GetContainer { - (): Element; -} -/** - * @api Affix - */ -export interface AffixProps extends CommonProps { - /** - * 设置 Affix 需要监听滚动事件的容器元素 - * @en The container for listening scroll events - * @returns 目标容器元素 - * @defaultValue () =\> window - */ - container?: () => Element | Window; - /** - * 距离窗口顶部达到指定偏移量后触发 - * @en Offset from top when event triggers - */ - offsetTop?: number; - /** - * 距离窗口底部达到指定偏移量后触发 - * @en Offset from bottom when event triggers - */ - offsetBottom?: number; - /** - * 当元素的样式发生固钉样式变化时触发的回调函数 - * @en Callback when affix event triggers - * @param affixed - 是否固定 - if element is affixed - */ - onAffix?: (affixed: boolean) => void; - /** - * 是否启用绝对布局实现 affix - * @en Enable absolute position - */ - useAbsolute?: boolean; - /** - * 包裹 children 容器的类名 - */ - className?: string; - /** - * 最外层容器的 style 样式 - */ - style?: React.CSSProperties; -} diff --git a/types/affix/util.d.ts b/types/affix/util.d.ts deleted file mode 100644 index ade79ee4d5..0000000000 --- a/types/affix/util.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export declare function getScroll(node: Window | Element, isVertical?: boolean): number; -export declare function getRect(node: Window | Element): - | DOMRect - | { - top: number; - left: number; - bottom: number; - }; -export declare function getNodeHeight(node: Window | Element): number; diff --git a/types/animate/index.d.ts b/types/animate/index.d.ts deleted file mode 100644 index d3b65c0e66..0000000000 --- a/types/animate/index.d.ts +++ /dev/null @@ -1,80 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { TransitionProps } from 'react-transition-group/Transition'; -import { TransitionGroupProps } from 'react-transition-group/TransitionGroup'; - -export interface AnimateProps extends React.HTMLAttributes, CommonProps { - /** - * 动画 className - */ - animation?: string | any; - - /** - * 子元素第一次挂载时是否执行动画 - */ - animationAppear?: TransitionGroupProps['appear']; - - /** - * 包裹子元素的标签 - */ - component?: TransitionGroupProps['component']; - - /** - * 是否只有单个子元素,如果有多个子元素,请设置为 false - */ - singleMode?: boolean; - - /** - * 子元素 - */ - children?: React.ReactElement | Array; - - /** - * 执行第一次挂载动画前触发的回调函数 - */ - beforeAppear?: (node: HTMLElement) => void; - - /** - * 执行第一次挂载动画,添加 xxx-appear-active 类名后触发的回调函数 - */ - onAppear?: (node: HTMLElement) => void; - - /** - * 执行完第一次挂载动画后触发的函数 - */ - afterAppear?: (node: HTMLElement) => void; - - /** - * 执行进场动画前触发的回调函数 - */ - beforeEnter?: (node: HTMLElement) => void; - - /** - * 执行进场动画,添加 xxx-enter-active 类名后触发的回调函数 - */ - onEnter?: (node: HTMLElement) => void; - - /** - * 执行完进场动画后触发的回调函数 - */ - afterEnter?: (node: HTMLElement) => void; - - /** - * 执行离场动画前触发的回调函数 - */ - beforeLeave?: TransitionProps['onExit']; - - /** - * 执行离场动画,添加 xxx-leave-active 类名后触发的回调函数 - */ - onLeave?: TransitionProps['onExiting']; - - /** - * 执行完离场动画后触发的回调函数 - */ - afterLeave?: TransitionProps['onExited']; -} - -export default class Animate extends React.Component {} diff --git a/types/avatar/index.d.ts b/types/avatar/index.d.ts deleted file mode 100644 index 7836d74785..0000000000 --- a/types/avatar/index.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Component } from 'react'; -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import type { AvatarProps } from './types'; -/** - * Avatar - */ -declare class Avatar extends Component { - static propTypes: { - prefix: PropTypes.Requireable; - children: PropTypes.Requireable; - className: PropTypes.Requireable; - size: PropTypes.Requireable>; - shape: PropTypes.Requireable; - icon: PropTypes.Requireable>; - src: PropTypes.Requireable; - onError: PropTypes.Requireable<(...args: any[]) => any>; - alt: PropTypes.Requireable; - srcSet: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - size: string; - shape: string; - }; - state: { - isImgExist: boolean; - }; - componentDidUpdate(prevProps: AvatarProps): void; - handleImgLoadError: () => void; - getIconSize: ( - avatarSize: AvatarProps['size'] - ) => number | 'small' | 'medium' | 'large' | undefined; - render(): React.JSX.Element; -} -export { AvatarProps }; -declare const _default: { - new ( - props: AvatarProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - AvatarProps & import('../config-provider/types').ComponentCommonProps, - Avatar - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - prefix: PropTypes.Requireable; - children: PropTypes.Requireable; - className: PropTypes.Requireable; - size: PropTypes.Requireable>; - shape: PropTypes.Requireable; - icon: PropTypes.Requireable>; - src: PropTypes.Requireable; - onError: PropTypes.Requireable<(...args: any[]) => any>; - alt: PropTypes.Requireable; - srcSet: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - size: string; - shape: string; - }; -}; -export default _default; diff --git a/types/avatar/mobile/index.d.ts b/types/avatar/mobile/index.d.ts deleted file mode 100644 index b155c83f2d..0000000000 --- a/types/avatar/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Avatar } from '@alifd/meet-react'; -export default Avatar; diff --git a/types/avatar/types.d.ts b/types/avatar/types.d.ts deleted file mode 100644 index d3f3eafcd8..0000000000 --- a/types/avatar/types.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -import * as React from 'react'; -import { CommonProps } from '../util'; -/** - * @api Avatar - * @order 0 - */ -export interface AvatarProps extends React.HTMLAttributes, CommonProps { - /** - * 孩子节点列表 - * @en children node list - */ - children?: React.ReactNode; - /** - * 头像的大小 - * @en The size of the avatar - * @defaultValue 'medium' - */ - size?: 'small' | 'medium' | 'large' | number; - /** - * 头像的形状 - * @en The shape of the avatar - * @defaultValue 'circle' - */ - shape?: 'circle' | 'square'; - /** - * icon 类头像的图标类型,可设为 Icon 的 `type` 或 `ReactElement` - * @en The icon type of the icon avatar, can be set to the `type` or `ReactElement` of Icon - */ - icon?: React.ReactElement | string; - /** - * 图片类头像的资源地址 - * @en The resource address of the image avatar - */ - src?: string; - /** - * 图片加载失败的事件,返回 false 会关闭组件默认的 fallback 行为 - * @en The event of the image loading failure, returning false will close the component's default fallback behavior - */ - onError?: () => boolean; - /** - * 图像无法显示时的 alt 替代文本 - * @en The alt replacement text when the image cannot be displayed - */ - alt?: string; - /** - * 图片类头像响应式资源地址 - * @en The responsive resource address of the image avatar - */ - srcSet?: string; -} diff --git a/types/badge/index.d.ts b/types/badge/index.d.ts deleted file mode 100644 index cd4a683ccd..0000000000 --- a/types/badge/index.d.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { Component } from 'react'; -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import type { BadgeProps } from './types'; -export type { BadgeProps }; -/** - * Badge - */ -declare class Badge extends Component { - static propTypes: { - prefix: PropTypes.Requireable; - rtl: PropTypes.Requireable; - className: PropTypes.Requireable; - style: PropTypes.Requireable; - /** - * 徽标依托的内容,一般显示在其右上方 - */ - children: PropTypes.Requireable; - /** - * 展示的数字,大于 `overflowCount` 时显示为 `${overflowCount}+`,为 `0` 时默认隐藏 - */ - count: PropTypes.Requireable>; - /** - * 当`count`为`0`时,是否显示 count - * @version 1.16 - */ - showZero: PropTypes.Requireable; - /** - * 自定义徽标中的内容 - */ - content: PropTypes.Requireable; - /** - * 展示的封顶的数字 - */ - overflowCount: PropTypes.Requireable>; - /** - * 不展示数字,只展示一个小红点 - */ - dot: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - count: number; - showZero: boolean; - overflowCount: number; - dot: boolean; - }; - render(): React.JSX.Element; -} -declare const _default: { - new ( - props: BadgeProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - BadgeProps & import('../config-provider/types').ComponentCommonProps, - Badge - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - prefix: PropTypes.Requireable; - rtl: PropTypes.Requireable; - className: PropTypes.Requireable; - style: PropTypes.Requireable; - /** - * 徽标依托的内容,一般显示在其右上方 - */ - children: PropTypes.Requireable; - /** - * 展示的数字,大于 `overflowCount` 时显示为 `${overflowCount}+`,为 `0` 时默认隐藏 - */ - count: PropTypes.Requireable>; - /** - * 当`count`为`0`时,是否显示 count - * @version 1.16 - */ - showZero: PropTypes.Requireable; - /** - * 自定义徽标中的内容 - */ - content: PropTypes.Requireable; - /** - * 展示的封顶的数字 - */ - overflowCount: PropTypes.Requireable>; - /** - * 不展示数字,只展示一个小红点 - */ - dot: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - count: number; - showZero: boolean; - overflowCount: number; - dot: boolean; - }; -}; -export default _default; diff --git a/types/badge/mobile/index.d.ts b/types/badge/mobile/index.d.ts deleted file mode 100644 index 08abc76b3c..0000000000 --- a/types/badge/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Badge } from '@alifd/meet-react'; -export default Badge; diff --git a/types/badge/sup.d.ts b/types/badge/sup.d.ts deleted file mode 100644 index 5cb787aa70..0000000000 --- a/types/badge/sup.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Component } from 'react'; -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import type { BadgeSubProps, BadgeSubState } from './types'; -declare class Sup extends Component { - static propTypes: { - prefix: PropTypes.Requireable; - count: PropTypes.Requireable; - showZero: PropTypes.Requireable; - overflowCount: PropTypes.Requireable; - content: PropTypes.Requireable; - dot: PropTypes.Requireable; - style: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - count: number; - showZero: boolean; - overflowCount: number; - dot: boolean; - }; - supEl: HTMLElement | null; - static renderDigit(prefix: string, digit: number, key: string | number): React.JSX.Element; - static renderNumber(prefix: string, count: number | string): React.JSX.Element[]; - constructor(props: BadgeSubProps); - static getDerivedStateFromProps( - nextProps: BadgeSubProps, - prevState: BadgeSubState - ): { - lastCount: string | number | undefined; - currentCount: string | number | undefined; - } | null; - componentDidMount(): void; - componentDidUpdate(prevProps: BadgeSubProps): void; - computeStyle(removeTransition: boolean, revert?: boolean): void; - getPositionByDigit(digit: number, i: number, revert?: boolean): number; - saveRef: React.LegacyRef; - render(): React.FunctionComponentElement; -} -declare const _default: typeof Sup; -export default _default; diff --git a/types/badge/types.d.ts b/types/badge/types.d.ts deleted file mode 100644 index 590df4cdb7..0000000000 --- a/types/badge/types.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from 'react'; -import { CommonProps } from '../util'; -/** - * @api Badge - */ -export interface BadgeProps - extends Omit, 'content'>, - CommonProps { - /** - * 徽章依托的内容 - * @en content of Badge based on - */ - children?: React.ReactNode; - /** - * 展示的数字,大于 overflowCount 时显示为 overflowCount+,为 0 时隐藏 - * @en number to display, display overflowCount+ when count is greater than overflowCount, display none when count equal to 0 - * @defaultValue 0 - */ - count?: number | string; - /** - * 自定义节点内容 - * @en customized node content - */ - content?: React.ReactNode; - /** - * 展示的封顶的数字 - * @en max number to display - * @defaultValue 99 - */ - overflowCount?: number | string; - /** - * 不展示数字,只展示一个小红点 - * @en display a red dot, not a number - * @defaultValue false - */ - dot?: boolean; - /** - * 当 count 为 0 时,默认不显示,但是可以使用 showZero 修改为显示 - * @en whether to show count when count is 0 - * @defaultValue false - */ - showZero?: boolean; -} -export interface BadgeSubProps - extends Pick< - BadgeProps, - 'prefix' | 'count' | 'showZero' | 'overflowCount' | 'content' | 'dot' | 'style' - > {} -export interface BadgeSubState { - lastCount: BadgeSubProps['count']; - currentCount: BadgeSubProps['count']; -} diff --git a/types/balloon/index.d.ts b/types/balloon/index.d.ts deleted file mode 100644 index f395c8cbd3..0000000000 --- a/types/balloon/index.d.ts +++ /dev/null @@ -1,254 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; - -export interface TooltipProps extends React.HTMLAttributes, CommonProps { - /** - * 样式类名的品牌前缀 - */ - prefix?: string; - - /** - * 自定义类名 - */ - className?: string; - - /** - * 自定义内联样式 - */ - style?: React.CSSProperties; - - /** - * tooltip的内容 - */ - children?: any; - - /** - * 弹出层位置 - */ - align?: 't' | 'r' | 'b' | 'l' | 'tl' | 'tr' | 'bl' | 'br' | 'lt' | 'lb' | 'rt' | 'rb'; - - /** - * 触发元素 - */ - trigger?: any; - - /** - * 触发行为 - * 鼠标悬浮, 鼠标点击('hover', 'click')或者它们组成的数组,如 ['hover', 'click'], 强烈不建议使用'focus',若有复杂交互,推荐使用triggerType为click的Balloon组件 - */ - triggerType?: string | Array; - - /** - * 弹层组件style,透传给Popup - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层组件className,透传给Popup - */ - popupClassName?: string; - - /** - * 弹层组件属性,透传给Popup - */ - popupProps?: PopupProps; - - /** - * 弹层在触发以后的延时显示, 单位毫秒 ms - */ - delay?: number; - - /** - * 是否pure render - */ - pure?: boolean; - - /** - * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数。 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层id, 传入值才会支持无障碍 - */ - id?: string; - followTrigger?: boolean; - /** - * 开启 v2 - */ - v2?: boolean; - /** - * [v2] 箭头是否指向目标元素的中心 - */ - arrowPointToCenter?: boolean; -} - -export class Tooltip extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - title?: any; -} -export interface BalloonProps extends HTMLAttributesWeak, CommonProps { - /** - * 自定义类名 - */ - className?: string; - - /** - * 自定义内敛样式 - */ - style?: React.CSSProperties; - - /** - * 浮层的内容 - */ - children?: any; - - title?: React.ReactNode; - - /** - * 样式类型 - */ - type?: 'normal' | 'primary'; - - /** - * 弹层当前显示的状态 - */ - visible?: boolean; - - /** - * 弹层默认显示的状态 - */ - defaultVisible?: boolean; - - /** - * 弹层在显示和隐藏触发的事件 - */ - onVisibleChange?: (visible: boolean, type: string) => void; - - /** - * 弹出层对齐方式 - */ - alignEdge?: boolean; - - /** - * 是否显示关闭按钮 - */ - closable?: boolean; - - /** - * 弹出层位置 - */ - align?: 't' | 'r' | 'b' | 'l' | 'tl' | 'tr' | 'bl' | 'br' | 'lt' | 'lb' | 'rt' | 'rb'; - - /** - * 弹层相对于trigger的定位的微调 - */ - offset?: Array; - - /** - * 触发元素 - */ - trigger?: any; - - /** - * 触发行为 - * 鼠标悬浮, 鼠标点击('hover','click')或者它们组成的数组,如 ['hover', 'click'], 强烈不建议使用'focus',若弹窗内容有复杂交互请使用click - */ - triggerType?: string | Array; - - /** - * 任何visible为false时会触发的事件 - */ - onClose?: () => void; - - /** - * 是否进行自动位置调整 - */ - needAdjust?: boolean; - - /** - * 弹层在触发以后的延时显示, 单位毫秒 ms - */ - delay?: number; - - /** - * 浮层关闭后触发的事件, 如果有动画,则在动画结束后触发 - */ - afterClose?: () => void; - - /** - * 强制更新定位信息 - */ - shouldUpdatePosition?: boolean; - - /** - * 弹层出现后是否自动focus到内部第一个元素 - */ - autoFocus?: boolean; - - /** - * 安全节点:对于triggetType为click的浮层,会在点击除了浮层外的其它区域时关闭浮层.safeNode用于添加不触发关闭的节点, 值可以是dom节点的id或者是节点的dom对象 - */ - safeNode?: any; - - /** - * 用来指定safeNode节点的id,和safeNode配合使用 - */ - safeId?: string; - - /** - * 配置动画的播放方式 - */ - animation?: any | boolean; - - /** - * 弹层的dom节点关闭时是否删除 - */ - cache?: boolean; - - /** - * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数。 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层组件style,透传给Popup - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层组件className,透传给Popup - */ - popupClassName?: string; - - /** - * 弹层组件属性,透传给Popup - */ - popupProps?: PopupProps; - - /** - * 弹层id, 传入值才会支持无障碍 - */ - id?: string; - followTrigger?: boolean; - /** - * 开启 v2 - */ - v2?: boolean; - /** - * [v2] 箭头是否指向目标元素的中心 - */ - arrowPointToCenter?: boolean; - /** - * [v2] 是否进行自动位置调整,默认自动开启 - */ - autoAdjust?: boolean; -} - -export default class Balloon extends React.Component { - static Tooltip: typeof Tooltip; -} diff --git a/types/box/index.d.ts b/types/box/index.d.ts deleted file mode 100644 index 1c1013013e..0000000000 --- a/types/box/index.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/// - -import React, { HTMLAttributes, ElementType, Component } from 'react'; -import { CommonProps } from '../util'; - -export interface BoxProps extends HTMLAttributes, CommonProps { - device?: 'phone' | 'tablet' | 'desktop'; - flex?: number | Array; - direction?: 'row' | 'column' | 'row-reverse'; - wrap?: boolean; - spacing?: number | Array; - margin?: number | Array; - padding?: number | Array; - justify?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | string; - align?: 'flex-start' | 'center' | 'flex-end' | 'baseline' | 'stretch' | string; - component?: keyof React.JSX.IntrinsicElements; -} - -export default class Box extends Component {} diff --git a/types/breadcrumb/index.d.ts b/types/breadcrumb/index.d.ts deleted file mode 100644 index b598fc6108..0000000000 --- a/types/breadcrumb/index.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -/// - -import * as React from 'react'; -import { PopupProps } from '../overlay'; - -export interface ItemProps extends React.HTMLAttributes { - /** - * 面包屑节点链接,如果设置这个属性,则该节点为`` ,否则是`` - */ - link?: string; - onClick?: React.MouseEventHandler; -} - -export class Item extends React.Component {} -export interface BreadcrumbProps extends React.HTMLAttributes { - /** - * 样式类名的品牌前缀 - */ - prefix?: string; - - /** - * 面包屑子节点,需传入 Breadcrumb.Item - */ - children?: any; - - /** - * 面包屑最多显示个数,超出部分会被隐藏 - */ - maxNode?: number | 'auto'; - - /** - * 分隔符,可以是文本或 Icon - */ - separator?: string | React.ReactNode; - - /** - * 设置标签类型 - */ - component?: string | (() => void); - /** - * 当超过的项被隐藏时,是否可通过点击省略号展示菜单(包含被隐藏的项) - */ - showHiddenItems?: boolean; - /** - * 弹层挂载的容器节点(在showHiddenItems为true时才有意义) - */ - popupContainer?: any; - /** - * 是否跟随trigger滚动(在showHiddenItems为true时才有意义) - */ - followTrigger?: boolean; - /** - * 添加到弹层上的属性(在showHiddenItems为true时才有意义) - */ - popupProps?: PopupProps; -} - -export default class Breadcrumb extends React.Component { - static Item: typeof Item; -} diff --git a/types/button/index.d.ts b/types/button/index.d.ts deleted file mode 100644 index 74dc9e8796..0000000000 --- a/types/button/index.d.ts +++ /dev/null @@ -1,149 +0,0 @@ -/// -import type { ButtonProps, GroupProps } from './types'; -import Button from './view/button'; -export type { ButtonProps, GroupProps }; -declare const _default: { - new ( - props: ButtonProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - ButtonProps & import('../config-provider/types').ComponentCommonProps, - Button - >; - contextType?: import('react').Context | undefined; -} & { - propTypes: { - prefix: import('prop-types').Requireable; - rtl: import('prop-types').Requireable; - type: import('prop-types').Requireable; - size: import('prop-types').Requireable; - icons: import('prop-types').Requireable< - import('prop-types').InferProps<{ - loading: import('prop-types').Requireable; - }> - >; - iconSize: import('prop-types').Requireable>; - htmlType: import('prop-types').Requireable; - component: import('prop-types').Requireable; - loading: import('prop-types').Requireable; - ghost: import('prop-types').Requireable; - text: import('prop-types').Requireable; - warning: import('prop-types').Requireable; - disabled: import('prop-types').Requireable; - onClick: import('prop-types').Requireable<(...args: any[]) => any>; - className: import('prop-types').Requireable; - onMouseUp: import('prop-types').Requireable<(...args: any[]) => any>; - children: import('prop-types').Requireable; - locale: import('prop-types').Requireable; - defaultPropsConfig: import('prop-types').Requireable; - errorBoundary: import('prop-types').Requireable< - NonNullable - >; - pure: import('prop-types').Requireable; - device: import('prop-types').Requireable; - popupContainer: import('prop-types').Requireable; - }; - defaultProps: { - prefix: string; - type: string; - size: string; - icons: {}; - htmlType: string; - component: string; - loading: boolean; - ghost: boolean; - text: boolean; - warning: boolean; - disabled: boolean; - onClick: () => void; - }; - Group: { - new ( - props: GroupProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - GroupProps & import('../config-provider/types').ComponentCommonProps, - { - render(): import('react').JSX.Element; - context: any; - setState( - state: - | {} - | (( - prevState: Readonly<{}>, - props: Readonly - ) => {} | Pick<{}, K> | null) - | Pick<{}, K> - | null, - callback?: (() => void) | undefined - ): void; - forceUpdate(callback?: (() => void) | undefined): void; - readonly props: Readonly & - Readonly<{ - children?: import('react').ReactNode; - }>; - state: Readonly<{}>; - refs: { - [key: string]: import('react').ReactInstance; - }; - componentDidMount?(): void; - shouldComponentUpdate?( - nextProps: Readonly, - nextState: Readonly<{}>, - nextContext: any - ): boolean; - componentWillUnmount?(): void; - componentDidCatch?(error: Error, errorInfo: import('react').ErrorInfo): void; - getSnapshotBeforeUpdate?( - prevProps: Readonly, - prevState: Readonly<{}> - ): any; - componentDidUpdate?( - prevProps: Readonly, - prevState: Readonly<{}>, - snapshot?: any - ): void; - componentWillMount?(): void; - UNSAFE_componentWillMount?(): void; - componentWillReceiveProps?(nextProps: Readonly, nextContext: any): void; - UNSAFE_componentWillReceiveProps?( - nextProps: Readonly, - nextContext: any - ): void; - componentWillUpdate?( - nextProps: Readonly, - nextState: Readonly<{}>, - nextContext: any - ): void; - UNSAFE_componentWillUpdate?( - nextProps: Readonly, - nextState: Readonly<{}>, - nextContext: any - ): void; - } - >; - contextType?: import('react').Context | undefined; - } & { - propTypes: { - rtl: import('prop-types').Requireable; - prefix: import('prop-types').Requireable; - size: import('prop-types').Requireable; - className: import('prop-types').Requireable; - children: import('prop-types').Requireable; - locale: import('prop-types').Requireable; - defaultPropsConfig: import('prop-types').Requireable; - errorBoundary: import('prop-types').Requireable< - NonNullable - >; - pure: import('prop-types').Requireable; - warning: import('prop-types').Requireable; - device: import('prop-types').Requireable; - popupContainer: import('prop-types').Requireable; - }; - defaultProps: { - prefix: string; - size: string; - }; - }; -}; -export default _default; diff --git a/types/button/mobile/index.d.ts b/types/button/mobile/index.d.ts deleted file mode 100644 index 9eca876add..0000000000 --- a/types/button/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Button } from '@alifd/meet-react'; -export default Button; diff --git a/types/button/types.d.ts b/types/button/types.d.ts deleted file mode 100644 index 5818a15c4c..0000000000 --- a/types/button/types.d.ts +++ /dev/null @@ -1,134 +0,0 @@ -import * as React from 'react'; -import { CommonProps } from '../util'; -/** - * 按钮类型 - * @api - */ -export type ButtonSize = 'small' | 'medium' | 'large'; -/** - * @api Button.Group - */ -export interface GroupProps extends React.HTMLAttributes, CommonProps { - /** - * 统一设置 Button 组件的按钮大小 - */ - size?: ButtonSize; -} -type HTMLAttributesWeak = Omit, 'type' | 'onClick'>; -/** - * @api Button - */ -export interface ButtonProps extends HTMLAttributesWeak, CommonProps { - /** - * 按钮的类型 - * @en Typeo of button - * @defaultValue 'normal' - */ - type?: 'primary' | 'secondary' | 'normal'; - /** - * @deprecated use `warning` `text` `ghost` insteaded - * @skip - */ - shape?: 'warning' | 'text' | 'ghost'; - /** - * 按钮的尺寸 - * @en Size of button - * @defaultValue 'medium' - */ - size?: ButtonSize; - /** - * 按钮中可配置的 Icon - * @en Available icons in button - * @example - * \{ loading: \} - */ - icons?: { - loading?: React.ReactNode; - }; - /** - * 按钮中 Icon 的尺寸 - * @en Size of icon in button - * @defaultValue 默认根据 size 自动映射,映射规则: - * size:large -\> `small` - * size:medium -\> `xs` - * size:small -\> `xs` - */ - iconSize?: - | number - | 'xxs' - | 'xs' - | 'small' - | 'medium' - | 'large' - | 'xl' - | 'xxl' - | 'xxxl' - | 'inherit'; - /** - * button 标签的 type 值 - * @en Original html type for button element - * @defaultValue 'button' - * @remarks 仅当 component = 'button' 时使用 - */ - htmlType?: 'submit' | 'reset' | 'button'; - /** - * 最终渲染的 jsx 标签标签类型 - * @en The jsx tag to be rendered - * @remarks 直接去掉原先的 ReactNode 类型,因为即使传递了非法类型运行时也会报错,不如在类型提示阶段就将错误抛出 - */ - component?: 'button' | 'a' | React.ComponentType; - /** - * 设置按钮的载入状态 - * @en Loading state of a button - * @defaultValue false - */ - loading?: boolean; - /** - * 是否为幽灵按钮 - * @en Setting ghost button - * @defaultValue false - */ - ghost?: true | false | 'light' | 'dark'; - /** - * 是否为文本按钮 - * @en Is text button - * @defaultValue false - */ - text?: boolean; - /** - * 是否为警告按钮 - * @en Is warning button - * @defaultValue false - */ - warning?: boolean; - /** - * 是否禁用 - * @en Is disabled - * @defaultValue false - */ - disabled?: boolean; - /** - * 点击按钮的回调 - * @en Callback of click event - */ - onClick?: React.MouseEventHandler; - /** - * 'a' 标签的 href 属性 - * @remarks 仅在 component = 'a' 时使用 - * @skip - */ - href?: string; - /** - * 'a' 标签的 target 属性 - * @remarks 仅在 component = 'a' 时使用 - * @skip - */ - target?: string; - /** - * 'ReactRouterLink' 组件的 to 属性 - * @remarks 仅在 component 支持 to 属性时使用 - * @skip - */ - to?: string; -} -export {}; diff --git a/types/button/view/button.d.ts b/types/button/view/button.d.ts deleted file mode 100644 index c2412b06e2..0000000000 --- a/types/button/view/button.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import * as React from 'react'; -import { Component } from 'react'; -import * as PropTypes from 'prop-types'; -import { ButtonProps } from '../types'; -export default class Button extends Component { - static propTypes: { - prefix: PropTypes.Requireable; - rtl: PropTypes.Requireable; - type: PropTypes.Requireable; - size: PropTypes.Requireable; - icons: PropTypes.Requireable< - PropTypes.InferProps<{ - loading: PropTypes.Requireable; - }> - >; - iconSize: PropTypes.Requireable>; - htmlType: PropTypes.Requireable; - component: PropTypes.Requireable; - loading: PropTypes.Requireable; - ghost: PropTypes.Requireable; - text: PropTypes.Requireable; - warning: PropTypes.Requireable; - disabled: PropTypes.Requireable; - onClick: PropTypes.Requireable<(...args: any[]) => any>; - className: PropTypes.Requireable; - onMouseUp: PropTypes.Requireable<(...args: any[]) => any>; - children: PropTypes.Requireable; - locale: PropTypes.Requireable; - defaultPropsConfig: PropTypes.Requireable; - errorBoundary: PropTypes.Requireable>; - pure: PropTypes.Requireable; - device: PropTypes.Requireable; - popupContainer: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - type: string; - size: string; - icons: {}; - htmlType: string; - component: string; - loading: boolean; - ghost: boolean; - text: boolean; - warning: boolean; - disabled: boolean; - onClick: () => void; - }; - button: HTMLButtonElement | HTMLAnchorElement | unknown; - onMouseUp: (e: React.MouseEvent) => void; - buttonRefHandler: (button: unknown) => void; - render(): React.JSX.Element; -} diff --git a/types/button/view/group.d.ts b/types/button/view/group.d.ts deleted file mode 100644 index 60250c4c89..0000000000 --- a/types/button/view/group.d.ts +++ /dev/null @@ -1,58 +0,0 @@ -import * as React from 'react'; -import { Component } from 'react'; -import * as PropTypes from 'prop-types'; -import { GroupProps } from '../types'; -/** - * Button.Group - */ -declare class ButtonGroup extends Component { - static propTypes: { - rtl: PropTypes.Requireable; - prefix: PropTypes.Requireable; - size: PropTypes.Requireable; - className: PropTypes.Requireable; - children: PropTypes.Requireable; - locale: PropTypes.Requireable; - defaultPropsConfig: PropTypes.Requireable; - errorBoundary: PropTypes.Requireable>; - pure: PropTypes.Requireable; - warning: PropTypes.Requireable; - device: PropTypes.Requireable; - popupContainer: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - size: string; - }; - render(): React.JSX.Element; -} -declare const _default: { - new ( - props: GroupProps & import('../../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../../config-provider/types').ConfiguredComponent< - GroupProps & import('../../config-provider/types').ComponentCommonProps, - ButtonGroup - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - rtl: PropTypes.Requireable; - prefix: PropTypes.Requireable; - size: PropTypes.Requireable; - className: PropTypes.Requireable; - children: PropTypes.Requireable; - locale: PropTypes.Requireable; - defaultPropsConfig: PropTypes.Requireable; - errorBoundary: PropTypes.Requireable>; - pure: PropTypes.Requireable; - warning: PropTypes.Requireable; - device: PropTypes.Requireable; - popupContainer: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - size: string; - }; -}; -export default _default; diff --git a/types/calendar/index.d.ts b/types/calendar/index.d.ts deleted file mode 100644 index bc87a4e32c..0000000000 --- a/types/calendar/index.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onSelect?: any; -} - -export interface CalendarProps extends HTMLAttributesWeak, CommonProps { - /** - * 默认选中的日期(moment 对象) - */ - defaultValue?: any; - - /** - * 选中的日期值 (moment 对象) - */ - value?: any; - - /** - * 是否展示非本月的日期 - */ - showOtherMonth?: boolean; - - /** - * 默认展示的月份 - */ - defaultVisibleMonth?: () => void; - - /** - * 展现形态 - */ - shape?: 'card' | 'fullscreen' | 'panel'; - - /** - * 选择日期单元格时的回调 - */ - onSelect?: (value: {}) => void; - - /** - * 展现的月份变化时的回调 - */ - onVisibleMonthChange?: (value: {}, reason: string) => void; - - /** - * 自定义样式类 - */ - className?: string; - - /** - * 自定义日期渲染函数 - */ - dateCellRender?: (value: {}) => React.ReactNode; - - /** - * 自定义月份渲染函数 - */ - monthCellRender?: (calendarDate: {}) => React.ReactNode; - - /** - * 不可选择的日期 - */ - disabledDate?: (calendarDate: {}, view: string) => boolean; -} - -export default class Calendar extends React.Component {} diff --git a/types/calendar2/index.d.ts b/types/calendar2/index.d.ts deleted file mode 100644 index df65897047..0000000000 --- a/types/calendar2/index.d.ts +++ /dev/null @@ -1,76 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { Dayjs, ConfigType } from 'dayjs'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onSelect?: any; - onChange?: any; -} - -export interface CalendarProps extends HTMLAttributesWeak, CommonProps { - name?: string; - /** - * 默认选中的日期(dayjs 对象) - */ - defaultValue?: ConfigType; - - /** - * 选中的日期值 (dayjs 对象) - */ - value?: ConfigType; - - /** - * 面板默认显示的日期 - */ - defaultPanelValue?: ConfigType; - - /** - * 展现形态 - */ - shape?: 'card' | 'fullscreen' | 'panel'; - - /** - * 选择日期单元格时的回调 - */ - onSelect?: (value: Dayjs, strVal: string) => void; - - /** - * 值改变时的回调 - */ - onChange?: (value: Dayjs, strVal: string) => void; - - /** - * 日期面板变化回调 - */ - onPanelChange?: (value: Dayjs, mode: string) => void; - - /** - * 自定义样式类 - */ - className?: string; - - /** - * 自定义日期渲染 - */ - dateCellRender?: (value: Dayjs) => React.ReactNode; - - /** - * 自定义月份渲染函数 - */ - monthCellRender?: (value: Dayjs) => React.ReactNode; - - /** - * 自定义年份渲染函数 - */ - yearCellRender?: (value: Dayjs) => React.ReactNode; - - /** - * 不可选择的日期 - */ - disabledDate?: (value: Dayjs, mode: string) => boolean; -} - -export default class Calendar extends React.Component {} diff --git a/types/card/index.d.ts b/types/card/index.d.ts deleted file mode 100644 index 687199d165..0000000000 --- a/types/card/index.d.ts +++ /dev/null @@ -1,147 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - title?: any; -} - -export interface CardProps extends HTMLAttributesWeak, CommonProps { - /** - * 卡片的上的图片 / 视频 - */ - media?: React.ReactNode; - - /** - * 卡片的标题 - */ - title?: React.ReactNode; - - /** - * 卡片的副标题 - */ - subTitle?: React.ReactNode; - - /** - * 卡片操作组,位置在卡片底部 - */ - actions?: React.ReactNode; - - /** - * 是否显示标题的项目符号 - */ - showTitleBullet?: boolean; - - /** - * 是否展示头部的分隔线 - */ - showHeadDivider?: boolean; - - /** - * 内容区域的固定高度 - */ - contentHeight?: string | number; - - /** - * 标题区域的用户自定义内容 - */ - extra?: React.ReactNode; - - /** - * 是否开启自由模式,开启后card 将使用子组件配合使用, 设置此项后 title, subtitle, 等等属性都将失效 - */ - free?: boolean; - hasBorder?: boolean; -} - -export interface CardBulletHeaderProps extends HTMLAttributesWeak, CommonProps { - /** - * 卡片的标题 - */ - title?: React.ReactNode; - - /** - * 卡片的副标题 - */ - subTitle?: React.ReactNode; - /** - * 是否显示标题的项目符号 - */ - showTitleBullet?: boolean; - /** - * 标题区域的用户自定义内容 - */ - extra?: React.ReactNode; -} - -export interface CardCollaspeContentProps extends HTMLAttributesWeak, CommonProps { - contentHeight?: string | number; -} -export interface CardCollapseContentProps extends HTMLAttributesWeak, CommonProps { - contentHeight?: string | number; -} - -export interface CardHeaderProps extends HTMLAttributesWeak, CommonProps { - /** - * 卡片的标题 - */ - title?: React.ReactNode; - - /** - * 卡片的副标题 - */ - subTitle?: React.ReactNode; - - /** - * 标题区域的用户自定义内容 - */ - extra?: React.ReactNode; - - /** - * 设置标签类型 - */ - component?: React.ElementType; -} - -export interface CardContentProps extends HTMLAttributesWeak, CommonProps { - /** - * 设置标签类型 - */ - component?: React.ElementType; -} - -export interface CardMediaProps extends HTMLAttributesWeak, CommonProps { - /** - * 设置标签类型 - */ - component?: React.ElementType; - /** - * 背景图片地址 - */ - image?: string; - /** - * 媒体源文件地址 - */ - src?: string; -} - -export interface CardActionsProps extends HTMLAttributesWeak, CommonProps {} - -export interface CardDividerProps extends HTMLAttributesWeak, CommonProps { - /** - * 分割线是否向内缩进 - */ - inset?: boolean; -} - -export default class Card extends React.Component { - static BulletHeader: React.ComponentType; - static CollaspeContent: React.ComponentType; - static CollapseContent: React.ComponentType; - static Header: React.ComponentType; - static Content: React.ComponentType; - static Media: React.ComponentType; - static Actions: React.ComponentType; - static Divider: React.ComponentType; -} diff --git a/types/cascader-select/index.d.ts b/types/cascader-select/index.d.ts deleted file mode 100644 index 70a1d683e3..0000000000 --- a/types/cascader-select/index.d.ts +++ /dev/null @@ -1,230 +0,0 @@ -/// - -import * as React from 'react'; -import { CascaderProps, data, extra } from '../cascader'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface CascaderSelectProps extends CascaderProps, HTMLAttributesWeak, CommonProps { - /** - * 选择框大小 - */ - size?: 'small' | 'medium' | 'large'; - name?: string; - - /** - * 选择框占位符 - */ - placeholder?: string; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否有下拉箭头 - */ - hasArrow?: boolean; - - /** - * 是否有边框 - */ - hasBorder?: boolean; - - /** - * 是否有清除按钮 - */ - hasClear?: boolean; - - /** - * 自定义内联 label - */ - label?: React.ReactNode; - - /** - * 是否只读,只读模式下可以展开弹层但不能选 - */ - readOnly?: boolean; - - /** - * 数据源,结构可参考下方说明 - */ - dataSource?: Array; - - /** - * (非受控)默认值 - */ - defaultValue?: string | Array; - - /** - * (受控)当前值 - */ - value?: string | Array; - - valueRender?: (item: any) => React.ReactNode; - - /** - * 选中值改变时触发的回调函数 - */ - onChange?: (value: string | Array, data: data | Array, extra: extra) => void; - - /** - * 默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置 - */ - defaultExpandedValue?: Array; - - /** - * 展开触发的方式 - */ - expandTriggerType?: 'click' | 'hover'; - - /** - * 是否开启虚拟滚动 - */ - useVirtual?: boolean; - - /** - * 是否多选 - */ - multiple?: boolean; - - /** - * 是否选中即发生改变, 该属性仅在单选模式下有效 - */ - changeOnSelect?: boolean; - - /** - * 是否只能勾选叶子项的checkbox,该属性仅在多选模式下有效 - */ - canOnlyCheckLeaf?: boolean; - - /** - * 父子节点是否选中不关联 - */ - checkStrictly?: boolean; - - /** - * 每列列表样式对象 - */ - listStyle?: React.CSSProperties; - - /** - * 每列列表类名 - */ - listClassName?: string; - - /** - * 选择框单选时展示结果的自定义渲染函数 - */ - displayRender?: (label: Array) => React.ReactNode; - - /** - * 渲染 item 内容的方法 - */ - itemRender?: (item: data) => React.ReactNode; - - /** - * 是否显示搜索框 - */ - showSearch?: boolean; - - /** - * 自定义搜索函数 - */ - filter?: (searchValue: string, path: Array) => boolean; - - /** - * 当搜索框值变化时回调 - */ - onSearch?: (value: string) => void; - - /** - * 搜索结果自定义渲染函数 - */ - resultRender?: (searchValue: string, path: Array) => React.ReactNode; - - /** - * 搜索结果列表是否和选择框等宽 - */ - resultAutoWidth?: boolean; - - /** - * 无数据时显示内容 - */ - notFoundContent?: React.ReactNode; - - /** - * 异步加载数据函数 - */ - loadData?: (data: {}) => void; - - /** - * 自定义下拉框头部 - */ - header?: React.ReactNode; - - /** - * 自定义下拉框底部 - */ - footer?: React.ReactNode; - - /** - * 初始下拉框是否显示 - */ - defaultVisible?: boolean; - - /** - * 当前下拉框是否显示 - */ - visible?: boolean; - - /** - * 下拉框显示或关闭时触发事件的回调函数 - */ - onVisibleChange?: (visible: boolean, type: string) => void; - - /** - * 下拉框自定义样式对象 - */ - popupStyle?: React.CSSProperties; - - /** - * 下拉框样式自定义类名 - */ - popupClassName?: string; - - /** - * 下拉框挂载的容器节点 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 是否跟随滚动 - */ - followTrigger?: boolean; - - /** - * 透传到 Popup 的属性对象 - */ - popupProps?: PopupProps; - - /** - * 是否是不可变数据 - */ - immutable?: boolean; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - renderPreview?: (value: string | Array) => React.ReactNode; -} - -export default class CascaderSelect extends React.Component {} diff --git a/types/cascader/index.d.ts b/types/cascader/index.d.ts deleted file mode 100644 index 1c7566f093..0000000000 --- a/types/cascader/index.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -type data = { - value?: string; - label?: string; - disabled?: boolean; - checkboxDisabled?: boolean; - children?: Array; - [propName: string]: any; -}; - -type extra = { - /** - * 单选时选中的数据的路径 - */ - selectedPath?: Array; - /** - * 多选时当前的操作是选中还是取消选中 - */ - checked?: boolean; - /** - * 多选时当前操作的数据 - */ - currentData?: any; - /** - * 多选时所有被选中的数据 - */ - checkedData?: Array; - /** - * 多选时半选的数据 - */ - indeterminateData?: Array; -}; - -export interface CascaderProps extends HTMLAttributesWeak, CommonProps { - /** - * 数据源,结构可参考下方说明 - */ - dataSource?: Array; - - /** - * (非受控)默认值 - */ - defaultValue?: string | Array; - - /** - * (受控)当前值 - */ - value?: string | Array; - - /** - * 选中值改变时触发的回调函数 - */ - onChange?: (value: string | Array, data: data | Array, extra: extra) => void; - - /** - * (非受控)默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置 - */ - defaultExpandedValue?: Array; - - /** - * (受控)当前展开值 - */ - expandedValue?: Array; - - /** - * 展开触发的方式 - */ - expandTriggerType?: 'click' | 'hover'; - - /** - * 展开时触发的回调函数 - */ - onExpand?: (expandedValue: Array) => void; - - /** - * 是否开启虚拟滚动 - */ - useVirtual?: boolean; - - /** - * 是否多选 - */ - multiple?: boolean; - - /** - * 单选时是否只能选中叶子节点 - */ - canOnlySelectLeaf?: boolean; - - /** - * 多选时是否只能选中叶子节点 - */ - canOnlyCheckLeaf?: boolean; - - /** - * 父子节点是否选中不关联 - */ - checkStrictly?: boolean; - - /** - * 每列列表样式对象 - */ - listStyle?: React.CSSProperties; - - /** - * 每列列表类名 - */ - listClassName?: string; - - /** - * 每列列表项渲染函数 - */ - itemRender?: (data: data) => React.ReactNode; - - /** - * 异步加载数据函数,source是原始对象 - */ - loadData?: (data: data, source: data) => void; - - /** - * 是否是不可变数据 - */ - immutable?: boolean; -} - -export default class Cascader extends React.Component {} diff --git a/types/checkbox/index.d.ts b/types/checkbox/index.d.ts deleted file mode 100644 index 1afb780fdc..0000000000 --- a/types/checkbox/index.d.ts +++ /dev/null @@ -1,168 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -type data = { - value?: string | number | boolean; - label?: React.ReactNode; - disabled?: boolean; - [propName: string]: any; -}; - -export type CheckboxData = data; - -export interface GroupProps extends HTMLAttributesWeak, CommonProps { - /** - * 自定义类名 - */ - className?: string; - - /** - * 自定义内敛样式 - */ - style?: React.CSSProperties; - - /** - * 整体禁用 - */ - disabled?: boolean; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - renderPreview?: (checked: boolean, props: object) => React.ReactNode; - - /** - * 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` 或者 `[{value: 'apple', label: '苹果',}, {value: 'pear', label: '梨'}, {value: 'orange', label: '橙子'}]` - */ - dataSource?: Array | Array | Array; - - /** - * 被选中的值列表 - */ - value?: Array | Array | Array | string | number | boolean; - - /** - * 默认被选中的值列表 - */ - defaultValue?: Array | Array | Array | string | number | boolean; - - /** - * name - */ - name?: string; - - /** - * 通过子元素方式设置内部 checkbox - */ - children?: Array; - - /** - * 选中值改变时的事件 - */ - onChange?: (value: Array | Array | Array, e: any) => void; - - /** - * 子项目的排列方式 - * - hoz: 水平排列 (default) - * - ver: 垂直排列 - */ - direction?: 'hoz' | 'ver'; - itemDirection?: 'hoz' | 'ver'; -} - -export class Group extends React.Component {} -interface HTMLAttributesWeak extends React.HTMLAttributes { - onChange?: any; - onMouseEnter?: any; - onMouseLeave?: any; -} - -export interface CheckboxProps extends HTMLAttributesWeak, CommonProps { - /** - * 自定义类名 - */ - className?: string; - - /** - * checkbox id, 挂载在input上 - */ - id?: string; - - /** - * 自定义内敛样式 - */ - style?: React.CSSProperties; - - /** - * 选中状态 - */ - checked?: boolean; - - /** - * checkbox 的value - */ - value?: string | number | boolean; - - /** - * name - */ - name?: string; - - /** - * 默认选中状态 - */ - defaultChecked?: boolean; - - /** - * 禁用 - */ - disabled?: boolean; - - /** - * 通过属性配置label, - */ - label?: React.ReactNode; - - /** - * Checkbox 的中间状态,只会影响到 Checkbox 的样式,并不影响其 checked 属性 - */ - indeterminate?: boolean; - - /** - * Checkbox 的默认中间态,只会影响到 Checkbox 的样式,并不影响其 checked 属性 - */ - defaultIndeterminate?: boolean; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - /** - * 状态变化时触发的事件 - */ - onChange?: (checked: boolean, e: any) => void; - - /** - * 鼠标进入enter事件 - */ - onMouseEnter?: (e: React.MouseEvent) => void; - - /** - * 鼠标离开Leave事件 - */ - onMouseLeave?: (e: React.MouseEvent) => void; -} - -export default class Checkbox extends React.Component { - static Group: typeof Group; -} diff --git a/types/collapse/index.d.ts b/types/collapse/index.d.ts deleted file mode 100644 index 571f1a8607..0000000000 --- a/types/collapse/index.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - title?: any; -} - -export interface PanelProps extends HTMLAttributesWeak, CommonProps { - /** - * 样式类名的品牌前缀 - */ - prefix?: string; - - /** - * 子组件接受行内样式 - */ - style?: React.CSSProperties; - - /** - * 是否禁止用户操作 - */ - disabled?: boolean; - - /** - * 标题 - */ - title?: React.ReactNode; - - /** - * 扩展class - */ - className?: string; -} - -export class Panel extends React.Component {} - -type data = { - title?: React.ReactNode; - content?: React.ReactNode; - disabled?: boolean; - key?: string; - [propName: string]: any; -}; - -export interface CollapseProps extends React.HTMLAttributes, CommonProps { - /** - * 样式前缀 - */ - prefix?: string; - - /** - * 组件接受行内样式 - */ - style?: React.CSSProperties; - - /** - * 使用数据模型构建 - */ - dataSource?: Array; - - /** - * 默认展开keys - */ - defaultExpandedKeys?: Array; - - /** - * 受控展开keys - */ - expandedKeys?: Array; - - /** - * 展开状态发升变化时候的回调 - */ - onExpand?: (expandedKeys: Array) => void; - - /** - * 所有禁用 - */ - disabled?: boolean; - - /** - * 扩展class - */ - className?: string; - - /** - * 手风琴模式,一次只能打开一个 - */ - accordion?: boolean; -} - -export default class Collapse extends React.Component { - static Panel: typeof Panel; -} diff --git a/types/config-provider/cache.d.ts b/types/config-provider/cache.d.ts deleted file mode 100644 index cf08015981..0000000000 --- a/types/config-provider/cache.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -declare class Cache { - _root: unknown; - _store: Map; - constructor(); - empty(): boolean; - has(key: unknown): boolean; - get(key: unknown, defaultValue?: T): T | null | undefined; - add(key: unknown, value: unknown): void; - update(key: unknown, value: unknown): void; - remove(key: unknown): void; - clear(): void; - root(): unknown; -} -export default Cache; diff --git a/types/config-provider/config.d.ts b/types/config-provider/config.d.ts deleted file mode 100644 index 73ac5ca781..0000000000 --- a/types/config-provider/config.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - ComponentClass, - FunctionComponent, - ForwardRefExoticComponent, - ComponentProps, - ComponentRef, - StaticLifecycle, -} from 'react'; -import { Locale } from '../locale/types'; -import type { ConfigOptions, ComponentCommonProps, ConfiguredComponent } from './types'; -export declare function initLocales(locales?: Record): void; -export declare function setLanguage(language: string): void; -export declare function setLocale(locale: Partial): void; -export declare function setDirection(dir: 'ltr' | 'rtl'): void; -export declare function getLocale(): Partial; -export declare function getLanguage(): string; -export declare function getDirection(): boolean | undefined; -export type ExcludeComponentStatics = - | 'prototype' - | 'contextType' - | keyof StaticLifecycle; -declare function config< - C extends ComponentClass | ForwardRefExoticComponent | FunctionComponent, - R = C extends ComponentClass - ? InstanceType - : C extends ForwardRefExoticComponent - ? ComponentRef - : unknown, ->( - Component: C, - options?: ConfigOptions> -): typeof ConfiguredComponent & ComponentCommonProps, R> & { - [K in Exclude]: C[K]; -}; -export { config }; diff --git a/types/config-provider/consumer.d.ts b/types/config-provider/consumer.d.ts deleted file mode 100644 index 7ded1cd1c8..0000000000 --- a/types/config-provider/consumer.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { ReactElement, ReactNode } from 'react'; -import * as PropTypes from 'prop-types'; -import { ConfigProviderProps } from './types'; -export type ConsumerState = Pick< - ConfigProviderProps, - 'prefix' | 'pure' | 'rtl' | 'warning' | 'device' | 'popupContainer' | 'locale' ->; -export interface ConsumerProps { - children?: ((state: ConsumerState) => ReactElement) | ReactNode; -} -/** - * Consumer - */ -declare const Consumer: { - ({ children }: ConsumerProps, context: Record): any; - /** - * PropTypes - */ - propTypes: { - children: PropTypes.Requireable<(...args: any[]) => any>; - }; - /** - * ContextTypes (legacy context) - */ - contextTypes: { - nextPrefix: PropTypes.Requireable; - nextLocale: PropTypes.Requireable; - nextPure: PropTypes.Requireable; - newRtl: PropTypes.Requireable; - nextWarning: PropTypes.Requireable; - nextDevice: PropTypes.Requireable; - nextPopupContainer: PropTypes.Requireable; - }; -}; -export default Consumer; diff --git a/types/config-provider/error-boundary.d.ts b/types/config-provider/error-boundary.d.ts deleted file mode 100644 index 2141a518df..0000000000 --- a/types/config-provider/error-boundary.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import * as React from 'react'; -import { Component, ErrorInfo } from 'react'; -import * as PropTypes from 'prop-types'; -import { ErrorBoundaryConfig } from './types'; -export type ErrorBoundaryProps = ErrorBoundaryConfig; -interface ErrorBoundaryState { - error?: Error | null; - errorInfo?: ErrorInfo | null; -} -export default class ErrorBoundary extends Component { - static propTypes: { - children: PropTypes.Requireable; - afterCatch: PropTypes.Requireable<(...args: any[]) => any>; - fallbackUI: PropTypes.Requireable<(...args: any[]) => any>; - }; - constructor(props: ErrorBoundaryProps); - componentDidCatch(error: Error, errorInfo: ErrorInfo): void; - render(): React.ReactNode; -} -export {}; diff --git a/types/config-provider/get-context-props.d.ts b/types/config-provider/get-context-props.d.ts deleted file mode 100644 index e340d8897d..0000000000 --- a/types/config-provider/get-context-props.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ContextState, OverlayCommonProps, ParsedContextConfig } from './types'; -export default function getContextProps

>( - props: P, - context: ContextState, - displayName: string -): ParsedContextConfig; diff --git a/types/config-provider/index.d.ts b/types/config-provider/index.d.ts deleted file mode 100644 index 0a623e4217..0000000000 --- a/types/config-provider/index.d.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { Component } from 'react'; -import * as PropTypes from 'prop-types'; -import { - config, - initLocales, - setLanguage, - setLocale, - setDirection, - getLocale, - getLanguage, - getDirection, -} from './config'; -import ErrorBoundary from './error-boundary'; -import type { ConfigProviderProps, ComponentCommonProps, ContextState } from './types'; -declare class ConfigProvider extends Component< - ConfigProviderProps, - Pick -> { - static propTypes: { - /** - * 样式类名的品牌前缀 - */ - prefix: PropTypes.Requireable; - /** - * 国际化文案对象,属性为组件的 displayName - */ - locale: PropTypes.Requireable; - /** - * 组件 API 的默认配置 - */ - defaultPropsConfig: PropTypes.Requireable; - /** - * 是否开启错误捕捉 errorBoundary - * 如需自定义参数,请传入对象 对象接受参数列表如下: - * - * fallbackUI `Function(error?: {}, errorInfo?: {}) => Element` 捕获错误后的展示 - * afterCatch `Function(error?: {}, errorInfo?: {})` 捕获错误后的行为,比如埋点上传 - */ - errorBoundary: PropTypes.Requireable>; - /** - * 是否开启 Pure Render 模式,会提高性能,但是也会带来副作用 - */ - pure: PropTypes.Requireable; - /** - * 是否在开发模式下显示组件属性被废弃的 warning 提示 - */ - warning: PropTypes.Requireable; - /** - * 是否开启 rtl 模式 - */ - rtl: PropTypes.Requireable; - /** - * 设备类型,针对不同的设备类型组件做出对应的响应式变化 - */ - device: PropTypes.Requireable; - /** - * 组件树 - */ - children: PropTypes.Requireable; - /** - * 指定浮层渲染的父节点,可以为节点 id 的字符串,也可以返回节点的函数 - */ - popupContainer: PropTypes.Requireable; - }; - static defaultProps: { - warning: boolean; - errorBoundary: boolean; - }; - static contextTypes: { - nextPrefix: PropTypes.Requireable; - nextLocale: PropTypes.Requireable; - nextDefaultPropsConfig: PropTypes.Requireable; - nextPure: PropTypes.Requireable; - nextRtl: PropTypes.Requireable; - nextWarning: PropTypes.Requireable; - nextDevice: PropTypes.Requireable; - nextPopupContainer: PropTypes.Requireable; - nextErrorBoundary: PropTypes.Requireable>; - }; - static childContextTypes: { - nextPrefix: PropTypes.Requireable; - nextLocale: PropTypes.Requireable; - nextDefaultPropsConfig: PropTypes.Requireable; - nextPure: PropTypes.Requireable; - nextRtl: PropTypes.Requireable; - nextWarning: PropTypes.Requireable; - nextDevice: PropTypes.Requireable; - nextPopupContainer: PropTypes.Requireable; - nextErrorBoundary: PropTypes.Requireable>; - }; - /** - * 传入组件,生成受 ConfigProvider 控制的 HOC 组件 - * @param Component - 组件类 - * @param options - 可选项 - * @returns 被 HOC 后的组件 - */ - static config: typeof config; - static initLocales: typeof initLocales; - static setLanguage: typeof setLanguage; - static setLocale: typeof setLocale; - static setDirection: typeof setDirection; - static getLanguage: typeof getLanguage; - static getLocale: typeof getLocale; - static getDirection: typeof getDirection; - static Consumer: { - ( - { children }: import('./consumer').ConsumerProps, - context: Record - ): any; - propTypes: { - children: PropTypes.Requireable<(...args: any[]) => any> /** - * 是否开启错误捕捉 errorBoundary - * 如需自定义参数,请传入对象 对象接受参数列表如下: - * - * fallbackUI `Function(error?: {}, errorInfo?: {}) => Element` 捕获错误后的展示 - * afterCatch `Function(error?: {}, errorInfo?: {})` 捕获错误后的行为,比如埋点上传 - */; - }; - contextTypes: { - nextPrefix: PropTypes.Requireable; - nextLocale: PropTypes.Requireable; - nextPure: PropTypes.Requireable; - newRtl: PropTypes.Requireable; - nextWarning: PropTypes.Requireable; - nextDevice: PropTypes.Requireable; - nextPopupContainer: PropTypes.Requireable; - }; - }; - static ErrorBoundary: typeof ErrorBoundary; - /** - * 传入组件的 props 和 displayName,得到和 childContext 计算过的包含有 preifx/locale/pure 的对象,一般用于通过静态方法生成脱离组件树的组件 - * @param props - 组件的 props - * @param displayName - 组件的 displayName - * @returns 新的 context props - */ - static getContextProps:

( - props: P, - displayName: string - ) => import('./types').ParsedContextConfig; - static clearCache: () => void; - static getContext: () => { - prefix: string | undefined; - locale: import('..').Locale | undefined; - defaultPropsConfig: import('./types').DefaultPropsConfig | undefined; - pure: boolean | undefined; - rtl: boolean | undefined; - warning: boolean | undefined; - device: import('./types').DeviceType | undefined; - popupContainer: import('./types').PopupContainerType | undefined; - errorBoundary: import('./types').ErrorBoundaryType | undefined; - }; - constructor(props: ConfigProviderProps, context: ContextState); - getChildContext(): { - nextPrefix: any; - nextDefaultPropsConfig: any; - nextLocale: any; - nextPure: any; - nextRtl: any; - nextWarning: any; - nextDevice: any; - nextPopupContainer: any; - nextErrorBoundary: any; - }; - static getDerivedStateFromProps( - nextProps: ConfigProviderProps, - prevState: Pick - ): { - locale: Partial | undefined; - } | null; - componentDidUpdate(): void; - componentWillUnmount(): void; - render(): - | boolean - | {} - | import('react').ReactChild - | import('react').ReactPortal - | null - | undefined; -} -export type { ConfigProviderProps }; -declare const _default: typeof ConfigProvider; -export default _default; diff --git a/types/config-provider/mobile/index.d.ts b/types/config-provider/mobile/index.d.ts deleted file mode 100644 index f9cf91f3f6..0000000000 --- a/types/config-provider/mobile/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '../index'; diff --git a/types/config-provider/types.d.ts b/types/config-provider/types.d.ts deleted file mode 100644 index 793cd77a7d..0000000000 --- a/types/config-provider/types.d.ts +++ /dev/null @@ -1,167 +0,0 @@ -import * as React from 'react'; -import { ErrorInfo, JSXElementConstructor, Component, PropsWithChildren } from 'react'; -import { ComponentLocaleObject, Locale } from '../locale/types'; -export interface PropsDeprecatedPrinter { - (props: string, instead: string, component: string): void; -} -/** - * @api - */ -export type DeviceType = 'tablet' | 'desktop' | 'phone'; -/** - * @api - */ -export type PopupContainerType = string | HTMLElement | ((target: HTMLElement) => HTMLElement); -export interface AfterCatch { - (error: Error, errorInfo: ErrorInfo): void; -} -export interface FallbackUIProps { - error: Error; - errorInfo: ErrorInfo; -} -export type FallbackUI = JSXElementConstructor; -export interface ErrorBoundaryConfig { - afterCatch?: AfterCatch; - fallbackUI?: FallbackUI; -} -export type ErrorBoundaryType = boolean | ParsedErrorBoundary; -export interface ParsedErrorBoundary extends ErrorBoundaryConfig { - open?: boolean; -} -export type DefaultPropsConfig = Record; -/** - * Context 配置信息 - */ -export interface ContextState { - nextPrefix?: string; - nextLocale?: Locale; - nextDefaultPropsConfig?: DefaultPropsConfig; - nextPure?: boolean; - nextDevice?: DeviceType; - nextPopupContainer?: PopupContainerType; - nextRtl?: boolean; - nextWarning?: boolean; - nextErrorBoundary?: ErrorBoundaryType; -} -/** - * 组件通用参数配置 - */ -export interface ComponentCommonProps { - /** - * 样式类名的品牌前缀 - */ - prefix?: string; - /** - * 组件的国际化文案对象 - */ - locale?: ComponentLocaleObject; - /** - * 是否开启 Pure Render 模式,会提高性能,但是也会带来副作用 - */ - pure?: boolean; - /** - * 设备类型,针对不同的设备类型组件做出对应的响应式变化 - */ - device?: DeviceType; - /** - * 是否开启 rtl 模式 - */ - rtl?: boolean; - /** - * 是否开启错误捕捉 errorBoundary - * 如需自定义参数,请传入对象 对象接受参数列表如下: - * - * fallbackUI `Function(error?: {}, errorInfo?: {}) => Element` 捕获错误后的展示 - * afterCatch `Function(error?: {}, errorInfo?: {})` 捕获错误后的行为,比如埋点上传 - */ - errorBoundary?: ErrorBoundaryType; - /** - * 是否在开发模式下显示组件属性被废弃的 warning 提示 - */ - warning?: boolean; -} -export interface OverlayCommonProps extends ComponentCommonProps { - popupContainer?: PopupContainerType; - container?: PopupContainerType; -} -export interface ConfigOptions, Names extends string = string> { - exportNames?: Names[]; - componentName?: string; - transform?: ( - props: PropsWithChildren>, - propsDeprecatedPrinter: PropsDeprecatedPrinter - ) => PropsWithChildren; -} -/** - * @api ConfigProvider - */ -export interface ConfigProviderProps { - /** - * 样式类名的品牌前缀 - * @en Prefix of component className - */ - prefix?: string; - /** - * 是否开启 Pure Render 模式,会提高性能,但是也会带来副作用 - * @en Enable the Pure Render mode, it will improve performance, but it will also have side effects - */ - pure?: boolean; - /** - * 设备类型,针对不同的设备类型组件做出对应的响应式变化 - * @en Responsive of device - */ - device?: DeviceType; - /** - * 是否开启 rtl 模式 - * @en Enable right to left mode - */ - rtl?: boolean; - /** - * 是否开启错误捕捉 - * @en Turn errorBoundary on or not - * @defaultValue false - * @remarks - * 如需自定义参数,请传入对象 对象接受参数列表如下: - * fallbackUI `Function(error?: {}, errorInfo?: {}) => Element` 捕获错误后的展示 - * afterCatch `Function(error?: {}, errorInfo?: {})` 捕获错误后的行为,比如埋点上传 - */ - errorBoundary?: ErrorBoundaryType; - /** - * 是否在开发模式下显示组件属性被废弃的 warning 提示 - * @en whether to display the warning prompt for component properties being deprecated in development mode - * @defaultValue true - */ - warning?: boolean; - /** - * 各组件的国际化文案对象,属性为组件的 displayName - * @en Locale object for components - */ - locale?: Partial; - /** - * 指定浮层渲染的父节点,可以为节点 id 的字符串,也可以返回节点的函数 - * @en shell container node - */ - popupContainer?: PopupContainerType; - /** - * 组件树 - * @en children nodes - */ - children?: React.ReactNode; - /** - * 各组件 API 的默认配置 - * @en Set default props of components in batches - */ - defaultPropsConfig?: Record; -} -export interface ParsedContextConfig extends Omit { - locale?: ComponentLocaleObject; - errorBoundary: ParsedErrorBoundary; - prefix: string; - defaultPropsConfig: DefaultPropsConfig; -} -export declare class ConfiguredComponent extends Component

{ - constructor(props: P, context?: unknown); - getInstance(): R; - [key: string]: unknown; - render(): React.JSX.Element; -} diff --git a/types/date-picker/index.d.ts b/types/date-picker/index.d.ts deleted file mode 100644 index 7b75da4d30..0000000000 --- a/types/date-picker/index.d.ts +++ /dev/null @@ -1,640 +0,0 @@ -/// -import { Moment } from 'moment'; -import * as React from 'react'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; -import { InputProps } from '../input'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface MonthPickerProps extends HTMLAttributesWeak, CommonProps { - name?: string; - /** - * 输入框内置标签 - */ - label?: React.ReactNode; - - /** - * 输入框状态 - */ - state?: 'success' | 'loading' | 'error'; - - /** - * 输入提示 - */ - placeholder?: string; - - /** - * 默认展现的年 - */ - defaultVisibleYear?: () => void; - - /** - * 日期值(受控)moment 对象 - */ - value?: any; - - /** - * 初始日期值,moment 对象 - */ - defaultValue?: any; - - /** - * 日期值的格式(用于限定用户输入和展示) - */ - format?: string; - - /** - * 禁用日期函数 - */ - disabledDate?: (date: Moment, view: string) => boolean; - - /** - * 自定义面板页脚 - */ - footerRender?: () => React.ReactNode; - - /** - * 日期值改变时的回调 - */ - onChange?: (value: any | string) => void; - - /** - * 输入框尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否显示清空按钮 - */ - hasClear?: boolean; - - /** - * 弹层显示状态 - */ - visible?: boolean; - - /** - * 弹层默认是否显示 - */ - defaultVisible?: boolean; - - /** - * 弹层展示状态变化时的回调 - */ - onVisibleChange?: (visible: boolean, reason: string) => void; - - /** - * 弹层触发方式 - */ - popupTriggerType?: 'click' | 'hover'; - - /** - * 弹层对齐方式, 具体含义见 OverLay文档 - */ - popupAlign?: string; - - /** - * 弹层容器 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层自定义样式 - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层自定义样式类 - */ - popupClassName?: string; - - /** - * 弹层其他属性 - */ - popupProps?: PopupProps; - - /** - * 输入框其他属性 - */ - inputProps?: InputProps; - - /** - * 自定义月份渲染函数 - */ - monthCellRender?: (calendarDate: any) => React.ReactNode; - - /** - * 日期输入框的 aria-label 属性 - */ - dateInputAriaLabel?: string; -} - -export class MonthPicker extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; - placeholder?: any; -} - -export interface RangePickerProps extends HTMLAttributesWeak, CommonProps { - name?: string; - type?: 'date' | 'month' | 'year'; - - /** - * 默认展示的起始月份 - */ - defaultVisibleMonth?: () => void; - - /** - * 输入提示 - */ - placeholder?: Array | string; - - /** - * 日期范围值数组 [moment, moment] - */ - value?: Array; - - /** - * 初始的日期范围值数组 [moment, moment] - */ - defaultValue?: Array; - - /** - * 日期格式 - */ - format?: string; - - /** - * 是否使用时间控件,支持传入 TimePicker 的属性 - */ - showTime?: any | boolean; - - /** - * 每次选择是否重置时间(仅在 showTime 开启时有效) - */ - resetTime?: boolean; - - /** - * 禁用日期函数 - */ - disabledDate?: (date: Moment, view: string) => boolean; - - /** - * 自定义面板页脚 - */ - footerRender?: () => React.ReactNode; - - /** - * 日期范围值改变时的回调 [ MomentObject|String, MomentObject|String ] - */ - onChange?: (value: Array) => void; - - /** - * 点击确认按钮时的回调 返回开始时间和结束时间`[ MomentObject|String, MomentObject|String ]` - */ - onOk?: (value: Array) => void; - - /** - * 输入框内置标签 - */ - label?: React.ReactNode; - - /** - * 输入框状态 - */ - state?: 'error' | 'loading' | 'success'; - - /** - * 输入框尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否显示清空按钮 - */ - hasClear?: boolean; - - /** - * 弹层显示状态 - */ - visible?: boolean; - - /** - * 弹层默认是否显示 - */ - defaultVisible?: boolean; - - /** - * 弹层展示状态变化时的回调 - */ - onVisibleChange?: (visible: boolean, reason: string) => void; - - /** - * 弹层触发方式 - */ - popupTriggerType?: 'click' | 'hover'; - - /** - * 弹层对齐方式, 具体含义见 OverLay文档 - */ - popupAlign?: string; - - /** - * 弹层容器 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层自定义样式 - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层自定义样式类 - */ - popupClassName?: string; - - /** - * 弹层其他属性 - */ - popupProps?: PopupProps; - - /** - * 输入框其他属性 - */ - inputProps?: InputProps; - - /** - * 自定义日期单元格渲染 - */ - dateCellRender?: () => void; - - /** - * 开始日期输入框的 aria-label 属性 - */ - startDateInputAriaLabel?: string; - - /** - * 开始时间输入框的 aria-label 属性 - */ - startTimeInputAriaLabel?: string; - - /** - * 结束日期输入框的 aria-label 属性 - */ - endDateInputAriaLabel?: string; - - /** - * 结束时间输入框的 aria-label 属性 - */ - endTimeInputAriaLabel?: string; -} - -export class RangePicker extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface YearPickerProps extends HTMLAttributesWeak, CommonProps { - name?: string; - /** - * 输入框内置标签 - */ - label?: React.ReactNode; - - /** - * 输入框状态 - */ - state?: 'success' | 'loading' | 'error'; - - /** - * 输入提示 - */ - placeholder?: string; - - /** - * 日期值(受控)moment 对象 - */ - value?: any; - - /** - * 初始日期值,moment 对象 - */ - defaultValue?: any; - - /** - * 日期值的格式(用于限定用户输入和展示) - */ - format?: string; - - /** - * 禁用日期函数 - */ - disabledDate?: (date: Moment, view: string) => boolean; - - /** - * 自定义面板页脚 - */ - footerRender?: () => React.ReactNode; - - /** - * 日期值改变时的回调 - */ - onChange?: (value: {} | string) => void; - - /** - * 输入框尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否显示清空按钮 - */ - hasClear?: boolean; - - /** - * 弹层显示状态 - */ - visible?: boolean; - - /** - * 弹层默认是否显示 - */ - defaultVisible?: boolean; - - /** - * 弹层展示状态变化时的回调 - */ - onVisibleChange?: (visible: boolean, reason: string) => void; - - /** - * 弹层触发方式 - */ - popupTriggerType?: 'click' | 'hover'; - - /** - * 弹层对齐方式, 具体含义见 OverLay文档 - */ - popupAlign?: string; - - /** - * 弹层容器 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层自定义样式 - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层自定义样式类 - */ - popupClassName?: string; - - /** - * 弹层其他属性 - */ - popupProps?: PopupProps; - - /** - * 输入框其他属性 - */ - inputProps?: InputProps; - - /** - * 日期输入框的 aria-label 属性 - */ - dateInputAriaLabel?: string; -} - -export class YearPicker extends React.Component {} -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface DatePickerProps extends HTMLAttributesWeak, CommonProps { - name?: string; - /** - * 输入框内置标签 - */ - label?: React.ReactNode; - - /** - * 输入框状态 - */ - state?: 'success' | 'loading' | 'error'; - - /** - * 输入提示 - */ - placeholder?: string; - - /** - * 默认展现的月 - */ - defaultVisibleMonth?: () => Moment; - - /** - * 默认展现的年 - */ - defaultVisibleYear?: () => Moment; - - /** - * 日期值(受控)moment 对象 - */ - value?: any; - - /** - * 初始日期值,moment 对象 - */ - defaultValue?: any; - - /** - * 日期值的格式(用于限定用户输入和展示) - */ - format?: string; - - /** - * 是否使用时间控件,传入 TimePicker 的属性 { defaultValue, format, ... } - */ - showTime?: any | boolean; - - /** - * 每次选择日期时是否重置时间(仅在 showTime 开启时有效) - */ - resetTime?: boolean; - - /** - * 禁用日期函数 - */ - disabledDate?: (date: Moment, view: string) => boolean; - - /** - * 自定义面板页脚 - */ - footerRender?: () => React.ReactNode; - - /** - * 日期值改变时的回调 - */ - onChange?: (value: {} | string) => void; - - /** - * 点击确认按钮时的回调 - */ - onOk?: (value: {} | string) => void; - - /** - * 输入框尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否显示清空按钮 - */ - hasClear?: boolean; - - /** - * 弹层显示状态 - */ - visible?: boolean; - - /** - * 弹层默认是否显示 - */ - defaultVisible?: boolean; - - /** - * 弹层展示状态变化时的回调 - */ - onVisibleChange?: (visible: boolean, reason: string) => void; - - /** - * 弹层展示月份变化时的回调 - */ - onVisibleMonthChange?: (value: Moment, reason: string) => void; - - /** - * 弹层触发方式 - */ - popupTriggerType?: 'click' | 'hover'; - - /** - * 弹层对齐方式,具体含义见 OverLay文档 - */ - popupAlign?: string; - - /** - * 弹层容器 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层自定义样式 - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层自定义样式类 - */ - popupClassName?: string; - - /** - * 弹层其他属性 - */ - popupProps?: PopupProps; - - /** - * 输入框其他属性 - */ - inputProps?: InputProps; - - /** - * 自定义日期渲染函数 - */ - dateCellRender?: (calendarDate: Moment) => React.ReactNode; - - /** - * 自定义月份渲染函数 - */ - monthCellRender?: (calendarDate: Moment) => React.ReactNode; - - /** - * 自定义年份渲染函数 - */ - yearCellRender?: (calendarDate: Moment) => React.ReactNode; - - /** - * 日期输入框的 aria-label 属性 - */ - dateInputAriaLabel?: string; - - /** - * 时间输入框的 aria-label 属性 - */ - timeInputAriaLabel?: string; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - renderPreview?: (value: any) => React.ReactNode; - - /** - * 是否跟随滚动 - */ - followTrigger?: boolean; - - /** - * 自定义弹层 - */ - popupComponent?: React.ComponentType; - - /** - * 自定义弹层内容 - */ - popupContent?: React.ReactNode; - - /** - * 禁用日期选择器的日期模式切换 - */ - disableChangeMode?: boolean; -} - -export default class DatePicker extends React.Component { - static MonthPicker: typeof MonthPicker; - static RangePicker: typeof RangePicker; - static YearPicker: typeof YearPicker; - static WeekPicker: React.ComponentType; -} diff --git a/types/date-picker2/index.d.ts b/types/date-picker2/index.d.ts deleted file mode 100644 index 18ca7b3841..0000000000 --- a/types/date-picker2/index.d.ts +++ /dev/null @@ -1,130 +0,0 @@ -/// -import * as React from 'react'; -import { CommonProps } from '../util'; -import { Dayjs, ConfigType } from 'dayjs'; -import { PopupProps } from '../overlay'; -import { InputProps } from '../input'; - -export default class DatePicker extends React.Component { - static RangePicker: typeof RangePicker; - static MonthPicker: typeof MonthPicker; - static YearPicker: typeof YearPicker; - static WeekPicker: typeof WeekPicker; - static QuarterPicker: typeof QuarterPicker; -} - -export class YearPicker extends React.Component { - mode: 'year'; -} -export class MonthPicker extends React.Component { - mode: 'month'; -} -export class WeekPicker extends React.Component { - mode: 'week'; -} -export class QuarterPicker extends React.Component { - mode: 'quarter'; -} -export class RangePicker extends React.Component { - type: 'range'; -} -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} -export interface DatePickerProps extends HTMLAttributesWeak, CommonProps { - type?: 'date' | 'range'; - name?: string; - mode?: 'date' | 'month' | 'week' | 'quarter' | 'year'; - value?: ConfigType; - defaultValue?: ConfigType; - defaultPanelValue?: Dayjs; - disabledDate?: (value: Dayjs, mode: 'date' | 'month' | 'week' | 'quarter' | 'year') => boolean; - extraFooterRender?: React.ReactNode | (() => React.ReactNode); - preset?: object | Array; - showTime?: boolean; - showOk?: boolean; - resetTime?: boolean; - timePanelProps?: object; - disabledTime?: object; - - onOk?: (value: Dayjs, strVal: string) => void; - onChange?: (value: Dayjs, strVal: string) => void; - onVisibleChange?: (visible: boolean) => void; - onPanelChange?: ( - panelValue: Dayjs, - mode: 'date' | 'month' | 'week' | 'quarter' | 'year' - ) => void; - - format?: string | ((value: Dayjs) => string); - /** - * 输出格式:控制 onChange、onOk 事件的输出值格式 - * - string 类型:根据时间格式进行转换 - * - function 类型:((value: Dayjs, strVal: string) => any) - * - * @version 1.23 - */ - outputFormat?: string | ((value: Dayjs, strVal: string) => any); - disabled?: boolean; - state?: 'success' | 'loading' | 'error'; - size?: 'small' | 'medium' | 'large'; - hasBorder?: boolean; - inputProps?: InputProps; - inputReadOnly?: boolean; - hasClear?: boolean; - label?: React.ReactNode; - separator?: React.ReactNode; - placeholder?: string; - - visible?: boolean; - defaultVisible?: boolean; - popupTriggerType?: 'click' | 'hover'; - popupAlign?: string; - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - popupStyle?: React.CSSProperties; - popupClassName?: string; - popupProps?: PopupProps; - followTrigger?: boolean; - popupComponent?: React.Component; - dateCellRender?: (value: Dayjs) => React.ReactNode; - monthCellRender?: (value: Dayjs) => React.ReactNode; - dateInputAriaLabel?: string; - isPreview?: boolean; - renderPreview?: (value: Dayjs) => React.ReactNode; -} - -export interface RangePickerProps - extends Omit< - DatePickerProps, - | 'value' - | 'placeholder' - | 'defaultValue' - | 'format' - | 'onOk' - | 'onChange' - | 'dateInputAriaLabel' - | 'disabled' - | 'outputFormat' - > { - value?: Array; - defaultValue?: Array; - format?: string | ((value: Dayjs) => string) | Array | Array<(value: Dayjs) => string>; - onOk?: (value: Array, strVal: Array) => void; - onChange?: (value: Array, strVal: Array) => void; - /** - * 输出格式:控制 onChange、onOk 事件的输出值格式 - * - string 类型:根据时间格式进行转换 - * - function 类型:((value: Dayjs, strVal: string) => any) - * - * @version 1.23 - */ - outputFormat?: - | string - | ((value: Dayjs) => string) - | Array - | Array<(value: Dayjs) => string>; - placeholder?: string | Array; - dateInputAriaLabel?: Array | string; - disabled?: boolean | boolean[]; - onCalendarChange?: (values: [Dayjs, Dayjs], formatString: [string, string]) => void; -} diff --git a/types/dialog/index.d.ts b/types/dialog/index.d.ts deleted file mode 100644 index b5047cb03a..0000000000 --- a/types/dialog/index.d.ts +++ /dev/null @@ -1,219 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { ButtonProps } from '../button'; -import { OverlayProps } from '../overlay'; - -export type CloseMode = 'close' | 'mask' | 'esc'; -interface HTMLAttributesWeak extends React.HTMLAttributes { - title?: any; -} - -export interface DialogProps extends Omit, CommonProps { - /** - * 是否显示 - */ - visible?: boolean; - - /** - * 标题 - */ - title?: React.ReactNode; - - /** - * 内容 - */ - children?: React.ReactNode; - - /** - * 底部内容,设置为 false,则不进行显示 - */ - footer?: boolean | React.ReactNode; - - /** - * 底部按钮的对齐方式 - */ - footerAlign?: 'left' | 'center' | 'right'; - - /** - * 指定确定按钮和取消按钮是否存在以及如何排列,

**可选值**: - * ['ok', 'cancel'](确认取消按钮同时存在,确认按钮在左) - * ['cancel', 'ok'](确认取消按钮同时存在,确认按钮在右) - * ['ok'](只存在确认按钮) - * ['cancel'](只存在取消按钮) - */ - footerActions?: Array; - - /** - * 隐藏时是否保留子节点,不销毁 - */ - cache?: boolean; - - /** - * 在点击确定按钮时触发的回调函数 - */ - onOk?: (event: React.MouseEvent) => void; - - /** - * 在点击取消按钮时触发的回调函数 - */ - onCancel?: (event: React.MouseEvent) => void; - - /** - * 应用于确定按钮的属性对象 - */ - okProps?: ButtonProps; - - /** - * 应用于取消按钮的属性对象 - */ - cancelProps?: ButtonProps; - - /** - * [废弃]同closeMode, 控制对话框关闭的方式,值可以为字符串或者布尔值,其中字符串是由以下值组成: - * **close** 表示点击关闭按钮可以关闭对话框 - * **mask** 表示点击遮罩区域可以关闭对话框 - * **esc** 表示按下 esc 键可以关闭对话框 - * 如 'close' 或 'close,esc,mask' - * 如果设置为 true,则以上关闭方式全部生效 - * 如果设置为 false,则以上关闭方式全部失效 - */ - closeable?: 'close' | 'mask' | 'esc' | boolean | 'close,mask' | 'close,esc' | 'mask,esc'; - /** - * [推荐]控制对话框关闭的方式,值可以为字符串或者数组,其中字符串、数组均为以下值的枚举: - * **close** 表示点击关闭按钮可以关闭对话框 - * **mask** 表示点击遮罩区域可以关闭对话框 - * **esc** 表示按下 esc 键可以关闭对话框 - * 如 'close' 或 ['close','esc','mask'], [] - */ - closeMode?: CloseMode[] | 'close' | 'mask' | 'esc'; - - /** - * 对话框关闭时触发的回调函数 - */ - onClose?: (trigger: string, event: React.MouseEvent) => void; - - /** - * 对话框关闭后触发的回调函数, 如果有动画,则在动画结束后触发 - */ - afterClose?: () => void; - - /** - * 是否显示遮罩 - */ - hasMask?: boolean; - - /** - * 显示隐藏时动画的播放方式 - */ - animation?: any | boolean; - - /** - * 对话框弹出时是否自动获得焦点 - */ - autoFocus?: boolean; - - /** - * [v2废弃] 对话框对齐方式, 具体见Overlay文档 - * @deprecated - */ - align?: string | boolean; - /** - * [v2废弃] 当对话框高度超过浏览器视口高度时,是否显示所有内容而不是出现滚动条以保证对话框完整显示在浏览器视口内,该属性仅在对话框垂直水平居中时生效,即 align 被设置为 'cc cc' 时 - * @deprecated - */ - isFullScreen?: boolean; - - /** - * [v2废弃] 是否在对话框重新渲染时及时更新对话框位置,一般用于对话框高度变化后依然能保证原来的对齐方式 - * @deprecated - */ - shouldUpdatePosition?: boolean; - - /** - * [v2废弃] 对话框距离浏览器顶部和底部的最小间距,align 被设置为 'cc cc' 并且 isFullScreen 被设置为 true 时不生效 - * @deprecated - */ - minMargin?: number; - /** - * 透传到弹层组件的属性对象 - */ - overlayProps?: OverlayProps; - - /** - * 自定义国际化文案对象 - */ - locale?: { - ok: string; - cancel: string; - }; - - /** - * 对话框的高度样式属性 - */ - height?: string | number; - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - /** - * 开启 v2 版本弹窗 - */ - v2?: boolean; - /** - * [v2] 定制关闭按钮 icon - */ - closeIcon?: React.ReactNode; - /** - * [v2] 弹窗宽度 v2 生效 - */ - width?: string | number; - /** - * [v2] 弹窗上边距。默认 100,设置 centered=true 后默认 40 - */ - top?: number; - /** - * [v2] 弹窗下边距, 默认 40 - */ - bottom?: number; - /** - * [v2] 对话框高度超过浏览器视口高度时,对话框是否展示滚动条。关闭此功后对话框会随高度撑开页面 - */ - overflowScroll?: boolean; - /** - * [v2] 弹窗居中对齐 - */ - centered?: boolean; - /** - * [v2] 自定义渲染弹窗 - */ - dialogRender?: (modal: React.ReactNode) => React.ReactNode; - /** - * [v2] 最外包裹层 className - */ - wrapperClassName?: string; -} - -export interface QuickShowConfig extends DialogProps { - prefix?: string; - type?: 'alert' | 'confirm'; - messageProps?: object; - content?: React.ReactNode; - onOk?: () => void; - onCancel?: () => void; - okProps?: object; - needWrapper?: boolean; -} - -export interface QuickShowRet { - hide: () => void; -} - -export default class Dialog extends React.Component { - static show(config: QuickShowConfig): QuickShowRet; - static alert(config: QuickShowConfig): QuickShowRet; - static confirm(config: QuickShowConfig): QuickShowRet; - static success(config: QuickShowConfig): QuickShowRet; - static error(config: QuickShowConfig): QuickShowRet; - static warning(config: QuickShowConfig): QuickShowRet; - static notice(config: QuickShowConfig): QuickShowRet; - static help(config: QuickShowConfig): QuickShowRet; -} diff --git a/types/divider/index.d.ts b/types/divider/index.d.ts deleted file mode 100644 index 2f89b249fc..0000000000 --- a/types/divider/index.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -export interface DividerProps extends React.HTMLAttributes, CommonProps { - /** - * 是否为虚线 - */ - dashed?: boolean; - /** - * 线是水平还是垂直类型 - */ - direction?: 'hoz' | 'ver'; - /** - * 分割线标题的位置 - */ - orientation?: 'left' | 'right' | 'center'; -} - -export default class Divider extends React.Component {} diff --git a/types/drawer/index.d.ts b/types/drawer/index.d.ts deleted file mode 100644 index 861551daf6..0000000000 --- a/types/drawer/index.d.ts +++ /dev/null @@ -1,93 +0,0 @@ -/// - -import * as React from 'react'; -import { PopupProps } from '../overlay'; -import { CloseMode } from '../dialog'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends PopupProps { - title?: any; - onClose?: any; -} - -export interface DrawerProps extends Omit, CommonProps { - /** - * [废弃]同closeMode, 控制对话框关闭的方式,值可以为字符串或者布尔值,其中字符串是由以下值组成: - * **mask** 表示点击遮罩区域可以关闭对话框 - * **esc** 表示按下 esc 键可以关闭对话框 - * 如 'mask' 或 'esc,mask' - * 如果设置为 true,则以上关闭方式全部生效 - * 如果设置为 false,则以上关闭方式全部失效 - * @deprecated - */ - closeable?: 'close' | 'mask' | 'esc' | boolean | 'close,mask' | 'close,esc' | 'mask,esc'; - /** - * [推荐]控制对话框关闭的方式,值可以为字符串或者数组,其中字符串、数组均为以下值的枚举: - * **close** 表示点击关闭按钮可以关闭对话框 - * **mask** 表示点击遮罩区域可以关闭对话框 - * **esc** 表示按下 esc 键可以关闭对话框 - * 如 'close' 或 ['close','esc','mask'], [] - */ - closeMode?: CloseMode[] | 'close' | 'mask' | 'esc'; - /** - * 隐藏时是否保留子节点,不销毁 - */ - cache?: boolean; - /** - * 标题 - */ - title?: React.ReactNode; - /** - * body上的样式 - */ - bodyStyle?: React.CSSProperties; - headerStyle?: React.CSSProperties; - /** - * 显示隐藏时动画的播放方式 - * @property {String} in 进场动画 - * @property {String} out 出场动画 - */ - animation?: { in: string; out: string } | boolean; - visible?: boolean; - - /** - * 宽度,仅在 placement是 left right 的时候生效 - */ - width?: number | string; - - /** - * 高度,仅在 placement是 top bottom 的时候生效 - */ - height?: number | string; - /** - * [v2 废弃] 受控模式下(没有 trigger 的时候),只会在关闭时触发,相当于onClose - * @deprecated - */ - onVisibleChange?: (visible: boolean, reason: string) => void; - /** - * [v2] 弹窗关闭后的回调 - */ - afterClose?: () => void; - onClose?: (reason: string, e: React.MouseEvent) => void; - /** - * 位于页面的位置 - */ - placement?: 'top' | 'right' | 'bottom' | 'left'; - /** - * 开启v2版本 - */ - v2?: boolean; - - /** - * 内容 - */ - content?: React.ReactNode; -} - -export interface QuickShowRet { - hide: () => void; -} - -export default class Drawer extends React.Component { - static show(config: DrawerProps): QuickShowRet; -} diff --git a/types/dropdown/index.d.ts b/types/dropdown/index.d.ts deleted file mode 100644 index b8f0abc6eb..0000000000 --- a/types/dropdown/index.d.ts +++ /dev/null @@ -1,198 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -export interface DropdownProps extends React.HTMLAttributes, CommonProps { - /** - * 弹层内容 - */ - children?: React.ReactNode; - - /** - * 弹层当前是否显示 - */ - visible?: boolean; - - /** - * 弹层请求关闭时触发事件的回调函数 - */ - onRequestClose?: (type: string, e: {}) => void; - - /** - * 弹层定位的参照元素 - */ - target?: any; - - /** - * 弹层相对于触发元素的定位, 详见 Overlay 的定位部分 - */ - align?: string; - - /** - * 弹层相对于触发元素定位的微调 - */ - offset?: Array; - - /** - * 渲染组件的容器,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点 - */ - container?: any; - - /** - * 是否显示遮罩 - */ - hasMask?: boolean; - - /** - * 是否支持 esc 按键关闭弹层 - */ - canCloseByEsc?: boolean; - - /** - * 点击弹层外的区域是否关闭弹层,不显示遮罩时生效 - */ - canCloseByOutSideClick?: boolean; - - /** - * 点击遮罩区域是否关闭弹层,显示遮罩时生效 - */ - canCloseByMask?: boolean; - - /** - * 弹层打开前触发事件的回调函数 - */ - beforeOpen?: () => void; - - /** - * 弹层打开时触发事件的回调函数 - */ - onOpen?: () => void; - - /** - * 弹层打开后触发事件的回调函数, 如果有动画,则在动画结束后触发 - */ - afterOpen?: () => void; - - /** - * 弹层关闭前触发事件的回调函数 - */ - beforeClose?: () => void; - - /** - * 弹层关闭时触发事件的回调函数 - */ - onClose?: () => void; - - /** - * 弹层关闭后触发事件的回调函数, 如果有动画,则在动画结束后触发 - */ - afterClose?: () => void; - - /** - * 弹层定位完成前触发的事件 - */ - beforePosition?: () => void; - - /** - * 弹层定位完成时触发的事件 - */ - onPosition?: (config: {}, node: {}) => void; - - /** - * 是否在每次弹层重新渲染后强制更新定位信息,一般用于弹层内容区域大小发生变化时,仍需保持原来的定位方式 - */ - shouldUpdatePosition?: boolean; - - /** - * 弹层打开时是否让其中的元素自动获取焦点 - */ - autoFocus?: boolean; - - /** - * 当弹层由于页面滚动等情况不在可视区域时,是否自动调整定位以出现在可视区域 - */ - needAdjust?: boolean; - - /** - * 是否禁用页面滚动 - */ - disableScroll?: boolean; - - /** - * 隐藏时是否保留子节点 - */ - cache?: boolean; - - /** - * 安全节点,当点击 document 的时候,如果包含该节点则不会关闭弹层,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组 - */ - safeNode?: any; - - /** - * 弹层的根节点的样式类 - */ - wrapperClassName?: string; - - /** - * 弹层的根节点的内联样式 - */ - wrapperStyle?: React.CSSProperties; - - /** - * 配置动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画 - */ - animation?: any | boolean; - - /** - * 触发弹层显示或者隐藏的元素 - */ - trigger?: React.ReactNode; - - /** - * 触发弹层显示或隐藏的操作类型,可以是 'click','hover',或者它们组成的数组,如 ['hover', 'click'] - */ - triggerType?: string | Array; - - /** - * 当 triggerType 为 click 时才生效,可自定义触发弹层显示的键盘码 - */ - triggerClickKeycode?: number | Array; - - /** - * 弹层默认是否显示 - */ - defaultVisible?: boolean; - - /** - * 开启后,默认点击children弹窗就收起 0.x 2.x中默认是true - */ - autoClose?: boolean; - - /** - * 弹层显示或隐藏时触发的回调函数 - */ - onVisibleChange?: (visible: boolean, type: string, e: {}) => void; - - /** - * 设置此属性,弹层无法显示或隐藏 - */ - disabled?: boolean; - - /** - * 弹层显示或隐藏的延时时间(以毫秒为单位),在 triggerType 被设置为 hover 时生效 - */ - delay?: number; - - /** - * trigger 是否可以关闭弹层 - */ - canCloseByTrigger?: boolean; - - /** - * 是否跟随trigger滚动 - */ - followTrigger?: boolean; -} - -export default class Dropdown extends React.Component {} diff --git a/types/field/index.d.ts b/types/field/index.d.ts deleted file mode 100644 index 8161752e3f..0000000000 --- a/types/field/index.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -/// - -import { FieldOption, WatchCallback } from '@alifd/field'; -import innerField from '@alifd/field'; - -export * from '@alifd/field'; -export default class Field extends innerField { - /** - * - * @param contextComp 传入调用class的this - * @param options 一些事件配置 - */ - constructor(contextComp: any, options?: FieldOption); - - /** - * 校验 - * @param callback - */ - validate(callback?: (errors: object[], values: object) => void): void; - - /** - * 校验 - * @param names - * @param callback - */ - validate( - names?: string[] | string, - callback?: (errors: object[], values: object) => void - ): void; - - /** - * react hooks 风格使用 Field - * @param options - */ - static useField(options?: FieldOption): Field; - - /** - * react hooks 风格使用 watch - * @param field 指定 field - * @param names 需要监听的字段 name 列表(name 需要在 field 内注册才能生效) - * @param callback 字段值发生变化回调 - */ - static useWatch(field: Field, names: string[], callback: WatchCallback): void; -} diff --git a/types/form/index.d.ts b/types/form/index.d.ts deleted file mode 100644 index 2e895a2ef7..0000000000 --- a/types/form/index.d.ts +++ /dev/null @@ -1,566 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { data } from '../checkbox'; -import { ButtonProps } from '../button'; - -type SpanOffset = { - span?: string | number; - offset?: string | number; - [propName: string]: any; -}; - -export interface ItemProps extends React.HTMLAttributes, CommonProps { - /** - * 表单名 - */ - name?: string; - - /** - * 样式前缀 - */ - prefix?: string; - - /** - * label 标签的文本 - */ - label?: React.ReactNode; - - /** - * label 标签布局,通 `

` 组件,设置 span offset 值,如 {span: 8, offset: 16},该项仅在垂直表单有效 - */ - labelCol?: SpanOffset; - - /** - * 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol - */ - wrapperCol?: SpanOffset; - - /** - * 自定义提示信息,如不设置,则会根据校验规则自动生成. - */ - help?: React.ReactNode; - - /** - * 额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面 - */ - extra?: React.ReactNode; - - /** - * 校验状态,如不设置,则会根据校验规则自动生成 - */ - validateState?: 'error' | 'success' | 'loading' | 'warning'; - - /** - * 配合 validateState 属性使用,是否展示 success/loading 的校验状态图标, 目前只有Input支持 - */ - hasFeedback?: boolean; - - /** - * 自定义内联样式 - */ - style?: React.CSSProperties; - - /** - * node 或者 function(values) - */ - children?: React.ReactNode | (() => void); - - /** - * 单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。 - */ - size?: 'large' | 'small' | 'medium'; - - /** - * 标签的位置 - */ - labelAlign?: 'top' | 'left' | 'inset'; - - /** - * 标签的左右对齐方式 - */ - labelTextAlign?: 'left' | 'right'; - - /** - * 扩展class - */ - className?: string; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * [表单校验] 不能为空 - */ - required?: boolean; - - /** - * required 的星号是否显示 - */ - asterisk?: boolean; - - /** - * required 自定义错误信息 - */ - requiredMessage?: string; - - /** - * required 自定义触发方式 - */ - requiredTrigger?: string | Array; - - /** - * [表单校验] 最小值 - */ - min?: number; - - /** - * [表单校验] 最大值 - */ - max?: number; - - /** - * min/max 自定义错误信息 - */ - minmaxMessage?: string; - - /** - * min/max 自定义触发方式 - */ - minmaxTrigger?: string | Array; - - /** - * [表单校验] 字符串最小长度 / 数组最小个数 - */ - minLength?: number; - - /** - * [表单校验] 字符串最大长度 / 数组最大个数 - */ - maxLength?: number; - - /** - * minLength/maxLength 自定义错误信息 - */ - minmaxLengthMessage?: string; - - /** - * minLength/maxLength 自定义触发方式 - */ - minmaxLengthTrigger?: string | Array; - - /** - * [表单校验] 字符串精确长度 / 数组精确个数 - */ - length?: number; - - /** - * length 自定义错误信息 - */ - lengthMessage?: string; - - /** - * length 自定义触发方式 - */ - lengthTrigger?: string | Array; - - /** - * 正则校验 - */ - pattern?: any; - - /** - * pattern 自定义错误信息 - */ - patternMessage?: string; - - /** - * pattern 自定义触发方式 - */ - patternTrigger?: string | Array; - - /** - * [表单校验] 四种常用的 pattern - */ - format?: 'number' | 'email' | 'url' | 'tel'; - - /** - * format 自定义错误信息 - */ - formatMessage?: string; - - /** - * format 自定义触发方式 - */ - formatTrigger?: string | Array; - - /** - * [表单校验] 自定义校验函数 - */ - validator?: (rule: any, value: any, callback: any) => void; - - /** - * validator 自定义触发方式 - */ - validatorTrigger?: string | Array; - - /** - * 是否修改数据时自动触发校验 - */ - autoValidate?: boolean; - - /** - * 在响应式布局下,且label在左边时,label的宽度是多少 - */ - labelWidth?: number | string; - - /** - * 在响应式布局模式下,表单项占多少列 - */ - colSpan?: number; - - /** - * 是否开启预览态 - */ - isPreview?: boolean; - - /** - * 预览态模式下渲染的内容 - * @param {any} value 根据包裹的组件的 value 类型而决定 - */ - renderPreview?: ( - values: number | string | data | Array, - props: any - ) => any; - - /** - * 是否使用 label 替换校验信息的 name 字段 - */ - useLabelForErrorMessage?: boolean; - - /** - * 倾向使用 item 的 margin 空间来展示 help - * @default false - * @version 1.26.37 - */ - preferMarginToDisplayHelp?: boolean; - - /** - * 表示是否显示 label 后面的冒号 - */ - colon?: boolean; - - /** - * 子元素的 value 名称 - */ - valueName?: string; - - /** - * 单个 Item 中表单类组件宽度是否是 100% - */ - fullWidth?: boolean; -} - -export class Item extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes, ButtonProps { - onClick?: any; -} - -export interface SubmitProps extends HTMLAttributesWeak, CommonProps { - /** - * 按钮的类型 - */ - type?: 'primary' | 'secondary' | 'normal'; - - /** - * 按钮的尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 按钮中 Icon 的尺寸,用于替代 Icon 的默认大小 - */ - iconSize?: 'xxs' | 'xs' | 'small' | 'medium' | 'large' | 'xl' | 'xxl' | 'xxxl'; - - /** - * 当 component = 'button' 时,设置 button 标签的 type 值 - */ - htmlType?: 'submit' | 'reset' | 'button'; - - /** - * 设置标签类型 - */ - component?: 'button' | 'a'; - - /** - * 设置按钮的载入状态 - */ - loading?: boolean; - - /** - * 是否为幽灵按钮 - */ - ghost?: true | false | 'light' | 'dark'; - - /** - * 是否为文本按钮 - */ - text?: boolean; - - /** - * 是否为警告按钮 - */ - warning?: boolean; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 点击提交后触发 - */ - onClick?: (value: any, errors: any, field: any) => void; - - /** - * 是否校验/需要校验的 name 数组 - */ - validate?: boolean | Array; - - /** - * 自定义 field (在 Form 内不需要设置) - */ - field?: any; -} - -export class Submit extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - onClick?: any; -} - -export interface ResetProps extends HTMLAttributesWeak, CommonProps { - /** - * 按钮的类型 - */ - type?: 'primary' | 'secondary' | 'normal'; - - /** - * 按钮的尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 按钮中 Icon 的尺寸,用于替代 Icon 的默认大小 - */ - iconSize?: - | number - | 'xxs' - | 'xs' - | 'small' - | 'medium' - | 'large' - | 'xl' - | 'xxl' - | 'xxxl' - | 'inherit'; - - /** - * 当 component = 'button' 时,设置 button 标签的 type 值 - */ - htmlType?: 'submit' | 'reset' | 'button'; - - /** - * 设置标签类型 - */ - component?: 'button' | 'a'; - - /** - * 设置按钮的载入状态 - */ - loading?: boolean; - - /** - * 是否为幽灵按钮 - */ - ghost?: true | false | 'light' | 'dark'; - - /** - * 是否为文本按钮 - */ - text?: boolean; - - /** - * 是否为警告按钮 - */ - warning?: boolean; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 点击提交后触发 - */ - onClick?: () => void; - - /** - * 自定义重置的字段 - */ - names?: Array; - - /** - * 返回默认值 - */ - toDefault?: boolean; - - /** - * 自定义 field (在 Form 内不需要设置) - */ - field?: any; -} - -export class Reset extends React.Component {} - -export interface ErrorProps extends React.HTMLAttributes, CommonProps { - /** - * 表单名 - */ - name?: string | Array; - - /** - * 自定义 field (在 Form 内不需要设置) - */ - field?: any; - - /** - * 自定义错误渲染, 可以是 node 或者 function(errors, state) - */ - children?: React.ReactNode | (() => void); -} - -export class Error extends React.Component {} -interface HTMLAttributesWeak extends React.HTMLAttributes { - onChange?: any; -} - -export interface FormProps extends HTMLAttributesWeak, CommonProps { - /** - * 样式前缀 - */ - prefix?: string; - - /** - * 内联表单 - */ - inline?: boolean; - fullWidth?: boolean; - colon?: boolean; - - /** - * 单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。 - */ - size?: 'large' | 'medium' | 'small'; - - /** - * 标签的位置 - */ - labelAlign?: 'top' | 'left' | 'inset'; - - /** - * 标签的左右对齐方式 - */ - labelTextAlign?: 'left' | 'right'; - - /** - * 经 `new Field(this)` 初始化后,直接传给 Form 即可 用到表单校验则不可忽略此项 - */ - field?: any; - - /** - * 保存 Form 自动生成的 field 对象 - */ - saveField?: () => void; - - /** - * 控制第一级 Item 的 labelCol - */ - labelCol?: SpanOffset; - - /** - * 控制第一级 Item 的 wrapperCol - */ - wrapperCol?: SpanOffset; - - /** - * form内有 `htmlType="submit"` 的元素的时候会触发 - */ - onSubmit?: React.FormEventHandler; - - /** - * 子元素 - */ - children?: any; - - /** - * 扩展class - */ - className?: string; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 自定义内联样式 - */ - style?: React.CSSProperties; - - /** - * 表单数值 - */ - value?: any; - - /** - * 表单变化回调 - */ - onChange?: (values: any, item: any) => void; - - /** - * 设置标签类型 - */ - component?: string | (() => void); - /** - * 是否开启内置的响应式布局 (使用ResponsiveGrid) - */ - responsive?: boolean; - // 在 responsive模式下,透传给 ResponsiveGrid的, 表示 每个 cell 之间的间距, [bottom&top, right&left] - gap?: number | Array; - /** - * 是否开启预览态 - */ - isPreview?: boolean; - /** - * 是否使用 label 替换校验信息的 name 字段 - */ - useLabelForErrorMessage?: boolean; - /** - * 倾向使用 item 的 margin 空间来展示 help - * @default false - * @version 1.26.37 - */ - preferMarginToDisplayHelp?: boolean; -} - -export default class Form extends React.Component { - static Item: typeof Item; - static Submit: typeof Submit; - static Reset: typeof Reset; - static Error: typeof Error; -} diff --git a/types/grid/index.d.ts b/types/grid/index.d.ts deleted file mode 100644 index e3b022ee61..0000000000 --- a/types/grid/index.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - hidden?: any; -} - -export interface RowProps extends HTMLAttributesWeak, CommonProps { - /** - * 行内容 - */ - children?: React.ReactNode; - - /** - * 列间隔 - */ - gutter?: string | number; - - /** - * 列在行中宽度溢出后是否换行 - */ - wrap?: boolean; - - /** - * 行在某一断点下宽度是否保持不变(默认行宽度随视口变化而变化) - */ - fixed?: boolean; - - /** - * 固定行的宽度为某一断点的宽度,不受视口影响而变动 - */ - fixedWidth?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl'; - - /** - * (不支持IE9浏览器)多列垂直方向对齐方式 - */ - align?: 'top' | 'center' | 'bottom' | 'baseline' | 'stretch'; - - /** - * (不支持IE9浏览器)行内具有多余空间时的布局方式 - */ - justify?: 'start' | 'center' | 'end' | 'space-between' | 'space-around'; - - /** - * 行在不同断点下的显示与隐藏

**可选值**:
true(在所有断点下隐藏)
false(在所有断点下显示)
'xs'(在 xs 断点下隐藏)
['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏) - */ - hidden?: boolean | string | Array; - - /** - * 指定以何种元素渲染该节点 - * - 默认为 'div' - */ - component?: string | (() => void); -} - -export class Row extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - hidden?: any; -} - -export interface ColProps extends HTMLAttributesWeak, CommonProps { - /** - * 列内容 - */ - children?: React.ReactNode; - - /** - * 列宽度

**可选值**:
1, 2, 3, ..., 22, 23, 24 - */ - span?: string | number; - - /** - * 固定列宽度,宽度值为20 * 栅格数

**可选值**:
1, 2, 3, ..., 28, 29, 30 - */ - fixedSpan?: string | number; - - /** - * (不支持IE9浏览器)列偏移

**可选值**:
1, 2, 3, ..., 22, 23, 24 - */ - offset?: string | number; - - /** - * (不支持IE9浏览器)固定列偏移,宽度值为20 * 栅格数

**可选值**:
1, 2, 3, ..., 28, 29, 30 - */ - fixedOffset?: string | number; - - /** - * (不支持IE9浏览器)多列垂直方向对齐方式,可覆盖Row的align属性 - */ - align?: 'top' | 'center' | 'bottom' | 'baseline' | 'stretch'; - - /** - * 列在不同断点下的显示与隐藏

**可选值**:
true(在所有断点下隐藏)
false(在所有断点下显示)
'xs'(在 xs 断点下隐藏)
['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏) - */ - hidden?: boolean | string | Array; - - /** - * >=320px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 - */ - xxs?: string | number | {}; - - /** - * >=480px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 - */ - xs?: string | number | {}; - - /** - * >=720px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 - */ - s?: string | number | {}; - - /** - * >=990px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 - */ - m?: string | number | {}; - - /** - * >=1200px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 - */ - l?: string | number | {}; - - /** - * >=1500px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 - */ - xl?: string | number | {}; - - /** - * 指定以何种元素渲染该节点,默认为 'div' - */ - component?: string | (() => void); -} - -export class Col extends React.Component {} -export interface GridProps extends React.HTMLAttributes, CommonProps {} - -export default class Grid extends React.Component { - static Row: typeof Row; - static Col: typeof Col; -} diff --git a/types/icon/index.d.ts b/types/icon/index.d.ts deleted file mode 100644 index ac6e5de3c7..0000000000 --- a/types/icon/index.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -export interface IconProps extends React.HTMLAttributes, CommonProps { - /** - * 指定显示哪种图标 - */ - type?: string; - - /** - * 指定图标大小 - */ - size?: number | 'xxs' | 'xs' | 'small' | 'medium' | 'large' | 'xl' | 'xxl' | 'xxxl' | 'inherit'; -} - -export interface iconOptions { - /** - * 如果页面上已经有同 id 的标签,那么不会再加载这个图标库 - */ - scriptUrl: string; -} - -export class CustomIcon extends React.Component {} - -export default class Icon extends React.Component { - static createFromIconfontCN(options: iconOptions): typeof CustomIcon; -} diff --git a/types/index.d.ts b/types/index.d.ts deleted file mode 100644 index 1f0f5d54a9..0000000000 --- a/types/index.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -export { default as Affix } from './affix'; -export { default as Animate } from './animate'; -export { default as Badge } from './badge'; -export { default as Balloon } from './balloon'; -export { default as Breadcrumb } from './breadcrumb'; -export { default as Button } from './button'; -export { default as Calendar } from './calendar'; -export { default as Card } from './card'; -export { default as Cascader } from './cascader'; -export { default as CascaderSelect } from './cascader-select'; -export { default as Checkbox } from './checkbox'; -export { default as Collapse } from './collapse'; -export { default as ConfigProvider } from './config-provider'; -export { default as DatePicker } from './date-picker'; -export { default as Dialog } from './dialog'; -export { default as Dropdown } from './dropdown'; -export { default as Drawer } from './drawer'; -export { default as Field } from './field'; -export { default as Form } from './form'; -export { default as Grid } from './grid'; -export { default as Icon } from './icon'; -export { default as Input } from './input'; -export { default as Loading } from './loading'; -export { default as Menu } from './menu'; -export { default as MenuButton } from './menu-button'; -export { default as Message } from './message'; -export { default as Nav } from './nav'; -export { default as NumberPicker } from './number-picker'; -export { default as Overlay } from './overlay'; -export { default as Pagination } from './pagination'; -export { default as Paragraph } from './paragraph'; -export { default as Progress } from './progress'; -export { default as Radio } from './radio'; -export { default as Range } from './range'; -export { default as Rating } from './rating'; -export { default as Search } from './search'; -export { default as Select } from './select'; -export { default as Shell } from './shell'; -export { default as Slider } from './slider'; -export { default as SplitButton } from './split-button'; -export { default as Step } from './step'; -export { default as Switch } from './switch'; -export { default as Tab } from './tab'; -export { default as Table } from './table'; -export { default as Tag } from './tag'; -export { default as TimePicker } from './time-picker'; -export { default as Timeline } from './timeline'; -export { default as Transfer } from './transfer'; -export { default as Tree } from './tree'; -export { default as TreeSelect } from './tree-select'; -export { default as Typography } from './typography'; -export { default as Upload } from './upload'; -export { default as VirtualList } from './virtual-list'; -export { default as Notification } from './notification'; -export { default as Divider } from './divider'; -export { default as Avatar } from './avatar'; -export { default as ResponsiveGrid } from './responsive-grid'; -export { default as Box } from './box'; -export { default as List } from './list'; -export { default as TimePicker2 } from './time-picker2'; -export { default as DatePicker2 } from './date-picker2'; -export { default as Calendar2 } from './calendar2'; -export type { CommonProps, IconsType } from './util/types'; -export type { Locale } from './locale/types'; diff --git a/types/input/index.d.ts b/types/input/index.d.ts deleted file mode 100644 index 85a093c57e..0000000000 --- a/types/input/index.d.ts +++ /dev/null @@ -1,373 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.InputHTMLAttributes { - defaultValue?: any; - onChange?: any; - onKeyDown?: any; - size?: any; -} - -export interface TextAreaProps extends HTMLAttributesWeak, CommonProps { - /** - * 当前值 - */ - value?: string | number; - - /** - * 初始化值 - */ - defaultValue?: string | number; - - /** - * 发生改变的时候触发的回调 - */ - onChange?: (value: string, e: React.ChangeEvent, type?: string) => void; - - /** - * 键盘按下的时候触发的回调 - */ - onKeyDown?: (e: React.KeyboardEvent, opts: {}) => void; - - /** - * 禁用状态 - */ - disabled?: boolean; - - /** - * 最大长度 - */ - maxLength?: number; - - /** - * 是否展现最大长度样式 - */ - hasLimitHint?: boolean; - showLimitHint?: boolean; - - /** - * 当设置了maxLength时,是否截断超出字符串 - */ - cutString?: boolean; - - /** - * 只读 - */ - readOnly?: boolean; - - /** - * onChange返回会自动去除头尾空字符 - */ - trim?: boolean; - - /** - * 输入提示 - */ - placeholder?: string; - - /** - * 获取焦点时候触发的回调 - */ - onFocus?: (e: React.FocusEvent) => void; - - /** - * 失去焦点时候触发的回调 - */ - onBlur?: (e: React.FocusEvent) => void; - - /** - * 自定义字符串计算长度方式 - */ - getValueLength?: (value: string) => number; - - /** - * 自定义class - */ - className?: string; - - /** - * 自定义内联样式 - */ - style?: React.CSSProperties; - - /** - * 原生type - */ - htmlType?: string; - - /** - * name - */ - name?: string; - - /** - * 状态 - */ - state?: 'error' | 'warning'; - - /** - * 是否有边框 - */ - hasBorder?: boolean; - - /** - * 自动高度 true / {minRows: 2, maxRows: 4} - */ - autoHeight?: boolean | {}; - - /** - * 多行文本框高度
(不要直接用height设置多行文本框的高度, ie9 10会有兼容性问题) - */ - rows?: number; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - renderPreview?: (value: string | number) => React.ReactNode; - - /** - * 开启后会过滤输入法中间字母状态,文字输入完成后才会触发 onChange - */ - composition?: boolean; -} - -export class TextArea extends React.Component {} - -export interface GroupProps extends React.HTMLAttributes, CommonProps { - /** - * 样式前缀 - */ - prefix?: string; - - /** - * 输入框前附加内容 - */ - addonBefore?: React.ReactNode; - - /** - * 输入框前附加内容css - */ - addonBeforeClassName?: string; - - /** - * 输入框后附加内容 - */ - addonAfter?: React.ReactNode; - - /** - * 输入框后额外css - */ - addonAfterClassName?: string; - - /** - * rtl - */ - rtl?: boolean; -} - -export class Group extends React.Component {} - -export interface InputProps extends HTMLAttributesWeak, CommonProps { - /** - * 当前值 - */ - value?: string | number; - - /** - * 初始化值 - */ - defaultValue?: string | number; - - /** - * 发生改变的时候触发的回调 - */ - onChange?: (value: string, e: React.ChangeEvent, type?: string) => void; - - /** - * 键盘按下的时候触发的回调 - */ - onKeyDown?: (e: React.KeyboardEvent, opts: {}) => void; - - /** - * 禁用状态 - */ - disabled?: boolean; - - /** - * 最大长度 - */ - maxLength?: number; - - /** - * 是否展现最大长度样式 - */ - hasLimitHint?: boolean; - showLimitHint?: boolean; - - /** - * 当设置了maxLength时,是否截断超出字符串 - */ - cutString?: boolean; - - /** - * 只读 - */ - readOnly?: boolean; - - /** - * onChange返回会自动去除头尾空字符 - */ - trim?: boolean; - - /** - * 输入提示 - */ - placeholder?: string; - - /** - * 获取焦点时候触发的回调 - */ - onFocus?: (e: React.FocusEvent) => void; - - /** - * 失去焦点时候触发的回调 - */ - onBlur?: (e: React.FocusEvent) => void; - - /** - * 自定义字符串计算长度方式 - */ - getValueLength?: (value: string) => number; - - /** - * 自定义class - */ - className?: string; - - /** - * 自定义内联样式 - */ - style?: React.CSSProperties; - - /** - * 原生type - */ - htmlType?: string; - - /** - * name - */ - name?: string; - - /** - * 状态 - */ - state?: 'error' | 'loading' | 'success' | 'warning'; - - /** - * label - */ - label?: React.ReactNode; - - /** - * 是否出现clear按钮 - */ - hasClear?: boolean; - - /** - * 是否有边框 - */ - hasBorder?: boolean; - - /** - * 尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 按下回车的回调 - */ - onPressEnter?: (e: React.KeyboardEvent) => void; - - /** - * 水印 (Icon的type类型,和hasClear占用一个地方) - */ - hint?: string | React.ReactNode; - - /** - * 文字前附加内容 - */ - innerBefore?: React.ReactNode; - - /** - * 文字后附加内容 - */ - innerAfter?: React.ReactNode; - - /** - * 输入框前附加内容 - */ - addonBefore?: React.ReactNode; - - /** - * 输入框后附加内容 - */ - addonAfter?: React.ReactNode; - - /** - * 输入框前附加文字 - */ - addonTextBefore?: React.ReactNode; - - /** - * 输入框后附加文字 - */ - addonTextAfter?: React.ReactNode; - - /** - * (原生input支持) - */ - autoComplete?: string; - - /** - * 自动聚焦(原生input支持) - */ - autoFocus?: boolean; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - renderPreview?: (value: string | number) => React.ReactNode; - - /** - * 开启后会过滤输入法中间字母状态,文字输入完成后才会触发 onChange - * @version 1.23 - */ - composition?: boolean; - - /** - * hover展示clear (配合 hasClear=true使用) - * @version 1.24 - */ - hoverShowClear?: boolean; -} -export interface PasswordProps extends InputProps { - /** - * 是否展示切换按钮 - */ - showToggle?: boolean; -} -export class Password extends React.Component {} - -export default class Input extends React.Component { - static TextArea: typeof TextArea; - static Group: typeof Group; - static Password: typeof Password; - getInputNode: () => HTMLInputElement; -} diff --git a/types/list/index.d.ts b/types/list/index.d.ts deleted file mode 100644 index fb4d03d35a..0000000000 --- a/types/list/index.d.ts +++ /dev/null @@ -1,69 +0,0 @@ -/// - -import { ReactNode, Component, ComponentType } from 'react'; -import { LoadingProps } from '../loading'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - title?: any; -} - -export interface ListProps extends React.HTMLAttributes, CommonProps { - /** - * 列表头部 - */ - header?: ReactNode; - /** - * 列表尾部 - */ - footer?: ReactNode; - /** - * 列表尺寸 - */ - size?: 'medium' | 'small'; - /** - * 是否显示分割线 - */ - divider?: boolean; - /** - * children - */ - children?: ReactNode; - dataSource?: any[]; - /** - * 当使用 dataSource 时,可以用 renderItem 自定义渲染列表项 - * @param {Any} current 当前遍历的项 - * @param {Number} index 当前遍历的项的索引 - */ - renderItem?: (current: any, index: number) => any; - loading?: boolean; - /** - * 自定义 Loading 组件 - * 请务必透传 props, 使用方式: loadingComponent={props => } - */ - loadingComponent?: (props: LoadingProps) => ReactNode; - emptyContent?: ReactNode; -} - -export interface ListItemProps extends HTMLAttributesWeak, CommonProps { - /** - * 列表元素的标题 - */ - title?: ReactNode; - /** - * 列表元素的描述内容 - */ - description?: ReactNode; - /** - * 列表元素的头像 / 图标 / 图片内容 - */ - media?: ReactNode; - /** - * 额外内容 - */ - extra?: ReactNode; -} - -export default class List extends Component { - static Item: ComponentType; -} diff --git a/types/loading/index.d.ts b/types/loading/index.d.ts deleted file mode 100644 index d19eb60c28..0000000000 --- a/types/loading/index.d.ts +++ /dev/null @@ -1,90 +0,0 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import type { LoadingProps } from './types'; -/** Loading */ -declare class Loading extends React.Component { - static propTypes: { - prefix: PropTypes.Requireable; - tip: PropTypes.Requireable; - tipAlign: PropTypes.Requireable; - visible: PropTypes.Requireable; - onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>; - className: PropTypes.Requireable; - style: PropTypes.Requireable; - size: PropTypes.Requireable; - indicator: PropTypes.Requireable; - color: PropTypes.Requireable; - fullScreen: PropTypes.Requireable; - disableScroll: PropTypes.Requireable; - safeNode: PropTypes.Requireable; - children: PropTypes.Requireable; - inline: PropTypes.Requireable; - rtl: PropTypes.Requireable; - locale: PropTypes.Requireable; - defaultPropsConfig: PropTypes.Requireable; - errorBoundary: PropTypes.Requireable>; - pure: PropTypes.Requireable; - warning: PropTypes.Requireable; - device: PropTypes.Requireable; - popupContainer: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - visible: boolean; - onVisibleChange: () => void; - animate: null; - tipAlign: string; - size: string; - inline: boolean; - disableScroll: boolean; - }; - render(): React.JSX.Element | React.ReactNode[]; -} -export type { LoadingProps }; -declare const _default: { - new ( - props: LoadingProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - LoadingProps & import('../config-provider/types').ComponentCommonProps, - Loading - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - prefix: PropTypes.Requireable; - tip: PropTypes.Requireable; - tipAlign: PropTypes.Requireable; - visible: PropTypes.Requireable; - onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>; - className: PropTypes.Requireable; - style: PropTypes.Requireable; - size: PropTypes.Requireable; - indicator: PropTypes.Requireable; - color: PropTypes.Requireable; - fullScreen: PropTypes.Requireable; - disableScroll: PropTypes.Requireable; - safeNode: PropTypes.Requireable; - children: PropTypes.Requireable; - inline: PropTypes.Requireable; - rtl: PropTypes.Requireable; - locale: PropTypes.Requireable; - defaultPropsConfig: PropTypes.Requireable; - errorBoundary: PropTypes.Requireable>; - pure: PropTypes.Requireable; - warning: PropTypes.Requireable; - device: PropTypes.Requireable; - popupContainer: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - visible: boolean; - onVisibleChange: () => void; - animate: null; - tipAlign: string; - size: string; - inline: boolean; - disableScroll: boolean; - }; -}; -export default _default; diff --git a/types/loading/mobile/index.d.ts b/types/loading/mobile/index.d.ts deleted file mode 100644 index fcb71fd3fc..0000000000 --- a/types/loading/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const Loading: any; -export default Loading; diff --git a/types/loading/types.d.ts b/types/loading/types.d.ts deleted file mode 100644 index 2be202d452..0000000000 --- a/types/loading/types.d.ts +++ /dev/null @@ -1,87 +0,0 @@ -import * as React from 'react'; -import { CommonProps } from '../util'; -import type { PopupProps } from '../overlay'; -/** - * @api Loading - */ -export interface LoadingProps extends React.HTMLAttributes, CommonProps { - /** - * 自定义内容,可以传入 string 或 reactElement - * @en Tip content - */ - tip?: React.ReactNode | string; - /** - * 自定义内容位置 - * @en Align of tip - * @defaultValue 'bottom' - */ - tipAlign?: 'right' | 'bottom'; - /** - * loading 状态, 默认 true - * @en Loading status, default to true - * @defaultValue true - */ - visible?: boolean; - /** - * 自定义class - * @skip - */ - className?: string; - /** - * 自定义内联样式 - * @skip - */ - style?: React.CSSProperties; - /** - * 设置动画尺寸 - * @en Size of animation indicator - * @defaultValue 'large' - */ - size?: 'large' | 'medium'; - /** - * 自定义动画 - * @en Custom animation indicator - */ - indicator?: React.ReactNode; - /** - * 动画颜色 - * @en Color of animation indicator - */ - color?: string; - /** - * 全屏展示 - * @en Full screen display - */ - fullScreen?: boolean; - /** - * 当点击 document 的时候,如果包含该节点则不会关闭弹层, - * 如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组 - * 是否禁用滚动,仅在 fullScreen 模式下生效 - * @en Is scrolling disabled, only effective in fullScreen mode - * @defaultValue false - */ - disableScroll?: boolean; - /** - * 子元素 - * @en Child elements - */ - children?: React.ReactNode; - /** - * 全屏模式下,loading弹层请求关闭时触发的回调函数 - * @en The callback function triggered when the loading layer request is closed in full screen mode - * @param type - 弹层关闭的来源 - The source of fan layer closure - * @param e - DOM 事件 - DOM events - */ - onVisibleChange?: (type: string, e: React.MouseEvent) => void; - /** - * 安全节点,仅在 fullScreen 时有效 - * @en Security node, only valid at fullScreen - */ - safeNode?: PopupProps['safeNode']; - /** - * @deprecated should loader be displayed inline - * @defaultValue true - * @skip - */ - inline?: boolean; -} diff --git a/types/locale/default.d.ts b/types/locale/default.d.ts deleted file mode 100644 index 7b8d0cdf9a..0000000000 --- a/types/locale/default.d.ts +++ /dev/null @@ -1 +0,0 @@ -export { Locale as default } from './types'; diff --git a/types/locale/en-us.d.ts b/types/locale/en-us.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/en-us.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/id-id.d.ts b/types/locale/id-id.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/id-id.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/it-it.d.ts b/types/locale/it-it.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/it-it.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/ja-jp.d.ts b/types/locale/ja-jp.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/ja-jp.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/ko-kr.d.ts b/types/locale/ko-kr.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/ko-kr.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/mobile/index.d.ts b/types/locale/mobile/index.d.ts deleted file mode 100644 index 1ce28dfed1..0000000000 --- a/types/locale/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Locale as MeetLocale } from '@alifd/meet-react'; -export default MeetLocale; diff --git a/types/locale/ms-my.d.ts b/types/locale/ms-my.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/ms-my.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/pt-pt.d.ts b/types/locale/pt-pt.d.ts deleted file mode 100644 index b5be9560ba..0000000000 --- a/types/locale/pt-pt.d.ts +++ /dev/null @@ -1,179 +0,0 @@ -declare const locale: { - momentLocale: string; - Timeline: { - expand: string; - fold: string; - }; - Balloon: { - close: string; - }; - Card: { - expand: string; - fold: string; - }; - Calendar: { - today: string; - now: string; - ok: string; - clear: string; - month: string; - year: string; - prevYear: string; - nextYear: string; - prevMonth: string; - nextMonth: string; - prevDecade: string; - nextDecade: string; - yearSelectAriaLabel: string; - monthSelectAriaLabel: string; - }; - DatePicker: { - placeholder: string; - datetimePlaceholder: string; - monthPlaceholder: string; - yearPlaceholder: string; - weekPlaceholder: string; - now: string; - selectTime: string; - selectDate: string; - ok: string; - clear: string; - startPlaceholder: string; - endPlaceholder: string; - hour: string; - minute: string; - second: string; - }; - Dialog: { - close: string; - ok: string; - cancel: string; - }; - Drawer: { - close: string; - }; - Message: { - closeAriaLabel: string; - }; - Pagination: { - prev: string; - next: string; - goTo: string; - page: string; - go: string; - total: string; - labelPrev: string; - labelNext: string; - inputAriaLabel: string; - selectAriaLabel: string; - pageSize: string; - }; - Input: { - clear: string; - }; - List: { - empty: string; - }; - Select: { - selectPlaceholder: string; - autoCompletePlaceholder: string; - notFoundContent: string; - maxTagPlaceholder: string; - selectAll: string; - }; - TreeSelect: { - maxTagPlaceholder: string; - shortMaxTagPlaceholder: string; - }; - Table: { - empty: string; - ok: string; - reset: string; - asc: string; - desc: string; - expanded: string; - folded: string; - filter: string; - selectAll: string; - }; - TimePicker: { - placeholder: string; - clear: string; - hour: string; - minute: string; - second: string; - ok: string; - }; - Transfer: { - items: string; - item: string; - moveAll: string; - searchPlaceholder: string; - moveToLeft: string; - moveToRight: string; - }; - Upload: { - card: { - cancel: string; - addPhoto: string; - download: string; - delete: string; - }; - drag: { - text: string; - hint: string; - }; - upload: { - delete: string; - }; - }; - Search: { - buttonText: string; - }; - Tag: { - delete: string; - }; - Rating: { - description: string; - }; - Switch: { - on: string; - off: string; - }; - Tab: { - closeAriaLabel: string; - }; - Form: { - Validate: { - default: string; - required: string; - format: { - number: string; - email: string; - url: string; - tel: string; - }; - number: { - length: string; - min: string; - max: string; - minLength: string; - maxLength: string; - }; - string: { - length: string; - min: string; - max: string; - minLength: string; - maxLength: string; - }; - array: { - length: string; - minLength: string; - maxLength: string; - }; - pattern: string; - }; - }; -}; -export default locale; diff --git a/types/locale/th-th.d.ts b/types/locale/th-th.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/th-th.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/types.d.ts b/types/locale/types.d.ts deleted file mode 100644 index 66067cef9b..0000000000 --- a/types/locale/types.d.ts +++ /dev/null @@ -1,190 +0,0 @@ -export interface ComponentLocaleObject { - [key: string]: string | ComponentLocaleObject | undefined; -} -export interface LocaleConfig { - rtl?: boolean; - momentLocale?: string; - dateLocale?: string; -} -export interface Locale extends LocaleConfig { - Timeline: { - expand: string; - fold: string; - }; - Balloon: { - close: string; - }; - Card: { - expand: string; - fold: string; - }; - Calendar: { - today: string; - now: string; - ok: string; - clear: string; - month: string; - year: string; - prevYear: string; - nextYear: string; - prevMonth: string; - nextMonth: string; - prevDecade: string; - nextDecade: string; - yearSelectAriaLabel: string; - monthSelectAriaLabel: string; - }; - DatePicker: { - placeholder: string; - datetimePlaceholder: string; - monthPlaceholder: string; - weekPlaceholder: string; - yearPlaceholder: string; - now: string; - selectTime: string; - selectDate: string; - ok: string; - clear: string; - startPlaceholder: string; - endPlaceholder: string; - hour: string; - minute: string; - second: string; - }; - Dialog: { - close: string; - ok: string; - cancel: string; - }; - Drawer: { - close: string; - }; - Message: { - closeAriaLabel: string; - }; - Pagination: { - prev: string; - next: string; - goTo: string; - page: string; - go: string; - total: string; - labelPrev: string; - labelNext: string; - inputAriaLabel: string; - selectAriaLabel: string; - pageSize: string; - }; - Input: { - clear: string; - }; - List: { - empty: string; - }; - Select: { - selectPlaceholder: string; - autoCompletePlaceholder: string; - notFoundContent: string; - maxTagPlaceholder: string; - selectAll: string; - }; - TreeSelect: { - maxTagPlaceholder: string; - shortMaxTagPlaceholder: string; - }; - Table: { - empty: string; - ok: string; - reset: string; - asc: string; - desc: string; - expanded: string; - folded: string; - filter: string; - selectAll: string; - }; - TimePicker: { - placeholder: string; - clear: string; - hour: string; - minute: string; - second: string; - ok: string; - }; - Transfer: { - items: string; - item: string; - moveAll: string; - searchPlaceholder: string; - moveToLeft: string; - moveToRight: string; - }; - Upload: { - card: { - cancel: string; - addPhoto: string; - download: string; - delete: string; - }; - drag: { - text: string; - hint: string; - }; - upload: { - delete: string; - }; - }; - Search: { - buttonText: string; - }; - Tag: { - delete: string; - }; - Rating: { - description: string; - }; - Switch: { - on: string; - off: string; - }; - Tab: { - closeAriaLabel: string; - }; - Form: { - Validate: { - default: string; - required: string; - format: { - number: string; - email: string; - url: string; - tel: string; - }; - number: { - length: string; - min: string; - max: string; - minLength: string; - maxLength: string; - }; - string: { - length: string; - min: string; - max: string; - minLength: string; - maxLength: string; - }; - array: { - length: string; - minLength: string; - maxLength: string; - }; - pattern: string; - }; - }; - [key: string]: ComponentLocaleObject | boolean | string | undefined; -} -/** - * @deprecated type locale is deprecated, use Locale instead - */ -export type locale = Locale; diff --git a/types/locale/vi-vn.d.ts b/types/locale/vi-vn.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/vi-vn.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/zh-cn.d.ts b/types/locale/zh-cn.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/zh-cn.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/zh-hk.d.ts b/types/locale/zh-hk.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/zh-hk.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/locale/zh-tw.d.ts b/types/locale/zh-tw.d.ts deleted file mode 100644 index 8a2beb9968..0000000000 --- a/types/locale/zh-tw.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Locale } from './types'; -declare const locale: Locale; -export default locale; diff --git a/types/menu-button/index.d.ts b/types/menu-button/index.d.ts deleted file mode 100644 index 5668b908c2..0000000000 --- a/types/menu-button/index.d.ts +++ /dev/null @@ -1,100 +0,0 @@ -/// - -import * as React from 'react'; -import { Item, Group, Divider, MenuProps } from '../menu'; -import { CommonProps } from '../util'; -import { ButtonProps } from '../button'; -import { PopupProps } from '../overlay'; - -export interface MenuButtonProps extends Omit, CommonProps { - /** - * 按钮上的文本内容 - */ - label?: React.ReactNode; - - /** - * 弹层是否与按钮宽度相同 - */ - autoWidth?: boolean; - - /** - * 弹层触发方式 - */ - popupTriggerType?: 'click' | 'hover'; - - /** - * 弹层容器 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层展开状态 - */ - visible?: boolean; - - /** - * 弹层默认是否展开 - */ - defaultVisible?: boolean; - - /** - * 弹层在显示和隐藏触发的事件 - */ - onVisibleChange?: (visible: boolean, type: string) => void; - - /** - * 弹层自定义样式 - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层自定义样式类 - */ - popupClassName?: string; - - /** - * 弹层属性透传 - */ - popupProps?: PopupProps; - - /** - * 菜单是否跟随滚动 - */ - followTrigger?: boolean; - - /** - * 默认激活的菜单项(用法同 Menu 非受控) - */ - defaultSelectedKeys?: Array; - - /** - * 激活的菜单项(用法同 Menu 受控) - */ - selectedKeys?: string | Array; - - /** - * 菜单的选择模式,同 Menu - */ - selectMode?: 'single' | 'multiple'; - - /** - * 点击菜单项后的回调,同 Menu - */ - onItemClick?: (key: string, item: any, event: React.MouseEvent) => void; - - /** - * 选择菜单后的回调,同 Menu - */ - onSelect?: (selectedKeys: Array, item: any, extra: any) => void; - - /** - * 菜单属性透传 - */ - menuProps?: MenuProps; -} - -export default class MenuButton extends React.Component { - static Item: typeof Item; - static Group: typeof Group; - static Divider: typeof Divider; -} diff --git a/types/menu/index.d.ts b/types/menu/index.d.ts deleted file mode 100644 index 9ea4f6e14c..0000000000 --- a/types/menu/index.d.ts +++ /dev/null @@ -1,336 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; - -export interface ItemProps extends React.HTMLAttributes, CommonProps { - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 帮助文本 - */ - helper?: React.ReactNode; - - /** - * 菜单项标签内容 - */ - children?: React.ReactNode; -} - -export class Item extends React.Component {} - -export interface SubMenuProps extends React.HTMLAttributes, CommonProps { - /** - * 标签内容 - */ - label?: React.ReactNode; - - /** - * 是否可选,该属性仅在设置 Menu 组件 selectMode 属性后生效 - */ - selectable?: boolean; - - /** - * 子菜单打开方式,如果设置会覆盖 Menu 上的同名属性 - */ - mode?: 'inline' | 'popup'; - - /** - * 菜单项或下一级子菜单 - */ - children?: React.ReactNode; -} - -export class SubMenu extends React.Component {} - -export interface PopupItemProps extends React.HTMLAttributes, CommonProps { - /** - * 标签内容 - */ - label?: React.ReactNode; - - /** - * 自定义弹层内容 - */ - children?: React.ReactNode; - - /** - * 子菜单打开的触发行为 - */ - triggerType?: 'click' | 'hover'; -} - -export class PopupItem extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - onChange?: any; -} - -export interface CheckboxItemProps extends HTMLAttributesWeak, CommonProps { - /** - * 是否选中 - */ - checked?: boolean; - - /** - * 是否半选中 - */ - indeterminate?: boolean; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 选中或取消选中触发的回调函数 - */ - onChange?: (checked: boolean, event: React.MouseEvent) => void; - - /** - * 帮助文本 - */ - helper?: React.ReactNode; - - /** - * 标签内容 - */ - children?: React.ReactNode; -} - -export class CheckboxItem extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - onChange?: any; -} - -export interface RadioItemProps extends HTMLAttributesWeak, CommonProps { - /** - * 是否选中 - */ - checked?: boolean; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 选中或取消选中触发的回调函数 - */ - onChange?: (checked: boolean, event: {}) => void; - - /** - * 帮助文本 - */ - helper?: React.ReactNode; - - /** - * 标签内容 - */ - children?: React.ReactNode; -} - -export class RadioItem extends React.Component {} - -export interface GroupProps extends React.HTMLAttributes, CommonProps { - /** - * 标签内容 - */ - label?: React.ReactNode; - - /** - * 菜单项 - */ - children?: React.ReactNode; -} - -export class Group extends React.Component {} - -export interface DividerProps extends React.HTMLAttributes, CommonProps {} - -export class Divider extends React.Component {} -interface HTMLAttributesWeak extends React.HTMLAttributes { - onSelect?: any; -} - -export interface MenuProps extends HTMLAttributesWeak, CommonProps { - /** - * 菜单项和子菜单 - */ - children?: React.ReactNode; - - /** - * 点击菜单项触发的回调函数 - */ - onItemClick?: (key: string, item: any, event: React.MouseEvent) => void; - - /** - * 当前打开的子菜单的 key 值 - */ - openKeys?: string | Array; - - /** - * 初始打开的子菜单的 key 值 - */ - defaultOpenKeys?: string | Array; - - /** - * 初始展开所有的子菜单,只在 mode 设置为 'inline' 以及 openMode 设置为 'multiple' 下生效,优先级高于 defaultOpenKeys - */ - defaultOpenAll?: boolean; - - /** - * 打开或关闭子菜单触发的回调函数 - */ - onOpen?: (key: string[], extra: { key: string; open: boolean }) => void; - - /** - * 子菜单打开的模式 - */ - mode?: 'inline' | 'popup'; - - /** - * 子菜单打开的触发行为 - */ - triggerType?: 'click' | 'hover'; - - /** - * 展开内连子菜单的模式,同时可以展开一个子菜单还是多个子菜单,该属性仅在 mode 为 inline 时生效 - */ - openMode?: 'single' | 'multiple'; - - /** - * 内连子菜单缩进距离 - */ - inlineIndent?: number; - - /** - * 是否自动让弹层的宽度和菜单项保持一致,如果弹层的宽度比菜单项小则和菜单项保持一致,如果宽度大于菜单项则不做处理 - */ - popupAutoWidth?: boolean; - - /** - * 弹层的对齐方式 - */ - popupAlign?: 'follow' | 'outside'; - - /** - * 弹层自定义 props - */ - popupProps?: PopupProps | (() => void); - - /** - * 弹出子菜单自定义 className - */ - popupClassName?: string; - - /** - * 弹出子菜单自定义 style - */ - popupStyle?: React.CSSProperties; - - /** - * 当前选中菜单项的 key 值 - */ - selectedKeys?: string | Array; - - /** - * 初始选中菜单项的 key 值 - */ - defaultSelectedKeys?: string | Array; - - /** - * 选中或取消选中菜单项触发的回调函数 - */ - onSelect?: ( - selectedKeys: Array, - item: any, - extra: { select: boolean; lable: any; keyPath: any[]; key: string[] } - ) => void; - - /** - * 选中模式,单选还是多选,默认无值,不可选 - */ - selectMode?: 'single' | 'multiple'; - - /** - * 是否只能选择第一层菜单项(不能选择子菜单中的菜单项) - */ - shallowSelect?: boolean; - - /** - * 是否显示选中图标,如果设置为 false 需配合配置平台设置选中时的背景色以示区分 - */ - hasSelectedIcon?: boolean; - - /** - * 是否将选中图标居右,仅当 hasSelectedIcon 为true 时生效。 - * 注意:SubMenu 上的选中图标一直居左,不受此API控制 - */ - isSelectIconRight?: boolean; - - /** - * 菜单第一层展示方向 - */ - direction?: 'ver' | 'hoz'; - - /** - * 横向菜单条 item 和 footer 的对齐方向,在 direction 设置为 'hoz' 并且 header 存在时生效 - */ - hozAlign?: 'left' | 'right'; - - /** - * 自定义菜单头部 - */ - header?: React.ReactNode; - - /** - * 自定义菜单尾部 - */ - footer?: React.ReactNode; - - /** - * 自定义菜单尾部容器的 className - */ - footerWrapperClassName?: string; - - /** - * 是否自动获得焦点 - */ - autoFocus?: boolean; - - /** - * 当前获得焦点的子菜单或菜单项 key 值 - */ - focusedKey?: string; - renderMore?: (items?: Array) => React.ReactElement; - - /** - * 是否开启嵌入式模式,一般用于Layout的布局中,开启后没有默认背景、外层border、box-shadow,可以配合`` 自定义高度 - */ - embeddable?: boolean; - icons?: { - select?: React.ReactNode; - }; - - /** - * 横向菜单模式下,是否维持在一行,即超出一行折叠成 SubMenu 显示 - */ - hozInLine?: boolean; -} - -export default class Menu extends React.Component { - static Item: typeof Item; - static SubMenu: typeof SubMenu; - static PopupItem: typeof PopupItem; - static CheckboxItem: typeof CheckboxItem; - static RadioItem: typeof RadioItem; - static Group: typeof Group; - static Divider: typeof Divider; - static create(props: any): void; -} diff --git a/types/message/index.d.ts b/types/message/index.d.ts deleted file mode 100644 index 156a856f79..0000000000 --- a/types/message/index.d.ts +++ /dev/null @@ -1,148 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { OverlayProps } from '../overlay'; -interface HTMLAttributesWeak extends React.HTMLAttributes { - title?: any; -} - -export interface MessageProps extends HTMLAttributesWeak, CommonProps { - /** - * 反馈类型 - */ - type?: 'success' | 'warning' | 'error' | 'notice' | 'help' | 'loading'; - - /** - * 反馈外观 - */ - shape?: 'inline' | 'addon' | 'toast'; - - /** - * 反馈大小 - */ - size?: 'medium' | 'large'; - - /** - * 标题 - */ - title?: React.ReactNode; - - /** - * 内容,非函数式调用下使用 - */ - children?: React.ReactNode; - - /** - * 默认是否显示 - */ - defaultVisible?: boolean; - - /** - * 当前是否显示 - */ - visible?: boolean; - - /** - * 显示的图标类型,会覆盖内部设置的IconType,传false不显示图标 - */ - iconType?: string | false; - - /** - * 显示关闭按钮 - */ - closeable?: boolean; - - /** - * 关闭按钮的回调 - */ - onClose?: () => void; - - /** - * 关闭之后调用的函数 - */ - afterClose?: () => void; - - /** - * 是否开启展开收起动画 - */ - animation?: boolean; -} - -export interface MessageQuickProps extends Omit, CommonProps { - /** - * 反馈类型 - */ - type?: 'success' | 'warning' | 'error' | 'notice' | 'help' | 'loading'; - - /** - * 反馈大小 - */ - size?: 'medium' | 'large'; - /** - * 标题 - */ - title?: React.ReactNode; - - /** - * 内容,函数式调用下使用 - */ - content?: React.ReactNode; - /** - * 弹层相对于参照元素的定位, 详见开发指南的[定位部分](#定位) - */ - align?: string | boolean; - - /** - * 弹层相对于参照元素定位的微调 - */ - offset?: Array; - /** - * 是否显示遮罩 - */ - hasMask?: boolean; - - /** - * 显示持续时间,0表示一直存在,以毫秒为单位 - */ - duration?: number; - timeoutId?: string; - - /** - * 显示关闭按钮 - */ - closeable?: boolean; - - /** - * 关闭按钮的回调 - */ - onClose?: () => void; - - /** - * 关闭之后调用的函数 - */ - afterClose?: () => void; - - /** - * 是否开启展开收起动画 - */ - animation?: boolean; - /** - * 透传到弹层组件的属性对象 - */ - overlayProps?: OverlayProps; -} - -type OpenProps = string | React.ReactElement | MessageQuickProps; - -export default class Message extends React.Component { - static show(props: OpenProps): void; - static hide(): void; - static success(props: OpenProps): void; - static warning(props: OpenProps): void; - static error(props: OpenProps): void; - static help(props: OpenProps): void; - static loading(props: OpenProps): void; - static notice(props: OpenProps): void; - static config(props: OpenProps): void; -} diff --git a/types/nav/index.d.ts b/types/nav/index.d.ts deleted file mode 100644 index 4fe6a6d392..0000000000 --- a/types/nav/index.d.ts +++ /dev/null @@ -1,294 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; - -export interface GroupProps extends React.HTMLAttributes, CommonProps { - /** - * 标签内容 - */ - label?: React.ReactNode; - - /** - * 导航项和子导航 - */ - children?: React.ReactNode; - - /** - * 自定义类名 - */ - className?: string; -} - -export class Group extends React.Component {} - -export interface ItemProps extends React.HTMLAttributes, CommonProps { - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 帮助文本 - */ - helper?: React.ReactNode; - - /** - * 导航内容 - */ - children?: React.ReactNode; - - /** - * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `` - */ - icon?: string | React.ReactNode; -} - -export class Item extends React.Component {} - -export interface PopupItemProps extends React.HTMLAttributes, CommonProps { - /** - * 标签内容 - */ - label?: React.ReactNode; - - /** - * 弹出内容 - */ - children?: React.ReactNode; - - /** - * 自定义类名 - */ - className?: string; - - /** - * 自定义图标,可以使用 Icon 的 type, 也可以使用组件 `` - */ - icon?: string | React.ReactNode; -} - -export class PopupItem extends React.Component {} - -export interface SubNavProps extends React.HTMLAttributes, CommonProps { - /** - * 自定义类名 - */ - className?: string; - - /** - * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `` - */ - icon?: string | React.ReactNode; - - /** - * 标签内容 - */ - label?: React.ReactNode; - - /** - * 是否可选 - */ - selectable?: boolean; - - /** - * 导航项和子导航 - */ - children?: React.ReactNode; -} - -export class SubNav extends React.Component {} -interface HTMLAttributesWeak extends React.HTMLAttributes { - onSelect?: any; -} - -export interface NavProps extends HTMLAttributesWeak, CommonProps { - /** - * 导航项和子导航 - */ - children?: React.ReactNode; - - /** - * 点击菜单项触发的回调函数 - */ - onItemClick?: (key: string, item: {}, event: {}) => void; - - /** - * 当前打开的子菜单的 key 值 - */ - openKeys?: string | Array; - - /** - * 初始打开的子菜单的 key 值 - */ - defaultOpenKeys?: string | Array; - - /** - * 初始展开所有的子导航,只在 mode 设置为 'inline' 以及 openMode 设置为 'multiple' 下生效 - */ - defaultOpenAll?: boolean; - - /** - * 打开或关闭子菜单触发的回调函数 - */ - onOpen?: (key: string[], extra: { key: string; open: boolean }) => void; - - /** - * 子导航打开的模式(水平导航只支持弹出) - */ - mode?: 'inline' | 'popup'; - - /** - * 子导航打开的触发方式 - */ - triggerType?: 'click' | 'hover'; - - /** - * 内联子导航的展开模式,同时可以展开一个同级子导航还是多个同级子导航,该属性仅在 mode 为 inline 时生效 - */ - openMode?: 'single' | 'multiple'; - - /** - * 内联子导航缩进距离 - */ - inlineIndent?: number; - - /** - * 是否自动让弹层的宽度和菜单项保持一致,如果弹层的宽度比菜单项小则和菜单项保持一致,如果宽度大于菜单项则不做处理 - */ - popupAutoWidth?: boolean; - - /** - * 弹出子导航的对齐方式(水平导航只支持 follow ) - */ - popupAlign?: 'follow' | 'outside'; - - /** - * 弹层自定义 props - */ - popupProps?: PopupProps | (() => void); - - /** - * 弹出子导航的自定义类名 - */ - popupClassName?: string; - - /** - * 弹出子菜单自定义 style - */ - popupStyle?: React.CSSProperties; - - /** - * 当前选中导航项的 key 值 - */ - selectedKeys?: string | Array; - - /** - * 初始选中导航项的 key 值 - */ - defaultSelectedKeys?: string | Array; - - /** - * 选中或取消选中导航项触发的回调函数 - */ - onSelect?: (selectedKeys: Array, item: {}, extra: {}) => void; - - /** - * 选中模式,单选还是多选,默认无值,不可选 - */ - selectMode?: 'single' | 'multiple'; - - /** - * 是否只能选择第一层菜单项(不能选择子菜单中的菜单项) - */ - shallowSelect?: boolean; - - /** - * 是否显示选中图标,如果设置为 false 需配合配置平台设置选中时的背景色以示区分 - */ - hasSelectedIcon?: boolean; - - /** - * 是否将选中图标居右,仅当 hasSelectedIcon 为true 时生效。 - * 注意:SubMenu 上的选中图标一直居左,不受此API控制 - */ - isSelectIconRight?: boolean; - - /** - * 导航布局 - */ - direction?: 'hoz' | 'ver'; - - /** - * 横向导航条 items 和 footer 的对齐方向,在 direction 设置为 'hoz' 并且 header 存在时生效 - */ - hozAlign?: 'left' | 'right'; - - /** - * 自定义导航头部 - */ - header?: React.ReactNode; - - /** - * 自定义导航尾部 - */ - footer?: React.ReactNode; - - /** - * 是否自动获得焦点 - */ - autoFocus?: boolean; - - /** - * 当前获得焦点的子菜单或菜单项 key 值 - */ - focusedKey?: string; - - /** - * 是否开启嵌入式模式,一般用于Layout的布局中,开启后没有默认背景、外层border、box-shadow,可以配合`
` - */ - filterParams?: { [propName: string]: any }; - - /** - * 当前排序的字段,使用此属性可以控制表格的字段的排序,格式为{dataIndex: 'asc'} - */ - sort?: { [propName: string]: any }; - - /** - * 自定义排序按钮,例如上下排布的: `{desc: , asc: }` - */ - sortIcons?: { desc?: React.ReactNode; asc?: React.ReactNode }; - - /** - * 额外渲染行的渲染函数 - */ - expandedRowRender?: (record: any, index: number) => React.ReactElement; - rowExpandable?: (record: any) => boolean; - - /** - * 额外渲染行的缩进,包含两个数字,第一个数字为左侧缩进,第二个数字为右侧缩进 - */ - expandedRowIndent?: [number, number]; - - /** - * 默认情况下展开的渲染行或者Tree, 传入此属性为受控状态 - */ - openRowKeys?: Array; - - /** - * 是否显示点击展开额外渲染行的+号按钮 - */ - hasExpandedRowCtrl?: boolean; - - /** - * 设置额外渲染行的属性 - */ - getExpandedColProps?: ( - record: IRecord, - index: number - ) => object | Record; - - /** - * 在额外渲染行或者Tree展开或者收起的时候触发的事件 - */ - onRowOpen?: ( - openRowKeys: Array, - currentRowKey: string, - expanded: boolean, - currentRecord: any - ) => void; - - /** - * 点击额外渲染行触发的事件 - */ - onExpandedRowClick?: (record: any, index: number, e: React.MouseEvent) => void; - - /** - * 表头是否固定,该属性配合maxBodyHeight使用,当内容区域的高度超过maxBodyHeight的时候,在内容区域会出现滚动条 - */ - fixedHeader?: boolean; - - /** - * 最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条 - */ - maxBodyHeight?: number | string; - - /** - * 是否启用选择模式 - */ - rowSelection?: { - getProps?: (record: any, index: number) => void; - onChange?: (selectedRowKeys: Array, records: Array) => void; - onSelect?: (selected: boolean, record: any, records: Array) => void; - onSelectAll?: (selected: boolean, records: Array) => void; - selectedRowKeys?: Array; - mode?: 'single' | 'multiple'; - titleProps?: () => any; - columnProps?: () => any; - titleAddons?: () => any; - }; - - /** - * 表头是否是sticky - */ - stickyHeader?: boolean; - - /** - * 距离窗口顶部达到指定偏移量后触发 - */ - offsetTop?: number; - - /** - * affix组件的的属性 - */ - affixProps?: AffixProps; - - /** - * 在tree模式下的缩进尺寸, 仅在isTree为true时候有效 - */ - indent?: number; - - /** - * 开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table - */ - isTree?: boolean; - - /** - * 是否开启虚拟滚动 - */ - useVirtual?: boolean; - - /** - * 滚动到指定行 - */ - scrollToRow?: number; - - /** - * 设置行高 - */ - rowHeight?: number | (() => any); - - /** - * 在内容区域滚动的时候触发的函数 - */ - onBodyScroll?: (start: number) => void; - - /** - * 开启时,getExpandedColProps() / getRowProps() / expandedRowRender() 的第二个参数 index (该行所对应的序列) 将按照01,2,3,4...的顺序返回,否则返回真实index(0,2,4,6... / 1,3,5,7...) - */ - expandedIndexSimulate?: boolean; - /** - * 在 hover 时出现十字参考轴,适用于表头比较复杂,需要做表头分类的场景。 - */ - crossline?: boolean; - - /** - * 虚拟滚动时向前保留渲染的行数 - * @defaultValue 10 - */ - keepForwardRenderRows?: number; -} - -export default class Table extends React.Component { - static Column: typeof Column; - static ColumnGroup: typeof ColumnGroup; - static GroupHeader: typeof GroupHeader; - static GroupFooter: typeof GroupFooter; - static StickyLock: typeof Table; - static Base: typeof Table; -} diff --git a/types/tag/index.d.ts b/types/tag/index.d.ts deleted file mode 100644 index a6c98c90e1..0000000000 --- a/types/tag/index.d.ts +++ /dev/null @@ -1,124 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - onClick?: any; -} - -export interface CloseableProps extends HTMLAttributesWeak, CommonProps { - /** - * closeable 标签的 onClose 响应区域, tag: 标签体, tail(默认): 关闭按钮 - */ - closeArea?: 'tag' | 'tail'; - - type?: 'normal' | 'primary'; - - /** - * 点击关闭按钮时的回调 - */ - onClose?: (from: string) => boolean; - - /** - * 标签关闭后执行的回调 - */ - afterClose?: () => void; - - /** - * 点击回调 - */ - onClick?: React.MouseEventHandler; - - /** - * 标签的尺寸(large 尺寸为兼容表单场景 large = medium) - */ - size?: 'small' | 'medium' | 'large'; -} - -export class Closeable extends React.Component {} - -interface HTMLAttributesWeak extends React.HTMLAttributes { - onChange?: any; -} - -export interface SelectableProps extends HTMLAttributesWeak, CommonProps { - /** - * 标签是否被选中,受控用法 - * tag checked or not, a controlled way - */ - checked?: boolean; - - type?: 'normal' | 'primary'; - /** - * 标签是否默认被选中,非受控用法 - * tag checked or not by default, a uncontrolled way - */ - defaultChecked?: boolean; - - /** - * 选中状态变化时触发的事件 - */ - onChange?: (checked: boolean, e: any) => void; - - /** - * 标签是否被禁用 - */ - disabled?: boolean; - /** - * 标签的尺寸(large 尺寸为兼容表单场景 large = medium) - */ - size?: 'small' | 'medium' | 'large'; -} - -export class Selectable extends React.Component {} -interface HTMLAttributesWeak extends React.HTMLAttributes { - onClick?: any; -} - -export interface TagGroupProps extends React.HTMLAttributes, CommonProps {} - -export class TagGroup extends React.Component {} - -export interface TagProps extends HTMLAttributesWeak, CommonProps { - /** - * 标签类名前缀,提供给二次开发者用 - */ - prefix?: string; - - /** - * 标签的类型 - */ - type?: 'normal' | 'primary'; - - /** - * 标签的尺寸(large 尺寸为兼容表单场景 large = medium) - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 标签颜色, 目前支持:blue、 green、 orange、red、 turquoise、 yellow 和 hex 颜色值 (`color keywords`作为 Tag 组件的保留字,请勿直接使用 ), `1.19.0` 以上版本生效 - */ - color?: string; - - /** - * 是否开启动效 - */ - animation?: boolean; - - /** - * 标签出现动画结束后执行的回调 - */ - afterAppear?: () => void; - - /** - * 点击回调 - */ - onClick?: React.MouseEventHandler; -} - -export default class Tag extends React.Component { - static Closeable: typeof Closeable; - static Selectable: typeof Selectable; - static Group: typeof TagGroup; -} diff --git a/types/time-picker/index.d.ts b/types/time-picker/index.d.ts deleted file mode 100644 index 1e90610019..0000000000 --- a/types/time-picker/index.d.ts +++ /dev/null @@ -1,153 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; -import { Moment } from 'moment'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface TimePickerProps extends HTMLAttributesWeak, CommonProps { - /** - * 按钮的文案 - */ - label?: React.ReactNode; - name?: string; - - /** - * 输入框状态 - */ - state?: 'error' | 'success'; - - /** - * 输入框提示 - */ - placeholder?: string; - - /** - * 时间值(moment 对象或时间字符串,受控状态使用) - */ - value?: any; - - /** - * 时间初值(moment 对象或时间字符串,非受控状态使用) - */ - defaultValue?: any; - - /** - * 时间选择框的尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 是否允许清空时间 - */ - hasClear?: boolean; - - /** - * 时间的格式 - * https://momentjs.com/docs/#/parsing/string-format/ - */ - format?: string; - - /** - * 小时选项步长 - */ - hourStep?: number; - - /** - * 分钟选项步长 - */ - minuteStep?: number; - - /** - * 秒钟选项步长 - */ - secondStep?: number; - - /** - * 禁用小时函数 - */ - disabledHours?: (index: number) => boolean; - - /** - * 禁用分钟函数 - */ - disabledMinutes?: (index: number) => boolean; - - /** - * 禁用秒钟函数 - */ - disabledSeconds?: (index: number) => boolean; - - /** - * 弹层是否显示(受控) - */ - visible?: boolean; - - /** - * 弹层默认是否显示(非受控) - */ - defaultVisible?: boolean; - - /** - * 弹层容器 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层对齐方式, 详情见Overlay 文档 - */ - popupAlign?: string; - - /** - * 弹层触发方式 - */ - popupTriggerType?: 'click' | 'hover'; - - /** - * 弹层展示状态变化时的回调 - */ - onVisibleChange?: (visible: boolean, reason: string) => void; - - /** - * 弹层自定义样式 - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层自定义样式类 - */ - popupClassName?: string; - - /** - * 弹层属性 - */ - popupProps?: PopupProps; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - /** - * 预览态模式下渲染的内容 - * @param value 时间 - */ - renderPreview?: (value: Moment | null) => React.ReactNode; - - /** - * 时间值改变时的回调 - */ - onChange?: (value: any | string) => void; -} - -export default class TimePicker extends React.Component {} diff --git a/types/time-picker2/index.d.ts b/types/time-picker2/index.d.ts deleted file mode 100644 index 3c3d49ba4a..0000000000 --- a/types/time-picker2/index.d.ts +++ /dev/null @@ -1,206 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; -import { InputProps } from '../input'; -import { ButtonProps } from '../button'; -import { Dayjs, ConfigType } from 'dayjs'; - -interface IPresetType { - label?: string; - value?: ConfigType | (() => ConfigType); -} -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface DatePreset extends ButtonProps { - label: string; - // 时间值(dayjs 对象或时间字符串)或者返回时间值的函数 - value: any; -} - -export interface RangePreset { - [propName: string]: Dayjs[]; -} - -export type StateValue = Dayjs | null; - -export interface TimePickerProps extends HTMLAttributesWeak, CommonProps { - /** - * 按钮的文案 - */ - label?: React.ReactNode; - name?: string; - - /** - * 输入框状态 - */ - state?: 'error' | 'success'; - - /** - * 输入框提示 - */ - placeholder?: string; - - /** - * 时间值(dayjs 对象或时间字符串,受控状态使用) - */ - value?: ConfigType; - - /** - * 时间初值(dayjs 对象或时间字符串,非受控状态使用) - */ - defaultValue?: ConfigType; - - /** - * 时间选择框的尺寸 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 是否允许清空时间 - */ - hasClear?: boolean; - - /** - * 时间的格式 - * https://dayjs.gitee.io/docs/zh-CN/display/format - */ - format?: string; - - /** - * 小时选项步长 - */ - hourStep?: number; - - /** - * 分钟选项步长 - */ - minuteStep?: number; - - /** - * 秒钟选项步长 - */ - secondStep?: number; - - /** - * 禁用小时函数 - */ - disabledHours?: (index: number) => boolean; - - /** - * 禁用分钟函数 - */ - disabledMinutes?: (index: number) => boolean; - - /** - * 禁用秒钟函数 - */ - disabledSeconds?: (index: number) => boolean; - - /** - * 弹层是否显示(受控) - */ - visible?: boolean; - - /** - * 弹层默认是否显示(非受控) - */ - defaultVisible?: boolean; - - /** - * 弹层容器 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 弹层对齐方式, 详情见Overlay 文档 - */ - popupAlign?: string; - - /** - * 弹层触发方式 - */ - popupTriggerType?: 'click' | 'hover'; - - /** - * 弹层展示状态变化时的回调 - */ - onVisibleChange?: (visible: boolean, reason: string) => void; - - /** - * 弹层自定义样式 - */ - popupStyle?: React.CSSProperties; - - /** - * 弹层自定义样式类 - */ - popupClassName?: string; - - /** - * 弹层属性 - */ - popupProps?: PopupProps; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 输入框是否有边框 - */ - hasBorder?: boolean; - - /** - * 透传给 Input 的属性 - */ - inputProps?: InputProps; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - /** - * 预览态模式下渲染的内容 - * @param value 时间 - */ - renderPreview?: (value: StateValue | [StateValue, StateValue]) => React.ReactNode; - - /** - * 预设值,会显示在时间面板下面 - */ - ranges?: RangePreset | DatePreset[]; - - /** - * 时间值改变时的回调 - */ - onChange?: (date: Dayjs, dateString: string) => void; -} - -export interface RangePickerProps - extends Omit< - TimePickerProps, - 'value' | 'placeholder' | 'defaultValue' | 'onOk' | 'disabled' | 'onChange' | 'preset' - > { - value?: Array; - defaultValue?: Array; - onOk?: (value: Array, strVal: Array) => void; - onChange?: (value: Array, strVal: Array) => void; - placeholder?: string | Array; - disabled?: boolean | boolean[]; - preset?: IPresetType | IPresetType[]; -} - -export class RangePicker extends React.Component { - type: 'range'; -} - -export default class TimePicker extends React.Component { - static RangePicker: typeof RangePicker; -} diff --git a/types/timeline/index.d.ts b/types/timeline/index.d.ts deleted file mode 100644 index 6bdf706d03..0000000000 --- a/types/timeline/index.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - title?: any; -} - -export interface ItemProps extends Omit, CommonProps { - /** - * 节点状态 - */ - state?: 'done' | 'process' | 'error' | 'success'; - - /** - * 图标 - */ - icon?: string; - - /** - * 自定义时间轴节点 - */ - dot?: React.ReactNode; - - /** - * 格式化后的时间 - */ - time?: React.ReactNode; - - /** - * 标题 - */ - title?: React.ReactNode; - - /** - * 左侧时间 - */ - timeLeft?: React.ReactNode; - - /** - * 右侧内容 - */ - content?: React.ReactNode; - - /** - * 动画 - */ - animation?: boolean; - mode?: 'left' | 'alternate'; -} - -export class Item extends React.Component {} - -type foldItem = { - /** - * [startIndex, endIndex] or [startIndex] 到最后一个节点 - */ - foldArea?: Array; - foldShow?: boolean; -}; - -export interface TimelineProps extends React.HTMLAttributes, CommonProps { - /** - * 样式的品牌前缀 - */ - prefix?: string; - - /** - * 自定义折叠选项 示例`[{foldArea: [startIndex, endIndex], foldShow: boolean}]` - */ - fold?: Array; - - /** - * 自定义类名 - */ - className?: string; -} - -export default class Timeline extends React.Component { - static Item: typeof Item; -} diff --git a/types/transfer/index.d.ts b/types/transfer/index.d.ts deleted file mode 100644 index 840991dfc3..0000000000 --- a/types/transfer/index.d.ts +++ /dev/null @@ -1,138 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface TransferProps extends HTMLAttributesWeak, CommonProps { - /** - * 移动选项模式 - */ - mode?: 'normal' | 'simple'; - - /** - * 数据源 - */ - dataSource?: Array; - - /** - * (用于受控)当前值 - */ - value?: Array; - - /** - * (用于非受控)初始值 - */ - defaultValue?: Array; - - /** - * 值发生改变的时候触发的回调函数 - */ - onChange?: (value: Array, data: Array, extra: {}) => void; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否禁用左侧面板 - */ - leftDisabled?: boolean; - - /** - * 是否禁用右侧面板 - */ - rightDisabled?: boolean; - - /** - * 列表项渲染函数 - */ - itemRender?: (data: any) => React.ReactNode; - - /** - * 左右面板是否显示搜索框 - */ - showSearch?: boolean | boolean[]; - - /** - * 左右面板搜索框配置 - */ - searchProps?: Record | Record[]; - - /** - * 自定义搜索函数 - */ - filter?: (searchedValue: string, data: any) => boolean; - - /** - * 搜索框输入时触发的回调函数 - */ - onSearch?: (searchedValue: string, position: string) => void; - - /** - * 是否开启虚拟滚动 - */ - useVirtual?: boolean; - - /** - * 搜索框占位符 - */ - searchPlaceholder?: string; - - /** - * 列表为空显示内容 - */ - notFoundContent?: React.ReactNode | React.ReactNode[]; - - /** - * 左右面板标题 - */ - titles?: Array; - - /** - * 向右向左移动按钮显示内容 - */ - operations?: Array; - - /** - * 左面板默认选中值 - */ - defaultLeftChecked?: Array; - - /** - * 右面板默认选中值 - */ - defaultRightChecked?: Array; - - /** - * 左右面板列表自定义样式类名 - */ - listClassName?: string; - - /** - * 左右面板列表自定义样式对象 - */ - listStyle?: React.CSSProperties; - - /** - * 是否允许拖拽排序 - */ - sortable?: boolean; - - /** - * 拖拽排序时触发的回调函数 - */ - onSort?: (value: Array, position: string) => void; - - /** - * 请设置 id 以保证transfer的可访问性 - */ - id?: string; -} - -export default class Transfer extends React.Component {} diff --git a/types/tree-select/index.d.ts b/types/tree-select/index.d.ts deleted file mode 100644 index df20e2d409..0000000000 --- a/types/tree-select/index.d.ts +++ /dev/null @@ -1,245 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { PopupProps } from '../overlay'; -import { TreeProps } from '../tree'; -import { item } from '../select'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - defaultValue?: any; - onChange?: any; -} - -export interface TreeSelectProps extends HTMLAttributesWeak, CommonProps { - /** - * 树节点 - */ - children?: React.ReactNode; - - /** - * 选择框大小 - */ - size?: 'small' | 'medium' | 'large'; - - /** - * 选择框占位符 - */ - placeholder?: string; - - /** - * 是否禁用 - */ - disabled?: boolean; - - /** - * 是否有下拉箭头 - */ - hasArrow?: boolean; - - /** - * 是否有边框 - */ - hasBorder?: boolean; - - /** - * 是否有清空按钮 - */ - hasClear?: boolean; - - /** - * 自定义内联 label - */ - label?: React.ReactNode; - - /** - * 是否只读,只读模式下可以展开弹层但不能选择 - */ - readOnly?: boolean; - - /** - * 下拉框是否与选择器对齐 - */ - autoWidth?: boolean; - - /** - * 数据源,该属性优先级高于 children - */ - dataSource?: Array; - - /** - * (受控)当前值 - */ - value?: string | object | Array; - - /** - * (非受控)默认值 - */ - defaultValue?: string | object | Array; - - /** - * value/defaultValue 在 dataSource 中不存在时,是否展示 - */ - preserveNonExistentValue?: boolean; - - /** - * 选中值改变时触发的回调函数 - */ - onChange?: (value: string | Array, data: any | Array) => void; - - /** - * 是否一行显示,仅在 multiple 和 treeCheckable 为 true 时生效 - */ - tagInline?: boolean; - - /** - * 隐藏多余 tag 时显示的内容,在 tagInline 生效时起作用 - * @param {Object[]} selectedValues 当前已选中的元素 - * @param {Object[]} [totalValues] 总待选元素,treeCheckedStrategy = 'parent' 时为 undefined - */ - maxTagPlaceholder?: ( - selectedValues: any[], - totalValues?: any[] - ) => React.ReactNode | HTMLElement; - - /** - * 是否自动清除 searchValue - */ - autoClearSearch?: boolean; - - /** - * 是否显示搜索框 - */ - showSearch?: boolean; - - /** - * 在搜索框中输入时触发的回调函数 - */ - onSearch?: (keyword: string) => void; - onSearchClear?: (actionType: string) => void; - /** - * 无数据时显示内容 - */ - notFoundContent?: React.ReactNode; - - /** - * 是否支持多选 - */ - multiple?: boolean; - - /** - * 下拉框中的树是否支持勾选节点的复选框 - */ - treeCheckable?: boolean; - - /** - * 下拉框中的树勾选节点复选框是否完全受控(父子节点选中状态不再关联) - */ - treeCheckStrictly?: boolean; - - /** - * 定义选中时回填的方式 - */ - treeCheckedStrategy?: 'all' | 'parent' | 'child'; - - /** - * 下拉框中的树是否默认展开所有节点 - */ - treeDefaultExpandAll?: boolean; - - /** - * 下拉框中的树默认展开节点key的数组 - */ - treeDefaultExpandedKeys?: Array; - - /** - * 下拉框中的树异步加载数据的函数,使用请参考[Tree的异步加载数据Demo](https://fusion.design/pc/component/basic/tree#%E5%BC%82%E6%AD%A5%E5%8A%A0%E8%BD%BD%E6%95%B0%E6%8D%AE) - */ - treeLoadData?: (node: React.ReactElement) => void; - - /** - * 透传到 Tree 的属性对象 - */ - treeProps?: TreeProps; - - /** - * 初始下拉框是否显示 - */ - defaultVisible?: boolean; - - /** - * 当前下拉框是否显示 - */ - visible?: boolean; - - /** - * 下拉框显示或关闭时触发事件的回调函数 - */ - onVisibleChange?: (visible: boolean, type: string) => void; - - /** - * 下拉框自定义样式对象 - */ - popupStyle?: React.CSSProperties; - - /** - * 下拉框样式自定义类名 - */ - popupClassName?: string; - - /** - * 下拉框挂载的容器节点 - */ - popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement); - - /** - * 透传到 Popup 的属性对象 - */ - popupProps?: PopupProps; - /** - * 是否跟随滚动 - */ - followTrigger?: boolean; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - /** - * 预览态模式下渲染的内容 - * @param {Array} value 选择值 { label: , value:} - */ - renderPreview?: (data: string | Array, props: any | Array) => React.ReactNode; - - /** - * 是否开启虚拟滚动 - */ - useVirtual?: boolean; - - /** - * 是否关闭本地搜索 - */ - filterLocal?: boolean; - - immutable?: boolean; - - /** - * 填充到选择框里的值的 key,默认是 value - */ - fillProps?: string; - - /** - * 点击文本是否可以勾选 - */ - clickToCheck?: boolean; - - /** - * 渲染 Select 区域展现内容的方法 - * @param {Object} item 渲染项 - * @param {Object[]} itemPaths 渲染项在dataSource内的路径 - */ - valueRender?: (item: any, itemPaths: item[]) => React.ReactNode; -} - -export default class TreeSelect extends React.Component {} diff --git a/types/tree/index.d.ts b/types/tree/index.d.ts deleted file mode 100644 index 88eb79b631..0000000000 --- a/types/tree/index.d.ts +++ /dev/null @@ -1,274 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { VirtualListProps } from '../virtual-list'; - -export interface NodeProps extends React.HTMLAttributes, CommonProps { - /** - * 树节点 - */ - children?: React.ReactNode; - - /** - * 节点文本内容 - */ - label?: React.ReactNode; - - /** - * 单独设置是否支持选中,覆盖 Tree 的 selectable - */ - selectable?: boolean; - - /** - * 单独设置是否出现复选框,覆盖 Tree 的 checkable - */ - checkable?: boolean; - - /** - * 单独设置是否支持编辑,覆盖 Tree 的 editable - */ - editable?: boolean; - - /** - * 单独设置是否支持拖拽,覆盖 Tree 的 draggable - */ - draggable?: boolean; - - /** - * 是否禁止节点响应 - */ - disabled?: boolean; - - /** - * 是否禁止勾选节点复选框 - */ - checkboxDisabled?: boolean; - - /** - * 是否是叶子节点,设置loadData时生效 - */ - isLeaf?: boolean; - - /** - * 点击文本是否可以勾选 - */ - clickToCheck?: boolean; -} - -export class Node extends React.Component {} -interface HTMLAttributesWeak extends React.HTMLAttributes { - onSelect?: any; -} - -export interface TreeProps extends HTMLAttributesWeak, CommonProps { - /** - * 树节点 - */ - children?: React.ReactNode; - - /** - * 数据源,该属性优先级高于 children - */ - dataSource?: Array; - - /** - * 是否显示树的线 - */ - showLine?: boolean; - - /** - * 是否支持选中节点 - */ - selectable?: boolean; - - /** - * (用于受控)当前选中节点 key 的数组 - */ - selectedKeys?: Array; - - /** - * (用于非受控)默认选中节点 key 的数组 - */ - defaultSelectedKeys?: Array; - - /** - * 选中或取消选中节点时触发的回调函数 - */ - onSelect?: (selectedKeys: Array, extra: {}) => void; - - /** - * 是否支持多选 - */ - multiple?: boolean; - - /** - * 是否支持勾选节点的复选框 - */ - checkable?: boolean; - - /** - * (用于受控)当前勾选复选框节点 key 的数组或 `{checked: Array, indeterminate: Array}` 的对象 - */ - checkedKeys?: Array | {}; - - /** - * (用于非受控)默认勾选复选框节点 key 的数组 - */ - defaultCheckedKeys?: Array; - - /** - * 勾选节点复选框是否完全受控(父子节点选中状态不再关联) - */ - checkStrictly?: boolean; - - /** - * 定义选中时回填的方式 - */ - checkedStrategy?: 'all' | 'parent' | 'child'; - - /** - * 勾选或取消勾选复选框时触发的回调函数 - */ - onCheck?: (checkedKeys: Array, extra: {}) => void; - - /** - * (用于受控)当前展开的节点 key 的数组 - */ - expandedKeys?: Array; - - /** - * (用于非受控)默认展开的节点 key 的数组 - */ - defaultExpandedKeys?: Array; - - /** - * 是否默认展开所有节点 - */ - defaultExpandAll?: boolean; - - /** - * 是否自动展开父节点 - */ - autoExpandParent?: boolean; - - /** - * 展开或收起节点时触发的回调函数 - */ - onExpand?: (expandedKeys: Array, extra: {}) => void; - - /** - * 是否支持编辑节点内容 - */ - editable?: boolean; - - /** - * 编辑节点内容完成时触发的回调函数 - */ - onEditFinish?: (key: string, label: string, node: {}) => void; - - /** - * 是否支持拖拽节点 - */ - draggable?: boolean; - - /** - * 开始拖拽节点时触发的回调函数 - */ - onDragStart?: (info: {}) => void; - - /** - * 拖拽节点进入目标节点时触发的回调函数 - */ - onDragEnter?: (info: {}) => void; - - /** - * 拖拽节点在目标节点上移动的时候触发的回调函数 - */ - onDragOver?: (info: {}) => void; - - /** - * 拖拽节点离开目标节点时触发的回调函数 - */ - onDragLeave?: (info: {}) => void; - - /** - * 拖拽节点拖拽结束时触发的回调函数 - */ - onDragEnd?: (info: {}) => void; - - /** - * 拖拽节点放入目标节点内或前后触发的回调函数 - */ - onDrop?: (info: {}) => void; - - /** - * 节点是否可被作为拖拽的目标节点 - */ - canDrop?: (info: {}) => boolean; - - /** - * 异步加载数据的函数 - */ - loadData?: (node: {}) => void; - - /** - * 按需筛选高亮节点 - */ - filterTreeNode?: (node: {}) => boolean; - - /** - * 右键点击节点时触发的回调函数 - */ - onRightClick?: (info: {}) => void; - - /** - * 设置节点是否占满剩余空间,一般用于统一在各节点右侧添加元素(借助 flex 实现,暂时只支持 ie10+) - */ - isLabelBlock?: boolean; - - /** - * 设置节点是否占满一行 - */ - isNodeBlock?: boolean | {}; - - /** - * 是否开启展开收起动画 - */ - animation?: boolean; - - /** - * 当前获得焦点的子菜单或菜单项 key 值 - */ - focusedKey?: string; - /** - * 渲染子节点 - */ - renderChildNodes?: (nodes: React.ReactNode) => React.ReactNode; - /** - * 渲染单个子节点 - */ - labelRender?: (node: {}) => React.ReactNode; - /** - * 是否是不可变数据 - */ - immutable?: boolean; - - /** - * 是否开启虚拟滚动 - */ - useVirtual?: boolean; - - /** - * VirtualList透传参数 - */ - virtualListProps?: VirtualListProps; - /** - * 点击文本是否可以勾选 - */ - clickToCheck?: boolean; -} - -export default class Tree extends React.Component { - static Node: typeof Node; -} diff --git a/types/typography/index.d.ts b/types/typography/index.d.ts deleted file mode 100644 index 9795d387d1..0000000000 --- a/types/typography/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Text from './text'; -import Paragraph from './paragraph'; -import Typography from './typography'; -import createTitle from './title'; -import { TypographyProps, TitleProps, TextProps, ParagraphProps } from './types'; -declare const WithSubTypography: typeof Typography & { - H1: ReturnType; - H2: ReturnType; - H3: ReturnType; - H4: ReturnType; - H5: ReturnType; - H6: ReturnType; - Text: typeof Text; - Paragraph: typeof Paragraph; -}; -export type { TypographyProps, TitleProps, TextProps, ParagraphProps }; -export default WithSubTypography; diff --git a/types/typography/mobile/index.d.ts b/types/typography/mobile/index.d.ts deleted file mode 100644 index 3205c9a933..0000000000 --- a/types/typography/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Typography } from '@alifd/meet-react'; -export default Typography; diff --git a/types/typography/paragraph.d.ts b/types/typography/paragraph.d.ts deleted file mode 100644 index f242ba217f..0000000000 --- a/types/typography/paragraph.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import { ParagraphProps } from './types'; -/** - * Typography.Paragraph - */ -declare class Paragraph extends React.Component { - static propTypes: { - prefix: PropTypes.Requireable; - component: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - type: string; - size: string; - component: string; - }; - render(): React.JSX.Element; -} -declare const _default: { - new ( - props: ParagraphProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - ParagraphProps & import('../config-provider/types').ComponentCommonProps, - Paragraph - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - prefix: PropTypes.Requireable; - component: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - type: string; - size: string; - component: string; - }; -}; -export default _default; diff --git a/types/typography/text.d.ts b/types/typography/text.d.ts deleted file mode 100644 index 8b406eddff..0000000000 --- a/types/typography/text.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import { TextProps } from './types'; -/** - * Typography.Text - */ -declare class Text extends React.Component { - static propTypes: { - prefix: PropTypes.Requireable; - delete: PropTypes.Requireable; - mark: PropTypes.Requireable; - underline: PropTypes.Requireable; - strong: PropTypes.Requireable; - code: PropTypes.Requireable; - component: PropTypes.Requireable; - children: PropTypes.Requireable; - rtl: PropTypes.Requireable; - }; - static defaultProps: { - prefix: string; - delete: boolean; - mark: boolean; - underline: boolean; - strong: boolean; - code: boolean; - component: string; - rtl: boolean; - }; - wrapChildren(children: React.ReactNode, wrapper: keyof JSX.IntrinsicElements): React.ReactNode; - render(): React.JSX.Element; -} -declare const _default: { - new ( - props: TextProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - TextProps & import('../config-provider/types').ComponentCommonProps, - Text - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - prefix: PropTypes.Requireable; - delete: PropTypes.Requireable; - mark: PropTypes.Requireable; - underline: PropTypes.Requireable; - strong: PropTypes.Requireable; - code: PropTypes.Requireable; - component: PropTypes.Requireable; - children: PropTypes.Requireable; - rtl: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - delete: boolean; - mark: boolean; - underline: boolean; - strong: boolean; - code: boolean; - component: string; - rtl: boolean; - }; -}; -export default _default; diff --git a/types/typography/title.d.ts b/types/typography/title.d.ts deleted file mode 100644 index c8762c79ba..0000000000 --- a/types/typography/title.d.ts +++ /dev/null @@ -1,76 +0,0 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import { TitleProps } from './types'; -declare const _default: (Tag: string) => { - new ( - props: TitleProps & import('../config-provider/types').ComponentCommonProps, - context?: unknown - ): import('../config-provider/types').ConfiguredComponent< - TitleProps & import('../config-provider/types').ComponentCommonProps, - { - render(): React.JSX.Element; - context: any; - setState( - state: - | {} - | (( - prevState: Readonly<{}>, - props: Readonly - ) => {} | Pick<{}, K> | null) - | Pick<{}, K> - | null, - callback?: (() => void) | undefined - ): void; - forceUpdate(callback?: (() => void) | undefined): void; - readonly props: Readonly & - Readonly<{ - children?: React.ReactNode; - }>; - state: Readonly<{}>; - refs: { - [key: string]: React.ReactInstance; - }; - componentDidMount?(): void; - shouldComponentUpdate?( - nextProps: Readonly, - nextState: Readonly<{}>, - nextContext: any - ): boolean; - componentWillUnmount?(): void; - componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void; - getSnapshotBeforeUpdate?(prevProps: Readonly, prevState: Readonly<{}>): any; - componentDidUpdate?( - prevProps: Readonly, - prevState: Readonly<{}>, - snapshot?: any - ): void; - componentWillMount?(): void; - UNSAFE_componentWillMount?(): void; - componentWillReceiveProps?(nextProps: Readonly, nextContext: any): void; - UNSAFE_componentWillReceiveProps?( - nextProps: Readonly, - nextContext: any - ): void; - componentWillUpdate?( - nextProps: Readonly, - nextState: Readonly<{}>, - nextContext: any - ): void; - UNSAFE_componentWillUpdate?( - nextProps: Readonly, - nextState: Readonly<{}>, - nextContext: any - ): void; - } - >; - contextType?: React.Context | undefined; -} & { - propTypes: { - prefix: PropTypes.Requireable; - }; - defaultProps: { - prefix: string; - }; - displayName: string; -}; -export default _default; diff --git a/types/typography/types.d.ts b/types/typography/types.d.ts deleted file mode 100644 index 5c7fc3b5e7..0000000000 --- a/types/typography/types.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -import * as React from 'react'; -import { CommonProps } from '../util'; -/** - * @api Typography.Text - * @order 3 - */ -export interface TextProps extends React.HTMLAttributes, CommonProps { - /** - * 添加删除线样式 - * @en Add strikethrough style - * @defaultValue false - */ - delete?: boolean; - /** - * 添加标记样式 - * @en Add markup style - * @defaultValue false - */ - mark?: boolean; - /** - * 添加下划线样式 - * @en Add underline style - * @defaultValue false - */ - underline?: boolean; - /** - * 是否加粗 - * @en Bold or not - * @defaultValue false - */ - strong?: boolean; - /** - * 添加代码样式 - * @en Add Code Style - * @defaultValue false - */ - code?: boolean; - /** - * 设置标签类型 - * @en SetLabel Type - * @defaultValue span - */ - component?: string | React.JSX.IntrinsicElements; - /** - * 是否以 rtl 模式展示 - * @en Whether to display in rtl mode - * @defaultValue false - */ - rtl?: boolean; -} -/** - * @api Typography.Title - * @order 1 - * @remarks 分为 H1, H2, H3, H4, H5, H6 不同的组件,表示不同层级,继承 Typography.Text API - */ -export interface TitleProps extends TextProps {} -/** - * @api Typography.Paragraph - * @order 2 - * @remarks 继承 Typography.Text 的 API - */ -export interface ParagraphProps extends TextProps { - /** - * 什么方式展示段落 - * @skip - * @defaultValue 'long' - */ - type?: 'long' | 'short'; - /** - * 组件大小 - * @skip - * @defaultValue 'medium' - */ - size?: 'medium' | 'small'; - /** - * 设置标签类型 - * @en Set Label Type - * @defaultValue p - */ - component?: string | React.JSX.IntrinsicElements; -} -/** - * @api Typography.Text - * @order 0 - * @remarks 继承 Typography.Text API - */ -export interface TypographyProps extends TextProps { - /** - * 设置标签类型 - * @en Set Label Type - * @defaultValue article - */ - component?: string | React.JSX.IntrinsicElements; -} diff --git a/types/typography/typography.d.ts b/types/typography/typography.d.ts deleted file mode 100644 index 01383bd135..0000000000 --- a/types/typography/typography.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from 'react'; -import * as PropTypes from 'prop-types'; -import { TypographyProps } from './types'; -/** - * Typography - */ -declare class Typography extends React.Component { - static propTypes: { - component: PropTypes.Requireable; - }; - static defaultProps: { - component: string; - }; - render(): React.JSX.Element; -} -export default Typography; diff --git a/types/upload/index.d.ts b/types/upload/index.d.ts deleted file mode 100644 index 8c9ccf7d14..0000000000 --- a/types/upload/index.d.ts +++ /dev/null @@ -1,544 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; -import { ProgressProps } from '../progress'; - -interface HTMLAttributesWeak extends React.HTMLAttributes { - onError?: any; - onSelect?: any; - defaultValue?: any; - onChange?: any; -} - -export interface CardProps extends HTMLAttributesWeak, CommonProps { - /** - * 上传的地址 - */ - action?: string; - - /** - * 是否支持多选文件,`ie10+` 支持。开启后按住 ctrl 可选择多个文件 - */ - multiple?: boolean; - - /** - * 展示下载按钮 - */ - showDownload?: boolean; - - /** - * 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept) - */ - accept?: string; - - /** - * 上传额外传参 - */ - data?: any | (() => void); - - /** - * 设置上传的请求头部 - */ - headers?: any; - - /** - * 是否允许请求携带 cookie - */ - withCredentials?: boolean; - - /** - * 可选参数, 详见 [beforeUpload](#beforeUpload) - */ - beforeUpload?: (file: {}, options: {}) => boolean | {} | any; - - /** - * 上传中 - */ - onProgress?: () => void; - - /** - * 可选参数,上传成功回调函数,参数为请求下响应信息以及文件 - */ - onSuccess?: (file: {}, value: Array) => void; - - /** - * 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件 - */ - onError?: (file: {}, value: Array) => void; - - /** - * 子元素 - */ - children?: React.ReactNode; - - /** - * 设置上传超时,单位ms - */ - timeout?: number; - - /** - * 上传方法 - */ - method?: 'post' | 'put'; - - /** - * 自定义上传方法 - */ - request?: (option: {}) => void; - - /** - * 文件名字段 - */ - name?: string; - - /** - * 选择文件回调 - */ - onSelect?: () => void; - - /** - * 放文件 - */ - onDrop?: () => void; - - /** - * 样式前缀 - */ - prefix?: string; - - /** - * 文件列表 - */ - value?: Array; - - /** - * 默认文件列表 - */ - defaultValue?: Array; - - /** - * 上传按钮形状 - */ - shape?: 'card'; - - /** - * 上传列表的样式 - */ - listType?: 'text' | 'image' | 'card'; - - /** - * 数据格式化函数,配合自定义 action 使用,参数为服务器的响应数据,详见 [formatter](#formater) - */ - formatter?: (response: {}, file: any) => void; - - /** - * 最大文件上传个数 - */ - limit?: number; - - /** - * 可选参数,是否支持拖拽上传,`ie10+` 支持。 - */ - dragable?: boolean; - - /** - * 可选参数,是否本地预览 - */ - useDataURL?: boolean; - - /** - * 可选参数,是否禁用上传功能 - */ - disabled?: boolean; - - /** - * 改变时候的回调 - */ - onChange?: (value: File[]) => void; - - /** - * 可选参数, 用于校验文件,afterSelect仅在 autoUpload=false 的时候生效,autoUpload=true时,可以使用beforeUpload完全可以替代该功能. - */ - afterSelect?: (file: {}) => boolean; - - /** - * 点击移除的回调 - */ - onRemove?: () => void; - - /** - * 自定义class - */ - className?: string; - - /** - * 自定义内联样式 - */ - style?: React.CSSProperties; - - /** - * 自动上传 - */ - autoUpload?: boolean; - - /** - * 透传给Progress props - */ - progressProps?: ProgressProps; - - /** - * 点击图片回调 - */ - onPreview?: () => void; - - /** - * 取消上传的回调 - */ - onCancel?: () => void; - /** - * 调用系统设备媒体 - */ - capture?: string; - - /** - * 自定义成功和失败的列表渲染方式 - */ - itemRender?: (file: File, obj: { remove?: () => void }) => React.ReactNode; - - /** - * 选择新文件上传并替换 - */ - reUpload?: boolean; -} - -export class Card extends React.Component {} - -export class Dragger extends React.Component {} - -export interface SelecterProps extends HTMLAttributesWeak, CommonProps { - /** - * 是否禁用上传功能 - */ - disabled?: boolean; - - /** - * 是否支持多选文件,`ie10+` 支持。开启后按住 ctrl 可选择多个文件 - */ - multiple?: boolean; - - /** - * 是否支持拖拽上传,`ie10+` 支持。 - */ - dragable?: boolean; - - /** - * 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept) - */ - accept?: string; - - /** - * 文件选择回调 - */ - onSelect?: (e: React.ChangeEvent) => void; - - /** - * 拖拽经过回调 - */ - onDragOver?: () => void; - - /** - * 拖拽离开回调 - */ - onDragLeave?: () => void; - - /** - * 拖拽完成回调 - */ - onDrop?: () => void; - - /** - * 是否支持上传文件夹,仅在 chorme 下生效 - */ - webkitdirectory?: boolean; -} - -export class Selecter extends React.Component {} - -export class Uploader { - /** - * @param options 配置 - */ - constructor(options?: any); - - /** - * 配置选项 - * @param options 配置 - */ - setOptions(options: any): void; - /** - * 开始上传 - * @param files 文件列表 - */ - startUpload(files: Array): void; - /** - * 中断某个文件上传 - * @param file 文件 - */ - abort(file: any): void; -} - -export interface UploadProps extends HTMLAttributesWeak, CommonProps { - /** - * 上传的地址 - */ - action?: string; - - /** - * 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept) - */ - accept?: string; - - /** - * 上传额外传参 - */ - data?: any | (() => void); - - /** - * 是否支持多选文件,`ie10+` 支持。开启后按住 ctrl 可选择多个文件 - */ - multiple?: boolean; - - /** - * 设置上传的请求头部 - */ - headers?: any; - - /** - * 是否允许请求携带 cookie - */ - withCredentials?: boolean; - - /** - * 可选参数, 详见 [beforeUpload](#beforeUpload) - */ - beforeUpload?: (file: any, options: any) => boolean | {} | any; - - /** - * 上传中 - */ - onProgress?: () => void; - - /** - * 可选参数,上传成功回调函数,参数为请求下响应信息以及文件 - */ - onSuccess?: (file: any, value: Array) => void; - - /** - * 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件 - */ - onError?: (file: any, value: Array) => void; - - /** - * 子元素 - */ - children?: React.ReactNode; - - /** - * 设置上传超时,单位ms - */ - timeout?: number; - - /** - * 上传方法 - */ - method?: 'post' | 'put'; - - /** - * 自定义上传方法 - */ - request?: (option: any) => any; - - /** - * 文件名字段 - */ - name?: string; - - /** - * 选择文件回调 - */ - onSelect?: (uploadFiles: Array, value: Array) => void; - - /** - * 放文件 - */ - onDrop?: () => void; - - /** - * 样式前缀 - */ - prefix?: string; - - /** - * 文件列表 - */ - value?: Array; - - /** - * 默认文件列表 - */ - defaultValue?: Array; - - /** - * 上传按钮形状 - */ - shape?: 'card'; - - /** - * 上传列表的样式 - */ - listType?: 'text' | 'image' | 'card'; - - /** - * 数据格式化函数,配合自定义 action 使用,参数为服务器的响应数据,详见 [formatter](#formater) - */ - formatter?: (response: any, file: any) => void; - - /** - * 最大文件上传个数 - */ - limit?: number; - - /** - * 可选参数,是否支持拖拽上传,`ie10+` 支持。 - */ - dragable?: boolean; - - /** - * 可选参数,是否本地预览 - */ - useDataURL?: boolean; - - /** - * 可选参数,是否禁用上传功能 - */ - disabled?: boolean; - - /** - * 上传文件改变时的状态 - */ - onChange?: (value: File[]) => void; - - /** - * 可选参数, 用于校验文件,afterSelect仅在 autoUpload=false 的时候生效,autoUpload=true时,可以使用beforeUpload完全可以替代该功能. - */ - afterSelect?: (file: any) => boolean; - - /** - * 移除文件回调函数 - */ - onRemove?: (file: any) => boolean | any; - - /** - * 自定义额外渲染 - */ - extraRender?: (file: File) => any; - /** - * 自定义文件名渲染 - */ - fileNameRender?: (file: File) => any; - /** - * 自定义操作区域渲染 - */ - actionRender?: (file: File) => any; - /** - * 自定义class - */ - className?: string; - - /** - * 自定义内联样式 - */ - style?: React.CSSProperties; - - /** - * 自动上传 - */ - autoUpload?: boolean; - - /** - * 透传给Progress props - */ - progressProps?: ProgressProps; - - /** - * 是否为预览态 - */ - isPreview?: boolean; - - /** - * 预览态模式下渲染的内容 - */ - renderPreview?: (value: number) => void; - - /** - * 文件对象的 key name - */ - fileKeyName?: string; - /** - * 点击文件名时触发 onPreview - * @version 1.24 - */ - previewOnFileName?: boolean; - - /** - * 自定义成功和失败的列表渲染方式 - */ - itemRender?: (file: File, obj: { remove?: () => void }) => React.ReactNode; - - /** - * 选择新文件上传并替换 - */ - reUpload?: boolean; -} - -export enum ErrorCode { - EXCEED_LIMIT = 'EXCEED_LIMIT', - BEFOREUPLOAD_REJECT = 'BEFOREUPLOAD_REJECT', - RESPONSE_FAIL = 'RESPONSE_FAIL', -} - -export default class Upload extends React.Component { - static Card: typeof Card; - static Dragger: typeof Dragger; - static Selecter: typeof Selecter; - static Uploader: typeof Uploader; - static ErrorCode: typeof ErrorCode; - /** - * 添加文件 - * @param files - */ - selectFiles: (file: File) => void; - /** - * 控制文件上传 - */ - startUpload: () => void; - /** - * 控制文件上传 - * @param file 文件 - */ - uploadFiles: (file: File) => void; - /** - * 替换文件 - */ - replaceFiles: (old: object, current: object) => void; - /** - * 上传状态 - */ - isUploading: () => boolean; - /** - * 中断某个文件上传 - * @param file 文件 - */ - abort: (file: File) => void; -} diff --git a/types/util/date.d.ts b/types/util/date.d.ts deleted file mode 100644 index 790239a893..0000000000 --- a/types/util/date.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as dayjs from 'dayjs'; -import 'dayjs/locale/zh-cn'; -type _dayjs = typeof dayjs; -export interface dayjsWithIsSelf extends _dayjs { - isSelf: _dayjs['isDayjs']; -} -declare const datejs: dayjsWithIsSelf; -export default datejs; diff --git a/types/util/dom.d.ts b/types/util/dom.d.ts deleted file mode 100644 index 54f56414de..0000000000 --- a/types/util/dom.d.ts +++ /dev/null @@ -1,114 +0,0 @@ -/** - * 是否能使用 DOM 方法 - */ -export declare const hasDOM: boolean; -/** - * 节点是否包含指定 className - * - * @example - * dom.hasClass(document.body, 'foo'); - */ -export declare function hasClass(node?: Element | null, className?: string): boolean; -/** - * 添加 className - * - * @example - * dom.addClass(document.body, 'foo'); - */ -export declare function addClass( - node: Element | undefined | null, - className: string, - _force?: boolean -): void; -/** - * 移除 className - * - * @example - * dom.removeClass(document.body, 'foo'); - */ -export declare function removeClass( - node: Element | undefined | null, - className: string, - _force?: boolean -): void; -/** - * 切换 className - * @returns 执行后节点上是否还有此 className - * - * @example - * dom.toggleClass(document.body, 'foo'); - */ -export declare function toggleClass(node: Element | undefined | null, className: string): boolean; -/** - * 元素是否匹配 CSS 选择器 - * @param node - DOM 节点 - * @param selector - CSS 选择器 - * - * @example - * dom.matches(mountNode, '.container'); // boolean - */ -export declare const matches: (node?: Element | undefined | null, selector?: string) => boolean; -type CustomCSSStyleKey = keyof CSSStyleDeclaration; -type CustomCSSStyle = { - [key in CustomCSSStyleKey]: unknown; -}; -export declare function getStyle(node: N, name?: unknown): N; -export declare function getStyle(node: HTMLElement): CustomCSSStyle; -export declare function getStyle( - node: HTMLElement, - name: K -): string | number; -export declare function setStyle(node: undefined | null, name: unknown): false; -export declare function setStyle(node: HTMLElement, name: Partial): void; -export declare function setStyle(node: HTMLElement, name: CustomCSSStyleKey, value: unknown): void; -export declare function getNodeHozWhitespace(node: HTMLElement): number; -/** - * 获取默认的滚动条大小(通过创造一个滚动元素,读取滚动元素的滚动条信息) - */ -export declare function scrollbar(): { - width: number; - height: number; -}; -export declare function hasScroll(containerNode: HTMLElement): boolean | null; -/** - * 获取元素距离视口顶部和左边的偏移距离 - */ -export declare function getOffset(node: Element): { - top: number; - left: number; -}; -/** - * 获取不同单位转为 number 的长度 - * @param len - 传入的长度 - * @returns pixels - */ -export declare function getPixels(len: string | number): number; -/** - * 如果元素被指定的选择器字符串选择,getMatches() 方法返回 true; 否则返回 false - * @param dom - 待匹配的元素 - * @param selecotr - 选择器 - * @returns parent - */ -export declare function getMatches( - dom: Element | undefined | null, - selector: string -): boolean | null; -/** - * 匹配特定选择器且离当前元素最近的祖先元素(也可以是当前元素本身),如果匹配不到,则返回 null - * @param dom - 待匹配的元素 - * @param selecotr - 选择器 - * @returns parent - */ -export declare function getClosest( - dom: HTMLElement | undefined | null, - selector: string -): Element | null; -export declare function saveRef( - ref: - | string - | ((ins: any) => any) - | { - current?: any; - } -): ((element: any) => void) | null; -export {}; diff --git a/types/util/env.d.ts b/types/util/env.d.ts deleted file mode 100644 index 7593fdac58..0000000000 --- a/types/util/env.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * IE 浏览器的渲染引擎版本号 - * 注意:此属性与浏览器版本号不同,IE 的渲染引擎版本号是可以通过 HTML header 或手动设置去更改的 - * 6 ~ 11 - */ -export declare const ieVersion: number | undefined; -/** - * 判断是否是生产环境 - */ -export declare const isProduction: () => boolean; -declare const _default: { - ieVersion: number | undefined; - isProduction: () => boolean; -}; -export default _default; diff --git a/types/util/events.d.ts b/types/util/events.d.ts deleted file mode 100644 index 26fbe357d8..0000000000 --- a/types/util/events.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -export interface ListenerCallback { - (...args: unknown[]): unknown; -} -export interface CanListenNode { - addEventListener?: (name: string, callback: ListenerCallback, useCapture?: boolean) => unknown; - removeEventListener?: ( - name: string, - callback: ListenerCallback, - useCapture?: boolean - ) => unknown; -} -/** - * 取消事件绑定 - * @param node - DOM 节点或任何可以绑定事件的对象 - * @param eventName - 事件名 - * @param callback - 回调方法 - * @param useCapture - [useCapture=false] 是否开启事件捕获优先 - */ -export declare function off( - node: CanListenNode, - eventName: string, - callback: ListenerCallback, - useCapture?: boolean -): void; -/** - * 绑定事件 - * @param node - DOM 节点或任何可以绑定事件的对象 - * @param eventName - 事件名 - * @param callback - 回调方法 - * @param useCapture - 是否开启事件捕获优先 - * @returns 返回的 object 中包含一个 off 方法,用于取消事件监听 - * - * @example - * const handler = events.on(document.body, 'click', e =\> \{ - * // handle click ... - * \}); - * // 取消事件绑定 - * handler.off(); - */ -export declare function on( - node: CanListenNode, - eventName: string, - callback: ListenerCallback, - useCapture?: boolean -): { - off: () => void; -}; -/** - * 绑定事件,只执行一次后销毁 - * @param node - DOM 节点或任何可以绑定事件的对象 - * @param eventName - 事件名 - * @param callback - 回调方法 - * @param useCapture - 是否开启事件捕获优先 - * @returns 返回的 object 中包含一个 off 方法,用于取消事件监听 - */ -export declare function once( - node: CanListenNode, - eventName: string, - callback: ListenerCallback, - useCapture?: boolean -): { - off: () => void; -}; diff --git a/types/util/focus.d.ts b/types/util/focus.d.ts deleted file mode 100644 index dd73631d70..0000000000 --- a/types/util/focus.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * 列出能获取焦点的子节点 - * @param node - 容器节点 - */ -export declare function getFocusNodeList(node: Element): Element[]; -/** - * 保存最近一次获得焦点的无素 - */ -export declare function saveLastFocusNode(): void; -/** - * 清除焦点记录 - */ -export declare function clearLastFocusNode(): void; -/** - * 尝试将焦点切换到上一个元素 - */ -export declare function backLastFocusNode(): void; -/** - * 在限制的范围内切换焦点 - * @param node - 容器节点 - * @param e - 键盘事件 - */ -export declare function limitTabRange( - node: HTMLElement, - e: Pick -): void; -/** - * 检查一个 ref 是否有 focus 方法,如果有方法,则调用 focus 函数 - */ -export declare function focusRef( - ref: - | { - focus?: unknown; - } - | undefined, - ...args: unknown[] -): void; diff --git a/types/util/func.d.ts b/types/util/func.d.ts deleted file mode 100644 index b4e750566f..0000000000 --- a/types/util/func.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -import type { ConfigType, OptionType, Dayjs } from 'dayjs'; -export interface AnyFunction { - (...args: unknown[]): Result; -} -/** - * 一个空方法,返回入参本身或空对象 - */ -export declare const noop: () => void; -/** - * 一个空方法,返回 false - */ -export declare const prevent: () => boolean; -export declare function makeChain< - F extends - | AnyFunction - | { - apply?: AnyFunction; - } - | undefined - | null, ->(...fns: [F]): F; -export declare function makeChain( - ...fns: Array< - | AnyFunction - | { - apply?: AnyFunction; - } - | undefined - | null - > -): AnyFunction; -/** - * 批量改变方法的上下文 - * 此方法在 react 组件中很有用,在 constructor 中批量将组件上的方法执行上下文绑定到组件本身 - * 注意:用 bind 改变函数运行的上下文只会生效一次 - * @param ctx - 方法挂载的对象以及执行的上下文 - * @param fns - 方法名列表 - * - * @example - * func.bindCtx(this, ['handleClick', 'handleChange']); - */ -export declare function bindCtx(ctx: object, fns: string | string[], ns?: object): void; -export declare function promiseCall( - ret: Promise, - success: (value: Value) => void, - failure?: (reason: unknown) => void -): Promise; -export declare function promiseCall( - ret: false, - success: (data: false) => SuccessResult, - failure?: (reason: false) => FailureResult -): FailureResult; -export declare function promiseCall< - Value = unknown, - SuccessResult = unknown, - FailureResult = unknown, ->( - ret: Value, - success: (data: Value) => SuccessResult, - failure?: (reason: unknown) => FailureResult -): SuccessResult; -/** - * 方法调用,如果 obj 对象中存在名为 method 的方法则调用该方法 - * @param target - 目标对象 - * @param method - 方法名 - * @param args - 函数参数列表 - * @returns 函数返回值 如果不存在返回 undefined - */ -export declare function invoke( - target: unknown, - method: string, - args?: unknown[] -): Result | undefined; -export declare function renderNode( - render: AnyFunction | undefined, - defaultRender: AnyFunction | undefined, - renderProps?: unknown[] -): Result | undefined; -/** - * 日期检验:无效值返回 null - */ -export declare function checkDate(value: ConfigType, format?: OptionType): Dayjs | null; -/** - * Range 日期检验 - * @param value - 日期值 - * @param inputType - 输入框类型:开始时间输入框/结束时间输入框 - * @param disabled - 是否禁用 - * @param strictly - 是否严格校验:严格模式下不允许开始时间大于结束时间,在显示确认按键的,用户输入过程可不严格校验 - */ -export declare function checkRangeDate( - value: ConfigType, - inputType: number, - disabled?: boolean, - strictly?: boolean, - format?: OptionType -): [Dayjs | null, Dayjs | null]; diff --git a/types/util/guid.d.ts b/types/util/guid.d.ts deleted file mode 100644 index 756a76ae08..0000000000 --- a/types/util/guid.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * 生成全局唯一的 id - * @param prefix - 前缀字符串,默认为空串 - * - * @example - * guid(); // j7jv509c - * guid('prefix-'); // prefix-j7jv509d - */ -export declare function guid(prefix?: string): string; -export default guid; diff --git a/types/util/htmlId.d.ts b/types/util/htmlId.d.ts deleted file mode 100644 index 3a5853d649..0000000000 --- a/types/util/htmlId.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Replace characters not allowed for HTML id attributes - */ -export declare function escapeForId(text?: unknown): string; -/** - * Generate a string to be used for HTML id attributes - * - * @param prefix - prefix text for the id. Important because without one, eventually there will be 2 elements with the same id on the same page - * @param max - range for the random number generator. Defaults to 1,000,000, but can be set higher if necessary. - */ -export declare function randomId(prefix?: string, max?: number): string; diff --git a/types/util/index.d.ts b/types/util/index.d.ts deleted file mode 100644 index b8d00e5132..0000000000 --- a/types/util/index.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import * as _dom from './dom'; -import * as _env from './env'; -import * as _events from './events'; -import * as _func from './func'; -import * as _log from './log'; -import * as _object from './object'; -import * as _string from './string'; -import * as _support from './support'; -import * as _focus from './focus'; -import * as _htmlId from './htmlId'; -import _guid from './guid'; -export declare const dom: typeof _dom; -export declare const env: typeof _env; -export declare const events: typeof _events; -export declare const func: typeof _func; -export declare const log: typeof _log; -export declare const obj: typeof _object; -export declare const str: typeof _string; -export declare const support: typeof _support; -export declare const focus: typeof _focus; -export declare const guid: typeof _guid; -export declare const KEYCODE: { - BACKSPACE: number; - TAB: number; - ENTER: number; - SHIFT: number; - CTRL: number; - ALT: number; - ESC: number; - SPACE: number; - END: number; - HOME: number; - LEFT: number; - UP: number; - RIGHT: number; - DOWN: number; - PAGE_UP: number; - PAGE_DOWN: number; - ESCAPE: number; - LEFT_ARROW: number; - UP_ARROW: number; - RIGHT_ARROW: number; - DOWN_ARROW: number; - CONTROL: number; - OPTION: number; - CMD: number; - COMMAND: number; - DELETE: number; -}; -export declare const htmlId: typeof _htmlId; -export declare const datejs: import('./date').dayjsWithIsSelf; -export declare const pickAttrs: (props: Record) => Record; -export * from './types'; diff --git a/types/util/keycode.d.ts b/types/util/keycode.d.ts deleted file mode 100644 index d755035248..0000000000 --- a/types/util/keycode.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -declare const _default: { - BACKSPACE: number; - TAB: number; - ENTER: number; - SHIFT: number; - CTRL: number; - ALT: number; - ESC: number; - SPACE: number; - END: number; - HOME: number; - LEFT: number; - UP: number; - RIGHT: number; - DOWN: number; - PAGE_UP: number; - PAGE_DOWN: number; - ESCAPE: number; - LEFT_ARROW: number; - UP_ARROW: number; - RIGHT_ARROW: number; - DOWN_ARROW: number; - CONTROL: number; - OPTION: number; - CMD: number; - COMMAND: number; - DELETE: number; -}; -export default _default; diff --git a/types/util/log.d.ts b/types/util/log.d.ts deleted file mode 100644 index ffaaae7630..0000000000 --- a/types/util/log.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 反对使用某一方法或属性的警告 - * @param props - 过时的属性或方法名 - * @param instead - 替代的属性或方法名 - * @param component - 组件名 - * - * @example - * log.deprecated('onBeforeClose', 'beforeClose', 'Dialog'); - * // Warning: onBeforeClose is deprecated at [ Dialog ], use [ beforeClose ] instead of it. - */ -export declare function deprecated(props: string, instead: string, component: string): void; -/** - * 控制台警告日志 - */ -export declare function warning(msg: string): void; diff --git a/types/util/mobile/index.d.ts b/types/util/mobile/index.d.ts deleted file mode 100644 index 3374efe50e..0000000000 --- a/types/util/mobile/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const Util: any; -export default Util; diff --git a/types/util/object.d.ts b/types/util/object.d.ts deleted file mode 100644 index db91fb74e5..0000000000 --- a/types/util/object.d.ts +++ /dev/null @@ -1,123 +0,0 @@ -import * as React from 'react'; -import { JSXElementConstructor, ComponentClass } from 'react'; -export type ObjectOrArray = Record | ArrayLike; -type Writable = { - -readonly [P in keyof T]: T[P]; -}; -/** - * 获取对象的类型 - * @example - * typeOf([]) === 'Array' - * typeOf() === 'Undefined' - * typeOf(1) === 'Number' - */ -export declare function typeOf(obj?: unknown): string; -/** - * 判断是否是数组或类数组对象 - * @example - * isArrayLike([]) === true - * isArrayLike(arguments) === true - * isArrayLike(this.props.children) === true - */ -export declare function isArrayLike(obj: unknown): obj is ArrayLike; -/** - * 判断对象是否是一个 promise,即是否可以用.then - */ -export declare function isPromise(obj: unknown): obj is Promise; -/** - * 是否是一个纯净的对象 - * @see https://github.com/jonschlinkert/is-plain-object - */ -export declare function isPlainObject(obj?: unknown): obj is Record; -/** - * 对象浅比较 - * @example - * object.shallowEqual(\{a: 100\}, \{a: 100\}); // true - */ -export declare function shallowEqual( - objA: unknown, - objB: unknown, - compare?: (val1: unknown, val2: unknown, key: string) => boolean | undefined -): boolean; -export declare function each>( - obj: Obj, - callback: ( - val: Obj extends Record ? V : unknown, - key: string - ) => void | boolean, - direction?: number -): typeof obj; -export declare function each>( - obj: Arr, - callback: (val: Arr extends ArrayLike ? T : unknown, key: number) => void | boolean, - direction?: number -): typeof obj; -/** - * 过滤出其它属性 - * @param holdProps - 过滤的参照对象,最终的结果只保留不在参照对象中的 key - * @param props - 被过滤的对象 - * - * @example - * object.pickOthers(FooComponent.propTypes, this.props); - * object.pickOthers(['className', 'onChange'], this.props); - */ -export declare function pickOthers>( - holdProps: T[] | Record, - props: P -): Writable>; -/** - * 过滤出需要的属性 - * @param holdProps - 过滤的参照对象,最终的结果只保留在参照对象中的 key - * @param props - 被过滤的对象 - * - * @example - * object.pickProps(FooComponent.propTypes, this.props); - * object.pickProps(['className', 'onChange'], this.props); - */ -export declare function pickProps

>( - holdProps: ObjectOrArray, - props: P -): Partial

; -/** - * 过滤出带 prefix 的属性 - * @param holdProps - 过滤的参照对象,最终的结果只保留不在参照对象中的 key - * @param prefix - 包含的字符串 - * - * @example - * object.pickAttrsWith(FooComponent.propTypes, 'data-'); - */ -export declare function pickAttrsWith

>( - holdProps: P, - prefix: string -): Partial

; -/** - * Checks if value is `null` or `undefined`. - */ -export declare function isNil(value: unknown): value is null | undefined; -export declare function deepMerge(target: unknown): typeof target; -export declare function deepMerge(target: unknown, ...sources: unknown[]): Record; -type AnyFunction = ((...args: unknown[]) => unknown) | (new (...args: unknown[]) => unknown); -/** - * 组件是否为 Fucntion Component - * @param component - 传入的组件 - */ -export declare function isFunctionComponent( - component: AnyFunction -): component is JSXElementConstructor; -/** - * 组件是否为 Class Component - * @param component - 传入的组件 - */ -export declare function isClassComponent(component?: unknown): component is ComponentClass; -export declare function isReactFragment(component?: null): false; -export declare function isReactFragment(component: { type: typeof React.Fragment }): true; -export declare function isReactFragment(component: typeof React.Fragment): true; -export declare function isReactFragment(component: unknown): boolean; -/** - * Creates an array of the own enumerable string keyed property values of object. - * @example - * // returns [1, 2] - * values(\{a: 1, b: 2\}) - */ -export declare function values(obj: ObjectOrArray): T[]; -export {}; diff --git a/types/util/pick-attrs.d.ts b/types/util/pick-attrs.d.ts deleted file mode 100644 index 9d589c72c5..0000000000 --- a/types/util/pick-attrs.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * 过滤掉无效的透传到 DOM 属性 - */ -declare const _default: (props: Record) => Record; -export default _default; diff --git a/types/util/string.d.ts b/types/util/string.d.ts deleted file mode 100644 index b9ee68438f..0000000000 --- a/types/util/string.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 将字符串转化为驼峰式写法 - * @param str - 例:-webkit-transition - * @returns 例:WebkitTransition - */ -export declare function camelcase(str: string): string; -/** - * 将驼峰式字符串转化为连字符写法 - * @param str - 例:WebkitTransition - * @returns 例:-webkit-transition - */ -export declare function hyphenate(str?: unknown): string; -/** - * 替换模板字符串 - * @param tpl - 例:当前\{current\}, 共\{total\}页 - * @param object - 例:\{current: 1, total: 9\} - */ -export declare function template(tpl?: unknown, object?: Record): string; diff --git a/types/util/support.d.ts b/types/util/support.d.ts deleted file mode 100644 index 711473a434..0000000000 --- a/types/util/support.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 是否支持 animation 以及动画结束事件名 - */ -export declare const animation: - | false - | { - end: string; - }; -/** - * 是否支持 transition 以及过滤效果结束事件名 - */ -export declare const transition: - | false - | { - end: string; - }; -/** - * 是否支持 flex 属性 - */ -export declare const flex: boolean; diff --git a/types/util/types.d.ts b/types/util/types.d.ts deleted file mode 100644 index 3c9c98a238..0000000000 --- a/types/util/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ReactNode } from 'react'; -import { ComponentCommonProps } from '../config-provider/types'; -export interface IconsType { - [key: string]: ReactNode; -} -export interface CommonProps extends ComponentCommonProps {} diff --git a/types/virtual-list/index.d.ts b/types/virtual-list/index.d.ts deleted file mode 100644 index 6d163fcfd3..0000000000 --- a/types/virtual-list/index.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -/// - -import * as React from 'react'; -import { CommonProps } from '../util'; - -export interface VirtualListProps extends React.HTMLAttributes, CommonProps { - /** - * 渲染的子节点 - */ - children?: any; - - /** - * 最小加载数量 - */ - minSize?: number; - - /** - * 一屏数量 - */ - pageSize?: number; - - /** - * 父渲染函数,默认为 (items, ref) =>

    {items}
- */ - itemsRenderer?: () => void; - - /** - * 缓冲区高度 - */ - threshold?: number; - - /** - * 获取item高度的函数 - */ - itemSizeGetter?: () => void; - - /** - * 设置跳转位置,需要设置 itemSizeGetter 才能生效, 不设置认为元素等高并取第一个元素高度作为默认高 - */ - jumpIndex?: number; -} - -export default class VirtualList extends React.Component {}