diff --git a/.stylelintignore b/.stylelintignore index 6b1de4c8e..3e39fd87e 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -1,5 +1,5 @@ source/assets/css/core/base.less *.js *.tsx -components/style/color/* +source/assets/css/color/* diff --git a/source/assets/css/core/index.less b/source/assets/css/core/index.less index 7ce05eaab..6f0509f23 100644 --- a/source/assets/css/core/index.less +++ b/source/assets/css/core/index.less @@ -8,13 +8,14 @@ .fishd-motion-collapse-legacy { overflow: hidden; &-active { - transition: height @animation-duration-base @ease-in-out, - opacity @animation-duration-base @ease-in-out !important; + transition: height @animation-duration-base @ease-in-out, + opacity @animation-duration-base @ease-in-out !important; } } .fishd-motion-collapse { overflow: hidden; - transition: height @animation-duration-base @ease-in-out, + transition: + height @animation-duration-base @ease-in-out, opacity @animation-duration-base @ease-in-out !important; } diff --git a/source/components/InputNumber/style/index.less b/source/components/InputNumber/style/index.less index e364db774..4e8756eae 100755 --- a/source/components/InputNumber/style/index.less +++ b/source/components/InputNumber/style/index.less @@ -19,7 +19,7 @@ &-wrapper { display: inline-block; text-align: start; - vertical-align: top; + vertical-align: top; } } diff --git a/source/components/Layout/index.tsx b/source/components/Layout/index.tsx index 955c9799b..e8d6ca4e6 100644 --- a/source/components/Layout/index.tsx +++ b/source/components/Layout/index.tsx @@ -2,7 +2,8 @@ import InternalLayout, { BasicProps, Content, Footer, Header } from './Layout'; import Sider from './Sider'; import './style/index.less'; -export { BasicProps as LayoutProps } from './layout'; +export type LayoutProps = BasicProps; + export { SiderProps } from './Sider'; interface LayoutType extends React.FC { diff --git a/source/components/Menu/__tests__/index.test.tsx b/source/components/Menu/__tests__/index.test.tsx index 9dc2673c5..f8e5abf8a 100644 --- a/source/components/Menu/__tests__/index.test.tsx +++ b/source/components/Menu/__tests__/index.test.tsx @@ -50,7 +50,7 @@ const expectSubMenuBehavior = (menu, enter = noop, leave = noop) => { if (getSubMenu().length) { expect( getSubMenu().hasClass('fishd-menu-submenu-hidden') || - getSubMenu().hasClass('fishd-menu-hidden') || + getSubMenu().hasClass('fishd-menu-hidden') || getSubMenu().hasClass(AnimationClassNames[mode]), ).toBeTruthy(); } @@ -61,11 +61,11 @@ describe('Menu', () => { window.requestAnimationFrame = callback => window.setTimeout(callback, 16); window.cancelAnimationFrame = window.clearTimeout; - beforeAll(() => { + beforeEach(() => { jest.useFakeTimers(); }); - afterAll(() => { + afterEach(() => { jest.useRealTimers(); }); @@ -420,6 +420,14 @@ describe('Menu', () => { }); describe('open submenu when click submenu title', () => { + beforeEach(() => { + jest.useFakeTimers(); + }); + + afterEach(() => { + jest.useRealTimers(); + }); + const toggleMenu = (wrapper, index, event) => { wrapper.find('.fishd-menu-submenu-title').at(index).simulate(event); jest.runAllTimers(); diff --git a/source/components/Menu/style/index.less b/source/components/Menu/style/index.less index 4d3a2edf7..25dc14a02 100755 --- a/source/components/Menu/style/index.less +++ b/source/components/Menu/style/index.less @@ -40,7 +40,8 @@ background: @menu-bg; outline: none; box-shadow: @box-shadow-base; - transition: background @animation-duration-slow, + transition: + background @animation-duration-slow, width @animation-duration-slow cubic-bezier(0.2, 0, 0, 1) 0s; .clearfix(); @@ -84,12 +85,14 @@ } &-horizontal &-submenu { - transition: border-color @animation-duration-slow @ease-in-out, + transition: + border-color @animation-duration-slow @ease-in-out, background @animation-duration-slow @ease-in-out; } &-submenu, &-submenu-inline { - transition: border-color @animation-duration-slow @ease-in-out, + transition: + border-color @animation-duration-slow @ease-in-out, background @animation-duration-slow @ease-in-out, padding @menu-animation-duration-normal @ease-in-out; } @@ -105,7 +108,8 @@ &-submenu &-sub { cursor: initial; - transition: background @animation-duration-slow @ease-in-out, + transition: + background @animation-duration-slow @ease-in-out, padding @animation-duration-slow @ease-in-out; } @@ -235,7 +239,9 @@ padding: @menu-item-padding; white-space: nowrap; cursor: pointer; - transition: border-color @animation-duration-slow, background @animation-duration-slow, + transition: + border-color @animation-duration-slow, + background @animation-duration-slow, padding @animation-duration-slow @ease-in-out; .@{menu-prefix-cls}-item-icon, @@ -246,12 +252,16 @@ top: 1px; margin-right: @menu-icon-margin-right; font-size: @menu-icon-size; - transition: font-size @menu-animation-duration-normal @ease-out, - margin @animation-duration-slow @ease-in-out, color @animation-duration-slow; + transition: + font-size @menu-animation-duration-normal @ease-out, + margin @animation-duration-slow @ease-in-out, + color @animation-duration-slow; + span { // margin-left: @menu-icon-margin-right; opacity: 1; - transition: opacity @animation-duration-slow @ease-in-out, margin @animation-duration-slow, + transition: + opacity @animation-duration-slow @ease-in-out, + margin @animation-duration-slow, color @animation-duration-slow; } } @@ -339,8 +349,10 @@ height: 1.5px; background-color: currentColor; border-radius: 2px; - transition: background @animation-duration-slow @ease-in-out, - transform @animation-duration-slow @ease-in-out, top @animation-duration-slow @ease-in-out, + transition: + background @animation-duration-slow @ease-in-out, + transform @animation-duration-slow @ease-in-out, + top @animation-duration-slow @ease-in-out, color @animation-duration-slow @ease-in-out; content: ''; } @@ -476,7 +488,8 @@ border-right: @menu-item-active-border-width solid @menu-highlight-color; transform: scaleY(0.0001); opacity: 0; - transition: transform @menu-animation-duration-normal @ease-out, + transition: + transform @menu-animation-duration-normal @ease-out, opacity @menu-animation-duration-normal @ease-out; content: ''; } @@ -517,7 +530,8 @@ &::after { transform: scaleY(1); opacity: 1; - transition: transform @menu-animation-duration-normal @ease-in-out, + transition: + transform @menu-animation-duration-normal @ease-in-out, opacity @menu-animation-duration-normal @ease-in-out; } } @@ -538,7 +552,9 @@ .@{menu-prefix-cls}-submenu-title { display: flex; align-items: center; - transition: border-color @animation-duration-slow, background @animation-duration-slow, + transition: + border-color @animation-duration-slow, + background @animation-duration-slow, padding 0.1s @ease-out; > .@{menu-prefix-cls}-title-content { @@ -559,13 +575,8 @@ width: @menu-collapsed-width; > .@{menu-prefix-cls}-item, - > .@{menu-prefix-cls}-item-group - > .@{menu-prefix-cls}-item-group-list - > .@{menu-prefix-cls}-item, - > .@{menu-prefix-cls}-item-group - > .@{menu-prefix-cls}-item-group-list - > .@{menu-prefix-cls}-submenu - > .@{menu-prefix-cls}-submenu-title, + > .@{menu-prefix-cls}-item-group > .@{menu-prefix-cls}-item-group-list > .@{menu-prefix-cls}-item, + > .@{menu-prefix-cls}-item-group > .@{menu-prefix-cls}-item-group-list > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title, > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title { left: 0; padding: 0 ~'calc(50% - @{menu-icon-size-lg} / 2)'; @@ -629,16 +640,9 @@ box-shadow: none; & > .@{menu-prefix-cls}-item, - & - > .@{menu-prefix-cls}-item-group - > .@{menu-prefix-cls}-item-group-list - > .@{menu-prefix-cls}-item, + & > .@{menu-prefix-cls}-item-group > .@{menu-prefix-cls}-item-group-list > .@{menu-prefix-cls}-item, & > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title, - & - > .@{menu-prefix-cls}-item-group - > .@{menu-prefix-cls}-item-group-list - > .@{menu-prefix-cls}-submenu - > .@{menu-prefix-cls}-submenu-title { + & > .@{menu-prefix-cls}-item-group > .@{menu-prefix-cls}-item-group-list > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title { line-height: @menu-inline-toplevel-item-height; height: @menu-inline-toplevel-item-height; } diff --git a/tools/buildOthers.sh b/tools/buildOthers.sh index ae2bd210f..5f87bc865 100755 --- a/tools/buildOthers.sh +++ b/tools/buildOthers.sh @@ -19,7 +19,7 @@ compileLess() { then # echo $1"/"$file #在此处处理文件即可 newfile=`echo $1"/"$file | sed 's/.less/.css/g'` - lessc $1"/"$file $newfile + lessc --js $1"/"$file $newfile fi if [ "$file" = "index.js" ] # 约定index.less作为入口文件 then diff --git a/tools/compileTs/tsconfig.json b/tools/compileTs/tsconfig.json index 068a50094..77385308f 100644 --- a/tools/compileTs/tsconfig.json +++ b/tools/compileTs/tsconfig.json @@ -21,7 +21,8 @@ "typeRoots": [ "../../source/typings", "../../node_modules/@types" - ] + ], + "downlevelIteration": true, }, "include": [ "../../temp/**/*" diff --git a/webpack.config.dev.site.js b/webpack.config.dev.site.js index 70a18750f..8698b7791 100644 --- a/webpack.config.dev.site.js +++ b/webpack.config.dev.site.js @@ -111,7 +111,10 @@ module.exports = { }, { loader: 'css-loader' }, { - loader: 'less-loader' + loader: 'less-loader', + options: { + javascriptEnabled: true + }, }] }, { diff --git a/webpack.config.prod.dist.js b/webpack.config.prod.dist.js index e6d1a4c14..6f88df8f2 100644 --- a/webpack.config.prod.dist.js +++ b/webpack.config.prod.dist.js @@ -127,6 +127,7 @@ module.exports = { }, { loader: 'less-loader', options: { + javascriptEnabled: true, minimize: true } }], diff --git a/webpack.config.prod.site.js b/webpack.config.prod.site.js index 0ba057acc..985e7342b 100644 --- a/webpack.config.prod.site.js +++ b/webpack.config.prod.site.js @@ -55,6 +55,7 @@ const getHappyPackPlugin = () => [ loader: 'less-loader', options: { sourceMap: false, + javascriptEnabled: true, } } ],